如何使用证书中的公钥检查ECDSA(在p-256上)签名

时间:2014-10-14 11:53:41

标签: c++ cryptography ecdsa

我有证书和ECDSA(在p-256上)签名。现在我想使用提供的证书验证此签名。我使用c ++(在Windows上)。无法使用托管代码(.NET)。我发现CryptoAPI不支持ECDSA,所以我应该使用CryptoAPI NG(CNG)。但是,我无法找到如何将公钥从证书导入CNG。

你能解决我的问题吗? 感谢

2 个答案:

答案 0 :(得分:0)

问题解决了。我为此目的使用OpenSSL。

答案 1 :(得分:0)

" CryptImportPublicKeyInfoEx2函数将公钥导入CNG非对称提供程序..."

我的C可能有点偏,但我相信它就像是

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

if (!imported)
    goto :err;