summaryrefslogtreecommitdiff
path: root/src/mongo/crypto/sha_block_openssl.cpp
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-11 15:07:35 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2025-02-11 15:07:35 -0300
commit4cb8841196d0625dfa3825aa326f071cd27c7b8b (patch)
tree1682a647d4463397c119183369ae6f750d5fdcff /src/mongo/crypto/sha_block_openssl.cpp
parentaa03c6362cbaa767638e6eed9b031d86dd2643d1 (diff)
parent8f0827553e09872941945a093b647a4211a9db7f (diff)
Update upstream source from tag 'upstream/6.0.0'master
Update to upstream version '6.0.0' with Debian dir 5604a80ec1c96ca76f25f40d78e6ef855abec322
Diffstat (limited to 'src/mongo/crypto/sha_block_openssl.cpp')
-rw-r--r--src/mongo/crypto/sha_block_openssl.cpp75
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