NCryptUnprotectSecret 関数 (ncryptprotect.h)

NCryptUnprotectSecret 関数は、指定された保護記述子にデータを復号化します。 NCryptProtectSecret を呼び出してデータを暗号化します。

構文

SECURITY_STATUS NCryptUnprotectSecret(
  [out, optional] NCRYPT_DESCRIPTOR_HANDLE *phDescriptor,
  [in]            DWORD                    dwFlags,
  [in]            const BYTE               *pbProtectedBlob,
                  ULONG                    cbProtectedBlob,
  [in, optional]  const NCRYPT_ALLOC_PARA  *pMemPara,
  [in, optional]  HWND                     hWnd,
  [out]           BYTE                     **ppbData,
  [out]           ULONG                    *pcbData
);

パラメーター

[out, optional] phDescriptor

保護記述子ハンドルへのポインター。

[in] dwFlags

フラグには、次の値の 0 またはビットごとの OR を指定できます。

意味
NCRYPT_SILENT_FLAG
キー サービス プロバイダーにユーザー インターフェイスを表示しないことを要求します。
NCRYPT_UNPROTECT_NO_DECRYPT
保護されたデータ BLOB のヘッダーのみをデコードします。 実際の暗号化解除は行われません。

[in] pbProtectedBlob

復号化するデータを含むバイト配列へのポインター。

cbProtectedBlob

pbProtectedBlob パラメーターが指す配列内のバイト数。

[in, optional] pMemPara

カスタム メモリ管理機能を指定するために使用できる NCRYPT_ALLOC_PARA 構造体へのポインター。 この引数を NULL に設定すると、 LocalAlloc 関数がメモリを割り当てるために内部的に使用され、アプリケーションは LocalFree を呼び出して ppbData パラメーターが指すメモリを解放する必要があります。

[in, optional] hWnd

表示するユーザー インターフェイスの親ウィンドウ (存在する場合) を処理します。

[out] ppbData

復号化されたデータへのポインターを受け取る変数のアドレス。

[out] pcbData

ppbData 変数が指す復号化されたデータのサイズ (バイト単位) を含む ULONG 変数へのポインター。

戻り値

関数の成功または失敗を示す状態コードを返します。 可能なリターン コードには、次のものが含まれますが、これらに限定されません。

リターン コード 説明
ERROR_SUCCESS
関数は成功しました。
NTE_BAD_FLAGS
dwFlags パラメーターには 、NCRYPT_SILENT_FLAG または NCRYPT_UNPROTECT_NO_DECRYPTのみを含めることができます。
NTE_INVALID_PARAMETER
pbProtectedBlobppbDataおよび pcbData の各パラメーターを NULL にすることはできません。

cbData パラメーターを 1 未満にすることはできません。

注釈

NCryptUnprotectSecret 関数を使用して、キー、キー マテリアル、パスワードの暗号化を解除します。 大きなメッセージを復号化するには、 NCryptStreamOpenToUnprotect 関数と NCryptStreamUpdate 関数を使用します。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ncryptprotect.h
Library NCrypt.lib
[DLL] NCrypt.dll

こちらもご覧ください

CNG DPAPI 関数

NCryptProtectSecret