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 |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の crypt32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_crypt32_gen2.hs |