J'essaie d'accéder à mon magasin de trousseaux MacOS X personnel pour récupérer des clés privées spécifiques pour crypter et signer des données en utilisant Java. La partie cryptage et signature est fonctionnelle, mais je ne peux pas récupérer les clés privées que je veux. Ce qui suit est un code que je l'ai écrit pour présenter la question que j'ai:Récupérer la clé privée du keystore MacOS X en utilisant Java
KeyStore myKeyStore;
myKeyStore = KeyStore.getInstance("KeychainStore", "Apple");
myKeyStore.load(null, null);
// Get all the aliases in a list (I thought that calling the KeyStore
// methods during the iteration was the reason why getKey wasn't responding properly!)
// ... it wasn't actually!
ArrayList<String> aliases = new ArrayList<String>();
Enumeration<String> e = myKeyStore.aliases();
while (e.hasMoreElements()) {
aliases.add(e.nextElement());
}
for (String alias : aliases) {
try {
// I read on the Internet that any ASCII password is required
// to get the getKey method working.
Key k = myKeyStore.getKey(alias, "TEST".toCharArray());
if (k == null) {
System.out.println(alias + ": <null> (cannot retrieve the key)");
} else {
System.out.println(alias + ":");
System.out.println(k);
}
} catch (Exception ex) {
System.out.println(alias + ": " + ex.getMessage());
}
}
Après l'exécution de ce morceau de code, je pouvais voir tous les certificats dans mon keystore personnel. Cependant, je ne peux récupérer qu'une seule clé privée, même s'il y en a beaucoup dans le keystore. (la sortie du code affiche uniquement plusieurs certificats de confiance + une clé privée uniquement)
Et lorsque je supprime cette clé privée du magasin de clés et que j'exécute à nouveau ce code, une autre clé privée est renvoyée alors que toutes les autres restent inaccessibles. En réimportant la clé privée dans le fichier de clés et en exécutant ce code une dernière fois, elle est renvoyée par Java et la dernière clé privée renvoyée précédemment devient inaccessible. Je suis tombé sur une liste de diffusion à ce sujet: http://lists.apple.com/archives/java-dev/2007/aug/msg00134.html. Malheureusement, il ne semble pas que ce problème ait été résolu, et je ne peux pas contacter les personnes concernées (pas d'adresses e-mail).
Est-ce que quelqu'un a essayé d'extraire plusieurs clés privées du magasin de trousseau de clés MacOS et a réussi?
Ma configuration:
- Mac OS X 10.6
- Jva 1.6.0_15 JRE (32 et 64bits)
- Safari 4.0.3
- Firefox 3.6.3
Merci à l'avance,
Avez-vous essayé d'utiliser l'outil keytool à partir de la ligne de commande? Si cela fonctionne, cela peut être un problème pour votre problème. Je l'ai utilisé dans le passé et ça a marché pour moi ... –