From cf40917d600871ccc25f71195466e9c1cb991e45 Mon Sep 17 00:00:00 2001 From: WolverinDEV Date: Sun, 7 Jul 2019 18:02:46 +0200 Subject: [PATCH] Revert digest --- src/misc/digest.cpp | 22 +++++++++------- src/misc/digest.h | 64 ++++++++++++++++++++------------------------- 2 files changed, 41 insertions(+), 45 deletions(-) diff --git a/src/misc/digest.cpp b/src/misc/digest.cpp index 5be670c..4319d1e 100644 --- a/src/misc/digest.cpp +++ b/src/misc/digest.cpp @@ -1,17 +1,21 @@ #include "./digest.h" #ifdef NO_OPEN_SSL - #include +#include - #define DECLARE_DIGEST(name, _unused_, digestLength) \ - void digest::tomcrypt::name(const char* input, size_t length, uint8_t(& result)[digestLength]) { \ - hash_state hash{}; \ - \ - name ##_init(&hash); \ - name ##_process(&hash, (uint8_t*) input, length); \ - name ##_done(&hash, result); \ + #define DECLARE_DIGEST(name, _unused_, digestLength) \ + std::string digest::tomcrypt::name(const std::string& input) { \ + hash_state hash{}; \ + \ + uint8_t buffer[digestLength]; \ + \ + name ##_init(&hash); \ + name ##_process(&hash, (uint8_t*) input.data(), input.length()); \ + name ##_done(&hash, buffer); \ + \ + return std::string((const char*) buffer, digestLength); \ } DECLARE_DIGEST(sha1, SHA1, SHA_DIGEST_LENGTH) DECLARE_DIGEST(sha256, SHA256, SHA256_DIGEST_LENGTH) DECLARE_DIGEST(sha512, SHA512, SHA512_DIGEST_LENGTH) -#endif \ No newline at end of file +#endif diff --git a/src/misc/digest.h b/src/misc/digest.h index 8da08ca..cdc34c7 100644 --- a/src/misc/digest.h +++ b/src/misc/digest.h @@ -5,48 +5,40 @@ #include #ifdef NO_OPEN_SSL - #define SHA_DIGEST_LENGTH (20) - #define SHA256_DIGEST_LENGTH (32) - #define SHA512_DIGEST_LENGTH (64) +#define SHA_DIGEST_LENGTH 20 + #define SHA256_DIGEST_LENGTH 32 + #define SHA512_DIGEST_LENGTH 64 - #define DECLARE_DIGEST(name, _unused_, digestLength) \ - namespace tomcrypt { \ - extern void name(const char* input, size_t length, uint8_t(& result)[digestLength]); \ - } \ - inline std::string name(const std::string& input) { \ - uint8_t result[digestLength]; \ - tomcrypt::name(input.data(), input.length(), result); \ - return std::string((const char*) result, (size_t) digestLength); \ - } \ - \ - inline std::string __ ##name(const char* input, int64_t length = -1) { \ - if(length == -1) length = strlen(input); \ - uint8_t result[digestLength]; \ - tomcrypt::name(input, length, result); \ - return std::string((const char*) result, (size_t) digestLength); \ - } \ - \ - inline void name(const char* input, size_t length, uint8_t(& result)[digestLength]) { \ - tomcrypt::name(input, length, result); \ - } + #define DECLARE_DIGEST(name, _unused_, digestLength) \ + namespace tomcrypt { \ + extern std::string name(const std::string&); \ + } \ + inline std::string name(const std::string& input) { \ + return tomcrypt::name(input); \ + } \ + \ + inline std::string name(const char* input, int64_t length = -1) { \ + if(length == -1) length = strlen(input); \ + return name(std::string{input, (size_t) length}); \ + } \ #else #include - #define DECLARE_DIGEST(name, method, digestLength) \ - inline std::string name(const std::string& input) { \ - u_char buffer[digestLength]; \ - method((u_char*) input.data(), input.length(), buffer); \ - return std::string((const char*) buffer, (size_t) digestLength); \ - } \ - \ - inline std::string name(const char* input, ssize_t length = -1) { \ - if(length == -1) length = strlen(input); \ - return name(std::string(input, (size_t) length)); \ - } \ - \ + #define DECLARE_DIGEST(name, method, digestLength) \ + inline std::string name(const std::string& input) { \ + u_char buffer[digestLength]; \ + method((u_char*) input.data(), input.length(), buffer); \ + return std::string((const char*) buffer, digestLength); \ + } \ + \ + inline std::string name(const char* input, ssize_t length = -1) { \ + if(length == -1) length = strlen(input); \ + return name(std::string(input, length)); \ + } \ + \ inline void name(const char* input, size_t length, uint8_t(& result)[digestLength]) { \ - method((u_char*) input, length, result); \ + method((u_char*) input, length, result); \ } #endif