diff --git a/src/misc/digest.cpp b/src/misc/digest.cpp index cbdb034..c69a3b5 100644 --- a/src/misc/digest.cpp +++ b/src/misc/digest.cpp @@ -3,7 +3,7 @@ #include #define DECLARE_DIGEST(name, _unused_, digestLength) \ - void digest::tomcrypt::name(const char* input, size_t length, uint8_t(& result)[digestLength]) { \ + void digest::tomcrypt::name(const char* input, size_t length, uint8_t* result) { \ hash_state hash{}; \ \ name ##_init(&hash); \ diff --git a/src/misc/digest.h b/src/misc/digest.h index b260385..ef47a1d 100644 --- a/src/misc/digest.h +++ b/src/misc/digest.h @@ -11,7 +11,7 @@ #define DECLARE_DIGEST(name, _unused_, digestLength) \ namespace tomcrypt { \ - extern void name(const char* input, size_t length, uint8_t(& result)[digestLength]); \ + extern void name(const char* input, size_t length, uint8_t* result); \ } \ inline std::string name(const std::string& input) { \ uint8_t result[digestLength]; \ @@ -28,6 +28,10 @@ \ inline void name(const char* input, size_t length, uint8_t(& result)[digestLength]) { \ tomcrypt::name(input, length, result); \ + } \ + \ + inline void name(const char* input, size_t length, uint8_t* result) { \ + tomcrypt::name(input, length, result); \ } #else @@ -47,6 +51,10 @@ \ inline void name(const char* input, size_t length, uint8_t(& result)[digestLength]) { \ method((u_char*) input, length, result); \ + }\ + \ + inline void name(const char* input, size_t length, uint8_t* result) { \ + method((u_char*) input, length, result); \ } #endif diff --git a/src/protocol/CryptionHandler.cpp b/src/protocol/CryptionHandler.cpp index 1cd73f6..ed3318d 100644 --- a/src/protocol/CryptionHandler.cpp +++ b/src/protocol/CryptionHandler.cpp @@ -132,7 +132,7 @@ bool CryptionHandler::setupSharedSecretNew(const std::string &alpha, const std:: sharedIv.resize(64, '\0'); keyMul((uint8_t*) shared.data(), reinterpret_cast(publicKey), reinterpret_cast(privateKey), true); //Remote key get negated sharedIv = digest::sha512(shared); - + digest::sha512(shared.data(), 32, sharedIv.data()); auto xor_key = alpha + beta; for(int i = 0; i < 64; i++) sharedIv[i] ^= xor_key[i];