19
19
20
20
-- "Modern" cipher list
21
21
local modern_cipher_list = cipher_list {
22
- " ECDHE-ECDSA-AES256-GCM-SHA384" ;
23
- " ECDHE-RSA-AES256-GCM-SHA384" ;
24
- " ECDHE-ECDSA-CHACHA20-POLY1305" ;
25
- " ECDHE-RSA-CHACHA20-POLY1305" ;
26
- " ECDHE-ECDSA-AES128-GCM-SHA256" ;
27
- " ECDHE-RSA-AES128-GCM-SHA256" ;
28
- " ECDHE-ECDSA-AES256-SHA384" ;
29
- " ECDHE-RSA-AES256-SHA384" ;
30
- " ECDHE-ECDSA-AES128-SHA256" ;
31
- " ECDHE-RSA-AES128-SHA256" ;
22
+ " TLS_AES_128_GCM_SHA256" ;
23
+ " TLS_AES_256_GCM_SHA384" ;
24
+ " TLS_CHACHA20_POLY1305_SHA256" ;
32
25
}
33
26
34
27
-- "Intermediate" cipher list
35
28
local intermediate_cipher_list = cipher_list {
36
- " ECDHE-ECDSA-CHACHA20-POLY1305" ;
37
- " ECDHE-RSA-CHACHA20-POLY1305" ;
38
29
" ECDHE-ECDSA-AES128-GCM-SHA256" ;
39
30
" ECDHE-RSA-AES128-GCM-SHA256" ;
40
31
" ECDHE-ECDSA-AES256-GCM-SHA384" ;
41
32
" ECDHE-RSA-AES256-GCM-SHA384" ;
33
+ " ECDHE-ECDSA-CHACHA20-POLY1305" ;
34
+ " ECDHE-RSA-CHACHA20-POLY1305" ;
42
35
" DHE-RSA-AES128-GCM-SHA256" ;
43
36
" DHE-RSA-AES256-GCM-SHA384" ;
44
- " ECDHE-ECDSA-AES128-SHA256" ;
45
- " ECDHE-RSA-AES128-SHA256" ;
46
- " ECDHE-ECDSA-AES128-SHA" ;
47
- " ECDHE-RSA-AES256-SHA384" ;
48
- " ECDHE-RSA-AES128-SHA" ;
49
- " ECDHE-ECDSA-AES256-SHA384" ;
50
- " ECDHE-ECDSA-AES256-SHA" ;
51
- " ECDHE-RSA-AES256-SHA" ;
52
- " DHE-RSA-AES128-SHA256" ;
53
- " DHE-RSA-AES128-SHA" ;
54
- " DHE-RSA-AES256-SHA256" ;
55
- " DHE-RSA-AES256-SHA" ;
56
- " ECDHE-ECDSA-DES-CBC3-SHA" ;
57
- " ECDHE-RSA-DES-CBC3-SHA" ;
58
- " EDH-RSA-DES-CBC3-SHA" ;
59
- " AES128-GCM-SHA256" ;
60
- " AES256-GCM-SHA384" ;
61
- " AES128-SHA256" ;
62
- " AES256-SHA256" ;
63
- " AES128-SHA" ;
64
- " AES256-SHA" ;
65
- " DES-CBC3-SHA" ;
66
- " !DSS" ;
37
+ " DHE-RSA-CHACHA20-POLY1305" ;
67
38
}
68
39
69
40
-- "Old" cipher list
70
41
local old_cipher_list = cipher_list {
71
- " ECDHE-ECDSA-CHACHA20-POLY1305" ;
72
- " ECDHE-RSA-CHACHA20-POLY1305" ;
73
- " ECDHE-RSA-AES128-GCM-SHA256" ;
74
42
" ECDHE-ECDSA-AES128-GCM-SHA256" ;
75
- " ECDHE-RSA-AES256 -GCM-SHA384 " ;
43
+ " ECDHE-RSA-AES128 -GCM-SHA256 " ;
76
44
" ECDHE-ECDSA-AES256-GCM-SHA384" ;
45
+ " ECDHE-RSA-AES256-GCM-SHA384" ;
46
+ " ECDHE-ECDSA-CHACHA20-POLY1305" ;
47
+ " ECDHE-RSA-CHACHA20-POLY1305" ;
77
48
" DHE-RSA-AES128-GCM-SHA256" ;
78
- " DHE-DSS-AES128-GCM-SHA256" ;
79
- " kEDH+AESGCM" ;
80
- " ECDHE-RSA-AES128-SHA256" ;
49
+ " DHE-RSA-AES256-GCM-SHA384" ;
50
+ " DHE-RSA-CHACHA20-POLY1305" ;
81
51
" ECDHE-ECDSA-AES128-SHA256" ;
82
- " ECDHE-RSA-AES128-SHA " ;
52
+ " ECDHE-RSA-AES128-SHA256 " ;
83
53
" ECDHE-ECDSA-AES128-SHA" ;
84
- " ECDHE-RSA-AES256-SHA384 " ;
54
+ " ECDHE-RSA-AES128-SHA " ;
85
55
" ECDHE-ECDSA-AES256-SHA384" ;
86
- " ECDHE-RSA-AES256-SHA " ;
56
+ " ECDHE-RSA-AES256-SHA384 " ;
87
57
" ECDHE-ECDSA-AES256-SHA" ;
58
+ " ECDHE-RSA-AES256-SHA" ;
88
59
" DHE-RSA-AES128-SHA256" ;
89
- " DHE-RSA-AES128-SHA" ;
90
- " DHE-DSS-AES128-SHA256" ;
91
60
" DHE-RSA-AES256-SHA256" ;
92
- " DHE-DSS-AES256-SHA" ;
93
- " DHE-RSA-AES256-SHA" ;
94
- " ECDHE-RSA-DES-CBC3-SHA" ;
95
- " ECDHE-ECDSA-DES-CBC3-SHA" ;
96
- " EDH-RSA-DES-CBC3-SHA" ;
97
61
" AES128-GCM-SHA256" ;
98
62
" AES256-GCM-SHA384" ;
99
63
" AES128-SHA256" ;
100
64
" AES256-SHA256" ;
101
65
" AES128-SHA" ;
102
66
" AES256-SHA" ;
103
- " AES" ;
104
67
" DES-CBC3-SHA" ;
105
- " HIGH" ;
106
- " SEED" ;
107
68
" !aNULL" ;
108
69
" !eNULL" ;
109
70
" !EXPORT" ;
@@ -458,6 +419,15 @@ local spec_to_openssl = {
458
419
TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = " ECDHE-PSK-CHACHA20-POLY1305" ;
459
420
TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = " DHE-PSK-CHACHA20-POLY1305" ;
460
421
TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 = " RSA-PSK-CHACHA20-POLY1305" ;
422
+
423
+
424
+ -- TLS v1.3 cipher suites
425
+
426
+ TLS_AES_128_GCM_SHA256 = " TLS_AES_128_GCM_SHA256" ;
427
+ TLS_AES_256_GCM_SHA384 = " TLS_AES_256_GCM_SHA384" ;
428
+ TLS_CHACHA20_POLY1305_SHA256 = " TLS_CHACHA20_POLY1305_SHA256" ;
429
+ TLS_AES_128_CCM_SHA256 = " TLS_AES_128_CCM_SHA256" ;
430
+ TLS_AES_128_CCM_8_SHA256 = " TLS_AES_128_CCM_8_SHA256" ;
461
431
}
462
432
463
433
-- Banned ciphers from https://http2.github.io/http2-spec/#BadCipherSuites
@@ -750,13 +720,17 @@ local default_tls_options = openssl_ctx.OP_NO_COMPRESSION
750
720
+ openssl_ctx .OP_SINGLE_ECDH_USE
751
721
+ openssl_ctx .OP_NO_SSLv2
752
722
+ openssl_ctx .OP_NO_SSLv3
723
+ + openssl_ctx .OP_NO_SSLv3
724
+ + openssl_ctx .OP_NO_TLSv1
725
+ + openssl_ctx .OP_NO_TLSv1_1
726
+ + openssl_ctx .OP_NO_TICKET
753
727
754
728
local function new_client_context ()
755
729
local ctx = openssl_ctx .new (" TLS" , false )
756
730
ctx :setCipherList (intermediate_cipher_list )
757
731
ctx :setOptions (default_tls_options )
758
732
if ctx .setGroups then
759
- ctx :setGroups (" P-521:P-384:P-256" )
733
+ ctx :setGroups (" P-521:P-384:P-256:X25519 " )
760
734
else
761
735
ctx :setEphemeralKey (openssl_pkey .new { type = " EC" , curve = " prime256v1" })
762
736
end
@@ -771,7 +745,7 @@ local function new_server_context()
771
745
ctx :setCipherList (intermediate_cipher_list )
772
746
ctx :setOptions (default_tls_options )
773
747
if ctx .setGroups then
774
- ctx :setGroups (" P-521:P-384:P-256" )
748
+ ctx :setGroups (" P-521:P-384:P-256:X25519 " )
775
749
else
776
750
ctx :setEphemeralKey (openssl_pkey .new { type = " EC" , curve = " prime256v1" })
777
751
end
0 commit comments