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

How to check ECDSA (on p-256) signature using public key from certificate

本文关键字:p-256 签名 ECDSA 检查 证书 何使用 公钥      更新时间:2023-10-16

我有证书和ECDSA(在p-256上)签名。现在我想使用提供的证书来验证这个签名。我使用c++(在Windows上)。无法使用托管代码(.NET)。我发现CryptoAPI不支持ECDSA,所以我应该使用CryptoAPI NG(CNG)。然而,我找不到如何将公钥从证书导入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;