BCryptDeriveKeyCapi 関数 (bcrypt.h)

BCryptDeriveKeyCapi 関数は、ハッシュ値からキーを派生させます。

この関数は、従来の Cryptography API (CAPI) ベースのアプリケーションを移行して Cryptography API: Next Generation (CNG) を使用するためのヘルパー関数として提供されます。 BCryptDeriveKeyCapi 関数は、CAPI CryptDeriveKey 関数と互換性のある方法でキーの派生を実行します。

構文

NTSTATUS BCryptDeriveKeyCapi(
  [in]           BCRYPT_HASH_HANDLE hHash,
  [in, optional] BCRYPT_ALG_HANDLE  hTargetAlg,
  [out]          PUCHAR             pbDerivedKey,
  [in]           ULONG              cbDerivedKey,
  [in]           ULONG              dwFlags
);

パラメーター

[in] hHash

ハッシュ オブジェクトのハンドル。 ハンドルは、 BCryptCreateHash 関数を呼び出すことによって取得されます。 ハンドルの使用が完了したら、 BCryptDestroyHash 関数を呼び出してハンドルを解放する必要があります。

[in, optional] hTargetAlg

アルゴリズム オブジェクトのハンドル。 CryptDeriveKey 関数と互換性のあるALG_ID値を指定できます。

メモ CAPI とキー拡張の制限により、512 ビットを超える出力を生成するハッシュ アルゴリズムを使用できなくなります。
 

[out] pbDerivedKey

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

[in] cbDerivedKey

pbDerivedKey パラメーターが指す派生キーのサイズ (文字数)。

[in] dwFlags

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

戻り値

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

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

リターン コード 説明
STATUS_SUCCESS
関数は成功しました。
STATUS_INVALID_HANDLE
hHash または hTargetAlg パラメーターのハンドルが無効です。
STATUS_INVALID_PARAMETER
cbDerivedKey パラメーターの値が、ハッシュ関数の出力サイズの 2 倍を超えています。
STATUS_NO_MEMORY
メモリ割り当てエラーが発生しました。

注釈

この関数は、CAPI CryptDeriveKey 関数の PK salt 機能をサポートしていません。

要件

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