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_INFO 可以是 CTL_CONTEXT 結構的成員,也可以使用 CryptEncodeObject 函式來建立。
[in] cbCtlContent
pbCtlContent 所指向內容的大小,以位元組為單位。
[in] pSignInfo
包含CMSG_SIGNER_ENCODE_INFO結構陣列之CMSG_SIGNED_ENCODE_INFO結構的指標。
如果結構的 cbSize 成員設定為結構的大小,而且所有其他成員都設定為零,則訊息可以編碼而不需要簽署者。
[in] dwFlags
如果已定義CMS_PKCS7,可以設定為 CMSG_CMS_ENCAPSULATED_CTL_FLAG 來編碼 CMS 相容的 V3 SignedData 訊息。
[out] pbEncoded
要接收編碼訊息之緩衝區的指標。
此參數可以是 NULL ,可取得此資訊的大小以供記憶體配置之用。 如需詳細資訊,請參閱 擷取未知長度的數據。
[in, out] pcbEncoded
DWORD 的指標,指定 pbEncoded 緩衝區的大小,以位元組為單位。 當函式傳回時, DWORD 會包含儲存或儲存在緩衝區中的位元元組數目。
傳回值
如果函式成功,傳回值為非零 (TRUE) 。
如果函式失敗,傳回值為零, (FALSE) 。 如需擴充的錯誤資訊,請呼叫 GetLastError。 此函式可以傳回從呼叫到 CryptMsgOpenToEncode 和 CryptMsgUpdate 的錯誤。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |