Signed-off-by: Sven Baars <sbaars(a)codeweavers.com>
---
dlls/rsaenh/implglue.c | 20 ++++++++++----------
dlls/rsaenh/implglue.h | 14 +++++---------
dlls/rsaenh/rsaenh.c | 26 +++++++++++++-------------
3 files changed, 28 insertions(+), 32 deletions(-)
diff --git a/dlls/rsaenh/implglue.c b/dlls/rsaenh/implglue.c
index 9d90ad70f53..d98a08b2f31 100644
--- a/dlls/rsaenh/implglue.c
+++ b/dlls/rsaenh/implglue.c
@@ -32,8 +32,8 @@
/* Function prototype copied from dlls/advapi32/crypt.c */
BOOL WINAPI SystemFunction036(PVOID pbBuffer, ULONG dwLen);
-
-BOOL init_hash_impl(ALG_ID aiAlgid, HASH_CONTEXT *pHashContext)
+
+BOOL init_hash_impl(ALG_ID aiAlgid, BCRYPT_HASH_HANDLE *hash_handle)
{
BCRYPT_ALG_HANDLE provider;
NTSTATUS status;
@@ -74,27 +74,27 @@ BOOL init_hash_impl(ALG_ID aiAlgid, HASH_CONTEXT *pHashContext)
if (status) return FALSE;
- status = BCryptCreateHash(provider, &pHashContext->bcrypt_hash, NULL, 0, NULL, 0, 0);
+ status = BCryptCreateHash(provider, hash_handle, NULL, 0, NULL, 0, 0);
BCryptCloseAlgorithmProvider(provider, 0);
return !status;
}
-BOOL update_hash_impl(HASH_CONTEXT *pHashContext, const BYTE *pbData, DWORD dwDataLen)
+BOOL update_hash_impl(BCRYPT_HASH_HANDLE hash_handle, const BYTE *pbData, DWORD dwDataLen)
{
- BCryptHashData(pHashContext->bcrypt_hash, (UCHAR*)pbData, dwDataLen, 0);
+ BCryptHashData(hash_handle, (UCHAR*)pbData, dwDataLen, 0);
return TRUE;
}
-BOOL finalize_hash_impl(HASH_CONTEXT *pHashContext, BYTE *pbHashValue)
+BOOL finalize_hash_impl(BCRYPT_HASH_HANDLE hash_handle, BYTE *pbHashValue)
{
- BCryptFinishHash(pHashContext->bcrypt_hash, pbHashValue, RSAENH_MAX_HASH_SIZE, 0);
- BCryptDestroyHash(pHashContext->bcrypt_hash);
+ BCryptFinishHash(hash_handle, pbHashValue, RSAENH_MAX_HASH_SIZE, 0);
+ BCryptDestroyHash(hash_handle);
return TRUE;
}
-BOOL duplicate_hash_impl(const HASH_CONTEXT *pSrcHashContext, HASH_CONTEXT *pDestHashContext)
+BOOL duplicate_hash_impl(BCRYPT_HASH_HANDLE src_hash_handle, BCRYPT_HASH_HANDLE *dest_hash_handle)
{
- return !BCryptDuplicateHash(pSrcHashContext->bcrypt_hash, &pDestHashContext->bcrypt_hash, NULL, 0, 0);
+ return !BCryptDuplicateHash(src_hash_handle, dest_hash_handle, NULL, 0, 0);
}
BOOL new_key_impl(ALG_ID aiAlgid, KEY_CONTEXT *pKeyContext, DWORD dwKeyLen)
diff --git a/dlls/rsaenh/implglue.h b/dlls/rsaenh/implglue.h
index 9be642e9b60..06fa3f4430a 100644
--- a/dlls/rsaenh/implglue.h
+++ b/dlls/rsaenh/implglue.h
@@ -29,10 +29,6 @@
#define RSAENH_MAX_HASH_SIZE 104
-typedef union tagHASH_CONTEXT {
- BCRYPT_HASH_HANDLE bcrypt_hash;
-} HASH_CONTEXT;
-
typedef union tagKEY_CONTEXT {
rc2_key rc2;
des_key des;
@@ -42,12 +38,12 @@ typedef union tagKEY_CONTEXT {
rsa_key rsa;
} KEY_CONTEXT;
-BOOL init_hash_impl(ALG_ID aiAlgid, HASH_CONTEXT *pHashContext) DECLSPEC_HIDDEN;
-BOOL update_hash_impl(HASH_CONTEXT *pHashContext, const BYTE *pbData,
+BOOL init_hash_impl(ALG_ID aiAlgid, BCRYPT_HASH_HANDLE *hash_handle) DECLSPEC_HIDDEN;
+BOOL update_hash_impl(BCRYPT_HASH_HANDLE hash_handle, const BYTE *pbData,
DWORD dwDataLen) DECLSPEC_HIDDEN;
-BOOL finalize_hash_impl(HASH_CONTEXT *pHashContext, BYTE *pbHashValue) DECLSPEC_HIDDEN;
-BOOL duplicate_hash_impl(const HASH_CONTEXT *pSrcHashContext,
- HASH_CONTEXT *pDestHashContext) DECLSPEC_HIDDEN;
+BOOL finalize_hash_impl(BCRYPT_HASH_HANDLE hash_handle, BYTE *pbHashValue) DECLSPEC_HIDDEN;
+BOOL duplicate_hash_impl(BCRYPT_HASH_HANDLE src_hash_handle,
+ BCRYPT_HASH_HANDLE *dest_hash_handle) DECLSPEC_HIDDEN;
BOOL new_key_impl(ALG_ID aiAlgid, KEY_CONTEXT *pKeyContext, DWORD dwKeyLen) DECLSPEC_HIDDEN;
BOOL free_key_impl(ALG_ID aiAlgid, KEY_CONTEXT *pKeyContext) DECLSPEC_HIDDEN;
diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c
index a4deb80b0e1..c913c0c71ee 100644
--- a/dlls/rsaenh/rsaenh.c
+++ b/dlls/rsaenh/rsaenh.c
@@ -58,7 +58,7 @@ typedef struct tagCRYPTHASH
HCRYPTPROV hProv;
DWORD dwHashSize;
DWORD dwState;
- HASH_CONTEXT context;
+ BCRYPT_HASH_HANDLE hash_handle;
BYTE abHashValue[RSAENH_MAX_HASH_SIZE];
PHMAC_INFO pHMACInfo;
RSAENH_TLS1PRF_PARAMS tpPRFParams;
@@ -627,8 +627,8 @@ static inline BOOL init_hash(CRYPTHASH *pCryptHash) {
pAlgInfo = get_algid_info(pCryptHash->hProv, pCryptHash->pHMACInfo->HashAlgid);
if (!pAlgInfo) return FALSE;
pCryptHash->dwHashSize = pAlgInfo->dwDefaultLen >> 3;
- init_hash_impl(pCryptHash->pHMACInfo->HashAlgid, &pCryptHash->context);
- update_hash_impl(&pCryptHash->context,
+ init_hash_impl(pCryptHash->pHMACInfo->HashAlgid, &pCryptHash->hash_handle);
+ update_hash_impl(pCryptHash->hash_handle,
pCryptHash->pHMACInfo->pbInnerString,
pCryptHash->pHMACInfo->cbInnerString);
}
@@ -642,7 +642,7 @@ static inline BOOL init_hash(CRYPTHASH *pCryptHash) {
return TRUE;
default:
- return init_hash_impl(pCryptHash->aiAlgid, &pCryptHash->context);
+ return init_hash_impl(pCryptHash->aiAlgid, &pCryptHash->hash_handle);
}
}
@@ -664,7 +664,7 @@ static inline void update_hash(CRYPTHASH *pCryptHash, const BYTE *pbData, DWORD
{
case CALG_HMAC:
if (pCryptHash->pHMACInfo)
- update_hash_impl(&pCryptHash->context, pbData, dwDataLen);
+ update_hash_impl(pCryptHash->hash_handle, pbData, dwDataLen);
break;
case CALG_MAC:
@@ -677,7 +677,7 @@ static inline void update_hash(CRYPTHASH *pCryptHash, const BYTE *pbData, DWORD
break;
default:
- update_hash_impl(&pCryptHash->context, pbData, dwDataLen);
+ update_hash_impl(pCryptHash->hash_handle, pbData, dwDataLen);
}
}
@@ -699,15 +699,15 @@ static inline void finalize_hash(CRYPTHASH *pCryptHash) {
if (pCryptHash->pHMACInfo) {
BYTE abHashValue[RSAENH_MAX_HASH_SIZE];
- finalize_hash_impl(&pCryptHash->context, pCryptHash->abHashValue);
+ finalize_hash_impl(pCryptHash->hash_handle, pCryptHash->abHashValue);
memcpy(abHashValue, pCryptHash->abHashValue, pCryptHash->dwHashSize);
- init_hash_impl(pCryptHash->pHMACInfo->HashAlgid, &pCryptHash->context);
- update_hash_impl(&pCryptHash->context,
+ init_hash_impl(pCryptHash->pHMACInfo->HashAlgid, &pCryptHash->hash_handle);
+ update_hash_impl(pCryptHash->hash_handle,
pCryptHash->pHMACInfo->pbOuterString,
pCryptHash->pHMACInfo->cbOuterString);
- update_hash_impl(&pCryptHash->context,
+ update_hash_impl(pCryptHash->hash_handle,
abHashValue, pCryptHash->dwHashSize);
- finalize_hash_impl(&pCryptHash->context, pCryptHash->abHashValue);
+ finalize_hash_impl(pCryptHash->hash_handle, pCryptHash->abHashValue);
}
break;
@@ -718,7 +718,7 @@ static inline void finalize_hash(CRYPTHASH *pCryptHash) {
break;
default:
- finalize_hash_impl(&pCryptHash->context, pCryptHash->abHashValue);
+ finalize_hash_impl(pCryptHash->hash_handle, pCryptHash->abHashValue);
}
}
@@ -2371,7 +2371,7 @@ BOOL WINAPI RSAENH_CPDuplicateHash(HCRYPTPROV hUID, HCRYPTHASH hHash, DWORD *pdw
if (*phHash != (HCRYPTHASH)INVALID_HANDLE_VALUE)
{
*pDestHash = *pSrcHash;
- duplicate_hash_impl(&pSrcHash->context, &pDestHash->context);
+ duplicate_hash_impl(pSrcHash->hash_handle, &pDestHash->hash_handle);
copy_hmac_info(&pDestHash->pHMACInfo, pSrcHash->pHMACInfo);
copy_data_blob(&pDestHash->tpPRFParams.blobLabel, &pSrcHash->tpPRFParams.blobLabel);
copy_data_blob(&pDestHash->tpPRFParams.blobSeed, &pSrcHash->tpPRFParams.blobSeed);
--
2.30.0.335.ge6362826a0