Когда я делаю в строке cmd:
pkcs11-tool --login -O
, я получаю семь объектов, которые находятся на моей смарт-карте, 3 объекта открытого ключа, 3 объекта сертификата и один объект закрытого ключа.
Но когда я пытаюсь сделать то же самое с небольшим Java-кодом, я нахожу только один сертификат:
String pkcs11Config = "name = SmartCard\nlibrary = opensc-pkcs11.dll\nslot=0";
ByteArrayInputStream confStream = new ByteArrayInputStream(pkcs11Config.getBytes());
Provider prov = new sun.security.pkcs11.SunPKCS11(confStream);
Security.addProvider(prov);
String pin = "0000000";
KeyStore cc = KeyStore.getInstance("PKCS11", prov);
cc.load(null, pin.toCharArray());
// Look for certificate
Enumeration aliases = cc.aliases();
for (Enumeration e = aliases; e.hasMoreElements();) {
Object alias = aliases.nextElement();
System.out.println("Alias is : " + alias);
}
Почему я не нашел открытого ключа или другого сертификата с этим кодом?