AndroidKeyStore 中哪个方法存储私钥和公钥?
我已经实现了以下代码来初始化 keystore 并生成私钥和公钥。
KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
KeyPair keyPair;
Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance();
end.add(Calendar.YEAR, 50);
KeyPairGenerator generator= KeyPairGenerator.getInstance("RSA","AndroidKeyStore");
KeyPairGeneratorSpec keyPairGeneratorSpec = new KeyPairGeneratorSpec.Builder(context).
setAlias("alias").
setSubject(new X500Principal("O=Authority")).
setSerialNumber(BigInteger.ONE).
setStartDate(start.getTime()).
setEndDate(end.getTime()).build();
if (generator != null) {
generator.initialize(keyPairGeneratorSpec);
}
keyPair = generator.generateKeyPair();
最佳答案
对于你的问题,这一行
generator.generateKeyPair();
实现 key 对生成和存储过程。
在 java.security.KeyPairGenerator
中看到这样的代码时,您可能会感到困惑
公共(public) key 对生成 key 对(){
//...
返回空值;
}
但实际上因为 KeyPairGenerator 是一个抽象类,这里使用的“真实”类是
java.security.KeyPairGenerator$Delegate
,委托(delegate) generateKeyPair
,如 this
您也可以在“AndroidKeyStore”中检查此过程前后别名列表的差异。
我想分享有关如何查看任何 keystore 的别名列表的要点。希望它可以帮助您测试:https://gist.github.com/davidkhala/4aa1d6b44f287699aeac028786633c7a
关于android - AndroidKeyStore什么时候在AndroidKeyStore中存储私钥和公钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41184968/