From a0be80825fa43ca7265ae01451a33a107347b865 Mon Sep 17 00:00:00 2001 From: Tina_Azure <-> Date: Wed, 19 Apr 2023 02:06:19 +0200 Subject: [PATCH] Implement hashing using OpenSSL --- src/utilities.cpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/utilities.cpp b/src/utilities.cpp index 387461e..bd13069 100644 --- a/src/utilities.cpp +++ b/src/utilities.cpp @@ -2,17 +2,22 @@ #include #include #include +#include #include #include #include #include #include +#include +#include +#include +#include #include #include "crow.h" #include "cpp/opportunisticsecuresmtpclient.hpp" #include "cpp/plaintextmessage.hpp" #include "cpp/htmlmessage.hpp" -#include +#include using namespace jed_utils::cpp; @@ -214,4 +219,27 @@ namespace Utilities { } return 0; } + + std::string createHashSha512(const std::string str){ + unsigned char hash[SHA512_DIGEST_LENGTH]; + + SHA512_CTX sha512; + SHA512_Init(&sha512); + SHA512_Update(&sha512, str.c_str(), str.size()); + SHA512_Final(hash, &sha512); + + std::stringstream ss; + + for(int i = 0; i < SHA512_DIGEST_LENGTH; i++){ + ss << std::hex << std::setw(2) << std::setfill('0') << static_cast( hash[i] ); + } + return ss.str(); + } + + /* + * Hashes a given password with a given salt + */ + std::string hashPassword(std::string pwsalt, std::string password) { + return createHashSha512(pwsalt + password); + } } \ No newline at end of file