NCryptProtectSecret 関数 (ncryptprotect.h)
NCryptProtectSecret 関数は、指定された保護記述子にデータを暗号化します。 NCryptUnprotectSecret を呼び出してデータを復号化します。
構文
SECURITY_STATUS NCryptProtectSecret(
[in] NCRYPT_DESCRIPTOR_HANDLE hDescriptor,
[in] DWORD dwFlags,
[in] const BYTE *pbData,
[in] ULONG cbData,
[in, optional] const NCRYPT_ALLOC_PARA *pMemPara,
[in, optional] HWND hWnd,
[out] BYTE **ppbProtectedBlob,
[out] ULONG *pcbProtectedBlob
);
パラメーター
[in] hDescriptor
保護記述子オブジェクトのハンドル。 NCryptCreateProtectionDescriptor を呼び出してハンドルを作成します。
[in] dwFlags
フラグには、0 または次の値を指定できます。
値 | 意味 |
---|---|
|
キー サービス プロバイダーにユーザー インターフェイスを表示しないことを要求します。 |
[in] pbData
保護するバイト配列へのポインター。
[in] cbData
pbData パラメーターで指定されたバイナリ配列内のバイト数。
[in, optional] pMemPara
カスタム メモリ管理機能を指定するために使用できる NCRYPT_ALLOC_PARA 構造体へのポインター。 この引数を NULL に設定すると、LocalAlloc 関数が内部的に使用されてメモリが割り当てられます。アプリケーションでは、ppbProtectedBlob パラメーターが指すメモリを解放するために LocalFree を呼び出す必要があります。
[in, optional] hWnd
表示するユーザー インターフェイスの親ウィンドウ (存在する場合) を処理します。
[out] ppbProtectedBlob
暗号化されたデータへのポインターを受け取る変数のアドレス。
[out] pcbProtectedBlob
ppbProtectedBlob 変数が指す暗号化されたデータのサイズ (バイト単位) を含む ULONG 変数へのポインター。
戻り値
関数の成功または失敗を示す状態コードを返します。 可能なリターン コードには、次のものが含まれますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
関数は成功しました。 |
|
pbData、ppbProtectedBlob、および pcbProtectedBlob の各パラメーターを NULL にすることはできません。
cbData パラメーターを 1 未満にすることはできません。 |
|
コンテンツ暗号化キーを割り当てるためのメモリが不足しています。 |
|
hDescriptor パラメーターで指定されたハンドルが無効です。 |
注釈
NCryptProtectSecret 関数を使用して、キー、キーマテリアル、パスワードを保護します。 NCryptStreamOpenToProtect 関数と NCryptStreamUpdate 関数を使用して、より大きなメッセージを暗号化します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ncryptprotect.h |
Library | NCrypt.lib |
[DLL] | NCrypt.dll |