web-dev-qa-db-fra.com

Lecture des informations du certificat pkcs12

J'ai un problème avec la lecture des informations de certificat. Je veux lire des informations complètes en utilisant Java avec la bibliothèque bouncycastle dans Android par programme. Maintenant, j'utilise juste la commande keytool dans la console:

>keytool -list -keystore 1.p12 -storetype pkcs12 -v

Aucune suggestion?

13
ilya.stmn

J'ai trouvé une solution, l'idée principale est de convertir le certificat en x509, puis d'obtenir le SubjectDN et d'analyser les valeurs.

public class TestClass {
    public static void main(String[] args) throws Exception {

        KeyStore p12 = KeyStore.getInstance("pkcs12");
        p12.load(new FileInputStream("pkcs.p12"), "password".toCharArray());
        Enumeration<String> e = p12.aliases();
        while (e.hasMoreElements()) {
            String alias = e.nextElement();
            X509Certificate c = (X509Certificate) p12.getCertificate(alias);
            Principal subject = c.getSubjectDN();
            String subjectArray[] = subject.toString().split(",");
            for (String s : subjectArray) {
                String[] str = s.trim().split("=");
                String key = str[0];
                String value = str[1];
                System.out.println(key + " - " + value);
            }
        }
    }
}
46
ilya.stmn