CryptEncrypt

データを暗号化する。データの暗号化に使用されるアルゴリズムは、CSP モジュールが保持する鍵で指定され、hKey パラメータから参照される。

CryptEncrypt hKey, hHash, Final, dwFlags, pbData, pdwDataLen, dwBufLen

hKey : [int] 暗号化鍵へのハンドル。アプリケーションはこのハンドルを CryptGenKey または CryptImportKey 関数を使用して取得する。鍵が使用する暗号化アルゴリズムを指定する。
hHash : [int] ハッシュオブジェクトへのハンドル。データをハッシュ化しながら同時に暗号化する場合は、hHash パラメータにハッシュオブジェクトへのハンドルを渡す。ハッシュ値は渡された平文で更新される。このオプションは署名付きの暗号文を生成するときに有用である。CryptEncrypt を呼び出す前に、アプリケーションは CryptCreateHash 関数を呼び出してハッシュオブジェクトへのハンドルを取得する必要がある。暗号化完了後、CryptGetHashParam 関数でハッシュ値を取得するか、CryptSignHash 関数でハッシュに署名できる。ハッシュ化を行わない場合、このパラメータは NULL でなければならない。
Final : [int] 暗号化対象の一連のデータのうち、これが最後のセクションかどうかを指定するブール値。最後または唯一のブロックであれば Final を TRUE に設定し、暗号化すべきブロックがまだ残っていれば FALSE に設定する。詳細は「Remarks」を参照。
dwFlags : [int] 次の dwFlags 値は定義されているが、将来の使用のために予約されている。
pbData : [var] 暗号化対象の平文を格納するバッファへのポインタ。このバッファ内の平文は、この関数が作成した暗号文で上書きされる。pdwDataLen パラメータは平文の長さ (バイト単位) を格納する変数を指す。dwBufLen パラメータはこのバッファの総サイズ (バイト単位) を格納する。このパラメータが NULL の場合、関数は暗号文に必要なサイズを計算し、pdwDataLen が指す値に格納する。
pdwDataLen : [var] DWORD 値へのポインタ。入力時には pbData バッファ内の平文の長さ (バイト単位) を含む。出力時には、この DWORD には pbData バッファに書き込まれた暗号文の長さ (バイト単位) が格納される。pbData 用に確保したバッファが暗号化データを保持するのに十分でない場合、GetLastError は ERROR_MORE_DATA を返し、必要なバッファサイズ (バイト単位) を pdwDataLen が指す DWORD 値に格納する。pbData が NULL の場合、エラーは返されず、関数は暗号化データのサイズ (バイト単位) を pdwDataLen が指す DWORD 値に格納する。これによりアプリケーションは正しいバッファサイズを判定できる。ブロック暗号が使用される場合、このデータ長はブロックサイズの倍数でなければならない。ただし、これが暗号化対象データの最終セクションで Final パラメータが TRUE である場合を除く。
dwBufLen : [int] 入力 pbData バッファの総サイズ (バイト単位) を指定する。使用するアルゴリズムに応じて、暗号文は元の平文より大きくなる可能性がある。この場合、pbData バッファは暗号文とパディングを格納するのに十分な大きさでなければならない。原則として、ストリーム暗号を使用する場合、暗号文は平文と同じサイズとなる。ブロック暗号を使用する場合、暗号文は平文より最大 1 ブロック長大きくなる。

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

解説

データを暗号化する。データの暗号化に使用されるアルゴリズムは、CSP モジュールが保持する鍵で指定され、hKey
パラメータから参照される。

[戻り値]
関数が成功した場合はゼロ以外 (TRUE) を返す。
失敗した場合はゼロ (FALSE) を返す。拡張エラー情報を取得するには GetLastError を呼び出す。NTE
で始まるエラーコードは使用中の特定の CSP が生成する。以下のエラーコードが返される可能性がある。
(以下省略)

[備考]
大量のデータを暗号化する場合は、CryptEncrypt を繰り返し呼び出すことで複数セクションに分けて行える。Final パラメータは
CryptEncrypt の最後の呼び出しで TRUE
に設定し、暗号化エンジンが暗号化処理を正しく完了できるようにする必要がある。Final が TRUE
のときには以下の追加処理が実行される。
(以下省略)

情報

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