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