CryptProtectData

DATA_BLOB 構造体中のデータを暗号化する。

CryptProtectData pDataIn, szDataDescr, pOptionalEntropy, pvReserved, pPromptStruct, dwFlags, pDataOut

pDataIn : [var] 暗号化する平文を保持する DATA_BLOB 構造体へのポインタ。
szDataDescr : [wstr] 暗号化データの可読な説明文字列。暗号化データと共に保存される。省略可能で NULL 可。
pOptionalEntropy : [var] 暗号化に使用するパスワードなど追加のエントロピーを保持する DATA_BLOB 構造体へのポインタ。暗号化フェーズで使用した構造体と同じものを復号フェーズでも使わなければならない。追加エントロピーが不要なら NULL を指定する。
pvReserved : [intptr] 予約。NULL を指定する必要がある。
pPromptStruct : [var] プロンプト表示の場所・タイミング・内容を指定する CRYPTPROTECT_PROMPTSTRUCT 構造体へのポインタ。暗号化と復号の両フェーズで NULL 可。
dwFlags : [int] 以下のいずれかのフラグを指定できる。
pDataOut : [var] 暗号化データを受け取る DATA_BLOB 構造体へのポインタ。使用後は LocalFree で pbData メンバを解放すること。

(プラグイン / モジュール : crypt32.dll)

解説

DATA_BLOB 構造体中のデータを暗号化する。

[戻り値]
成功時は TRUE、失敗時は FALSE を返す。拡張エラー情報は GetLastError で取得する。

[備考]

通常、データを暗号化したユーザーと同一のログオン資格情報を持つユーザーのみが復号できる。また暗号化を実行したコンピュータ上でのみ復号できる。ただしローミングプロファイルを持つユーザーは別のコンピュータから復号できる。CRYPTPROTECT_LOCAL_MACHINE
フラグで暗号化すれば、同一コンピュータ上のすべてのユーザーが復号できる。関数は暗号化用のセッション鍵を生成し、復号時にも再導出する。また改ざん検出用
MAC も付加する。一時的に同一プロセス内または複数プロセス間でメモリを保護するには CryptProtectMemory を使用する。

情報

プラグイン / モジュールcrypt32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の crypt32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_crypt32_gen2.hs