データブロックを復号する。
BCryptDecrypt hKey, pbInput, cbInput, pPaddingInfo, pbIV, cbIV, pbOutput, cbOutput, pcbResult, dwFlags
hKey : [int] データ復号に使用する鍵のハンドル。BCryptGenerateSymmetricKey、BCryptGenerateKeyPair、BCryptImportKey などで取得する。 pbInput : [var] 復号する暗号文を格納したバッファのアドレス。サイズは cbInput で指定する。詳細は Remarks 参照。 cbInput : [int] pbInput バッファ中で復号するバイト数。 pPaddingInfo : [intptr] パディング情報構造体へのポインタ。非対称鍵または認証付き暗号モード使用時のみ指定。認証付き暗号モードでは BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO を指す必要がある。非対称鍵の場合、構造体の種類は dwFlags によって決まる。それ以外では NULL を指定する。 pbIV : [var] 復号時に使用する初期化ベクタ (IV) を格納したバッファのアドレス。cbIV でサイズを指定。関数はこのバッファの内容を変更するため、後で再利用する場合は事前にコピーしておくこと。省略可能で、IV を使わない場合は NULL 可。必要な IV サイズは BCryptGetProperty を BCRYPT_BLOCK_LENGTH プロパティで呼び出して取得できる。 cbIV : [int] pbIV バッファのサイズ(バイト単位)。 pbOutput : [var] 復号後の平文を受け取るバッファのアドレス。サイズは cbOutput で指定する。NULL を渡すと必要サイズを計算し pcbResult に格納して STATUS_SUCCESS を返す。pbOutput と pbInput の両方が NULL の場合、認証付き暗号アルゴリズム使用時を除きエラーとなる。 cbOutput : [int] pbOutput バッファのサイズ(バイト単位)。pbOutput が NULL の場合は無視される。 pcbResult : [var] pbOutput バッファにコピーされたバイト数を受け取る ULONG 変数へのポインタ。pbOutput が NULL の場合、必要な平文サイズを受け取る。 dwFlags : [int] 関数の動作を変更するフラグ群。許容されるフラグは hKey の種類によって異なる。
(プラグイン / モジュール : bcrypt.dll)
データブロックを復号する。 [戻り値] 関数の成否を示すステータスコードを返す。 主な戻り値は以下の通り。 (以下省略) [備考] pbInput と pbOutput は同一バッファでもよく、その場合はインプレース復号となる。異なる場合は両バッファが重なってはならない。ユーザー/カーネルモードで呼び出せるが、DISPATCH_LEVEL で呼ぶ場合は hKey が BCRYPT_PROV_DISPATCH で開かれたプロバイダ由来である必要があり、ポインタはページアウトされないメモリを参照する必要がある。カーネルモードでは Cng.lib(Windows Server 2008/Vista では Ksecdd.lib)を使用する。
| プラグイン / モジュール | bcrypt.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の bcrypt.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_bcrypt_gen2.hs |