CryptVerifyDetachedMessageSignature 函式 (wincrypt.h)
CryptVerifyDetachedMessageSignature函式會驗證封裝含已中斷連結簽章或簽章的已簽署訊息。
語法
BOOL CryptVerifyDetachedMessageSignature(
[in] PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
[in] DWORD dwSignerIndex,
[in] const BYTE *pbDetachedSignBlob,
[in] DWORD cbDetachedSignBlob,
[in] DWORD cToBeSigned,
[in] const BYTE * [] rgpbToBeSigned,
[in] DWORD [] rgcbToBeSigned,
[out, optional] PCCERT_CONTEXT *ppSignerCert
);
參數
[in] pVerifyPara
包含驗證參數 之CRYPT_VERIFY_MESSAGE_PARA 結構的指標。
[in] dwSignerIndex
要驗證之簽章的索引。 訊息可能有數個簽署者,而且可以重複呼叫此函式,變更 dwSignerIndex 來驗證其他簽章。 如果函式傳回 FALSE,而 GetLastError 傳回CRYPT_E_NO_SIGNER,則先前的呼叫會收到訊息的最後一個簽署者。
[in] pbDetachedSignBlob
包含編碼訊息簽章之 BLOB 的指標。
[in] cbDetachedSignBlob
中斷連結簽章的大小,以位元組為單位。
[in] cToBeSigned
rgpbToBeSigned和rgcbToBeSigned中的陣列元素數目。
[in] rgpbToBeSigned
緩衝區的指標陣列,其中包含要 雜湊的內容。
[in] rgcbToBeSigned
大小陣列,以位元組為單位,表示 rgpbToBeSigned中所指向的內容緩衝區。
[out, optional] ppSignerCert
指向簽署者憑證 CERT_CONTEXT 結構的指標。 當您完成使用憑證內容時,請呼叫 CertFreeCertificateCoNtext 函式來釋放它。 如果此參數為Null,則不會傳回CERT_CONTEXT結構的指標。
傳回值
如果函式成功,則傳回值為非零 (TRUE) 。
如果函式失敗,傳回值為零, (FALSE) 。
如需擴充的錯誤資訊,請呼叫 GetLastError。
下列列出 GetLastError 函式最常傳回的錯誤碼。
傳回碼 | 描述 |
---|---|
|
不正確訊息和憑證編碼類型。 目前僅支援PKCS_7_ASN_ENCODING和X509_ASN_ENCODING_TYPE。 *pVerifyPara中的cbSize無效。 |
|
不是已簽署的密碼編譯訊息。 |
|
訊息沒有指定 dwSignerIndex的任何簽署者或簽署者。 |
|
訊息已使用未知或不支援的演算法進行雜湊處理和簽署。 |
|
未驗證訊息的簽章。 |
如果函式失敗, GetLastError 可能會傳回 抽象語法標記法 1 (ASN.1) 編碼/解碼錯誤。 如需這些錯誤的相關資訊,請參閱 ASN.1 編碼/解碼傳回值。
規格需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |