私は CNG ECDH を実装する処理を行っており、BCRYPT_KDF_SP80056A_CONCAT KDF を使用して対称 AES256 キー (BCryptDeriveKey()) を導出しようとしています。問題が発生しています (常に 0xc000000d ステータスが返されます)。
共有シークレットを正常に生成し、1 つの AlgorithmID、1 つの PartyU および 1 つの PartyV の「その他の情報」を含む「BCryptBuffer」の配列を持つバッファー記述子「BCryptBufferDesc」を作成しました。構造がすべて適切に定義され、設定されていると思います。私は PartyU と PartyV バイトのいくつかの「値」を選んでいます (それぞれに 1 バイトと 16 バイトを試しましたが、同じ結果が得られました)。NIST のドキュメントには、他の情報がどうあるべきかについての詳細は記載されていません。
文字列や定義などを使用して、これらの構造を作成するために Microsoft の Web サイトに従いました。標準の L"HASH" kdf を試してみたところ、機能し、両方の「側」で同じ派生キーを取得しましたが、連結KDF 私はいつも同じ 0xC000000D ステータスを返します..
他の誰かが BCRYPT_KDF_SP80056A_CONCAT CNG KDF を正常に使用できましたか? もしそうなら、何かヒントはありますか?