Как удалить приложение, установленное доверенный сертификат CA при удалении приложения
У меня есть приложение, которое дает возможность установить сертификат CA, и оно хранится на вкладке пользователяДоверенные учетные данные и работает как положено.
FYI (Вот как я устанавливаю сертификат):
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
.
FYI (Я не проверял, хотя. Надеюсь, это должно работать .. Я обновлю, как только я проверил это)
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, я не могу зарегистрировать вещательный приемник для удаления моего собственного приложения.
Как я могу удалить сертификат, установленный моим приложением при удалении моего приложения?
Любая помощь приветствуется!