У меня есть сертификат и подпись ECDSA (на p-256). Теперь я хочу проверить эту подпись, используя предоставленный сертификат. Я использую c ++ (на Windows). Управляемый код (.NET) не может быть использован. Я обнаружил, что CryptoAPI не поддерживает ECDSA, поэтому я должен использовать CryptoAPI NG (CNG). Однако я не могу найти, как импортировать открытый ключ из сертификата в КПГ.
Можете ли вы помочь с моей проблемой?
Спасибо
Проблема была решена. Я использую OpenSSL для этой цели.
« CryptImportPublicKeyInfoEx2 функция импортирует открытый ключ в асимметричный провайдер CNG … »
Мой C может быть немного выключен, но я считаю, что это что-то вроде
BCRYPT_KEY_HANDLE hKey;
BOOL imported = CryptImportPublicKeyInfoEx2(
X509_ASN_ENCODING,
&(pCertContext->pCertInfo->SubjectPublicKeyInfo),
0,
NULL,
&hKey);
if (!imported)
goto :err;