共用方式為


CryptGetMessageSignerCount 函式 (wincrypt.h)

CryptGetMessageSignerCount 函式會傳回已簽署訊息的簽署者數目。

注意

此函式可能會傳回重複的簽署者計數,因此可能不足以避免攻擊。 建議您從 SignerInfo 使用 sid (SignerIdentifier) 字段來識別訊息中的重複登入者。

語法

LONG CryptGetMessageSignerCount(
  [in] DWORD      dwMsgEncodingType,
  [in] const BYTE *pbSignedBlob,
  [in] DWORD      cbSignedBlob
);

參數

[in] dwMsgEncodingType

指定使用的編碼類型。 將憑證和 訊息編碼類型 與位 OR 作業結合在一起,一律可以接受,如下列範例所示:

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING

目前定義的編碼類型如下:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbSignedBlob

緩衝區的指標,其中包含已簽署的訊息。

[in] cbSignedBlob

已簽署訊息的大小,以位元組為單位。

傳回值

傳回已簽署訊息的簽署者數目、沒有簽署者時為零,並在發生錯誤時減去一 (–1) 。

如需擴充錯誤資訊,請呼叫 GetLastError。 最常傳回下列錯誤碼。

傳回碼 Description
E_INVALIDARG
無效 的訊息編碼類型。 目前僅支援PKCS_7_ASN_ENCODING。
 

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

規格需求

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

另請參閱

CryptVerifyMessageSignature

簡化的訊息函式