Jacek Caban : rsaenh: Use bcrypt for MD4 hashes.

Alexandre Julliard julliard at winehq.org
Thu Dec 7 16:02:43 CST 2017


Module: wine
Branch: master
Commit: 2b7fcef811dda082fb0f79aaa2986fa026f426bf
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2b7fcef811dda082fb0f79aaa2986fa026f426bf

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Dec  7 19:47:06 2017 +0100

rsaenh: Use bcrypt for MD4 hashes.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;




More information about the wine-cvs mailing list