Android JSSE實現SSL雙向認證(阻塞模式及非阻塞模式)
阿新 • • 發佈:2019-01-08
File pfxFile = new File(mCertPath, "ca.pfx");
try {
/*Android支援BKS PKCS12的keystore,不支援JKS,預設為BKS*/
//ksKeys = KeyStore.getInstance("JKS");
ksKeys = KeyStore.getInstance("PKCS12");
//ksKeys = KeyStore.getInstance("JCEKS");
ksKeys.load(new FileInputStream(pfxFile), passphrase);
}catch (KeyStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CertificateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
KeyManagerFactory kmf = null;
// KeyManager's decide which key material to use.
kmf =KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
try {
kmf.init(ksKeys, passphrase);
} catch (UnrecoverableKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (KeyStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
/*Android支援BKS PKCS12的keystore,不支援JKS,預設為BKS*/
//ksKeys = KeyStore.getInstance("JKS");
ksKeys = KeyStore.getInstance("PKCS12");
//ksKeys = KeyStore.getInstance("JCEKS");
ksKeys.load(new FileInputStream(pfxFile), passphrase);
}catch (KeyStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CertificateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
KeyManagerFactory kmf = null;
// KeyManager's decide which key material to use.
kmf =KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
try {
kmf.init(ksKeys, passphrase);
} catch (UnrecoverableKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (KeyStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}