2016-07-28 140 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