gpt4 book ai didi

android - 检查安装在系统凭证存储中的证书

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:02 26 4
gpt4 key购买 nike

我的应用程序在 Android 4.0.1 及更高版本上运行。我使用以下代码以编程方式在系统范围的凭据存储中安装 PKCS12 证书:

Intent intent = KeyChain.createInstallIntent();
byte[] p12 = readFile("myCa.p12");
intent.putExtra(KeyChain.EXTRA_PKCS12, p12);
startActivity(intent);

以上代码弹出系统对话框安装证书,需要用户交互,此时即可。

接下来,我想实现另一个功能,可以检查证书存储中是否已经安装了特定证书(假设我知道证书名称和别名)。我不知道如何实现?有人可以给我一些建议吗?

(如果这个函数没有用户交互就好了)

最佳答案

当我玩 droid 的证书时,我使用此代码获取证书列表(包括由用户安装的):

public interface CertificateValidator {
boolean valid(X509Certificate cert);
}

public boolean findInstalledCertificate(final CertificateValidator validator) {
try {
final KeyStore ks = KeyStore.getInstance("AndroidCAStore");
if (ks != null) {
ks.load(null, null);
final Enumeration<String> aliases = ks.aliases();
while (aliases.hasMoreElements()) {
final String alias = aliases.nextElement();
final X509Certificate cert = (java.security.cert.X509Certificate) ks.getCertificate(alias);
if (validator.valid(cert)) return true;
}
}
} catch (IOException
| KeyStoreException
| CertificateException
| NoSuchAlgorithmException e) {
e.printStackTrace();
}
return false;
}

因此,您可以在 valid 方法中检查下一个证书是否属于您。

关于android - 检查安装在系统凭证存储中的证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36358853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com