我使用Android应用程序生成密钥对,创建CSR并将其发送给我CA。在密钥对生成我使用“AndroidKeyStore”:安装AndroidKeyStore进入AndroidCAStore
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA","AndroidKeyStore");
keyPairGenerator.initialize(new KeyGenParameterSpec.Builder(
alias,
KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
.setKeySize(KEY_PAIR_LENGTH)
.setDigests(KeyProperties.DIGEST_SHA256)
.setSignaturePaddings(KeyProperties.SIGNATURE_PADDING_RSA_PSS)
.build());
return keyPairGenerator.generateKeyPair();
所以专用密钥产生并存储内部密钥库。
当我得到X509证书(签署CSR)从我的CA我想专用密钥和证书使用钥匙链API来安装:
PKCS12 = ?!
Intent intent = createInstallIntent();
intent.putExtra(KeyChain.EXTRA_PKCS12, PKCS12);
是否有可能使用AndroidKeyStore在这种情况下?我读了它是不可能从获得PrivateKey的AndroidKeyStore。
无法从Android密钥库中提取密钥材料。如果您需要Pkcs12在Android钥匙串中安装证书,那么您需要使用应用程序中的私钥库 – pedrofb
您是否建议创建另一个密钥库,然后将其与KeyChain API一起使用?你知道是否有可能在密钥库中生成私钥?我管理的只有AndroidKeyStore。 –
您可以使用'KeyPairGenerator'直接生成密钥对,公钥和私钥。密钥和认证链可以稍后存储到'KeyStore'并序列化为PKS12。你可以在这里看到一个类似的例子https://stackoverflow.com/questions/13207378/saving-certificate-chain-in-a-pkcs12-keystore。 – pedrofb