Próbuję uzyskać dostęp do osobistego magazynu kluczy keych MacOS X, aby pobrać określone klucze prywatne do szyfrowania i podpisywania niektórych danych przy użyciu języka Java. Szyfrowanie i podpisywanie są funkcjonalne, ale nie mogę odzyskać kluczy prywatnych, które chcę. Poniżej zamieszczona jest jakiś kod ja napisałem przedstawić problem mam:Uzyskaj klucz prywatny z magazynu kluczy MacOS X przy użyciu Javy
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());
}
}
Po wykonaniu tego fragmentu kodu, widziałem wszystkie certyfikaty w moim osobistym kluczy. Mogę jednak pobrać tylko jeden klucz prywatny, mimo że w magazynie kluczy znajduje się ich garść. (dane wyjściowe kodu pokazują tylko wiele zaufanych certyfikatów + tylko jeden klucz prywatny)
A kiedy usunę ten klucz prywatny z magazynu kluczy i ponownie wykonam ten kod, zwrócony zostanie inny klucz prywatny, podczas gdy pozostałe pozostaną niedostępne. Importując klucz prywatny z powrotem do magazynu kluczy i wykonując go po raz ostatni, zostaje zwrócony przez Javę, a ostatni klucz prywatny, który został wcześniej zwrócony, staje się nieosiągalny.
Natknąłem się na listę dyskusyjną na ten temat: http://lists.apple.com/archives/java-dev/2007/aug/msg00134.html. Niestety, nie wydaje się, że problem został rozwiązany i nie mogę skontaktować się z osobami zaangażowanymi (bez adresów e-mail).
Czy ktoś próbował pobrać wiele kluczy prywatnych ze sklepu pęku kluczy kluczy MacOS i czy udało się to?
Moja konfiguracja:
- MacOS X 10.6
- JVA JRE 1.6.0_15 (32 i 64bits)
- Safari 4.0.3
- Firefox 3.6.3
Dzięki wcześniej,
Czy próbowałeś użyć keytool z linii poleceń? jeśli to zadziała - może to być praca nad twoim problemem. Używałem go w przeszłości i działało dla mnie ... –