aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authoralpine <[email protected]>2020-06-25 22:00:27 +0200
committeralpine <[email protected]>2020-06-25 22:00:27 +0200
commit6350a2c2e8fe1b95ec03e3903f3a5de5af92d009 (patch)
tree877fe1aa10005c344633ade1a27d307b5149fcc8 /client
parentUpdate c-cpp.yml (diff)
downloadloader-6350a2c2e8fe1b95ec03e3903f3a5de5af92d009.tar.xz
loader-6350a2c2e8fe1b95ec03e3903f3a5de5af92d009.zip
Removed xor on streaming for now.
Diffstat (limited to 'client')
-rw-r--r--client/src/client/client.cpp22
-rw-r--r--client/src/client/client.h10
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);
}