java.security.Keystore псевдонимы в JDK 1.6 против IBM 1.5 - PullRequest
4 голосов
/ 04 мая 2011

У меня проблема с возвращаемым значением перечисления KeyStore.aliases ();

FileInputStream is = new FileInputStream("/tmp/file.p12");
List<String> aliases = new ArrayList<String>();

KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(is, password.toCharArray());
is.close();

Enumeration<String> e=keystore.aliases();
while(e.hasMoreElements()) {
    // never reaches here because "e" is empty
    System.out.println(e.nextElement().toString());
    i++;
}

С Java версия "1.6.0_22" Java (TM) SE Runtime Environment (сборка 1.6.0_22-b04) Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 17.1-b03, смешанный режим)

Я получаю пустой перечислитель

С Java-версия "1.5.0" Среда выполнения Java (TM) 2, Standard Edition (сборка pxi32devifx-20100511a (SR11 FP2)) IBM J9 VM (сборка 2.3, J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223ifx-20100510 (JIT включен) J9VM - 20100509_57823_lHdSMr JIT - 20091016_1845ifx7_r8 GC - 20091026_AA) JCL - 20100511a

Я могу получить все псевдонимы.

Как получить все псевдонимы pkcs12 для хранилища с помощью Sun / Oracle JDK6?

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 сентября 2011

вот ответ:

http://www -01.ibm.com / support / docview.wss? Uid = swg1IZ77005

- Решение проблемы Этот дефектбудет исправлено в:
1.4.2 SR14
5.0.0 SR12
6.0.0 SR9

Метод PKCS SafeContents.getSafeBags( ) был изменен для определения, когда массив SafeBag равен нулю, и для возвратавместо этого пустой массив SafeBag.Вызывающие PKCS этого метода готовы обработать пустой массив SafeBag.

0 голосов
/ 04 мая 2011

Мне кажется, что с вашим кодом нет ничего плохого, и я бы подумал, что хранилища ключей PKCS # 12 должны быть доступны для чтения во всех версиях всех JRE.

Вы пробовали использовать OpenSSLпроверить свой магазин?

...