gpt4 book ai didi

java - 如何在卸载应用程序时删除应用程序安装的受信任 CA 证书

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

我有一个应用程序提供安装 CA 证书的选项,它存储在 Trusted Credentials 的用户选项卡中,并且按预期工作。

仅供引用 (这是我安装证书的方式):

Intent installIntent = KeyChain.createInstallIntent();
javax.security.cert.X509Certificate x509 = javax.security.cert.X509Certificate.getInstance(caRootCertBytes);
installIntent.putExtra(KeyChain.EXTRA_CERTIFICATE, x509.getEncoded());
installIntent.putExtra(KeyChain.EXTRA_NAME,caRootCertName);
startActivity(installIntent);

如果应用已卸载,则证书仍保留在受信任的凭据中

我希望在卸载应用程序时卸载证书。

我想过使用 deleteEntry 删除证书KeyStore的方法。

仅供引用 (虽然我还没有测试过。希望它应该可以工作。我会在测试后更新)

javax.security.cert.X509Certificate x509 = javax.security.cert.X509Certificate.getInstance(caRootCertBytes);

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);
String name = x509.getIssuerDN().getName();
if (cert.getIssuerDN().getName().contains(name))
{
ks. deleteEntry(alias)

}
}
}

即使您认为上述代码有效,我也无法注册广播接收器以卸载我自己的应用程序。

我如何才能在卸载我的应用时删除我的应用安装的证书?

感谢任何帮助!

最佳答案

您无法获得为您自己的软件包卸载软件包的广播。这可能会导致系统不一致。看到这个answer

关于java - 如何在卸载应用程序时删除应用程序安装的受信任 CA 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30244567/

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