aboutsummaryrefslogtreecommitdiff
path: root/src/common/tortls.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2018-02-10 16:09:00 -0500
committerNick Mathewson <nickm@torproject.org>2018-02-10 16:09:00 -0500
commit86583ad78e6c75ea0094553584428f795089c482 (patch)
treeb5c5aa004ea10eae7fd6ccaccc482a82b655a9f7 /src/common/tortls.c
parent04a8e81fa9d323819a7294f80aca9477794386bc (diff)
parent320dac4602dd26bc64f1f0fd1cff5d7b38bb09eb (diff)
downloadtor-86583ad78e6c75ea0094553584428f795089c482.tar.gz
tor-86583ad78e6c75ea0094553584428f795089c482.zip
Merge branch 'maint-0.2.9' into maint-0.3.1
Diffstat (limited to 'src/common/tortls.c')
-rw-r--r--src/common/tortls.c28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/common/tortls.c b/src/common/tortls.c
index 1c47cf9882..71de59896a 100644
--- a/src/common/tortls.c
+++ b/src/common/tortls.c
@@ -566,13 +566,35 @@ tor_tls_create_certificate,(crypto_pk_t *rsa,
/** List of ciphers that servers should select from when the client might be
* claiming extra unsupported ciphers in order to avoid fingerprinting. */
-#define SERVER_CIPHER_LIST \
- (TLS1_TXT_DHE_RSA_WITH_AES_256_SHA ":" \
- TLS1_TXT_DHE_RSA_WITH_AES_128_SHA)
+static const char SERVER_CIPHER_LIST[] =
+#ifdef TLS1_3_TXT_AES_128_GCM_SHA256
+ /* This one can never actually get selected, since if the client lists it,
+ * we will assume that the client is honest, and not use this list.
+ * Nonetheless we list it if it's available, so that the server doesn't
+ * conclude that it has no valid ciphers if it's running with TLS1.3.
+ */
+ TLS1_3_TXT_AES_128_GCM_SHA256 ":"
+#endif
+ TLS1_TXT_DHE_RSA_WITH_AES_256_SHA ":"
+ TLS1_TXT_DHE_RSA_WITH_AES_128_SHA;
/** List of ciphers that servers should select from when we actually have
* our choice of what cipher to use. */
static const char UNRESTRICTED_SERVER_CIPHER_LIST[] =
+ /* Here are the TLS 1.3 ciphers we like, in the order we prefer. */
+#ifdef TLS1_3_TXT_AES_256_GCM_SHA384
+ TLS1_3_TXT_AES_256_GCM_SHA384 ":"
+#endif
+#ifdef TLS1_3_TXT_CHACHA20_POLY1305_SHA256
+ TLS1_3_TXT_CHACHA20_POLY1305_SHA256 ":"
+#endif
+#ifdef TLS1_3_TXT_AES_128_GCM_SHA256
+ TLS1_3_TXT_AES_128_GCM_SHA256 ":"
+#endif
+#ifdef TLS1_3_TXT_AES_128_CCM_SHA256
+ TLS1_3_TXT_AES_128_CCM_SHA256 ":"
+#endif
+
/* This list is autogenerated with the gen_server_ciphers.py script;
* don't hand-edit it. */
#ifdef TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384