証明書と ECDSA (p-256) の署名があります。ここで、提供された証明書を使用してこの署名を検証したいと思います。私はc ++を使用しています(Windows上)。マネージド コード (.NET) は使用できません。CryptoAPI は ECDSA をサポートしていないことがわかったので、CryptoAPI NG (CNG) を使用する必要があります。ただし、公開鍵を証明書から CNG にインポートする方法が見つかりません。
私の問題を解決できますか?ありがとう
証明書と ECDSA (p-256) の署名があります。ここで、提供された証明書を使用してこの署名を検証したいと思います。私はc ++を使用しています(Windows上)。マネージド コード (.NET) は使用できません。CryptoAPI は ECDSA をサポートしていないことがわかったので、CryptoAPI NG (CNG) を使用する必要があります。ただし、公開鍵を証明書から CNG にインポートする方法が見つかりません。
私の問題を解決できますか?ありがとう
「CryptImportPublicKeyInfoEx2関数は公開鍵を CNG 非対称プロバイダーにインポートします...」
私のCは少しずれているかもしれませんが、次のようなものだと思います
BCRYPT_KEY_HANDLE hKey;
BOOL imported = CryptImportPublicKeyInfoEx2(
X509_ASN_ENCODING,
&(pCertContext->pCertInfo->SubjectPublicKeyInfo),
0,
NULL,
&hKey);
if (!imported)
goto :err;