[PATCH 3/5] crypt32: Pass the used Algid to I_CryptGetDefaultCryptProv().
Sven Baars
sbaars at codeweavers.com
Fri Feb 18 14:56:14 CST 2022
Signed-off-by: Sven Baars <sbaars at codeweavers.com>
---
dlls/crypt32/cert.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/dlls/crypt32/cert.c b/dlls/crypt32/cert.c
index 5fc76c9556f..c651dd18512 100644
--- a/dlls/crypt32/cert.c
+++ b/dlls/crypt32/cert.c
@@ -2255,10 +2255,12 @@ BOOL WINAPI CryptHashCertificate(HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid,
TRACE("(%08Ix, %d, %08lx, %p, %ld, %p, %p)\n", hCryptProv, Algid, dwFlags,
pbEncoded, cbEncoded, pbComputedHash, pcbComputedHash);
- if (!hCryptProv)
- hCryptProv = I_CryptGetDefaultCryptProv(Algid);
if (!Algid)
Algid = CALG_SHA1;
+
+ if (!hCryptProv)
+ hCryptProv = I_CryptGetDefaultCryptProv(Algid);
+
if (ret)
{
ret = CryptCreateHash(hCryptProv, Algid, 0, 0, &hHash);
@@ -2337,10 +2339,12 @@ BOOL WINAPI CryptHashPublicKeyInfo(HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid,
TRACE("(%08Ix, %d, %08lx, %ld, %p, %p, %p)\n", hCryptProv, Algid, dwFlags,
dwCertEncodingType, pInfo, pbComputedHash, pcbComputedHash);
- if (!hCryptProv)
- hCryptProv = I_CryptGetDefaultCryptProv(0);
if (!Algid)
Algid = CALG_MD5;
+
+ if (!hCryptProv)
+ hCryptProv = I_CryptGetDefaultCryptProv(Algid);
+
if ((dwCertEncodingType & CERT_ENCODING_TYPE_MASK) != X509_ASN_ENCODING)
{
SetLastError(ERROR_FILE_NOT_FOUND);
@@ -2389,8 +2393,6 @@ BOOL WINAPI CryptHashToBeSigned(HCRYPTPROV_LEGACY hCryptProv,
PCCRYPT_OID_INFO oidInfo;
HCRYPTHASH hHash;
- if (!hCryptProv)
- hCryptProv = I_CryptGetDefaultCryptProv(0);
oidInfo = CryptFindOIDInfo(CRYPT_OID_INFO_OID_KEY,
info->SignatureAlgorithm.pszObjId, 0);
if (!oidInfo)
@@ -2400,6 +2402,9 @@ BOOL WINAPI CryptHashToBeSigned(HCRYPTPROV_LEGACY hCryptProv,
}
else
{
+ if (!hCryptProv)
+ hCryptProv = I_CryptGetDefaultCryptProv(oidInfo->u.Algid);
+
ret = CryptCreateHash(hCryptProv, oidInfo->u.Algid, 0, 0, &hHash);
if (ret)
{
@@ -2439,7 +2444,8 @@ BOOL WINAPI CryptSignCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv,
if (info->dwGroupId == CRYPT_HASH_ALG_OID_GROUP_ID)
{
if (!hCryptProv)
- hCryptProv = I_CryptGetDefaultCryptProv(0);
+ hCryptProv = I_CryptGetDefaultCryptProv(info->u.Algid);
+
ret = CryptCreateHash(hCryptProv, info->u.Algid, 0, 0, &hHash);
if (ret)
{
--
2.30.0.335.ge6362826a0
More information about the wine-devel
mailing list