From 40870d8553a0be5da5cbbcfff4f555c4741c6fc6 Mon Sep 17 00:00:00 2001 From: WolverinDEV Date: Sun, 7 Jul 2019 18:52:23 +0200 Subject: [PATCH] Updated changelog --- src/protocol/CryptionHandler.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/protocol/CryptionHandler.cpp b/src/protocol/CryptionHandler.cpp index 3c53a91..1935bf6 100644 --- a/src/protocol/CryptionHandler.cpp +++ b/src/protocol/CryptionHandler.cpp @@ -276,6 +276,15 @@ bool CryptionHandler::decryptPacket(protocol::BasicPacket *packet, std::string & return false; } + size_t target_length = 2048; + uint8_t target_buffer[2048]; + auto length = data.length(); + if(target_length < length) { + error = "buffer too large"; + return false; + } + + err = eax_decrypt_verify_memory(find_cipher("rijndael"), (uint8_t *) key, /* the key */ (unsigned long) 16, /* key is 16 bytes */ @@ -285,7 +294,7 @@ bool CryptionHandler::decryptPacket(protocol::BasicPacket *packet, std::string & (unsigned long) header.length(), /* header length */ (const unsigned char *) data.data_ptr(), (unsigned long) data.length(), - (unsigned char *) data.data_ptr(), + (unsigned char *) target_buffer, (unsigned char *) packet->mac().data_ptr(), (unsigned long) packet->mac().length(), &success @@ -300,6 +309,7 @@ bool CryptionHandler::decryptPacket(protocol::BasicPacket *packet, std::string & return false; } + packet->data(pipes::buffer_view{target_buffer, length}); packet->setEncrypted(false); return true; }