gpt4 book ai didi

android - 列出所有在 android 上安装的证书

转载 作者:IT老高 更新时间:2023-10-28 21:52:58 25 4
gpt4 key购买 nike

我正在编写一个应用程序,其中列出了安装的所有证书设备。但是我发现有两个地方有证书存储:

  1. System/etc/security/cacerts.bks:此文件包含所有预装证书。我可以使用在 frameworks/中定义的 Keystore 类base/keystore/java/android/security.

  2. data/misc/keystore:另一种安装证书的方式(例如,通过certinstaller app) 安装第三方证书并制作它在这个目录中的条目。

但我不知道如何读取序列号等证书信息,此文件中的 IssuerDN 等。

最佳答案

我使用下面的代码 fragment 来列出

public void PrintInstalledCertificates() {
try {
KeyStore ks = KeyStore.getInstance("AndroidCAStore");

if (ks != null) {
ks.load(null, null);
Enumeration<String> aliases = ks.aliases();

while (aliases.hasMoreElements()) {

String alias = (String) aliases.nextElement();

java.security.cert.X509Certificate cert = (java.security.cert.X509Certificate) ks.getCertificate(alias);
//To print System Certs only
if(cert.getIssuerDN().getName().contains("system")){
System.out.println(cert.getIssuerDN().getName());
}

//To print User Certs only
if(cert.getIssuerDN().getName().contains("user")){
System.out.println(cert.getIssuerDN().getName());
}

//To print all certs
System.out.println(cert.getIssuerDN().getName());
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (KeyStoreException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (java.security.cert.CertificateException e) {
e.printStackTrace();
}
}

关于android - 列出所有在 android 上安装的证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4458046/

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