2014-01-30 4 views
0

토큰을 사용하여 XML에 서명해야하는 웹 응용 프로그램이 있습니다. 우리는 드라이버를 설치하고 "Windows-MY"에서 인증서에 액세스합니다. 그러나 매번 signature.sign (dsc)을 호출합니다. 암호를 묻는 창이 나타납니다. 메소드 서명을 사용하고 PIN을 param으로 전달하여 해당 창을 피할 수 있습니까?XML 서명과 XMLSignature

에 서명하는 데 사용하는 방법 :

XMLSignature signature = sig.newXMLSignature(si, ki); 
signature.sign(dsc); 

Image that appear to input PIN

답변

0

당신은 당신이 할 수 있도록 "윈도우-MY"당신이 특정 CSP 공급 업체 드라이버로 인증을주고있다과 SunMSCAPI 프로를 통해 보안 토큰에 액세스하는 경우 메서드 매개 변수로 PIN을 제공하지 않습니다. 당신이 프로그래밍 방식 PIN을 제공하려면 당신은 PKCS11Provider 직접 보안 토큰에 액세스 할 수 있습니다

// First configure the Sun PKCS#11 provider. It requires a stream (or file) 
// containing the configuration parameters - "name" and "library". 
String smartCardDriverPath = "...lib\libpkcs11.so"; 
String pkcs11ConfigSettings = "name = SmartCardTest\n" + "library = " + smartCardDriverPath; 
byte[] pkcs11ConfigBytes = pkcs11ConfigSettings.getBytes(); 
final ByteArrayInputStream confStream = new ByteArrayInputStream(pkcs11ConfigBytes); 

// instantiate provider 
SunPKCS11 pkcs11 = pkcs11 = new SunPKCS11(confStream); 
Security.addProvider(pkcs11); 

// generate the keystore and provide the password 
char[] pwd = "your_pass".toCharArray(); 
KeyStore ks = KeyStore.getInstance("PKCS11",pkcs11); 
ks.load(null, pwd); 

는 그런 다음 암호 창에 입력 귀하의 서명을 달성하기 위해 사용을 피하는 키 스토어에서 키를 추출 할 수 있습니다.

java의 PKCS11에 대한 자세한 내용은 PKCS11 JAVA GUIDE을 참조하십시오.

호프가 도움이 되었으면