CryptEncodeObject

CryptEncodeObject 関数は、lpszStructType パラメータの値が示す型の構造体を符号化する。大幅な性能向上を伴う同じ機能を実現する API として CryptEncodeObjectEx の使用が推奨される。

CryptEncodeObject dwCertEncodingType, lpszStructType, pvStructInfo, pbEncoded, pcbEncoded

dwCertEncodingType : [int] 使用するエンコーディングの型。証明書とメッセージのエンコーディング型の両方をビットごとの OR 演算で組み合わせて指定することも常に許容される。例: X509_ASN_ENCODING | PKCS_7_ASN_ENCODING。現在定義されているエンコーディング型は次のとおり。
lpszStructType : [str] 構造体の型を定義する OID へのポインタ。lpszStructType パラメータの上位ワードが 0 の場合、下位ワードは指定された構造体の型の整数識別子を指定する。それ以外の場合、このパラメータは NULL 終端文字列への long ポインタとなる。
pvStructInfo : [intptr] 符号化する構造体へのポインタ。構造体は lpszStructType で指定された型でなければならない。
pbEncoded : [var] 符号化された構造体を受け取るバッファへのポインタ。指定されたバッファが復号済み構造体を受け取るのに十分な大きさでない場合、関数は ERROR_MORE_DATA コードを設定し、必要なバッファサイズ (バイト単位) を pcbEncoded が指す変数に格納する。メモリ割り当て目的でこの情報のサイズを取得するため、このパラメータは NULL にできる。詳細は Retrieving Data of Unknown Length を参照。
pcbEncoded : [var] pbEncoded パラメータが指すバッファのサイズ (バイト単位) を含む DWORD 変数へのポインタ。関数が戻ると、この DWORD 値はバッファに格納された割り当て済み符号化バイト数を含む。注意 バッファ内で返されたデータを処理する際、アプリケーションは返されたデータの実際のサイズを使用しなければならない。実際のサイズは入力で指定されたバッファのサイズよりわずかに小さいことがある。出力時には、このパラメータが指す変数は実際のデータサイズを反映するよう更新される。

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

解説

CryptEncodeObject 関数は、lpszStructType
パラメータの値が示す型の構造体を符号化する。大幅な性能向上を伴う同じ機能を実現する API として CryptEncodeObjectEx
の使用が推奨される。

[戻り値]
関数が成功した場合、戻り値は 0 以外 (TRUE)。関数が失敗した場合、戻り値は 0 (FALSE)。拡張エラー情報を取得するには
GetLastError を呼び出す。次の表に想定されるエラーコードの一部を示す。
(以下省略)

[備考]
推奨される CryptEncodeObjectEx 関数を使用して暗号オブジェクトを符号化する場合、NULL
終端文字が含まれる。推奨される CryptDecodeObjectEx 関数を使用して復号する場合、NULL 終端文字は保持されない。

情報

プラグイン / モジュール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