BCryptKeyDerivation 関数 (bcrypt.h)
BCryptKeyDerivation 関数は、シークレット アグリーメントを必要とせずにキーを派生させます。 これは BCryptDeriveKey の機能に似ていますが、入力としてBCRYPT_SECRET_HANDLE値を必要としません。
構文
NTSTATUS BCryptKeyDerivation(
[in] BCRYPT_KEY_HANDLE hKey,
[in, optional] BCryptBufferDesc *pParameterList,
[out] PUCHAR pbDerivedKey,
[in] ULONG cbDerivedKey,
[out] ULONG *pcbResult,
[in] ULONG dwFlags
);
パラメーター
[in] hKey
入力キーのハンドル。
[in, optional] pParameterList
KDF パラメーターを含む BCryptBufferDesc 構造体へのポインター。 このパラメーターは省略可能であり、必要ない場合は NULL にすることができます 。 パラメーターには、キー派生関数 (KDF) またはジェネリックに固有のパラメーターを指定できます。 次の表は、Microsoft プリミティブ プロバイダーによって実装される特定の KDF に必要なパラメーターと省略可能なパラメーターを示しています。
Kdf | パラメーター | 必須 |
---|---|---|
カウンター モードの SP800-108 HMAC | KDF_LABEL | はい |
KDF_CONTEXT | はい | |
KDF_HASH_ALGORITHM | はい | |
SP800-56A | KDF_ALGORITHMID | はい |
KDF_PARTYUINFO | はい | |
KDF_PARTYVINFO | はい | |
KDF_HASH_ALGORITHM | はい | |
KDF_SUPPPUBINFO | no | |
KDF_SUPPPRIVINFO | no | |
PBKDF2 | KDF_HASH_ALGORITHM | はい |
KDF_SALT | はい | |
KDF_ITERATION_COUNT | no | |
CAPI_KDF | KDF_HASH_ALGORITHM | はい |
次のジェネリック パラメーターを使用できます。
- KDF_GENERIC_PARAMETER
カウンター モードの SP800-108 HMAC:
- KDF_GENERIC_PARAMETER = KDF_LABEL||0x00||KDF_CONTEXT
SP800-56A
- KDF_GENERIC_PARAMETER = KDF_ALGORITHMID ||KDF_PARTYUINFO ||KDF_PARTYVINFO {||KDF_SUPPPUBINFO } {||KDF_SUPPPRIVINFO }
PBKDF2
- KDF_GENERIC_PARAMETER = KDF_SALT
- KDF_ITERATION_COUNT – 既定値は 10000 です
CAPI_KDF
- KDF_GENERIC_PARAMETER = 使用されていません
[out] pbDerivedKey
キーを受け取るバッファーのアドレス。 cbDerivedKey パラメーターには、このバッファーのサイズが含まれています。
[in] cbDerivedKey
pbDerivedKey パラメーターが指すバッファーのサイズ (バイト単位)。
[out] pcbResult
pbDerivedKey パラメーターが指すバッファーにコピーされたバイト数を受け取る変数へのポインター。
[in] dwFlags
この関数の動作を変更するフラグ。 Microsoft プリミティブ プロバイダーでは、次の値を使用できます。
値 | 意味 |
---|---|
|
ターゲット アルゴリズムが AES であり、したがってキーを二重展開する必要があることを指定します。 このフラグは、CAPI_KDF アルゴリズムでのみ有効です。 |
戻り値
関数の成功または失敗を示す状態コードを返します。
注釈
BCryptKeyDerivation を呼び出す前に、BCryptOpenAlgorithmProvider 関数で次のアルゴリズム識別子を使用できます。
- BCRYPT_CAPI_KDF_ALGORITHM
- BCRYPT_SP800108_CTR_HMAC_ALGORITHM
- BCRYPT_SP80056A_CONCAT_ALGORITHM
- BCRYPT_PBKDF2_ALGORITHM
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | bcrypt.h |
Library | Bcrypt.lib |
[DLL] | Bcrypt.dll |