Сохранение подписанного сертификата X509 и PrivateKey в Android - PullRequest
0 голосов
/ 20 февраля 2019

Я хотел бы сохранить сертификат X509 и его закрытый ключ в Android KeyStore, я решил «объединить» сертификат X509 (содержащий открытый ключ) и его закрытый ключ.Закрытый ключ используется для создания CSR, а затем сторона сервера подписывает сертификат и возвращается в приложение. Могу ли я объединить сертификат и закрытый ключ в один уникальный сертификат?Кроме того, я использую Spongycastle (он-лайн упаковщик Android Bouncycastle).

1 Ответ

0 голосов
/ 20 февраля 2019

Я понятия не имею об Android KeyStore, но, возможно, вы можете попробовать что-то вроде:

PrivateKey privateKey = ...         //this is what you already have
X509Certificate certificate = ...   //this is what you already have

KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);

Certificate[] certChain = new Certificate[1];  
certChain[0] = certificate;  

char[] myKeyPassword = "myKeyPassword".toCharArray();
keyStore.setKeyEntry("mykeyalias", (Key)privateKey, myKeyPassword, certChain);  

См. https://docs.oracle.com/javase/9/docs/api/java/security/KeyStore.html#setKeyEntry-java.lang.String-java.security.Key-char:A-java.security.cert.Certificate:A- для получения дополнительной информации о KeyStore.setKeyEntry

...