2014-10-14 4 views
0

인증서 및 ECDSA (p-256) 서명이 있습니다. 이제 제공된 인증서를 사용하여이 서명을 확인하려고합니다. 나는 C++을 사용한다 (Windows에서). 관리 코드 (.NET)는 사용할 수 없습니다. CryptoAPI가 CryptoAPI NG (CNG)를 사용해야하므로 CryptoAPI가 ECDSA를 지원하지 않는다는 것을 알았습니다. 그러나 인증서에서 CNG로 공용 키를 가져 오는 방법을 찾을 수 없습니다.인증서의 공개 키를 사용하여 ECDSA (p-256) 서명을 확인하는 방법

내 문제를 해결할 수 있습니까? 감사합니다.

답변

0

문제가 해결되었습니다. 나는이 목적을 위해 OpenSSL을 사용한다.

0

내 C는 약간 떨어져있을 수는 "CryptImportPublicKeyInfoEx2 기능을합니다 ... CNG 비대칭 업체에 공개 키를 가져옵니다",하지만 난 그것을 생각하는 뭔가

BCRYPT_KEY_HANDLE hKey; 
BOOL imported = CryptImportPublicKeyInfoEx2(
    X509_ASN_ENCODING, 
    &(pCertContext->pCertInfo->SubjectPublicKeyInfo), 
    0, 
    NULL, 
    &hKey); 

if (!imported) 
    goto :err; 
같은