2014-09-26 2 views
1

USB 토큰에 저장된 인증서를 사용하는 관리되지 않는 C++ 프로젝트에서 microsoft wincrypt로 디지털 서명을 구현합니다.은 CryptSignMessage()가 호출 될 때마다 암호가 필요합니다.

사용자가 프로세스를 여러 번 거치는 경우를 제외하고는 응용 프로그램이 닫히고 다시 시작되지 않는 한 처음으로 인증서 암호를 입력하면됩니다.

사용자는 데이터에 서명 할 때마다 비밀번호가 필요합니다. 프로세스를 "재설정"할 수있는 방법이 있습니까?

CertOpenSystemStore(NULL,"MY"); 
CertEnumCertificatesInStore(); // until we find the certificate we want 
CryptSignMessage(); // this brings up the password dialog box the first time, but not again 
// edited to show closing store and freeing context 
CertCloseStore(); 
CertFreeCertificateContext(); 

감사합니다.

답변

1

암호 저장은 USB 장치의 드라이버에 의해 제어됩니다. 일반적으로 이것은 장치 및 해당 드라이버와 함께 제공되는 일부 UI 응용 프로그램을 통해 구성 할 수 있습니다.

마지막 수단으로 서명 절차를 별도의 EXE에 넣고 데이터에 서명해야 할 때마다 실행할 수 있습니다. 이 방법은 각 서명 작업마다 별도의 프로세스가 호출되며 암호는 캐시되지 않습니다.

+0

월요일까지 사무실을 벗어났습니다.하지만이 시간을 확인합니다. – PhilC

관련 문제