diff options
Diffstat (limited to 'src/mongo/crypto/sha_block_openssl.cpp')
| -rw-r--r-- | src/mongo/crypto/sha_block_openssl.cpp | 75 |
1 files changed, 6 insertions, 69 deletions
diff --git a/src/mongo/crypto/sha_block_openssl.cpp b/src/mongo/crypto/sha_block_openssl.cpp index 1e6b0c86d6b..80a752fbafa 100644 --- a/src/mongo/crypto/sha_block_openssl.cpp +++ b/src/mongo/crypto/sha_block_openssl.cpp @@ -87,66 +87,6 @@ namespace mongo { namespace { - -/** - * Class to load singleton instances of each SHA algorithm. - */ -#if OPENSSL_VERSION_NUMBER > 0x30000000L -class OpenSSLHashLoader { -public: - OpenSSLHashLoader() { - _algoSHA1 = EVP_MD_fetch(NULL, "SHA1", NULL); - _algoSHA256 = EVP_MD_fetch(NULL, "SHA2-256", NULL); - _algoSHA512 = EVP_MD_fetch(NULL, "SHA2-512", NULL); - } - - ~OpenSSLHashLoader() { - EVP_MD_free(_algoSHA1); - EVP_MD_free(_algoSHA256); - EVP_MD_free(_algoSHA512); - } - - const EVP_MD* getSHA512() { - return _algoSHA512; - } - - const EVP_MD* getSHA256() { - return _algoSHA256; - } - - const EVP_MD* getSHA1() { - return _algoSHA1; - } - -private: - EVP_MD* _algoSHA512; - EVP_MD* _algoSHA256; - EVP_MD* _algoSHA1; -}; -#else - -class OpenSSLHashLoader { -public: - const EVP_MD* getSHA512() { - return EVP_sha512(); - } - - const EVP_MD* getSHA256() { - return EVP_sha256(); - } - - const EVP_MD* getSHA1() { - return EVP_sha1(); - } -}; -#endif - -static OpenSSLHashLoader& getOpenSSLHashLoader() { - static OpenSSLHashLoader* loader = new OpenSSLHashLoader(); - return *loader; -} - - /* * Computes a SHA hash of 'input'. */ @@ -191,41 +131,38 @@ void computeHmacImpl(const EVP_MD* md, void SHA1BlockTraits::computeHash(std::initializer_list<ConstDataRange> input, HashType* const output) { - computeHashImpl<SHA1BlockTraits::HashType>(getOpenSSLHashLoader().getSHA1(), input, output); + computeHashImpl<SHA1BlockTraits::HashType>(EVP_sha1(), input, output); } void SHA256BlockTraits::computeHash(std::initializer_list<ConstDataRange> input, HashType* const output) { - computeHashImpl<SHA256BlockTraits::HashType>(getOpenSSLHashLoader().getSHA256(), input, output); + computeHashImpl<SHA256BlockTraits::HashType>(EVP_sha256(), input, output); } void SHA512BlockTraits::computeHash(std::initializer_list<ConstDataRange> input, HashType* const output) { - computeHashImpl<SHA512BlockTraits::HashType>(getOpenSSLHashLoader().getSHA512(), input, output); + computeHashImpl<SHA512BlockTraits::HashType>(EVP_sha512(), input, output); } void SHA1BlockTraits::computeHmac(const uint8_t* key, size_t keyLen, std::initializer_list<ConstDataRange> input, SHA1BlockTraits::HashType* const output) { - return computeHmacImpl<SHA1BlockTraits::HashType>( - getOpenSSLHashLoader().getSHA1(), key, keyLen, input, output); + return computeHmacImpl<SHA1BlockTraits::HashType>(EVP_sha1(), key, keyLen, input, output); } void SHA256BlockTraits::computeHmac(const uint8_t* key, size_t keyLen, std::initializer_list<ConstDataRange> input, SHA256BlockTraits::HashType* const output) { - return computeHmacImpl<SHA256BlockTraits::HashType>( - getOpenSSLHashLoader().getSHA256(), key, keyLen, input, output); + return computeHmacImpl<SHA256BlockTraits::HashType>(EVP_sha256(), key, keyLen, input, output); } void SHA512BlockTraits::computeHmac(const uint8_t* key, size_t keyLen, std::initializer_list<ConstDataRange> input, SHA512BlockTraits::HashType* const output) { - return computeHmacImpl<SHA512BlockTraits::HashType>( - getOpenSSLHashLoader().getSHA512(), key, keyLen, input, output); + return computeHmacImpl<SHA512BlockTraits::HashType>(EVP_sha512(), key, keyLen, input, output); } } // namespace mongo |
