1// Copyright 2017 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package http2
6
7// A list of the possible cipher suite ids. Taken from
8// https://www.iana.org/assignments/tls-parameters/tls-parameters.txt
9
10const (
11	cipher_TLS_NULL_WITH_NULL_NULL               uint16 = 0x0000
12	cipher_TLS_RSA_WITH_NULL_MD5                 uint16 = 0x0001
13	cipher_TLS_RSA_WITH_NULL_SHA                 uint16 = 0x0002
14	cipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5        uint16 = 0x0003
15	cipher_TLS_RSA_WITH_RC4_128_MD5              uint16 = 0x0004
16	cipher_TLS_RSA_WITH_RC4_128_SHA              uint16 = 0x0005
17	cipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5    uint16 = 0x0006
18	cipher_TLS_RSA_WITH_IDEA_CBC_SHA             uint16 = 0x0007
19	cipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA     uint16 = 0x0008
20	cipher_TLS_RSA_WITH_DES_CBC_SHA              uint16 = 0x0009
21	cipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA         uint16 = 0x000A
22	cipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA  uint16 = 0x000B
23	cipher_TLS_DH_DSS_WITH_DES_CBC_SHA           uint16 = 0x000C
24	cipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA      uint16 = 0x000D
25	cipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA  uint16 = 0x000E
26	cipher_TLS_DH_RSA_WITH_DES_CBC_SHA           uint16 = 0x000F
27	cipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA      uint16 = 0x0010
28	cipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0011
29	cipher_TLS_DHE_DSS_WITH_DES_CBC_SHA          uint16 = 0x0012
30	cipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA     uint16 = 0x0013
31	cipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0014
32	cipher_TLS_DHE_RSA_WITH_DES_CBC_SHA          uint16 = 0x0015
33	cipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA     uint16 = 0x0016
34	cipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5    uint16 = 0x0017
35	cipher_TLS_DH_anon_WITH_RC4_128_MD5          uint16 = 0x0018
36	cipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0019
37	cipher_TLS_DH_anon_WITH_DES_CBC_SHA          uint16 = 0x001A
38	cipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA     uint16 = 0x001B
39	// Reserved uint16 =  0x001C-1D
40	cipher_TLS_KRB5_WITH_DES_CBC_SHA             uint16 = 0x001E
41	cipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA        uint16 = 0x001F
42	cipher_TLS_KRB5_WITH_RC4_128_SHA             uint16 = 0x0020
43	cipher_TLS_KRB5_WITH_IDEA_CBC_SHA            uint16 = 0x0021
44	cipher_TLS_KRB5_WITH_DES_CBC_MD5             uint16 = 0x0022
45	cipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5        uint16 = 0x0023
46	cipher_TLS_KRB5_WITH_RC4_128_MD5             uint16 = 0x0024
47	cipher_TLS_KRB5_WITH_IDEA_CBC_MD5            uint16 = 0x0025
48	cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA   uint16 = 0x0026
49	cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA   uint16 = 0x0027
50	cipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA       uint16 = 0x0028
51	cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5   uint16 = 0x0029
52	cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5   uint16 = 0x002A
53	cipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5       uint16 = 0x002B
54	cipher_TLS_PSK_WITH_NULL_SHA                 uint16 = 0x002C
55	cipher_TLS_DHE_PSK_WITH_NULL_SHA             uint16 = 0x002D
56	cipher_TLS_RSA_PSK_WITH_NULL_SHA             uint16 = 0x002E
57	cipher_TLS_RSA_WITH_AES_128_CBC_SHA          uint16 = 0x002F
58	cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA       uint16 = 0x0030
59	cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA       uint16 = 0x0031
60	cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA      uint16 = 0x0032
61	cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA      uint16 = 0x0033
62	cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA      uint16 = 0x0034
63	cipher_TLS_RSA_WITH_AES_256_CBC_SHA          uint16 = 0x0035
64	cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA       uint16 = 0x0036
65	cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA       uint16 = 0x0037
66	cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA      uint16 = 0x0038
67	cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA      uint16 = 0x0039
68	cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA      uint16 = 0x003A
69	cipher_TLS_RSA_WITH_NULL_SHA256              uint16 = 0x003B
70	cipher_TLS_RSA_WITH_AES_128_CBC_SHA256       uint16 = 0x003C
71	cipher_TLS_RSA_WITH_AES_256_CBC_SHA256       uint16 = 0x003D
72	cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256    uint16 = 0x003E
73	cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256    uint16 = 0x003F
74	cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256   uint16 = 0x0040
75	cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA     uint16 = 0x0041
76	cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA  uint16 = 0x0042
77	cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA  uint16 = 0x0043
78	cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0044
79	cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0045
80	cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0046
81	// Reserved uint16 =  0x0047-4F
82	// Reserved uint16 =  0x0050-58
83	// Reserved uint16 =  0x0059-5C
84	// Unassigned uint16 =  0x005D-5F
85	// Reserved uint16 =  0x0060-66
86	cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x0067
87	cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256  uint16 = 0x0068
88	cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256  uint16 = 0x0069
89	cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 uint16 = 0x006A
90	cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x006B
91	cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256 uint16 = 0x006C
92	cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256 uint16 = 0x006D
93	// Unassigned uint16 =  0x006E-83
94	cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA        uint16 = 0x0084
95	cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA     uint16 = 0x0085
96	cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA     uint16 = 0x0086
97	cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA    uint16 = 0x0087
98	cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA    uint16 = 0x0088
99	cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA    uint16 = 0x0089
100	cipher_TLS_PSK_WITH_RC4_128_SHA                 uint16 = 0x008A
101	cipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA            uint16 = 0x008B
102	cipher_TLS_PSK_WITH_AES_128_CBC_SHA             uint16 = 0x008C
103	cipher_TLS_PSK_WITH_AES_256_CBC_SHA             uint16 = 0x008D
104	cipher_TLS_DHE_PSK_WITH_RC4_128_SHA             uint16 = 0x008E
105	cipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA        uint16 = 0x008F
106	cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA         uint16 = 0x0090
107	cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA         uint16 = 0x0091
108	cipher_TLS_RSA_PSK_WITH_RC4_128_SHA             uint16 = 0x0092
109	cipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA        uint16 = 0x0093
110	cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA         uint16 = 0x0094
111	cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA         uint16 = 0x0095
112	cipher_TLS_RSA_WITH_SEED_CBC_SHA                uint16 = 0x0096
113	cipher_TLS_DH_DSS_WITH_SEED_CBC_SHA             uint16 = 0x0097
114	cipher_TLS_DH_RSA_WITH_SEED_CBC_SHA             uint16 = 0x0098
115	cipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA            uint16 = 0x0099
116	cipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA            uint16 = 0x009A
117	cipher_TLS_DH_anon_WITH_SEED_CBC_SHA            uint16 = 0x009B
118	cipher_TLS_RSA_WITH_AES_128_GCM_SHA256          uint16 = 0x009C
119	cipher_TLS_RSA_WITH_AES_256_GCM_SHA384          uint16 = 0x009D
120	cipher_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256      uint16 = 0x009E
121	cipher_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384      uint16 = 0x009F
122	cipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256       uint16 = 0x00A0
123	cipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384       uint16 = 0x00A1
124	cipher_TLS_DHE_DSS_WITH_AES_128_GCM_SHA256      uint16 = 0x00A2
125	cipher_TLS_DHE_DSS_WITH_AES_256_GCM_SHA384      uint16 = 0x00A3
126	cipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256       uint16 = 0x00A4
127	cipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384       uint16 = 0x00A5
128	cipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256      uint16 = 0x00A6
129	cipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384      uint16 = 0x00A7
130	cipher_TLS_PSK_WITH_AES_128_GCM_SHA256          uint16 = 0x00A8
131	cipher_TLS_PSK_WITH_AES_256_GCM_SHA384          uint16 = 0x00A9
132	cipher_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256      uint16 = 0x00AA
133	cipher_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384      uint16 = 0x00AB
134	cipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256      uint16 = 0x00AC
135	cipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384      uint16 = 0x00AD
136	cipher_TLS_PSK_WITH_AES_128_CBC_SHA256          uint16 = 0x00AE
137	cipher_TLS_PSK_WITH_AES_256_CBC_SHA384          uint16 = 0x00AF
138	cipher_TLS_PSK_WITH_NULL_SHA256                 uint16 = 0x00B0
139	cipher_TLS_PSK_WITH_NULL_SHA384                 uint16 = 0x00B1
140	cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256      uint16 = 0x00B2
141	cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384      uint16 = 0x00B3
142	cipher_TLS_DHE_PSK_WITH_NULL_SHA256             uint16 = 0x00B4
143	cipher_TLS_DHE_PSK_WITH_NULL_SHA384             uint16 = 0x00B5
144	cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256      uint16 = 0x00B6
145	cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384      uint16 = 0x00B7
146	cipher_TLS_RSA_PSK_WITH_NULL_SHA256             uint16 = 0x00B8
147	cipher_TLS_RSA_PSK_WITH_NULL_SHA384             uint16 = 0x00B9
148	cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256     uint16 = 0x00BA
149	cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256  uint16 = 0x00BB
150	cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256  uint16 = 0x00BC
151	cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BD
152	cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BE
153	cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BF
154	cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256     uint16 = 0x00C0
155	cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256  uint16 = 0x00C1
156	cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256  uint16 = 0x00C2
157	cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C3
158	cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C4
159	cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C5
160	// Unassigned uint16 =  0x00C6-FE
161	cipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV uint16 = 0x00FF
162	// Unassigned uint16 =  0x01-55,*
163	cipher_TLS_FALLBACK_SCSV uint16 = 0x5600
164	// Unassigned                                   uint16 = 0x5601 - 0xC000
165	cipher_TLS_ECDH_ECDSA_WITH_NULL_SHA                 uint16 = 0xC001
166	cipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA              uint16 = 0xC002
167	cipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA         uint16 = 0xC003
168	cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA          uint16 = 0xC004
169	cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA          uint16 = 0xC005
170	cipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA                uint16 = 0xC006
171	cipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA             uint16 = 0xC007
172	cipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA        uint16 = 0xC008
173	cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA         uint16 = 0xC009
174	cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA         uint16 = 0xC00A
175	cipher_TLS_ECDH_RSA_WITH_NULL_SHA                   uint16 = 0xC00B
176	cipher_TLS_ECDH_RSA_WITH_RC4_128_SHA                uint16 = 0xC00C
177	cipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA           uint16 = 0xC00D
178	cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA            uint16 = 0xC00E
179	cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA            uint16 = 0xC00F
180	cipher_TLS_ECDHE_RSA_WITH_NULL_SHA                  uint16 = 0xC010
181	cipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA               uint16 = 0xC011
182	cipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA          uint16 = 0xC012
183	cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA           uint16 = 0xC013
184	cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA           uint16 = 0xC014
185	cipher_TLS_ECDH_anon_WITH_NULL_SHA                  uint16 = 0xC015
186	cipher_TLS_ECDH_anon_WITH_RC4_128_SHA               uint16 = 0xC016
187	cipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA          uint16 = 0xC017
188	cipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA           uint16 = 0xC018
189	cipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA           uint16 = 0xC019
190	cipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA            uint16 = 0xC01A
191	cipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA        uint16 = 0xC01B
192	cipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA        uint16 = 0xC01C
193	cipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA             uint16 = 0xC01D
194	cipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA         uint16 = 0xC01E
195	cipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA         uint16 = 0xC01F
196	cipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA             uint16 = 0xC020
197	cipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA         uint16 = 0xC021
198	cipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA         uint16 = 0xC022
199	cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256      uint16 = 0xC023
200	cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384      uint16 = 0xC024
201	cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256       uint16 = 0xC025
202	cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384       uint16 = 0xC026
203	cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256        uint16 = 0xC027
204	cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384        uint16 = 0xC028
205	cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256         uint16 = 0xC029
206	cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384         uint16 = 0xC02A
207	cipher_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256      uint16 = 0xC02B
208	cipher_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384      uint16 = 0xC02C
209	cipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256       uint16 = 0xC02D
210	cipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384       uint16 = 0xC02E
211	cipher_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256        uint16 = 0xC02F
212	cipher_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384        uint16 = 0xC030
213	cipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256         uint16 = 0xC031
214	cipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384         uint16 = 0xC032
215	cipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA               uint16 = 0xC033
216	cipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA          uint16 = 0xC034
217	cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA           uint16 = 0xC035
218	cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA           uint16 = 0xC036
219	cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256        uint16 = 0xC037
220	cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384        uint16 = 0xC038
221	cipher_TLS_ECDHE_PSK_WITH_NULL_SHA                  uint16 = 0xC039
222	cipher_TLS_ECDHE_PSK_WITH_NULL_SHA256               uint16 = 0xC03A
223	cipher_TLS_ECDHE_PSK_WITH_NULL_SHA384               uint16 = 0xC03B
224	cipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256             uint16 = 0xC03C
225	cipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384             uint16 = 0xC03D
226	cipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256          uint16 = 0xC03E
227	cipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384          uint16 = 0xC03F
228	cipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256          uint16 = 0xC040
229	cipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384          uint16 = 0xC041
230	cipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC042
231	cipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC043
232	cipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC044
233	cipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC045
234	cipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC046
235	cipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC047
236	cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256     uint16 = 0xC048
237	cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384     uint16 = 0xC049
238	cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256      uint16 = 0xC04A
239	cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384      uint16 = 0xC04B
240	cipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256       uint16 = 0xC04C
241	cipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384       uint16 = 0xC04D
242	cipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256        uint16 = 0xC04E
243	cipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384        uint16 = 0xC04F
244	cipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256             uint16 = 0xC050
245	cipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384             uint16 = 0xC051
246	cipher_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC052
247	cipher_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC053
248	cipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256          uint16 = 0xC054
249	cipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384          uint16 = 0xC055
250	cipher_TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC056
251	cipher_TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC057
252	cipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256          uint16 = 0xC058
253	cipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384          uint16 = 0xC059
254	cipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC05A
255	cipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC05B
256	cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256     uint16 = 0xC05C
257	cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384     uint16 = 0xC05D
258	cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256      uint16 = 0xC05E
259	cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384      uint16 = 0xC05F
260	cipher_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256       uint16 = 0xC060
261	cipher_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384       uint16 = 0xC061
262	cipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256        uint16 = 0xC062
263	cipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384        uint16 = 0xC063
264	cipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256             uint16 = 0xC064
265	cipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384             uint16 = 0xC065
266	cipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC066
267	cipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC067
268	cipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC068
269	cipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC069
270	cipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256             uint16 = 0xC06A
271	cipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384             uint16 = 0xC06B
272	cipher_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC06C
273	cipher_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC06D
274	cipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC06E
275	cipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC06F
276	cipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256       uint16 = 0xC070
277	cipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384       uint16 = 0xC071
278	cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC072
279	cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC073
280	cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256  uint16 = 0xC074
281	cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384  uint16 = 0xC075
282	cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256   uint16 = 0xC076
283	cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384   uint16 = 0xC077
284	cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256    uint16 = 0xC078
285	cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384    uint16 = 0xC079
286	cipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256         uint16 = 0xC07A
287	cipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384         uint16 = 0xC07B
288	cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC07C
289	cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC07D
290	cipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256      uint16 = 0xC07E
291	cipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384      uint16 = 0xC07F
292	cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC080
293	cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC081
294	cipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256      uint16 = 0xC082
295	cipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384      uint16 = 0xC083
296	cipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC084
297	cipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC085
298	cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC086
299	cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC087
300	cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256  uint16 = 0xC088
301	cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384  uint16 = 0xC089
302	cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256   uint16 = 0xC08A
303	cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384   uint16 = 0xC08B
304	cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256    uint16 = 0xC08C
305	cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384    uint16 = 0xC08D
306	cipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256         uint16 = 0xC08E
307	cipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384         uint16 = 0xC08F
308	cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC090
309	cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC091
310	cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC092
311	cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC093
312	cipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256         uint16 = 0xC094
313	cipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384         uint16 = 0xC095
314	cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256     uint16 = 0xC096
315	cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384     uint16 = 0xC097
316	cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256     uint16 = 0xC098
317	cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384     uint16 = 0xC099
318	cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256   uint16 = 0xC09A
319	cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384   uint16 = 0xC09B
320	cipher_TLS_RSA_WITH_AES_128_CCM                     uint16 = 0xC09C
321	cipher_TLS_RSA_WITH_AES_256_CCM                     uint16 = 0xC09D
322	cipher_TLS_DHE_RSA_WITH_AES_128_CCM                 uint16 = 0xC09E
323	cipher_TLS_DHE_RSA_WITH_AES_256_CCM                 uint16 = 0xC09F
324	cipher_TLS_RSA_WITH_AES_128_CCM_8                   uint16 = 0xC0A0
325	cipher_TLS_RSA_WITH_AES_256_CCM_8                   uint16 = 0xC0A1
326	cipher_TLS_DHE_RSA_WITH_AES_128_CCM_8               uint16 = 0xC0A2
327	cipher_TLS_DHE_RSA_WITH_AES_256_CCM_8               uint16 = 0xC0A3
328	cipher_TLS_PSK_WITH_AES_128_CCM                     uint16 = 0xC0A4
329	cipher_TLS_PSK_WITH_AES_256_CCM                     uint16 = 0xC0A5
330	cipher_TLS_DHE_PSK_WITH_AES_128_CCM                 uint16 = 0xC0A6
331	cipher_TLS_DHE_PSK_WITH_AES_256_CCM                 uint16 = 0xC0A7
332	cipher_TLS_PSK_WITH_AES_128_CCM_8                   uint16 = 0xC0A8
333	cipher_TLS_PSK_WITH_AES_256_CCM_8                   uint16 = 0xC0A9
334	cipher_TLS_PSK_DHE_WITH_AES_128_CCM_8               uint16 = 0xC0AA
335	cipher_TLS_PSK_DHE_WITH_AES_256_CCM_8               uint16 = 0xC0AB
336	cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM             uint16 = 0xC0AC
337	cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM             uint16 = 0xC0AD
338	cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8           uint16 = 0xC0AE
339	cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8           uint16 = 0xC0AF
340	// Unassigned uint16 =  0xC0B0-FF
341	// Unassigned uint16 =  0xC1-CB,*
342	// Unassigned uint16 =  0xCC00-A7
343	cipher_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256   uint16 = 0xCCA8
344	cipher_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCA9
345	cipher_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256     uint16 = 0xCCAA
346	cipher_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256         uint16 = 0xCCAB
347	cipher_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256   uint16 = 0xCCAC
348	cipher_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256     uint16 = 0xCCAD
349	cipher_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256     uint16 = 0xCCAE
350)
351
352// isBadCipher reports whether the cipher is blacklisted by the HTTP/2 spec.
353// References:
354// https://tools.ietf.org/html/rfc7540#appendix-A
355// Reject cipher suites from Appendix A.
356// "This list includes those cipher suites that do not
357// offer an ephemeral key exchange and those that are
358// based on the TLS null, stream or block cipher type"
359func isBadCipher(cipher uint16) bool {
360	switch cipher {
361	case cipher_TLS_NULL_WITH_NULL_NULL,
362		cipher_TLS_RSA_WITH_NULL_MD5,
363		cipher_TLS_RSA_WITH_NULL_SHA,
364		cipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5,
365		cipher_TLS_RSA_WITH_RC4_128_MD5,
366		cipher_TLS_RSA_WITH_RC4_128_SHA,
367		cipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5,
368		cipher_TLS_RSA_WITH_IDEA_CBC_SHA,
369		cipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA,
370		cipher_TLS_RSA_WITH_DES_CBC_SHA,
371		cipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA,
372		cipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA,
373		cipher_TLS_DH_DSS_WITH_DES_CBC_SHA,
374		cipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA,
375		cipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA,
376		cipher_TLS_DH_RSA_WITH_DES_CBC_SHA,
377		cipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA,
378		cipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,
379		cipher_TLS_DHE_DSS_WITH_DES_CBC_SHA,
380		cipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
381		cipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,
382		cipher_TLS_DHE_RSA_WITH_DES_CBC_SHA,
383		cipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
384		cipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5,
385		cipher_TLS_DH_anon_WITH_RC4_128_MD5,
386		cipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA,
387		cipher_TLS_DH_anon_WITH_DES_CBC_SHA,
388		cipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA,
389		cipher_TLS_KRB5_WITH_DES_CBC_SHA,
390		cipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA,
391		cipher_TLS_KRB5_WITH_RC4_128_SHA,
392		cipher_TLS_KRB5_WITH_IDEA_CBC_SHA,
393		cipher_TLS_KRB5_WITH_DES_CBC_MD5,
394		cipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5,
395		cipher_TLS_KRB5_WITH_RC4_128_MD5,
396		cipher_TLS_KRB5_WITH_IDEA_CBC_MD5,
397		cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA,
398		cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA,
399		cipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA,
400		cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5,
401		cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5,
402		cipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5,
403		cipher_TLS_PSK_WITH_NULL_SHA,
404		cipher_TLS_DHE_PSK_WITH_NULL_SHA,
405		cipher_TLS_RSA_PSK_WITH_NULL_SHA,
406		cipher_TLS_RSA_WITH_AES_128_CBC_SHA,
407		cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA,
408		cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA,
409		cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
410		cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
411		cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA,
412		cipher_TLS_RSA_WITH_AES_256_CBC_SHA,
413		cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA,
414		cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA,
415		cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA,
416		cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
417		cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA,
418		cipher_TLS_RSA_WITH_NULL_SHA256,
419		cipher_TLS_RSA_WITH_AES_128_CBC_SHA256,
420		cipher_TLS_RSA_WITH_AES_256_CBC_SHA256,
421		cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256,
422		cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256,
423		cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,
424		cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,
425		cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA,
426		cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA,
427		cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,
428		cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
429		cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA,
430		cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
431		cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256,
432		cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256,
433		cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
434		cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
435		cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256,
436		cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256,
437		cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,
438		cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA,
439		cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA,
440		cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,
441		cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
442		cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA,
443		cipher_TLS_PSK_WITH_RC4_128_SHA,
444		cipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA,
445		cipher_TLS_PSK_WITH_AES_128_CBC_SHA,
446		cipher_TLS_PSK_WITH_AES_256_CBC_SHA,
447		cipher_TLS_DHE_PSK_WITH_RC4_128_SHA,
448		cipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,
449		cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA,
450		cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA,
451		cipher_TLS_RSA_PSK_WITH_RC4_128_SHA,
452		cipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,
453		cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA,
454		cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA,
455		cipher_TLS_RSA_WITH_SEED_CBC_SHA,
456		cipher_TLS_DH_DSS_WITH_SEED_CBC_SHA,
457		cipher_TLS_DH_RSA_WITH_SEED_CBC_SHA,
458		cipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA,
459		cipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA,
460		cipher_TLS_DH_anon_WITH_SEED_CBC_SHA,
461		cipher_TLS_RSA_WITH_AES_128_GCM_SHA256,
462		cipher_TLS_RSA_WITH_AES_256_GCM_SHA384,
463		cipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256,
464		cipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384,
465		cipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256,
466		cipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384,
467		cipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256,
468		cipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384,
469		cipher_TLS_PSK_WITH_AES_128_GCM_SHA256,
470		cipher_TLS_PSK_WITH_AES_256_GCM_SHA384,
471		cipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,
472		cipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,
473		cipher_TLS_PSK_WITH_AES_128_CBC_SHA256,
474		cipher_TLS_PSK_WITH_AES_256_CBC_SHA384,
475		cipher_TLS_PSK_WITH_NULL_SHA256,
476		cipher_TLS_PSK_WITH_NULL_SHA384,
477		cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,
478		cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,
479		cipher_TLS_DHE_PSK_WITH_NULL_SHA256,
480		cipher_TLS_DHE_PSK_WITH_NULL_SHA384,
481		cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,
482		cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,
483		cipher_TLS_RSA_PSK_WITH_NULL_SHA256,
484		cipher_TLS_RSA_PSK_WITH_NULL_SHA384,
485		cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,
486		cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256,
487		cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
488		cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256,
489		cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
490		cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256,
491		cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,
492		cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256,
493		cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256,
494		cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256,
495		cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
496		cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256,
497		cipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV,
498		cipher_TLS_ECDH_ECDSA_WITH_NULL_SHA,
499		cipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
500		cipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
501		cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
502		cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
503		cipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA,
504		cipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
505		cipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
506		cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
507		cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
508		cipher_TLS_ECDH_RSA_WITH_NULL_SHA,
509		cipher_TLS_ECDH_RSA_WITH_RC4_128_SHA,
510		cipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
511		cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
512		cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
513		cipher_TLS_ECDHE_RSA_WITH_NULL_SHA,
514		cipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA,
515		cipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
516		cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
517		cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
518		cipher_TLS_ECDH_anon_WITH_NULL_SHA,
519		cipher_TLS_ECDH_anon_WITH_RC4_128_SHA,
520		cipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA,
521		cipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA,
522		cipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA,
523		cipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA,
524		cipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA,
525		cipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA,
526		cipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA,
527		cipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA,
528		cipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA,
529		cipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA,
530		cipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA,
531		cipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA,
532		cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
533		cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
534		cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
535		cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
536		cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
537		cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
538		cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
539		cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
540		cipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
541		cipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
542		cipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
543		cipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
544		cipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA,
545		cipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,
546		cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,
547		cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,
548		cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
549		cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
550		cipher_TLS_ECDHE_PSK_WITH_NULL_SHA,
551		cipher_TLS_ECDHE_PSK_WITH_NULL_SHA256,
552		cipher_TLS_ECDHE_PSK_WITH_NULL_SHA384,
553		cipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256,
554		cipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384,
555		cipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256,
556		cipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384,
557		cipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256,
558		cipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384,
559		cipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256,
560		cipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384,
561		cipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,
562		cipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,
563		cipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256,
564		cipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384,
565		cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,
566		cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
567		cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,
568		cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,
569		cipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,
570		cipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,
571		cipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,
572		cipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,
573		cipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256,
574		cipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384,
575		cipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256,
576		cipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384,
577		cipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256,
578		cipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384,
579		cipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256,
580		cipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384,
581		cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,
582		cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,
583		cipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,
584		cipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,
585		cipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256,
586		cipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384,
587		cipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,
588		cipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,
589		cipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,
590		cipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,
591		cipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256,
592		cipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384,
593		cipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
594		cipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
595		cipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,
596		cipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,
597		cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
598		cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
599		cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
600		cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
601		cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
602		cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
603		cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
604		cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
605		cipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,
606		cipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,
607		cipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
608		cipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
609		cipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256,
610		cipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384,
611		cipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256,
612		cipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384,
613		cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
614		cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
615		cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
616		cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
617		cipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,
618		cipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,
619		cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,
620		cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,
621		cipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,
622		cipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,
623		cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
624		cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
625		cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
626		cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
627		cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
628		cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
629		cipher_TLS_RSA_WITH_AES_128_CCM,
630		cipher_TLS_RSA_WITH_AES_256_CCM,
631		cipher_TLS_RSA_WITH_AES_128_CCM_8,
632		cipher_TLS_RSA_WITH_AES_256_CCM_8,
633		cipher_TLS_PSK_WITH_AES_128_CCM,
634		cipher_TLS_PSK_WITH_AES_256_CCM,
635		cipher_TLS_PSK_WITH_AES_128_CCM_8,
636		cipher_TLS_PSK_WITH_AES_256_CCM_8:
637		return true
638	default:
639		return false
640	}
641}
642