팝업은 MS-CAPI 암호화 서비스 제공자 (CSP)에서 활성화되고). KeyStore는 단순히 전화를 걸고 그 사이의 레이어는 통과시킵니다. 당신으로
// Use CertEnumCertificatesInStore to get the certificates
// from the open store. pCertContext must be reset to
// NULL to retrieve the first certificate in the store.
while (pCertContext = ::CertEnumCertificatesInStore(hCertStore, pCertContext))
{
// Check if private key available - client authentication certificate
// must have private key available.
HCRYPTPROV hCryptProv = NULL;
DWORD dwKeySpec = 0;
HCRYPTKEY hUserKey = NULL;
BOOL bCallerFreeProv = FALSE;
BOOL bHasNoPrivateKey = FALSE;
DWORD dwPublicKeyLength = 0;
if (::CryptAcquireCertificatePrivateKey(pCertContext, NULL, NULL,
&hCryptProv, &dwKeySpec, &bCallerFreeProv) == FALSE)
{
bHasNoPrivateKey = TRUE;
} else {
// Private key is available
BOOL bGetUserKey = ::CryptGetUserKey(hCryptProv, dwKeySpec, &hUserKey);
// Skip certificate if cannot find private key
if (bGetUserKey == FALSE)
{
if (bCallerFreeProv)
::CryptReleaseContext(hCryptProv, NULL);
continue;
}
....
: 토큰의 펌웨어는 인증 팝업을 던져 세션 상태를 유지 하나, 등 구현이 핵심 자바 DLL이 sunmscapi.dll입니다
입니다 항상 개인 키가 있는지 확인합니다. 이 코드를 수정하고 sunmscapi.dll의 사용자 지정 버전을 만들어이 검사를 피하거나이 검사를 무효화해야합니다.
이 질문은 많은 관심을받지는 못하지만 오라클 포럼 (이 질문에 대한 링크)에서 질문하십시오. –