From: Hans Leidekker hans@codeweavers.com
--- dlls/fusion/assembly.c | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-)
diff --git a/dlls/fusion/assembly.c b/dlls/fusion/assembly.c index 48d5308dd4b..433e30a5399 100644 --- a/dlls/fusion/assembly.c +++ b/dlls/fusion/assembly.c @@ -809,10 +809,8 @@ HRESULT assembly_get_pubkey_token(ASSEMBLY *assembly, LPWSTR *token) ULONG i, size; LONG offset; BYTE hashdata[20], *pubkey, *ptr; - BCRYPT_ALG_HANDLE alg; BYTE tokbytes[BYTES_PER_TOKEN]; - HRESULT hr = E_FAIL; - LPWSTR tok; + WCHAR *tok; DWORD idx;
*token = NULL; @@ -833,33 +831,20 @@ HRESULT assembly_get_pubkey_token(ASSEMBLY *assembly, LPWSTR *token)
pubkey = assembly_get_blob(assembly, idx, &size);
- if (BCryptOpenAlgorithmProvider(&alg, BCRYPT_SHA1_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0) != STATUS_SUCCESS) + if (BCryptHash(BCRYPT_SHA1_ALG_HANDLE, NULL, 0, pubkey, size, hashdata, sizeof(hashdata)) != STATUS_SUCCESS) return E_FAIL;
- if (BCryptHash(alg, NULL, 0, pubkey, size, hashdata, sizeof(hashdata)) != STATUS_SUCCESS) - { - hr = E_FAIL; - goto done; - } - size = sizeof(hashdata); for (i = size - 1; i >= size - 8; i--) tokbytes[size - i - 1] = hashdata[i];
if (!(tok = malloc((TOKEN_LENGTH + 1) * sizeof(WCHAR)))) - { - hr = E_OUTOFMEMORY; - goto done; - } + return E_OUTOFMEMORY;
token_to_str(tokbytes, tok);
*token = tok; - hr = S_OK; - -done: - BCryptCloseAlgorithmProvider(alg, 0); - return hr; + return S_OK; }
HRESULT assembly_get_runtime_version(ASSEMBLY *assembly, LPSTR *version)