如何在卸载应用程序时删除已安装的应用程序受信任的 CA 证书
2022-09-02 04:54:02
我有一个应用程序,它提供了安装CA证书的选项,它存储在“受信任的凭据”的用户选项卡中,并按预期工作。
仅供参考(这是我安装证书的方式):
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);
如果卸载应用,证书将保留在“受信任的凭据”中。
我希望在卸载应用程序时卸载证书。
我想过使用删除入口方法删除证书。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)
}
}
}
即使您认为上述代码适用于AFAIK,我也无法注册广播接收器以卸载我自己的应用程序。
如何删除卸载我的应用程序时由我的应用程序安装的证书?
任何帮助是值得赞赏的!