diff --git a/lib/hcrypto/evp-wincng.c b/lib/hcrypto/evp-wincng.c index 8a8b91cb1..d97a80d14 100644 --- a/lib/hcrypto/evp-wincng.c +++ b/lib/hcrypto/evp-wincng.c @@ -570,6 +570,11 @@ wincng_md_hash_init(BCRYPT_ALG_HANDLE hAlgorithm, NTSTATUS status; ULONG cbData; + if (cng->hHash) { + BCryptDestroyHash(cng->hHash); /* allow reinitialization */ + cng->hHash = (BCRYPT_HASH_HANDLE)0; + } + status = BCryptGetProperty(hAlgorithm, BCRYPT_OBJECT_LENGTH, (PUCHAR)&cng->cbHashObject,