Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从智能卡读取证书_Java_Applet_Smartcard - Fatal编程技术网

Java 从智能卡读取证书

Java 从智能卡读取证书,java,applet,smartcard,Java,Applet,Smartcard,我正在尝试从智能卡读取证书 import java.security.KeyStore; import java.security.PrivateKey; import java.security.Provider; import java.security.Security; import java.security.cert.X509Certificate; import java.util.Enumeration; public class Test { public stat

我正在尝试从智能卡读取证书

import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.Provider;
import java.security.Security;
import java.security.cert.X509Certificate;
import java.util.Enumeration;

public class Test {

    public static void main(String[] args) throws Exception{
                Provider pkcs11Provider =new sun.security.pkcs11.SunPKCS11("c:\\dev\\pkcs11.cfg");
                char [] pin = {'1', '2', '3', '4'};
                KeyStore smartCardKeyStore = KeyStore.getInstance("PKCS11",pkcs11Provider);
                smartCardKeyStore.load(null, null);
                Enumeration aliasesEnum = smartCardKeyStore.aliases();
                while (aliasesEnum.hasMoreElements()) {
                   String alias = (String)aliasesEnum.nextElement();
                   System.out.println("Alias: " + alias);
                   X509Certificate cert =
                   (X509Certificate) smartCardKeyStore.getCertificate(alias);
                   System.out.println("Certificate: " + cert);
                   PrivateKey privateKey =
                      (PrivateKey) smartCardKeyStore.getKey(alias, null);
                   System.out.println("Private key: " + privateKey);
                }

    }

}
这是我从你那里得到的 我将在applet中执行此代码,问题是每个用户都必须向我指出其本地pkcs11…dll, 使用java samrtcard api是否可以避免加载此dll?(未找到任何使用java智能卡api加载证书的示例)
如果使用JWS/JNLP来定义小程序,而不是使用
标记,那么使用SunPKCS11是否有任何方法可以让小程序jar包含dll,这样客户端浏览器就不需要提供我了。

。若要评论或要求作者澄清,请在其帖子下方留下评论。使用java智能卡api可以简化从智能卡读取证书的过程吗?有没有使用java智能卡api读取证书的代码示例?@SubinJacob您的评论毫无意义。答案是使用JWS。@user884424您的问题已经包含了代码。您的问题是DLL,这就是我的答案。智能卡在PKCS#11上有CSP层,它使其中的所有证书(非私钥)在插入后立即在证书存储中可用。您可以通过编写几行代码来使用浏览器扩展提供的方法,为现代浏览器使用浏览器扩展进行签名。My Co.为现代浏览器提供了一个这样的免费服务。