如何在java中从eToken访问证书
我想在eToken插入时读取它的证书,当我在本地机器上存储该证书时,我可以通过java应用程序读取它,但我不知道如何从eToken读取它如何在java中从eToken访问证书,java,encryption,cryptography,certificate,devicetoken,Java,Encryption,Cryptography,Certificate,Devicetoken,我想在eToken插入时读取它的证书,当我在本地机器上存储该证书时,我可以通过java应用程序读取它,但我不知道如何从eToken读取它 RSAPublicKey pub; String fileName = "C:\\myCert.cer"; InputStream inStream = new FileInputStream(fileName); CertificateFactory cf = Certificat
RSAPublicKey pub;
String fileName = "C:\\myCert.cer";
InputStream inStream = new FileInputStream(fileName);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert =
(X509Certificate)cf.generateCertificate(inStream);
inStream.close();
pub = (RSAPublicKey) cert.getPublicKey();
System.out.println(cert.getIssuerDN());
System.out.println(cert.getSubjectDN());
System.out.println(cert.getSubjectAlternativeNames());
byte [] tempPub = pub.getEncoded();
String sPub = new String( tempPub );
一种方法是使用。还有一些例子。请注意,PKCS#11提供程序仅在32位版本的Oracle Java 6&7中可用。@emboss感谢您的重播,但当我插入USB令牌时,我可以从mozila firefox->工具->选项->查看证书中看到myCert,拔出后我无法访问该证书吗?正如我在我的代码中提到的,从您给定的链接,我可以这样做吗?请告诉我,我真的被困在这里了……当然,文档中都有概述。基本上,您可以向PKCS#11提供者提供在何处查找本机PKCS#11库的信息,然后您可以使用
密钥库
(不要忘了使用KeyStore.getInstance(“PKCS11”)
)访问证书和密钥。@emboss我正在按照您的说明进行尝试,但在KeyStore key=KeyStore.getInstance(“PKCS11”)时出错,pro)as:java.security.nosuchalgorithexception:no这样的算法:PKCS11用于提供程序SunPKCS11-Aladdin。我还尝试了KeyStore.getInstance()的多种组合;但还是卡住了。在配置文件中,我放置了C:/WINDOWS/system32/eTPKCS11.dll。您确定编辑了正确的java.security文件吗?在使用多个JRE时,这种情况经常发生在我身上?