Как проверить подпись ECDSA (на p-256), используя открытый ключ из сертификата

У меня есть сертификат и подпись ECDSA (на p-256). Теперь я хочу проверить эту подпись, используя предоставленный сертификат. Я использую c++ (в Windows). Управляемый код (.NET) не может быть использован. Я обнаружил, что CryptoAPI не поддерживает ECDSA, поэтому я должен использовать CryptoAPI NG (CNG). Однако я не могу найти, как импортировать открытый ключ из сертификата в CNG.

Можете ли вы помочь с моей проблемой? благодаря

2 ответа

"Функция *************************** импортирует открытый ключ в асимметричный провайдер CNG..."

Мой C может быть немного выключен, но я считаю, что это что-то вроде

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

if (!imported)
 goto :err;


Проблема решена. Для этой цели я использую OpenSSL.

licensed under cc by-sa 3.0 with attribution.