Microsoft CryptoAPI のテスト アプリケーションを作成しています。2 番目のパーティの公開鍵を使用して一方のパーティの秘密鍵をエクスポートし、その秘密鍵を 2 番目のパーティの秘密鍵としてインポートします (これにより、通信用の共有秘密鍵が設定されます)。これが私のコードです:
if(!CryptExportKey(encryptT->hSymKey, decryptT->hPubKey, SIMPLEBLOB, 0, keyExBuf, &bufLen)) {
FormattedDebugPrint(NULL, GetLastError(), "could not export secret key", TRUE);
return -1;
}
if(!CryptImportKey(decryptT->hCryptProv, keyExBuf, bufLen, decryptT->hPubKey, 0, &(decryptT->hSymKey))) {
FormattedDebugPrint(NULL, GetLastError(), "could not import secret key", TRUE);
return -1;
}
そして、これはエラーを与えます:
80090001: Bad UID.
公開鍵ペアは、次の呼び出しによって、encryptT と decryptT (送信者、受信者) の両方に対して生成されます。
CryptGenKey(encryptT->hCryptProv, CALG_RSA_KEYX, CRYPT_EXPORTABLE, &(encryptT->hPubKey))
エラーの原因は何ですか?
ありがとう、