diff options
| -rw-r--r-- | client/src/client/client.cpp | 22 | ||||
| -rw-r--r-- | client/src/client/client.h | 10 | ||||
| -rw-r--r-- | server/src/client/client.cpp | 9 | ||||
| -rw-r--r-- | server/src/client/client.h | 2 | ||||
| -rw-r--r-- | server/src/include.h | 1 | ||||
| -rw-r--r-- | server/src/main.cpp | 4 | ||||
| -rw-r--r-- | server/src/util/io.h | 8 |
7 files changed, 22 insertions, 34 deletions
diff --git a/client/src/client/client.cpp b/client/src/client/client.cpp index 3757b7e..c82af1e 100644 --- a/client/src/client/client.cpp +++ b/client/src/client/client.cpp @@ -6,6 +6,13 @@ void tcp::client::start(const std::string_view server_ip, const uint16_t port) { m_ssl_ctx = SSL_CTX_new(TLS_client_method()); + int ret = SSL_CTX_load_verify_locations(m_ssl_ctx, "ssl/rootCA.crt", nullptr); + if (ret != 1) { + io::logger->error("failed to load ca"); + return; + } + SSL_CTX_set_verify(m_ssl_ctx, SSL_VERIFY_PEER, 0); + m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (m_socket == -1) { io::logger->error("failed to create socket."); @@ -18,8 +25,8 @@ void tcp::client::start(const std::string_view server_ip, const uint16_t port) { server_addr.sin_addr.s_addr = inet_addr(server_ip.data()); server_addr.sin_port = htons(port); - int ret = connect(m_socket, reinterpret_cast<sockaddr*>(&server_addr), - sizeof(server_addr)); + ret = connect(m_socket, reinterpret_cast<sockaddr*>(&server_addr), + sizeof(server_addr)); if (ret < 0) { io::logger->error("failed to connect to server."); return; @@ -53,17 +60,14 @@ int tcp::client::read_stream(std::vector<char>& out) { while (size > 0) { auto to_read = std::min(size, chunk_size); - std::string chunk; - chunk.resize(to_read + 2); - int ret = read(&chunk[0], to_read + 2); + + int ret = read(&out[total], to_read); if (ret <= 0) { break; } - enc::decrypt_message(chunk); - std::memcpy(&out[total], chunk.data(), chunk.size()); - size -= ret - 2; - total += ret - 2; + size -= ret; + total += ret; } return total; diff --git a/client/src/client/client.h b/client/src/client/client.h index 60a0e6c..1fc5191 100644 --- a/client/src/client/client.h +++ b/client/src/client/client.h @@ -37,17 +37,7 @@ class client { return SSL_write(m_server_ssl, data, size); } - // +- 2 is to account for xor keys int read(void* data, size_t size) { - /*std::string chunk; - chunk.resize(size + 2); - int ret = SSL_read(m_server_ssl, &chunk[0], size + 2); - chunk.resize(ret); - - io::logger->info(chunk); - enc::decrypt_message(chunk); - - std::memcpy(data, &chunk[0], chunk.size());*/ return SSL_read(m_server_ssl, data, size); } diff --git a/server/src/client/client.cpp b/server/src/client/client.cpp index 452c234..75b25f2 100644 --- a/server/src/client/client.cpp +++ b/server/src/client/client.cpp @@ -53,15 +53,12 @@ int tcp::client::stream(std::vector<char>& data, float *dur/*= nullptr*/) { while (size > 0) { auto to_send = std::min(size, chunk_size); - std::string chunk(&data[sent], to_send); - enc::encrypt_message(chunk); - int ret = write(chunk.data(), chunk.size()); + int ret = write(&data[sent], to_send); if (ret <= 0) { break; } - - sent += ret - 2; - size -= ret - 2; + sent += ret; + size -= ret; } auto end = std::chrono::steady_clock::now(); diff --git a/server/src/client/client.h b/server/src/client/client.h index 01dc125..9459eb6 100644 --- a/server/src/client/client.h +++ b/server/src/client/client.h @@ -28,8 +28,6 @@ class client { } int write(const void* data, size_t size) { - //std::string str(reinterpret_cast<const char*>(data), size); - //enc::encrypt_message(str); return SSL_write(m_ssl, data, size); } diff --git a/server/src/include.h b/server/src/include.h index eb31336..19e3972 100644 --- a/server/src/include.h +++ b/server/src/include.h @@ -22,7 +22,6 @@ #include <utility> #include <atomic> #include <mutex> -#include <filesystem> #include <arpa/inet.h> #include <netdb.h> diff --git a/server/src/main.cpp b/server/src/main.cpp index df3a577..b4cb3cb 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -55,7 +55,7 @@ int main(int argc, char* argv[]) { client.get_session()); client.write(resp); - std::vector<char> t; + /*std::vector<char> t; io::read_file("test.dll", t); float tot; for(int i = 0; i < 100; i++) { @@ -64,7 +64,7 @@ int main(int argc, char* argv[]) { tot += dur; } float avg = tot / 100.f; - io::logger->info("average time {}", avg); + io::logger->info("average time {}", avg);*/ }); diff --git a/server/src/util/io.h b/server/src/util/io.h index e8ef3f0..4681fbf 100644 --- a/server/src/util/io.h +++ b/server/src/util/io.h @@ -1,8 +1,8 @@ #pragma once namespace io { - extern std::shared_ptr<spdlog::logger> logger; +extern std::shared_ptr<spdlog::logger> logger; - void init(const bool& to_file); - void read_file(const std::string_view name, std::vector<char>& out); -}; // namespace io +void init(const bool& to_file); +void read_file(const std::string_view name, std::vector<char>& out); +}; // namespace io |