读取后无法访问 etoken
etoken unaccessible after reading
我正在尝试读取电子令牌的证书。我遵循了 的回答。它给了我安装在令牌中的证书,但之后就无法再访问令牌了。有人在访问令牌时得到了类似的东西吗?
// Create instance of SunPKCS11 provider
String pkcs11Config = "name=eToken\nlibrary=C:\path\to\your\pkcs11.dll";
java.io.ByteArrayInputStream pkcs11ConfigStream = new java.io.ByteArrayInputStream(pkcs11Config.getBytes());
sun.security.pkcs11.SunPKCS11 providerPKCS11 = new sun.security.pkcs11.SunPKCS11(pkcs11ConfigStream);
java.security.Security.addProvider(providerPKCS11); // Get provider KeyStore and login with PIN String pin = "11111111";
java.security.KeyStore keyStore = java.security.KeyStore.getInstance("PKCS11", providerPKCS11);
keyStore.load(null, pin.toCharArray()); // Enumerate items (certificates and private keys) in the KeyStore
java.util.Enumeration<String> aliases = keyStore.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement();
System.out.println(alias);
}
问题依然存在,插入out/in后令牌又可以访问了,但是运行代码后,令牌似乎又被锁定了。 OS Win2k8 服务器。
终于明白了。断开其他 USB 设备后,令牌会照常响应。
应将令牌插入电源充足的端口。最好在单独的主机总线上。
我正在尝试读取电子令牌的证书。我遵循了
// Create instance of SunPKCS11 provider
String pkcs11Config = "name=eToken\nlibrary=C:\path\to\your\pkcs11.dll";
java.io.ByteArrayInputStream pkcs11ConfigStream = new java.io.ByteArrayInputStream(pkcs11Config.getBytes());
sun.security.pkcs11.SunPKCS11 providerPKCS11 = new sun.security.pkcs11.SunPKCS11(pkcs11ConfigStream);
java.security.Security.addProvider(providerPKCS11); // Get provider KeyStore and login with PIN String pin = "11111111";
java.security.KeyStore keyStore = java.security.KeyStore.getInstance("PKCS11", providerPKCS11);
keyStore.load(null, pin.toCharArray()); // Enumerate items (certificates and private keys) in the KeyStore
java.util.Enumeration<String> aliases = keyStore.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement();
System.out.println(alias);
}
问题依然存在,插入out/in后令牌又可以访问了,但是运行代码后,令牌似乎又被锁定了。 OS Win2k8 服务器。
终于明白了。断开其他 USB 设备后,令牌会照常响应。
应将令牌插入电源充足的端口。最好在单独的主机总线上。