Module: wine Branch: master Commit: b0329620ddf169063cda81768bad727ee26e802e URL: http://source.winehq.org/git/wine.git/?a=commit;h=b0329620ddf169063cda81768b...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Dec 7 19:46:41 2017 +0100
rsaenh: Use bcrypt for SHA1 hashes.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/rsaenh/implglue.c | 17 ++--------------- dlls/rsaenh/implglue.h | 10 ---------- 2 files changed, 2 insertions(+), 25 deletions(-)
diff --git a/dlls/rsaenh/implglue.c b/dlls/rsaenh/implglue.c index 58fd727..af87b43 100644 --- a/dlls/rsaenh/implglue.c +++ b/dlls/rsaenh/implglue.c @@ -41,10 +41,6 @@ VOID WINAPI MD4Final( MD4_CTX *ctx ); VOID WINAPI MD5Init( MD5_CTX *ctx ); VOID WINAPI MD5Update( MD5_CTX *ctx, const unsigned char *buf, unsigned int len ); VOID WINAPI MD5Final( MD5_CTX *ctx ); -/* Function prototypes copied from dlls/advapi32/crypt_sha.c */ -VOID WINAPI A_SHAInit(PSHA_CTX Context); -VOID WINAPI A_SHAUpdate(PSHA_CTX Context, const unsigned char *Buffer, UINT BufferSize); -VOID WINAPI A_SHAFinal(PSHA_CTX Context, PULONG Result); /* Function prototype copied from dlls/advapi32/crypt.c */ BOOL WINAPI SystemFunction036(PVOID pbBuffer, ULONG dwLen);
@@ -68,8 +64,8 @@ BOOL init_hash_impl(ALG_ID aiAlgid, HASH_CONTEXT *pHashContext) return TRUE;
case CALG_SHA: - A_SHAInit(&pHashContext->sha); - return TRUE; + status = BCryptOpenAlgorithmProvider(&provider, BCRYPT_SHA1_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0); + break;
case CALG_SHA_256: status = BCryptOpenAlgorithmProvider(&provider, BCRYPT_SHA256_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0); @@ -107,10 +103,6 @@ BOOL update_hash_impl(ALG_ID aiAlgid, HASH_CONTEXT *pHashContext, const BYTE *pb MD5Update(&pHashContext->md5, pbData, dwDataLen); break;
- case CALG_SHA: - A_SHAUpdate(&pHashContext->sha, pbData, dwDataLen); - break; - default: BCryptHashData(pHashContext->bcrypt_hash, (UCHAR*)pbData, dwDataLen, 0); } @@ -132,10 +124,6 @@ BOOL finalize_hash_impl(ALG_ID aiAlgid, HASH_CONTEXT *pHashContext, BYTE *pbHash memcpy(pbHashValue, pHashContext->md5.digest, 16); break;
- case CALG_SHA: - A_SHAFinal(&pHashContext->sha, (PULONG)pbHashValue); - break; - default: BCryptFinishHash(pHashContext->bcrypt_hash, pbHashValue, RSAENH_MAX_HASH_SIZE, 0); BCryptDestroyHash(pHashContext->bcrypt_hash); @@ -152,7 +140,6 @@ BOOL duplicate_hash_impl(ALG_ID aiAlgid, const HASH_CONTEXT *pSrcHashContext, { case CALG_MD4: case CALG_MD5: - case CALG_SHA: *pDestHashContext = *pSrcHashContext; return TRUE; default: diff --git a/dlls/rsaenh/implglue.h b/dlls/rsaenh/implglue.h index 446f843..59e98c3 100644 --- a/dlls/rsaenh/implglue.h +++ b/dlls/rsaenh/implglue.h @@ -46,19 +46,9 @@ typedef struct tagMD5_CTX unsigned char digest[16]; } MD5_CTX;
-/* Next typedef copied form dlls/advapi32/crypt_sha.c */ -typedef struct tagSHA_CTX -{ - ULONG Unknown[6]; - ULONG State[5]; - ULONG Count[2]; - UCHAR Buffer[64]; -} SHA_CTX, *PSHA_CTX; - typedef union tagHASH_CONTEXT { MD4_CTX md4; MD5_CTX md5; - SHA_CTX sha; BCRYPT_HASH_HANDLE bcrypt_hash; } HASH_CONTEXT;