CryptVerifyMessageHash 函式 (wincrypt.h)
CryptVerifyMessageHash函式會驗證指定內容的雜湊。
語法
BOOL CryptVerifyMessageHash(
[in] PCRYPT_HASH_MESSAGE_PARA pHashPara,
[in] BYTE *pbHashedBlob,
[in] DWORD cbHashedBlob,
[out] BYTE *pbToBeHashed,
[in, out] DWORD *pcbToBeHashed,
[out, optional] BYTE *pbComputedHash,
[in, out, optional] DWORD *pcbComputedHash
);
參數
[in] pHashPara
包含雜湊參數 之CRYPT_HASH_MESSAGE_PARA 結構的指標。
[in] pbHashedBlob
緩衝區的指標,其中包含原始內容及其雜湊。
[in] cbHashedBlob
原始雜湊緩衝區的大小,以位元組為單位。
[out] pbToBeHashed
緩衝區的指標,用來接收已雜湊的原始內容。
如果不需要原始內容進行額外處理,或設定原始內容的大小以供記憶體配置之用,則此參數可為 Null 。 如需詳細資訊,請參閱 擷取未知長度的資料。
[in, out] pcbToBeHashed
DWORD的指標,指定pbToBeHashed緩衝區的大小,以位元組為單位。 當函式傳回時,此變數會包含複製到 pbToBeHashed的原始內容大小,以位元組為單位。 如果此參數為 Null,將不會傳回原始內容。
[out, optional] pbComputedHash
要接收計算雜湊之緩衝區的指標。 如果建立的雜湊不需要額外的處理,或為記憶體配置設定原始內容的大小,這個參數可以是 Null 。 如需詳細資訊,請參閱 擷取未知長度的資料。
[in, out, optional] pcbComputedHash
DWORD的指標,指定pbComputedHash緩衝區的大小,以位元組為單位。 當函式傳回時,此變數會包含所建立雜湊的大小,以位元組為單位。 如果此參數為 Null,則不會傳回雜湊。
傳回值
如果函式成功,則傳回值為非零 (TRUE) 。
如果函式失敗,則傳回值為零, (FALSE) 。
如需擴充錯誤資訊,請呼叫 GetLastError。
下列列出 GetLastError 函式最常傳回的錯誤碼。
傳回碼 | 描述 |
---|---|
|
不是雜湊密碼編譯訊息。 |
|
訊息編碼類型無效。 目前僅支援PKCS_7_ASN_ENCODING。 *pHashPara中的cbSize無效。 |
|
如果 pbToBeHashed 參數指定的緩衝區不夠大,無法保存傳回的資料,則函式會設定ERROR_MORE_DATA程式碼,並以位元組為單位,將所需的緩衝區大小儲存到 以 mb為單位的變數中。 |
如果函式失敗, GetLastError 可能會傳回 抽象語法標記法一 (ASN.1) 編碼/解碼錯誤。 如需這些錯誤的相關資訊,請參閱 ASN.1 編碼/解碼傳回值。
規格需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |