diff options
| -rw-r--r-- | contrib/epee/src/http_auth.cpp | 20 | ||||
| -rw-r--r-- | tests/unit_tests/http.cpp | 12 |
2 files changed, 16 insertions, 16 deletions
diff --git a/contrib/epee/src/http_auth.cpp b/contrib/epee/src/http_auth.cpp index 98278cdfb..614004ffa 100644 --- a/contrib/epee/src/http_auth.cpp +++ b/contrib/epee/src/http_auth.cpp @@ -63,11 +63,11 @@ #include <cassert> #include <iterator> #include <limits> +#include <openssl/evp.h> #include <tuple> #include <type_traits> #include "hex.h" -#include "md5_l.h" #include "string_coding.h" /* This file uses the `u8` prefix and specifies all chars by ASCII numeric @@ -114,8 +114,8 @@ namespace void operator()(const T& arg) const { const boost::iterator_range<const char*> data(boost::as_literal(arg)); - md5::MD5Update( - std::addressof(ctx), + EVP_DigestUpdate( + ctx, reinterpret_cast<const std::uint8_t*>(data.begin()), data.size() ); @@ -126,25 +126,25 @@ namespace } void operator()(const epee::wipeable_string& arg) const { - md5::MD5Update( - std::addressof(ctx), + EVP_DigestUpdate( + ctx, reinterpret_cast<const std::uint8_t*>(arg.data()), arg.size() ); } - md5::MD5_CTX& ctx; + EVP_MD_CTX *ctx; }; template<typename... T> std::array<char, 32> operator()(const T&... args) const { - md5::MD5_CTX ctx{}; - md5::MD5Init(std::addressof(ctx)); - boost::fusion::for_each(std::tie(args...), update{ctx}); + std::unique_ptr<EVP_MD_CTX, decltype(&EVP_MD_CTX_free)> ctx(EVP_MD_CTX_new(), &EVP_MD_CTX_free); + EVP_DigestInit(ctx.get(), EVP_md5()); + boost::fusion::for_each(std::tie(args...), update{ctx.get()}); std::array<std::uint8_t, 16> digest{{}}; - md5::MD5Final(digest.data(), std::addressof(ctx)); + EVP_DigestFinal(ctx.get(), digest.data(), NULL); return epee::to_hex::array(digest); } }; diff --git a/tests/unit_tests/http.cpp b/tests/unit_tests/http.cpp index 60afe788e..f8eb0127b 100644 --- a/tests/unit_tests/http.cpp +++ b/tests/unit_tests/http.cpp @@ -53,12 +53,12 @@ #include <boost/spirit/include/qi_string.hpp> #include <cstdint> #include <iterator> +#include <openssl/evp.h> #include <string> #include <unordered_map> #include <utility> #include <vector> -#include "md5_l.h" #include "string_tools.h" #include "crypto/crypto.h" @@ -201,16 +201,16 @@ auth_responses parse_response(const http::http_response_info& response) std::string md5_hex(const std::string& in) { - md5::MD5_CTX ctx{}; - md5::MD5Init(std::addressof(ctx)); - md5::MD5Update( - std::addressof(ctx), + std::unique_ptr<EVP_MD_CTX, decltype(&EVP_MD_CTX_free)> ctx(EVP_MD_CTX_new(), &EVP_MD_CTX_free); + EVP_DigestInit(ctx.get(), EVP_md5()); + EVP_DigestUpdate( + ctx.get(), reinterpret_cast<const std::uint8_t*>(in.data()), in.size() ); std::array<std::uint8_t, 16> digest{{}}; - md5::MD5Final(digest.data(), std::addressof(ctx)); + EVP_DigestFinal(ctx.get(), digest.data(), NULL); return epee::string_tools::pod_to_hex(digest); } |
