.cer ファイルがあります。ReadFile() 関数を使用して、それを読み取ってバッファーに書き込むことができます。これで、持っていた buffer と datalen ができました。
そして、以下の行のように CryptDecodeObjectEx() 関数を呼び出すためにそのバッファとレンを使用します
if ( !CryptDecodeObjectEx( X509_ASN_ENCODING,
X509_PUBLIC_KEY_INFO,
(BYTE* )pemPubKey,
readLen,
CRYPT_DECODE_ALLOC_FLAG,
NULL,
&publicKeyInfo,
(DWORD *)&publicKeyInfoLen ) )
しかし、デバッグで実行すると、GetLastError() 関数を介して 0x8009310B エラー コードが表示されます。
どうすれば修正できますか?アドバイスありがとうございます。
追加情報
- X509_PUBLIC_KEY_INFO の代わりに X509_ANY_STRING を使用すると、できます。しかし、それは私の publicKeyInfo 構造体を埋めません。そのため、公開鍵を取得できません。
- DER 形式の証明書を持っています。