0

Microsoft の Crypto API を使用して RSA を実行しようとしています。Windows Vista 以降では、私のコードは問題なく実行されます。

CryptAcquireContext(&m_hCryptProv, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, 0);

残念ながら、私が試した 2 台の Windows XP マシンでは、エラー コード NTE_BAD_KEYSET (0x80090016) が表示されます。

少しグーグルで検索したところ、Microsoft サポートでこの記事が見つかりました。 http://support.microsoft.com/kb/238187

「キーコンテナに保存されている永続化された秘密鍵を使用していない」場合に渡すことができる CRYPT_VERIFYCONTEXT フラグについて言及しています。このコンテキストで「永続化された秘密鍵」とはどのような場合を意味しますか?

4

1 に答える 1

0

誰も答えなかったので、永続化された秘密鍵はキーストアに入れられたものであると私は推測しています。私はキー ストアを使用しません。理由はわかりませんが、XP では CRYPT_VERIFYCONTEXT が必要で、Vista 以降では必要ありません。

于 2013-07-23T15:21:59.807 に答える