ホーム › Security.Cryptography › BCryptSecretAgreementFn
BCryptSecretAgreementFn
コールバックシグネチャ
NTSTATUS BCryptSecretAgreementFn(
BCRYPT_KEY_HANDLE hPrivKey,
BCRYPT_KEY_HANDLE hPubKey,
BCRYPT_SECRET_HANDLE* phAgreedSecret,
DWORD dwFlags
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| hPrivKey | BCRYPT_KEY_HANDLE | シークレット アグリーメント値の作成に使用する秘密鍵のハンドルです。この鍵と hPubKey の鍵は、同じ CNG 暗号アルゴリズム プロバイダーのものである必要があります。 |
| hPubKey | BCRYPT_KEY_HANDLE | シークレット アグリーメント値の作成に使用する公開鍵のハンドルです。この鍵と hPrivKey の鍵は、同じ CNG 暗号アルゴリズム プロバイダーのものである必要があります。 |
| phAgreedSecret | BCRYPT_SECRET_HANDLE* | シークレット アグリーメント値を表すハンドルを受け取る BCRYPT_SECRET_HANDLE へのポインターです。このハンドルは、不要になった時点で BCryptDestroySecret 関数に渡して解放する必要があります。 |
| dwFlags | DWORD | この関数の動作を変更するフラグのセットです。この関数に対して定義されているフラグはありません。 |
公式ドキュメント
BCryptSecretAgreement 関数は、秘密鍵と公開鍵からシークレット アグリーメント値を作成します。
戻り値
関数が成功したか失敗したかを示すステータス コードを返します。
返される可能性のあるコードには、次のものが含まれます (これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| 関数は成功しました。 | |
| hPrivKey または hPubKey パラメーターの鍵ハンドルが無効です。 | |
| 1 つ以上のパラメーターが無効です。 | |
| hPrivKey パラメーターの鍵ハンドルが Diffie-Hellman 鍵ではありません。 |
解説(Remarks)
サポートされているアルゴリズム プロバイダーを使用する場合、BCryptSecretAgreement はユーザー モードとカーネル モードのどちらからでも呼び出すことができます。カーネル モードの呼び出し元は、PASSIVE_LEVEL IRQL と DISPATCH_LEVEL IRQL のいずれでも実行できます。現在の IRQL レベルが DISPATCH_LEVEL の場合、hPrivKey および hPubKey パラメーターに指定するハンドルは、BCRYPT_PROV_DISPATCH フラグを使用して開かれたプロバイダーから返されたアルゴリズム ハンドルに由来している必要があり、BCryptSecretAgreement 関数に渡すポインターはページング不可の (またはロックされた) メモリを参照している必要があります。
この関数をカーネル モードで呼び出すには、Driver Development Kit (DDK) に含まれる Cng.lib を使用します。Windows Server 2008 および Windows Vista: この関数をカーネル モードで呼び出すには、Ksecdd.lib を使用します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)