CryptDestroyHash function (wincrypt.h)

Important  This API is deprecated. New and existing software should start using Cryptography Next Generation APIs. Microsoft may remove this API in future releases.
The CryptDestroyHash function destroys the hash object referenced by the hHash parameter. After a hash object has been destroyed, it can no longer be used.

To help ensure security, we recommend that hash objects be destroyed after they have been used.


BOOL CryptDestroyHash(
  [in] HCRYPTHASH hHash


[in] hHash

The handle of the hash object to be destroyed.

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. For extended error information, call GetLastError.

The error codes prefaced by "NTE" are generated by the particular cryptographic service provider (CSP) you are using. Some possible error codes follow.

Return code Description
The hash object specified by hHash is currently being used and cannot be destroyed.
The hHash parameter specifies a handle that is not valid.
The hHash parameter contains a value that is not valid.
The hHash handle specifies an algorithm that this CSP does not support.
The hash object specified by the hHash parameter is not valid.
The CSP context that was specified when the hash object was created cannot be found.


When a hash object is destroyed, many CSPs overwrite the memory in the CSP where the hash object was held. The CSP memory is then freed.

There should be a one-to-one correspondence between calls to CryptCreateHash and CryptDestroyHash.

All hash objects that have been created by using a specific CSP must be destroyed before that CSP handle is released with the CryptReleaseContext function.


For an example that uses the CryptDestroyHash function, see Example C Program: Creating and Hashing a Session Key.


Requirement Value
Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Target Platform Windows
Header wincrypt.h
Library Advapi32.lib
DLL Advapi32.dll

See also




Hash and Digital Signature Functions