From 81f3695539144150f09c11ff2570d2617be38da7 Mon Sep 17 00:00:00 2001 From: WolverinDEV Date: Sun, 7 Jul 2019 14:12:35 +0200 Subject: [PATCH 1/2] Fixed crash --- native/serverconnection/src/connection/ProtocolHandler.cpp | 1 + .../src/connection/ProtocolHandlerCrypto.cpp | 7 ++++--- package.json | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/native/serverconnection/src/connection/ProtocolHandler.cpp b/native/serverconnection/src/connection/ProtocolHandler.cpp index e05272b..eadebb2 100644 --- a/native/serverconnection/src/connection/ProtocolHandler.cpp +++ b/native/serverconnection/src/connection/ProtocolHandler.cpp @@ -444,6 +444,7 @@ bool ProtocolHandler::create_datagram_packets(std::vector &result } else { packet->applyPacketId(this->_packet_id_manager); } + log_trace(category::connection, tr("Packet {} got packet id {}"), packet->type().name(), packet->packetId()); } if(!this->crypt_handler.progressPacketOut(packet.get(), error, false)) { log_error(category::connection, tr("Failed to encrypt packet: {}"), error); diff --git a/native/serverconnection/src/connection/ProtocolHandlerCrypto.cpp b/native/serverconnection/src/connection/ProtocolHandlerCrypto.cpp index b5730d3..1d76880 100644 --- a/native/serverconnection/src/connection/ProtocolHandlerCrypto.cpp +++ b/native/serverconnection/src/connection/ProtocolHandlerCrypto.cpp @@ -47,7 +47,7 @@ std::string ProtocolHandler::generate_client_initiv() { if(result == CRYPT_OK) command["omega"] = base64::encode(buffer, buffer_length); else - cout << "Failed to export identity (" << result << ")" << endl; + log_error(category::connection, tr("Failed to export identiry ({})"), result); } this->crypto.initiv_command = command.build(true); @@ -173,8 +173,9 @@ void ProtocolHandler::handleCommandInitIVExpend2(ts::Command &cmd) { auto server_public_key = crypto_chain->generatePublicKey(*(license::teamspeak::LicensePublicKey*) crypto_root.data()); crypto_chain->print(); - u_char seed[32 * 2]; //FIXME more secure - u_char public_key[32], private_key[32]; + u_char seed[32]; + ed25519_create_seed(seed); + u_char public_key[32], private_key[64]; /* We need 64 bytes because we're doing some SHA512 actions */ ed25519_create_keypair(public_key, private_key, seed); /* send clientek response */ diff --git a/package.json b/package.json index b581b23..4896fbc 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "crash_handler": "electron . crash-handler", "test": "echo \"Error: no test specified\" && exit 1", "start": "electron --js-flags='--expose-gc' --debug --dev-tools --disable-hardware-acceleration .", - "start-d": "electron . --debug -t -su http://dev.clientapi.teaspeak.de/", + "start-d": "electron . --debug -t --gdb -su http://dev.clientapi.teaspeak.de/", "start-n": "electron . -t --no-single-instance -su http://null.teaspeak.de/", "start-01": "electron . --updater-channel=test -u=http://dev.clientapi.teaspeak.de/ -d --updater-ui-loader_type=0 --updater-local-version=1.0.1", "compile-sass": "sass --update .:.", From d659ec97670dbe631181619187ddc372955692bd Mon Sep 17 00:00:00 2001 From: WolverinDEV Date: Sun, 7 Jul 2019 22:32:17 +0200 Subject: [PATCH 2/2] Fixed build for windows --- installer/tsconfig_windows.json | 4 ++-- native/serverconnection/src/bindings.cpp | 26 +++++++++++++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/installer/tsconfig_windows.json b/installer/tsconfig_windows.json index 87dbbc8..4001168 100644 --- a/installer/tsconfig_windows.json +++ b/installer/tsconfig_windows.json @@ -9,6 +9,6 @@ "./deploy/", "build.ts", "package.ts", - "package_linux.ts" + "package_windows.ts" ] -} \ No newline at end of file +} diff --git a/native/serverconnection/src/bindings.cpp b/native/serverconnection/src/bindings.cpp index c82745e..bf4167b 100644 --- a/native/serverconnection/src/bindings.cpp +++ b/native/serverconnection/src/bindings.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "logger.h" #include "NanException.h" @@ -61,7 +62,6 @@ void testTomMath(){ mp_clear_multi(&x, &n, &exp, &r, nullptr); } - tc::audio::AudioOutput* global_audio_output; #define ENUM_SET(object, key, value) \ Nan::DefineOwnProperty(object, Nan::New(key).ToLocalChecked(), Nan::New(value), v8::DontDelete); \ @@ -71,6 +71,30 @@ NAN_MODULE_INIT(init) { logger::initialize_node(); logger::info(category::general, "Hello World from C"); + /* + { + auto data = (uint8_t*) "Hello World"; + auto hash_result = digest::sha1((const char*) data, 11); + if(hash_result.length() != 20) + Nan::ThrowError("digest::sha1 test failed"); + log_error(category::connection, tr("Hash result: {}"), hash_result.length()); + } + */ + { + auto data = (uint8_t*) "Hello World"; + auto hash_result = digest::sha1(std::string("Hello World")); + if(hash_result.length() != 20) + Nan::ThrowError("digest::sha1 test failed"); + } + { + auto data = (uint8_t*) "Hello World"; + + uint8_t result[SHA_DIGEST_LENGTH]; + digest::tomcrypt::sha1((char*) data, 11, result); + auto hash_result = std::string((const char*) result, SHA_DIGEST_LENGTH); + log_error(category::connection, tr("Hash result: {}"), hash_result.length()); + } + string error; //TODO here //PaJack_SetClientName("TeaClient");