From d7ecb3d0a7bb1f34def28296deafbb407bee4a77 Mon Sep 17 00:00:00 2001 From: Dirk Engling Date: Wed, 21 Jan 2026 23:51:57 +0100 Subject: setting hostname is required for tls1.3 in mbedtls --- vchat-connection.c | 2 +- vchat-tls.c | 4 ++-- vchat-tls.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/vchat-connection.c b/vchat-connection.c index dea69d0..d0abc0d 100644 --- a/vchat-connection.c +++ b/vchat-connection.c @@ -166,7 +166,7 @@ int vc_connect(const char *server, const char *port) { #endif #ifdef TLS_LIB_MBEDTLS if (_engine == TLS_ENGINE_MBEDTLS) - result = vc_mbedtls_connect(serverfd, &vc_store); + result = vc_mbedtls_connect(server, serverfd, &vc_store); #endif vc_cleanup_x509store(&vc_store); diff --git a/vchat-tls.c b/vchat-tls.c index eaa12f4..05df4d2 100644 --- a/vchat-tls.c +++ b/vchat-tls.c @@ -475,7 +475,7 @@ static void vc_tls_report_error(int error, char *message) { writecf(FS_ERR, tmpstr); } -int vc_mbedtls_connect(int serverfd, vc_x509store_t *vc_store) { +int vc_mbedtls_connect(const char *servername, int serverfd, vc_x509store_t *vc_store) { /* Some aliases for shorter references */ mbedstate *s = &_mbedtls_state; mbedtls_ssl_config *conf = &_mbedtls_state._conf; @@ -601,7 +601,7 @@ int vc_mbedtls_connect(int serverfd, vc_x509store_t *vc_store) { ret, "Can not configure parameters on tls context, mbedtls reports: "); return -1; } - /* TODO: mbedtls_ssl_set_hostname(&ssl, SERVER_NAME) */ + mbedtls_ssl_set_hostname(ssl, strdup(servername)); mbedtls_ssl_set_bio(ssl, (void *)(intptr_t)serverfd, static_tcp_send, static_tcp_recv, NULL); diff --git a/vchat-tls.h b/vchat-tls.h index 2771173..60856e2 100644 --- a/vchat-tls.h +++ b/vchat-tls.h @@ -40,7 +40,7 @@ char *vc_openssl_version(); #ifdef TLS_LIB_MBEDTLS void vc_mbedtls_init_x509store(vc_x509store_t *); -int vc_mbedtls_connect(int serverfd, vc_x509store_t *); +int vc_mbedtls_connect(const char* servername, int serverfd, vc_x509store_t *); ssize_t vc_mbedtls_sendmessage(const void *buf, size_t size); ssize_t vc_mbedtls_receivemessage(void *buf, size_t size); void vc_mbedtls_cleanup(); -- cgit v1.2.3