次の方法で共有


CryptMsgSignCTL 関数 (wincrypt.h)

CryptMsgSignCTL 関数は、エンコードされた CTL を含む署名付きメッセージを作成します。

構文

BOOL CryptMsgSignCTL(
  [in]      DWORD                    dwMsgEncodingType,
  [in]      BYTE                     *pbCtlContent,
  [in]      DWORD                    cbCtlContent,
  [in]      PCMSG_SIGNED_ENCODE_INFO pSignInfo,
  [in]      DWORD                    dwFlags,
  [out]     BYTE                     *pbEncoded,
  [in, out] DWORD                    *pcbEncoded
);

パラメーター

[in] dwMsgEncodingType

使用するエンコードの種類を指定します。 次の例に示すように、証明書と メッセージエンコードの両方の種類 をビットごとの OR 操作と組み合わせて指定することは、常に許容されます。

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING

現在定義されているエンコードの種類は次のとおりです。

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCtlContent

CTL_CONTEXT構造体のメンバーにすることも、CryptEncodeObject 関数を使用して作成することもできます。エンコードされたCTL_INFO。

[in] cbCtlContent

pbCtlContent が指すコンテンツのサイズ (バイト単位)。

[in] pSignInfo

CMSG_SIGNER_ENCODE_INFO構造体の配列を含むCMSG_SIGNED_ENCODE_INFO構造体へのポインター。

構造体の cbSize メンバーが構造体のサイズに設定され、他のすべてのメンバーが 0 に設定されている場合、署名者なしでメッセージをエンコードできます。

[in] dwFlags

CMS_PKCS7が定義されている場合は、 を CMSG_CMS_ENCAPSULATED_CTL_FLAG に設定して、CMS 互換の V3 SignedData メッセージをエンコードできます。

[out] pbEncoded

エンコードされたメッセージを受信するバッファーへのポインター。

このパラメーターは、メモリ割り当て目的でこの情報のサイズを取得するために NULL にすることができます 。 詳細については、「不明な 長さのデータの取得」を参照してください。

[in, out] pcbEncoded

pbEncoded バッファーのサイズ (バイト単位) を指定する DWORD へのポインター。 関数が戻ると、 DWORD には、格納されているバイト数、またはバッファーに格納されるバイト数が含まれます。

戻り値

関数が成功した場合、戻り値は 0 以外 (TRUE) になります

関数が失敗した場合、戻り値は 0 (FALSE) になります。 拡張エラー情報については、 GetLastError を呼び出します。 この関数は、 CryptMsgOpenToEncode と CryptMsgUpdate の呼び出しから伝達されたエラー 返すことができます。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Crypt32.lib
[DLL] Crypt32.dll

こちらもご覧ください

CMSG_SIGNED_ENCODE_INFO

CryptMsgEncodeAndSignCTL

CryptMsgOpenToEncode

CCTL を使用した検証関数