我的网络代码是用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());
}
我在做什么错?