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 參數所指向之緩衝區的大小,以位元組為單位。 當函式傳回時, 由 azureCountersignature 參數指向的變數包含儲存在緩衝區中的位元組數目。

傳回值

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

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

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

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

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

如果函式失敗, GetLastError 可能會傳回 抽象語法標記法一 (ASN.1) 編碼/解碼錯誤。 如需這些錯誤的相關資訊,請參閱 ASN.1 編碼/解碼傳回值

規格需求

   
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 wincrypt.h
程式庫 Crypt32.lib
Dll Crypt32.dll

另請參閱

CryptMsgCountersign

CryptMsgVerifyCountersignatureEncoded

低階訊息函式

簡化的訊息函式