Mon code de réseau est écrit en NDK (cURL + OpenSSL) et j'aimerais utiliser un certificat de stockage d'informations d'identification d'Android comme certificat client pour une connexion SSL. De plus, j'aimerais offrir une liste de certificats disponibles à l'utilisateur, afin qu'il puisse choisir le certificat pour la connexion. Malheureusement, je ne peux pas obtenir un certificat du stockage de clé.Comment charger un certificat depuis "Credential storage"?
J'ai installé un certificat client sur "Credential storage" (Paramètres -> Secutrity -> ...) sur mon appareil Android (5.0.2), mais je ne suis pas en mesure d'y accéder à partir de Java. J'ai essayé d'appeler du code ci-dessous, mais le stockage clé est empy, athough le certificat est installé dans le stockage d'informations d'identification:
//KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
KeyStore ks = KeyStore.getInstance("AndroidKeyStore");
ks.load(null);
Enumeration<String> aliases = ks.aliases();
while(aliases.hasMoreElements()) {
String alias = (String)aliases.nextElement();
Log.i("app", "alias name: " + alias);
Certificate certificate = ks.getCertificate(alias);
Log.i("app", certificate.toString());
}
Qu'est-ce que je fais mal?