diff --git a/src/protocol/curl/ftp.c b/src/protocol/curl/ftp.c index 706fee1c..5f3d462a 100644 --- a/src/protocol/curl/ftp.c +++ b/src/protocol/curl/ftp.c @@ -462,10 +462,14 @@ do_ftpes(struct connection *conn) /* We activate SSL and we require it for control */ if (conn->uri->protocol == PROTOCOL_FTPES) { char *bundle = getenv("CURL_CA_BUNDLE"); + char *ciphers = get_opt_str("protocol.ftp.curl_tls13_ciphers", NULL); if (bundle) { curl_easy_setopt(curl, CURLOPT_CAINFO, bundle); } + if (ciphers && *ciphers) { + curl_easy_setopt(curl, CURLOPT_TLS13_CIPHERS, ciphers); + } curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_CONTROL); } /// curl_easy_setopt(curl, CURLOPT_STDERR, stream); diff --git a/src/protocol/ftp/ftp.c b/src/protocol/ftp/ftp.c index 379b9eea..8afe2b34 100644 --- a/src/protocol/ftp/ftp.c +++ b/src/protocol/ftp/ftp.c @@ -88,6 +88,10 @@ union option_info ftp_options[] = { INIT_OPT_LONG("protocol.ftp", N_("Curl max send speed"), "curl_max_send_speed", OPT_ZERO, 0, LONG_MAX, 0, N_("Max upload speed in bytes/s. 0 means unlimited.")), + + INIT_OPT_STRING("protocol.ftp", N_("Curl TLS13 ciphers"), + "curl_tls13_ciphers", OPT_ZERO, "", + N_("Colon separated list of TLS13 ciphers. See https://curl.se/docs/ssl-ciphers.html")), #endif INIT_OPT_BOOL("protocol.ftp", N_("Use passive mode (IPv4)"),