DATA_BLOB 構造体中のデータを復号し、整合性チェックを行う。
CryptUnprotectData pDataIn, ppszDataDescr, pOptionalEntropy, pvReserved, pPromptStruct, dwFlags, pDataOut
pDataIn : [var] 暗号化データを保持する DATA_BLOB 構造体へのポインタ。cbData メンバには暗号化対象テキストを含む pbData バイト列の長さが入る。 ppszDataDescr : [var] 暗号化データに含まれていた可読な説明文字列へのポインタ。NULL も可。使用後は LocalFree で解放する。 pOptionalEntropy : [var] 暗号化時に使用された追加エントロピーを保持する DATA_BLOB 構造体へのポインタ。NULL 可だが、暗号化フェーズで追加エントロピーが使われた場合は同じ構造体を渡す必要がある。 pvReserved : [intptr] 予約。NULL を指定する必要がある。 pPromptStruct : [var] プロンプト表示の場所・タイミング・内容を指定する CRYPTPROTECT_PROMPTSTRUCT 構造体へのポインタ。NULL 可。 dwFlags : [int] 本関数のオプションを指定する DWORD。0 を指定するとオプション無し。または下記のフラグを指定できる。 pDataOut : [var] 復号データを格納する DATA_BLOB 構造体へのポインタ。使用後は LocalFree で pbData メンバを解放する。
(プラグイン / モジュール : crypt32.dll)
DATA_BLOB 構造体中のデータを復号し、整合性チェックを行う。 [戻り値] 成功時は TRUE、失敗時は FALSE を返す。 [備考] CryptProtectData が暗号化時に生成したセッション鍵を再導出してデータ BLOB を復号する。暗号化データに付加された MAC ハッシュにより改ざん検出を行い、改ざんが検出された場合は ERROR_INVALID_DATA を返す。DATA_BLOB 構造体使用後は LocalFree で pbData メンバを解放する。NULL でない ppszDataDescr も LocalFree で解放する必要がある。機密情報使用後は SecureZeroMemory でメモリをクリアすること。
| プラグイン / モジュール | crypt32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の crypt32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_crypt32_gen2.hs |