2014-03-12 107 views
2

我想讀取智能卡證書的證書,讀取智能卡

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); 
       } 

    } 

} 

我得到這個從http://www.developer.com/java/other/article.php/3587361/Java-Applet-for-Signing-with-a-Smart-Card.htm 我將執行在小應用程序的代碼,這個問題是每一個用戶都指向了我他們的本地pkcs11 ... dll, 確實使用java samrtcard API可以避免加載這個DLL嗎? (沒有使用Java智能卡API找到加載證書的任何示例) 使用SunPKCS11有什麼辦法applet的罐子包括DLL,以便客戶端瀏覽器不需要提供我

回答

1

有,如果你使用JWS/JNLP定義小程序,而不是<APPLET>標記。

+2

這不提供問題的答案。以批判或作者作出澄清,離開低於其信息的評論中。 –

+0

使用java智能卡api是否可以從智能卡上製作更簡單的閱讀證書? – user884424

+0

任何使用java smartcard api讀取證書的代碼示例? – user884424