Como remover o certificado CA confiável instalado do aplicativo ao desinstalar o aplicativo
Eu tenho um aplicativo que oferece a opção de instalar o certificado da CA e ele é armazenado na guia do usuário deCredenciais Confiáveis e funciona como esperado.
Para sua informação (É assim que eu instalo o certificado):
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);
Se o aplicativo fordesinstalado o certificado permanece noCredenciais confiáveis.
Eu gostaria que o certificado fosse desinstalado quando o aplicativo for desinstalado.
Pensei em remover o certificado usandodeleteEntry método deKeyStore
.
Para sua informação (Ainda não testei. Espero que funcione ... atualizarei uma vez que o testei)
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)
}
}
}
Mesmo se você considerar o código acima como AFAIK, não consigo registrar o receptor de transmissão para desinstalar o meu próprio aplicativo.
Como posso remover o certificado instalado pelo meu aplicativo na desinstalação do meu aplicativo?
Qualquer ajuda é apreciada!