Add/correct a couple definitions, allow hashing nothing.
diff --git a/dlls/advapi32/crypt.c b/dlls/advapi32/crypt.c index f365c7b..45d36ce 100644 --- a/dlls/advapi32/crypt.c +++ b/dlls/advapi32/crypt.c
@@ -1455,7 +1455,7 @@ * Success: TRUE * Failure: FALSE */ -BOOL WINAPI CryptHashData (HCRYPTHASH hHash, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags) +BOOL WINAPI CryptHashData (HCRYPTHASH hHash, const BYTE *pbData, DWORD dwDataLen, DWORD dwFlags) { PCRYPTHASH hash = (PCRYPTHASH)hHash; PCRYPTPROV prov; @@ -1464,7 +1464,7 @@ if (!hash) CRYPT_ReturnLastError(ERROR_INVALID_HANDLE); - if (!pbData || !dwDataLen || !hash->pProvider || hash->pProvider->dwMagic != MAGIC_CRYPTPROV) + if (!hash->pProvider || hash->pProvider->dwMagic != MAGIC_CRYPTPROV) CRYPT_ReturnLastError(ERROR_INVALID_PARAMETER); prov = hash->pProvider;
diff --git a/include/wincrypt.h b/include/wincrypt.h index d9ef13e..3521114 100644 --- a/include/wincrypt.h +++ b/include/wincrypt.h
@@ -708,6 +708,7 @@ #define ALG_SID_MD4 2 #define ALG_SID_MD5 3 #define ALG_SID_SHA 4 +#define ALG_SID_SHA1 CALG_SHA #define ALG_SID_MAC 5 #define ALG_SID_RIPEMD 6 #define ALG_SID_RIPEMD160 7 @@ -728,6 +729,7 @@ #define CALG_MD4 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4) #define CALG_MD5 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5) #define CALG_SHA (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA) +#define CALG_SHA1 CALG_SHA #define CALG_MAC (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC) #define CALG_SSL3_SHAMD5 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SSL3SHAMD5) #define CALG_HMAC (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HMAC) @@ -1812,7 +1814,7 @@ DWORD dwFlags, LPWSTR pszProvName, DWORD *pcbProvName); #define CryptGetDefaultProvider WINELIB_NAME_AW(CryptGetDefaultProvider) BOOL WINAPI CryptGetUserKey (HCRYPTPROV hProv, DWORD dwKeySpec, HCRYPTKEY *phUserKey); -BOOL WINAPI CryptHashData (HCRYPTHASH hHash, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags); +BOOL WINAPI CryptHashData (HCRYPTHASH hHash, const BYTE *pbData, DWORD dwDataLen, DWORD dwFlags); BOOL WINAPI CryptHashSessionKey (HCRYPTHASH hHash, HCRYPTKEY hKey, DWORD dwFlags); BOOL WINAPI CryptImportKey (HCRYPTPROV hProv, BYTE *pbData, DWORD dwDataLen, HCRYPTKEY hPubKey, DWORD dwFlags, HCRYPTKEY *phKey);