【发布时间】:2018-04-01 12:42:46
【问题描述】:
我的网络代码是用 NDK (cURL + OpenSSL) 编写的,我想使用来自 Android 凭证存储的证书作为 SSL 连接的客户端证书。此外,我想向用户提供可用证书的列表,以便他可以选择用于连接的证书。很遗憾,我无法从密钥存储中获取证书。
我在我的 Android 设备 (5.0.2) 上将客户端证书安装到“凭据存储”(设置 -> 安全 -> ...),但我无法从 Java 访问它。我尝试调用以下代码,但密钥存储是空的,虽然证书安装在凭据存储中:
//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());
}
我做错了什么?
【问题讨论】:
标签: java android android-ndk certificate credentials