Module: wine Branch: master Commit: 2b7fcef811dda082fb0f79aaa2986fa026f426bf URL: http://source.winehq.org/git/wine.git/?a=commit;h=2b7fcef811dda082fb0f79aaa2...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Dec 7 19:47:06 2017 +0100
rsaenh: Use bcrypt for MD4 hashes.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/rsaenh/implglue.c | 18 ++---------------- dlls/rsaenh/implglue.h | 9 --------- 2 files changed, 2 insertions(+), 25 deletions(-)
diff --git a/dlls/rsaenh/implglue.c b/dlls/rsaenh/implglue.c index af87b43..c12a27c 100644 --- a/dlls/rsaenh/implglue.c +++ b/dlls/rsaenh/implglue.c @@ -33,10 +33,6 @@
#include <stdio.h>
-/* Function prototypes copied from dlls/advapi32/crypt_md4.c */ -VOID WINAPI MD4Init( MD4_CTX *ctx ); -VOID WINAPI MD4Update( MD4_CTX *ctx, const unsigned char *buf, unsigned int len ); -VOID WINAPI MD4Final( MD4_CTX *ctx ); /* Function prototypes copied from dlls/advapi32/crypt_md5.c */ VOID WINAPI MD5Init( MD5_CTX *ctx ); VOID WINAPI MD5Update( MD5_CTX *ctx, const unsigned char *buf, unsigned int len ); @@ -56,8 +52,8 @@ BOOL init_hash_impl(ALG_ID aiAlgid, HASH_CONTEXT *pHashContext) break;
case CALG_MD4: - MD4Init(&pHashContext->md4); - return TRUE; + status = BCryptOpenAlgorithmProvider(&provider, BCRYPT_MD4_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0); + break;
case CALG_MD5: MD5Init(&pHashContext->md5); @@ -95,10 +91,6 @@ BOOL update_hash_impl(ALG_ID aiAlgid, HASH_CONTEXT *pHashContext, const BYTE *pb { switch (aiAlgid) { - case CALG_MD4: - MD4Update(&pHashContext->md4, pbData, dwDataLen); - break; - case CALG_MD5: MD5Update(&pHashContext->md5, pbData, dwDataLen); break; @@ -114,11 +106,6 @@ BOOL finalize_hash_impl(ALG_ID aiAlgid, HASH_CONTEXT *pHashContext, BYTE *pbHash { switch (aiAlgid) { - case CALG_MD4: - MD4Final(&pHashContext->md4); - memcpy(pbHashValue, pHashContext->md4.digest, 16); - break; - case CALG_MD5: MD5Final(&pHashContext->md5); memcpy(pbHashValue, pHashContext->md5.digest, 16); @@ -138,7 +125,6 @@ BOOL duplicate_hash_impl(ALG_ID aiAlgid, const HASH_CONTEXT *pSrcHashContext, { switch (aiAlgid) { - case CALG_MD4: case CALG_MD5: *pDestHashContext = *pSrcHashContext; return TRUE; diff --git a/dlls/rsaenh/implglue.h b/dlls/rsaenh/implglue.h index 59e98c3..e874aaa 100644 --- a/dlls/rsaenh/implglue.h +++ b/dlls/rsaenh/implglue.h @@ -29,14 +29,6 @@
#define RSAENH_MAX_HASH_SIZE 104
-/* Next typedef copied from dlls/advapi32/crypt_md4.c */ -typedef struct tagMD4_CTX { - unsigned int buf[4]; - unsigned int i[2]; - unsigned char in[64]; - unsigned char digest[16]; -} MD4_CTX; - /* Next typedef copied from dlls/advapi32/crypt_md5.c */ typedef struct tagMD5_CTX { @@ -47,7 +39,6 @@ typedef struct tagMD5_CTX } MD5_CTX;
typedef union tagHASH_CONTEXT { - MD4_CTX md4; MD5_CTX md5; BCRYPT_HASH_HANDLE bcrypt_hash; } HASH_CONTEXT;