共用方式為


CryptMsgCountersignEncoded 函式 (wincrypt.h)

CryptMsgCountersignEncoded 函式會計數器簽署現有的 PKCS #7 訊息簽章。 pbCountersignatureBYTE 緩衝區是 PKCS #7 編碼的 SignerInfo,可用來做為 PKCS #9 簽署數據或已簽署和封包數據訊息的未驗證 Countersignature 屬性。

語法

BOOL CryptMsgCountersignEncoded(
  [in]      DWORD                    dwEncodingType,
  [in]      PBYTE                    pbSignerInfo,
  [in]      DWORD                    cbSignerInfo,
  [in]      DWORD                    cCountersigners,
  [in]      PCMSG_SIGNER_ENCODE_INFO rgCountersigners,
  [out]     PBYTE                    pbCountersignature,
  [in, out] PDWORD                   pcbCountersignature
);

參數

[in] dwEncodingType

指定所使用的編碼類型。 目前,只會使用X509_ASN_ENCODING和PKCS_7_ASN_ENCODING;不過,未來可能會新增其他編碼類型。 針對目前任一種編碼類型,請使用:

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING。

[in] pbSignerInfo

要反正負號之已編碼的 SignerInfo 指標。

[in] cbSignerInfo

編碼的 SignerInfo 數據的計數,以位元組為單位。

[in] cCountersigners

rgCountersigners 陣列中的計數器編號。

[in] rgCountersigners

計數器 CMSG_SIGNER_ENCODE_INFO 結構的數位。

[out] pbCountersignature

要接收編碼 PKCS #9 計數器符號 屬性之緩衝區的指標。

在輸入時,此參數可以 NULL,以針對記憶體配置目的設定此資訊的大小。 如需詳細資訊,請參閱 擷取未知長度的數據

[in, out] pcbCountersignature

變數的指標,指定 pbCountersignature 參數所指向之緩衝區的大小,以位元組為單位。 當函式傳回時, 參數所指向的變數會包含儲存在緩衝區中的位元元組數目。

傳回值

如果函式成功,則傳回值為非零值(TRUE)。

如果函式失敗,則傳回值為零 (FALSE)。 如需擴充錯誤資訊,請呼叫 getLastError

下表列出 GetLastError 函式最常傳回的錯誤碼。

傳回碼 描述
CRYPT_E_OID_FORMAT
物件標識碼的格式不正確。
E_INVALIDARG
一或多個自變數無效。
E_OUTOFMEMORY
記憶體不足。
 

傳播的錯誤可能會從下列其中一個函式傳回:

如果函式失敗,GetLastError 可能會傳回 抽象語法表示法一 (ASN.1) 編碼/譯碼錯誤。 如需這些錯誤的相關信息,請參閱 ASN.1 編碼/譯碼傳回值

要求

要求 價值
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
支援的最低伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平臺 窗戶
標頭 wincrypt.h
連結庫 Crypt32.lib
DLL Crypt32.dll

另請參閱

CryptMsgCountersign

CryptMsgVerifyCountersignatureEncoded

低階訊息函式

簡化的訊息函式