TLS transport: OpenSSL-based encrypted TCP

- New transport_tls.h/c: TLS server (server_create_tls, server_listen_tls)
  and client (client_connect_tls) using OpenSSL
- protocol.c: io_set_ssl() + SSL_read/SSL_write in send_n_data/receive_n_data
- transport_tcp.h: ssl/ssl_ctx fields added to Server/Client structs
- config.h/c: use_tls, tls_cert, tls_key fields
- client_cli.c: --tls, --cert, --key flags
- server.c: --tls, --cert, --key, -p flags with TLS support
- CMakeLists.txt: OpenSSL::SSL + OpenSSL::Crypto linkage
- shell.nix: openssl added to buildInputs
This commit is contained in:
2026-07-16 15:30:03 +02:00
parent 25383f893b
commit eff50346fd
13 changed files with 282 additions and 9 deletions
+5
View File
@@ -39,6 +39,9 @@ Config *config_create(char *version, char *send_directory,
config->max_size = 0;
config->min_size = 0;
config->use_incremental = false;
config->use_tls = false;
config->tls_cert = NULL;
config->tls_key = NULL;
return config;
}
@@ -74,6 +77,8 @@ void config_delete(Config *config) {
for (int i = 0; i < config->include_count; i++)
free(config->include_patterns[i]);
free(config->include_patterns);
free(config->tls_cert);
free(config->tls_key);
free(config);
}