BCryptDeriveKeyPBKDF2 関数 (bcrypt.h)

BCryptDeriveKeyPBKDF2 関数は、RFC 2898 で定義されている PBKDF2 キー派生アルゴリズムを使用して、ハッシュ値からキーを派生させます。

構文

NTSTATUS BCryptDeriveKeyPBKDF2(
  [in]           BCRYPT_ALG_HANDLE hPrf,
  [in, optional] PUCHAR            pbPassword,
  [in]           ULONG             cbPassword,
  [in, optional] PUCHAR            pbSalt,
  [in]           ULONG             cbSalt,
  [in]           ULONGLONG         cIterations,
  [out]          PUCHAR            pbDerivedKey,
  [in]           ULONG             cbDerivedKey,
  [in]           ULONG             dwFlags
);

パラメーター

[in] hPrf

擬似ランダム関数を提供するアルゴリズム プロバイダーのハンドル。 これは、 メッセージ認証コード の計算を実行するアルゴリズム プロバイダーである必要があります。 既定の Microsoft アルゴリズム プロバイダーを使用する場合は、BCRYPT_ALG_HANDLE_HMAC_FLAG フラグを使用して開いたハッシュ アルゴリズムを使用できます。

メモ このパラメーターを設定するには、BCRYPT_IS_KEYED_HASH プロパティを実装するアルゴリズムのみを使用できます。
 

[in, optional] pbPassword

PBKDF2 キー派生アルゴリズムのパスワード パラメーターを含むバッファーへのポインター。

メモ キーの派生で使用されるシークレット情報は、このバッファーに渡す必要があります。

 

[in] cbPassword

pbPassword パラメーターが指すバッファー内のデータの長さ (バイト単位)。

[in, optional] pbSalt

PBKDF2 キー派生アルゴリズムの salt 引数を含むバッファーへのポインター。

メモ シークレットではなく、キーの派生で使用される情報は、このバッファーに渡す必要があります。
 

[in] cbSalt

pbSalt パラメーターが指す salt 引数の長さ (バイト単位)。

[in] cIterations

PBKDF2 キー派生アルゴリズムの反復回数。

[out] pbDerivedKey

派生キーを受け取るバッファーへのポインター。

[in] cbDerivedKey

pbDerivedKey パラメーターが指すバッファーで返される派生キーの長さ (バイト単位)。

[in] dwFlags

このパラメーターは予約済みであり、0 に設定する必要があります。

戻り値

関数の成功または失敗を示す状態コードを返します。

可能なリターン コードには、次のものが含まれますが、これらに限定されません。

リターン コード 説明
STATUS_SUCCESS
関数は成功しました。
STATUS_INVALID_HANDLE
hPrf パラメーターのハンドルが無効です。
STATUS_INVALID_PARAMETER
1 つ以上のパラメーターが無効です。
STATUS_NO_MEMORY
メモリ割り当てエラーが発生しました。

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー bcrypt.h
Library Bcrypt.lib
[DLL] Bcrypt.dll