CryptDecodeObjectEx

lpszStructType パラメータが示す型の構造体を復号する。

CryptDecodeObjectEx dwCertEncodingType, lpszStructType, pbEncoded, cbEncoded, dwFlags, pDecodePara, pvStructInfo, pcbStructInfo

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

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

解説

lpszStructType パラメータが示す型の構造体を復号する。

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

[備考]
推奨される CryptEncodeObjectEx 関数を使用して暗号オブジェクトを符号化する場合、NULL
終端文字が含まれる。推奨される CryptDecodeObjectEx 関数を使用して復号する場合、NULL
終端文字は保持されない。下記のリストの各定数には、pvStructInfo
パラメータが指す関連する構造体型がある。直接または間接的に指される構造体は CERT_ALT_NAME_ENTRY 構造体への参照を持つ。
(以下省略)

情報

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