2016-07-28 90 views
0

我已经使用自签名根CA创建了客户端证书,在Android设备上安装了clientcert.p12文件。如何从Android证书商店检索客户端证书

我需要在我的应用程序中使用证书,下面的代码片我已经尝试过。

KeyStore store = KeyStore.getInstance("PKCS12"); 
      if (store != null) 
      { 

       store.load(null, new String("the keystore password").toCharArray()); 
       Log.i("BIRAJENDU", "CERT CHECK" + "Type: "+ store.getType()+ " Size: " +store.size()); 

       Enumeration<String> aliases = store.aliases(); 
       if (!aliases.hasMoreElements()) { 
         Log.i("BIRAJENDU", "No cert found"); 
       } 

}

我总是得到store.size()为零。

但是,如果我使用KeyStore store = KeyStore.getInstance("AndroidCAStore");,我得到正确的商店大小。但在这里我的需要是找到PKCS12商店。

回答

0
+0

是的这个信息对找到私钥很有用。但是我的要求是不通过用户干预访问所有PKCS证书链,在上面的KeyChain方法中,我需要调用choosePrivateKeyAlias()。这正在扩大证书选择系统对话框。我的用例不允许这样做。 – Birajendu

+0

在这种情况下,您需要将证书导入到应用程序中,或者您的应用程序需要是将证书导入设备的设备所有者或配置文件所有者组件。 –

+0

我的应用程序不是MDM应用程序,所以我不认为我可以让它成为设备所有者或配置文件所有者应用程序。 – Birajendu