I remember reading that CryptGenRandom (which requires a handle to a Cryptographic Provider to be used) is actually just a shortcut to RtlGenRandom (which does not require any Cryptographic Provider handle). I'm wondering if there are similar shortcuts to the hashing functions. For example I would like to hash some data with SHA256, but currently I have a lot of code surrounding the actual function to hash the data. This means first setting up the hash with a call to CryptCreateHash (which requires a Cryptographic Provider handle to use), followed by CryptHashData, and then CryptGetHashParam. I'm wondering, is there any alternative to these? In particular, is there something like an undocumented (but discovered by reverse engineers) alternative to CryptCreateHash, one which doesn't require a Cryptographic Provider handle?