Jacek Caban : rsaenh: Use bcrypt for SHA1 hashes.

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


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

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

rsaenh: Use bcrypt for SHA1 hashes.

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




More information about the wine-cvs mailing list