CryptMsgEncodeAndSignCTL

CryptMsgEncodeAndSignCTL 関数は、CTL を符号化し、符号化された CTL を含む署名済みメッセージを作成する。この関数はまず pCtlInfo が指す CTL を符号化し、次に CryptMsgSignCTL を呼び出して符号化されたメッセージに署名する。

CryptMsgEncodeAndSignCTL dwMsgEncodingType, pCtlInfo, pSignInfo, dwFlags, pbEncoded, pcbEncoded

dwMsgEncodingType : [int] 使用するエンコーディングの型を指定する。証明書とメッセージのエンコーディング型の両方をビットごとの OR 演算で組み合わせて指定することも常に許容される。例: X509_ASN_ENCODING | PKCS_7_ASN_ENCODING。現在定義されているエンコーディング型は次のとおり。
pCtlInfo : [var] 符号化および署名する CTL を含む CTL_INFO 構造体へのポインタ。
pSignInfo : [var] CMSG_SIGNER_ENCODE_INFO 構造体の配列を含む CMSG_SIGNED_ENCODE_INFO 構造体へのポインタ。構造体の cbSize メンバを構造体のサイズに設定し、他のすべてのメンバを 0 に設定すると、署名者なしでメッセージを符号化することができる。
dwFlags : [int] CTL エントリを符号化前にソートする場合、CMSG_ENCODE_SORTED_CTL_FLAG を設定する。このフラグは、CertFindSubjectInSortedCTL または CertEnumSubjectInSortedCTL 関数が呼び出される場合に設定される。CMSG_ENCODE_SORTED_CTL_FLAG が設定され、TrustedSubjects の識別子が MD5 や SHA1 などのハッシュである場合、CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG を設定する。CMS_PKCS7 が定義されている場合、dwFlags を CMSG_CMS_ENCAPSULATED_CTL_FLAG に設定して、CMS 互換の V3 SignedData メッセージを符号化することができる。
pbEncoded : [var] 作成された符号化・署名済みメッセージを受け取るバッファへのポインタ。メモリ割り当て目的でこの情報のサイズを設定するには、このパラメータを NULL にできる。詳細は Retrieving Data of Unknown Length を参照。
pcbEncoded : [var] pbEncoded バッファのサイズ (バイト単位) を指定する DWORD へのポインタ。関数が戻ると、DWORD にはバッファに格納された、または格納されるバイト数が含まれる。

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

解説

CryptMsgEncodeAndSignCTL 関数は、CTL を符号化し、符号化された CTL
を含む署名済みメッセージを作成する。この関数はまず pCtlInfo が指す CTL を符号化し、次に CryptMsgSignCTL
を呼び出して符号化されたメッセージに署名する。

[戻り値]
関数が成功した場合、戻り値は 0 以外 (TRUE)。関数が失敗した場合、戻り値は 0 (FALSE)。拡張エラー情報を取得するには
GetLastError を呼び出す。CryptMsgOpenToEncode および CryptMsgUpdate
の呼び出しからエラーが伝播することがある。

情報

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