简体   繁体   中英

How do you add a .p12 certificate to an Android device?

I'm having trouble loading a .p12 certificate to my Android project. Here is a chunk of source code:

char[] password = "<my pass>".toCharArray();
FileInputStream fIn = new FileInputStream("<name of cert>");
KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(fIn, password);

On line 2 an error occurred opening cert file.

How can I properly add the cert file to my Android program?

Try this

File cert = new File("mnt/sdcard/" + filename + ".p12");
InputStream inputStreamFromDownload = null;

keyStore = KeyStore.getInstance("PKCS12");
inputStreamFromDownload = new BufferedInputStream(new FileInputStream(cert));

Log.i("Certificate", inputStreamFromDownload.available() + "");

...

In Android, I see people programmatically install keystore in the following way (The code is from Android developer blog):

 byte[] keystore = . . (read from a PKCS#12 keystore) Intent installIntent = KeyChain.createInstallIntent(); installIntent.putExtra(KeyChain.EXTRA_PKCS12, keystore); startActivityForResult(installIntent, INSTALL_KEYSTORE_CODE);

I also see people programmatically install only the certificate wrapped inside keystore:

 Intent intent = KeyChain.createInstallIntent(); intent.putExtra(KeyChain.EXTRA_CERTIFICATE, cert); startActivity(intent);

...which leads --@Leem.fin question

may find that the following link a better place to start:

https://developer.android.com/studio/publish/app-signing.html#signing-manually

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM