diff --git a/include/cfg.h b/include/cfg.h index b067bf8..586b0d9 100644 --- a/include/cfg.h +++ b/include/cfg.h @@ -21,6 +21,7 @@ #define X_CFG_LIST \ X(bool, enable_auth) \ + X(bool, enable_tls) \ X(string, private_key_file) \ X(string, certificate_file) \ X(string, username) \ diff --git a/src/main.c b/src/main.c index 26626cb..22c5776 100644 --- a/src/main.c +++ b/src/main.c @@ -740,11 +740,19 @@ int init_nvnc(struct wayvnc* self, const char* addr, uint16_t port, nvnc_set_name(self->nvnc, "WayVNC"); - if (self->cfg.enable_auth && - nvnc_enable_auth(self->nvnc, self->cfg.private_key_file, + if (self->cfg.enable_auth) { + if (nvnc_enable_auth(self->nvnc, self->cfg.private_key_file, self->cfg.certificate_file, on_auth, self) < 0) { - nvnc_log(NVNC_LOG_ERROR, "Failed to enable authentication"); - goto failure; + nvnc_log(NVNC_LOG_ERROR, "Failed to enable authentication"); + goto failure; + } + } else if (self->cfg.enable_tls) { + if (nvnc_load_tls_credentials(self->nvnc, + self->cfg.private_key_file, + self->cfg.certificate_file) < 0) { + nvnc_log(NVNC_LOG_ERROR, "Failed to load TLS credentials"); + goto failure; + } } if (self->pointer_manager)