ホーム › Security.Cryptography › NCryptKeyDerivationFn
NCryptKeyDerivationFn
コールバックシグネチャ
HRESULT NCryptKeyDerivationFn(
NCRYPT_PROV_HANDLE hProvider,
NCRYPT_KEY_HANDLE hKey,
BCryptBufferDesc* pParameterList,
BYTE* pbDerivedKey,
DWORD cbDerivedKey,
DWORD* pcbResult,
DWORD dwFlags
);パラメーター
| フィールド | 型 | 説明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hProvider | NCRYPT_PROV_HANDLE | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| hKey | NCRYPT_KEY_HANDLE | キー導出関数 (KDF) キーのハンドルです。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| pParameterList | BCryptBufferDesc* | KDF のパラメーターを格納した NCryptBufferDesc 構造体のアドレスです。 パラメーターには、特定のキー導出関数 (KDF) に固有のものと、汎用のものがあります。次の表は、Microsoft ソフトウェアキーストレージプロバイダーが実装する個々の KDF について、必須のパラメーターと省略可能なパラメーターを示しています。
一部のアルゴリズムでは、複数のパラメーターを指定する代わりに KDF_GENERIC_PARAMETER を使用します。これは、次のように KDF 固有のパラメーターに対応付けられます。 カウンターモードの SP800-108 HMAC:
SP800-56A:
PBKDF2: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| pbDerivedKey | BYTE* | キーを受け取るバッファーのアドレスです。cbDerivedKey パラメーターには、キーバッファーのサイズ (バイト単位) を指定します。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cbDerivedKey | DWORD | pbDerivedKey パラメーターが指すバッファーのサイズ (バイト単位) です。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| pcbResult | DWORD* | pbDerivedKey パラメーターが指すバッファーにコピーされたバイト数を受け取る DWORD へのポインターです。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dwFlags | DWORD | この関数の動作を変更するフラグのセットです。0 を指定するか、次の値の 1 つ以上を組み合わせて指定できます。有効なフラグのセットは、キーストレージプロバイダーごとに異なります。
|
公式ドキュメント
NCryptKeyDerivation 関数は、すべてのパラメーターを明示的に指定したうえで、キー導出関数 (KDF) を呼び出してキーを導出します。
NCryptDeriveKey と機能的には似ていますが、KDF アルゴリズムを直接呼び出すため、入力として NCRYPT_SECRET_HANDLE 値を必要としません。
戻り値
関数の成功または失敗を示すステータスコードを返します。
返される可能性があるコードには、次のものがあります (これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| ERROR_SUCCESS | 関数は成功しました。 |
| NTE_INVALID_HANDLE | hProvider ハンドルまたは hKey ハンドルが無効です。 |
| NTE_INVALID_PARAMETER | pParameterList パラメーターに NULL を指定することはできません。または、他のパラメーターが無効です。 |
| NTE_NO_MEMORY | メモリの割り当てに失敗しました。 |
| NTE_NOT_SUPPORTED | この関数は、このキーストレージプロバイダーではサポートされていません。 |
解説(Remarks)
NCryptKeyDerivation を呼び出す前に、NCryptCreatePersistedKey 関数で次のアルゴリズム識別子を使用できます。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)