Use the OpenSSL implementation of SHA256 if it is supported, otherwise fall back to a public domain one.