diff options
| author | alpine <[email protected]> | 2020-06-25 22:00:27 +0200 |
|---|---|---|
| committer | alpine <[email protected]> | 2020-06-25 22:00:27 +0200 |
| commit | 6350a2c2e8fe1b95ec03e3903f3a5de5af92d009 (patch) | |
| tree | 877fe1aa10005c344633ade1a27d307b5149fcc8 /client/src | |
| parent | Update c-cpp.yml (diff) | |
| download | loader-6350a2c2e8fe1b95ec03e3903f3a5de5af92d009.tar.xz loader-6350a2c2e8fe1b95ec03e3903f3a5de5af92d009.zip | |
Removed xor on streaming for now.
Diffstat (limited to 'client/src')
| -rw-r--r-- | client/src/client/client.cpp | 22 | ||||
| -rw-r--r-- | client/src/client/client.h | 10 |
2 files changed, 13 insertions, 19 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); } |