我的網絡代碼是用NDK(cURL + OpenSSL)編寫的,我想使用來自Android的憑證存儲的證書作爲SSL連接的客戶端證書。此外,我想向用戶提供可用證書列表,以便他可以選擇連接證書。不幸的是,我無法從關鍵存儲獲得證書。如何從「憑證存儲」加載證書?
我在我的Android設備(5.0.2)上安裝了一個客戶端證書到「憑證存儲」(設置 - > Secutrity - > ...),但我無法從Java訪問它。我嘗試撥打以下代碼,但密鑰存儲是empy,儘管證書已安裝在憑證存儲中:
//KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
KeyStore ks = KeyStore.getInstance("AndroidKeyStore");
ks.load(null);
Enumeration<String> aliases = ks.aliases();
while(aliases.hasMoreElements()) {
String alias = (String)aliases.nextElement();
Log.i("app", "alias name: " + alias);
Certificate certificate = ks.getCertificate(alias);
Log.i("app", certificate.toString());
}
我在做什麼錯?