0
votes

I would like to save a X509Certificate and its private key into the Android KeyStore, I tought I should 'merge' the X509Certificate (containing the public key) and its private key. The private key is used to create a CSR and then a server party sign the certificate and return to the application, can I merge the cert and the private key into one unique cert? Also I'm using spongycastle (aka bouncycastle's android wrapper).

1

1 Answers

0
votes

I have no idea about Android KeyStore, but maybe you can try something like:

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);  

See 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- for more information about KeyStore.setKeyEntry