Creating a CALG_SSL3_SHAMD5 Hash
To create a CALG_SSL3_SHAMD5 hash
- Using standard CryptoAPI methodology, create both a MD5 and a SHA hash of the target data.
- Concatenate the two hashes, with the MD5 value leftmost and the SHA value rightmost. This results in a 36-byte value (16 bytes + 20 bytes).
- Get a handle to a hash object by calling CryptCreateHash with CALG_SSL3_SHAMD5 passed in the Algid parameter.
- Set the hash value with a call to CryptSetHashParam. The concatenated hash values are passed as a BYTE* in the pbData parameter, and the HP_HASHVAL value must be passed in the dwParam parameter. Calling CryptHashData using the handle returned by CryptCreateHash in step 3 will fail.
- Call CryptSignHash to generate the signature.
- Call CryptDestroyHash to destroy the hash object.