From ce684a27418574aa333dae961abc5f0234af8aa4 Mon Sep 17 00:00:00 2001
From: Richard Russon <rich@flatcap.org>
Date: Wed, 1 Jun 2016 21:38:22 +0100
Subject: neomutt-ssl_ciphers
---
conn/config.c | 2 +-
conn/gnutls.c | 59 +++++++++++++++++++++++++++------------------------
2 files changed, 32 insertions(+), 29 deletions(-)
diff --git a/conn/config.c b/conn/config.c
index 62e6b9da8..45dc34db0 100644
--- a/conn/config.c
+++ b/conn/config.c
@@ -66,7 +66,7 @@ static struct ConfigDef ConnVarsSsl[] = {
{ "certificate_file", DT_PATH|DT_PATH_FILE, IP "~/.mutt_certificates", 0, NULL,
"File containing trusted certificates"
},
- { "ssl_ciphers", DT_STRING, 0, 0, NULL,
+ { "ssl_ciphers", DT_STRING, IP "@SYSTEM", 0, NULL,
"Ciphers to use when using SSL"
},
{ "ssl_client_cert", DT_PATH|DT_PATH_FILE, 0, 0, NULL,
diff --git a/conn/gnutls.c b/conn/gnutls.c
index 571344bcc..14cb1f1cb 100644
--- a/conn/gnutls.c
+++ b/conn/gnutls.c
@@ -758,35 +758,38 @@ static int tls_set_priority(struct TlsSockData *data)
else
buf_strcpy(priority, "NORMAL");
- const bool c_ssl_use_tlsv1_3 = cs_subset_bool(NeoMutt->sub, "ssl_use_tlsv1_3");
- if (!c_ssl_use_tlsv1_3)
+ if (c_ssl_ciphers && (strcmp(c_ssl_ciphers, "@SYSTEM") == 0))
{
- nproto--;
- buf_addstr(priority, ":-VERS-TLS1.3");
- }
- const bool c_ssl_use_tlsv1_2 = cs_subset_bool(NeoMutt->sub, "ssl_use_tlsv1_2");
- if (!c_ssl_use_tlsv1_2)
- {
- nproto--;
- buf_addstr(priority, ":-VERS-TLS1.2");
- }
- const bool c_ssl_use_tlsv1_1 = cs_subset_bool(NeoMutt->sub, "ssl_use_tlsv1_1");
- if (!c_ssl_use_tlsv1_1)
- {
- nproto--;
- buf_addstr(priority, ":-VERS-TLS1.1");
- }
- const bool c_ssl_use_tlsv1 = cs_subset_bool(NeoMutt->sub, "ssl_use_tlsv1");
- if (!c_ssl_use_tlsv1)
- {
- nproto--;
- buf_addstr(priority, ":-VERS-TLS1.0");
- }
- const bool c_ssl_use_sslv3 = cs_subset_bool(NeoMutt->sub, "ssl_use_sslv3");
- if (!c_ssl_use_sslv3)
- {
- nproto--;
- buf_addstr(priority, ":-VERS-SSL3.0");
+ const bool c_ssl_use_tlsv1_3 = cs_subset_bool(NeoMutt->sub, "ssl_use_tlsv1_3");
+ if (!c_ssl_use_tlsv1_3)
+ {
+ nproto--;
+ buf_addstr(priority, ":-VERS-TLS1.3");
+ }
+ const bool c_ssl_use_tlsv1_2 = cs_subset_bool(NeoMutt->sub, "ssl_use_tlsv1_2");
+ if (!c_ssl_use_tlsv1_2)
+ {
+ nproto--;
+ buf_addstr(priority, ":-VERS-TLS1.2");
+ }
+ const bool c_ssl_use_tlsv1_1 = cs_subset_bool(NeoMutt->sub, "ssl_use_tlsv1_1");
+ if (!c_ssl_use_tlsv1_1)
+ {
+ nproto--;
+ buf_addstr(priority, ":-VERS-TLS1.1");
+ }
+ const bool c_ssl_use_tlsv1 = cs_subset_bool(NeoMutt->sub, "ssl_use_tlsv1");
+ if (!c_ssl_use_tlsv1)
+ {
+ nproto--;
+ buf_addstr(priority, ":-VERS-TLS1.0");
+ }
+ const bool c_ssl_use_sslv3 = cs_subset_bool(NeoMutt->sub, "ssl_use_sslv3");
+ if (!c_ssl_use_sslv3)
+ {
+ nproto--;
+ buf_addstr(priority, ":-VERS-SSL3.0");
+ }
}
if (nproto == 0)