哪种方法在AndroidKeyStore中存储私钥和公钥?
我已经实现了以下代码来初始化密钥库并生成私钥和公钥。
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();
答案 0 :(得分:0)
使用AndroidKeyStore生成密钥对时,该密钥对已经自动存储。您可以使用所需的别名(示例中为“ alias”)来检索它。
但是请注意,当您获得私钥时,实际上并没有获得私钥机密。它们留在安全的硬件中,永远不会离开它,因此它们不会泄漏。但是,您将获得一个PrivateKey对象,就可以像拥有秘密一样使用它。您的加密或签名请求将发送到安全硬件,该安全硬件使用机密执行操作并将结果返回给您。