1 /*
2  * ndpi_encryption.h
3  *
4  * Copyright (C) 2016-21 - ntop.org
5  *
6  * nDPI is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * nDPI is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with nDPI.  If not, see <http://www.gnu.org/licenses/>.
18  *
19  */
20 
21 /* https://wiki.mozilla.org/Security/Cipher_Suites               */
22 /* https://www.oryx-embedded.com/doc/tls__cipher__suites_8h.html */
23 
24 #define TLS_NULL_WITH_NULL_NULL 0x0000
25 #define TLS_RSA_EXPORT_WITH_RC4_40_MD5 0x0003
26 #define TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 0x0006
27 #define TLS_RSA_EXPORT_WITH_DES40_CBC_SHA 0x0008
28 #define TLS_RSA_WITH_NULL_MD5 0x0001
29 #define TLS_RSA_WITH_NULL_SHA 0x0002
30 #define TLS_RSA_WITH_NULL_SHA256 0x003B
31 #define TLS_RSA_WITH_RC4_128_MD5 0x0004
32 #define TLS_RSA_WITH_RC4_128_SHA 0x0005
33 #define TLS_RSA_WITH_IDEA_CBC_SHA 0x0007
34 #define TLS_RSA_WITH_DES_CBC_SHA 0x0009
35 #define TLS_RSA_WITH_3DES_EDE_CBC_SHA 0x000A
36 #define TLS_RSA_WITH_AES_128_CBC_SHA 0x002F
37 #define TLS_RSA_WITH_AES_256_CBC_SHA 0x0035
38 #define TLS_RSA_WITH_AES_128_CBC_SHA256 0x003C
39 #define TLS_RSA_WITH_AES_256_CBC_SHA256 0x003D
40 #define TLS_RSA_WITH_AES_128_GCM_SHA256 0x009C
41 #define TLS_RSA_WITH_AES_256_GCM_SHA384 0x009D
42 #define TLS_RSA_WITH_AES_128_CCM 0xC09C
43 #define TLS_RSA_WITH_AES_256_CCM 0xC09D
44 #define TLS_RSA_WITH_AES_128_CCM_8 0xC0A0
45 #define TLS_RSA_WITH_AES_256_CCM_8 0xC0A1
46 #define TLS_RSA_WITH_CAMELLIA_128_CBC_SHA 0x0041
47 #define TLS_RSA_WITH_CAMELLIA_256_CBC_SHA 0x0084
48 #define TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x00BA
49 #define TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x00C0
50 #define TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 0xC07A
51 #define TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 0xC07B
52 #define TLS_RSA_WITH_SEED_CBC_SHA 0x0096
53 #define TLS_RSA_WITH_ARIA_128_CBC_SHA256 0xC03C
54 #define TLS_RSA_WITH_ARIA_256_CBC_SHA384 0xC03D
55 #define TLS_RSA_WITH_ARIA_128_GCM_SHA256 0xC050
56 #define TLS_RSA_WITH_ARIA_256_GCM_SHA384 0xC051
57 #define TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA 0x000E
58 #define TLS_DH_RSA_WITH_DES_CBC_SHA 0x000F
59 #define TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA 0x0010
60 #define TLS_DH_RSA_WITH_AES_128_CBC_SHA 0x0031
61 #define TLS_DH_RSA_WITH_AES_256_CBC_SHA 0x0037
62 #define TLS_DH_RSA_WITH_AES_128_CBC_SHA256 0x003F
63 #define TLS_DH_RSA_WITH_AES_256_CBC_SHA256 0x0069
64 #define TLS_DH_RSA_WITH_AES_128_GCM_SHA256 0x00A0
65 #define TLS_DH_RSA_WITH_AES_256_GCM_SHA384 0x00A1
66 #define TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x0043
67 #define TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x0086
68 #define TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x00BC
69 #define TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x00C2
70 #define TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 0xC07E
71 #define TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 0xC07F
72 #define TLS_DH_RSA_WITH_SEED_CBC_SHA 0x0098
73 #define TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 0xC040
74 #define TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 0xC041
75 #define TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 0xC054
76 #define TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 0xC055
77 #define TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA 0x0014
78 #define TLS_DHE_RSA_WITH_DES_CBC_SHA 0x0015
79 #define TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA 0x0016
80 #define TLS_DHE_RSA_WITH_AES_128_CBC_SHA 0x0033
81 #define TLS_DHE_RSA_WITH_AES_256_CBC_SHA 0x0039
82 #define TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 0x0067
83 #define TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 0x006B
84 #define TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 0x009E
85 #define TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 0x009F
86 #define TLS_DHE_RSA_WITH_AES_128_CCM 0xC09E
87 #define TLS_DHE_RSA_WITH_AES_256_CCM 0xC09F
88 #define TLS_DHE_RSA_WITH_AES_128_CCM_8 0xC0A2
89 #define TLS_DHE_RSA_WITH_AES_256_CCM_8 0xC0A3
90 #define TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x0045
91 #define TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x0088
92 #define TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x00BE
93 #define TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x00C4
94 #define TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 0xC07C
95 #define TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 0xC07D
96 #define TLS_DHE_RSA_WITH_SEED_CBC_SHA 0x009A
97 #define TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 0xC044
98 #define TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 0xC045
99 #define TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 0xC052
100 #define TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 0xC053
101 #define TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 0xCCAA
102 #define TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA 0x000B
103 #define TLS_DH_DSS_WITH_DES_CBC_SHA 0x000C
104 #define TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA 0x000D
105 #define TLS_DH_DSS_WITH_AES_128_CBC_SHA 0x0030
106 #define TLS_DH_DSS_WITH_AES_256_CBC_SHA 0x0036
107 #define TLS_DH_DSS_WITH_AES_128_CBC_SHA256 0x003E
108 #define TLS_DH_DSS_WITH_AES_256_CBC_SHA256 0x0068
109 #define TLS_DH_DSS_WITH_AES_128_GCM_SHA256 0x00A4
110 #define TLS_DH_DSS_WITH_AES_256_GCM_SHA384 0x00A5
111 #define TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x0042
112 #define TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x0085
113 #define TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x00BB
114 #define TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x00C1
115 #define TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 0xC082
116 #define TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 0xC083
117 #define TLS_DH_DSS_WITH_SEED_CBC_SHA 0x0097
118 #define TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 0xC03E
119 #define TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 0xC03F
120 #define TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 0xC058
121 #define TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 0xC059
122 #define TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA 0x0011
123 #define TLS_DHE_DSS_WITH_DES_CBC_SHA 0x0012
124 #define TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA 0x0013
125 #define TLS_DHE_DSS_WITH_AES_128_CBC_SHA 0x0032
126 #define TLS_DHE_DSS_WITH_AES_256_CBC_SHA 0x0038
127 #define TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 0x0040
128 #define TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 0x006A
129 #define TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 0x00A2
130 #define TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 0x00A3
131 #define TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x0044
132 #define TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x0087
133 #define TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x00BD
134 #define TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x00C3
135 #define TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 0xC080
136 #define TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 0xC081
137 #define TLS_DHE_DSS_WITH_SEED_CBC_SHA 0x0099
138 #define TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 0xC042
139 #define TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 0xC043
140 #define TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 0xC056
141 #define TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 0xC057
142 #define TLS_DH_ANON_EXPORT_WITH_RC4_40_MD5 0x0017
143 #define TLS_DH_ANON_EXPORT_WITH_DES40_CBC_SHA 0x0019
144 #define TLS_DH_ANON_WITH_RC4_128_MD5 0x0018
145 #define TLS_DH_ANON_WITH_DES_CBC_SHA 0x001A
146 #define TLS_DH_ANON_WITH_3DES_EDE_CBC_SHA 0x001B
147 #define TLS_DH_ANON_WITH_AES_128_CBC_SHA 0x0034
148 #define TLS_DH_ANON_WITH_AES_256_CBC_SHA 0x003A
149 #define TLS_DH_ANON_WITH_AES_128_CBC_SHA256 0x006C
150 #define TLS_DH_ANON_WITH_AES_256_CBC_SHA256 0x006D
151 #define TLS_DH_ANON_WITH_AES_128_GCM_SHA256 0x00A6
152 #define TLS_DH_ANON_WITH_AES_256_GCM_SHA384 0x00A7
153 #define TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA 0x0046
154 #define TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA 0x0089
155 #define TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA256 0x00BF
156 #define TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA256 0x00C5
157 #define TLS_DH_ANON_WITH_CAMELLIA_128_GCM_SHA256 0xC084
158 #define TLS_DH_ANON_WITH_CAMELLIA_256_GCM_SHA384 0xC085
159 #define TLS_DH_ANON_WITH_SEED_CBC_SHA 0x009B
160 #define TLS_DH_ANON_WITH_ARIA_128_CBC_SHA256 0xC046
161 #define TLS_DH_ANON_WITH_ARIA_256_CBC_SHA384 0xC047
162 #define TLS_DH_ANON_WITH_ARIA_128_GCM_SHA256 0xC05A
163 #define TLS_DH_ANON_WITH_ARIA_256_GCM_SHA384 0xC05B
164 #define TLS_ECDH_RSA_WITH_NULL_SHA 0xC00B
165 #define TLS_ECDH_RSA_WITH_RC4_128_SHA 0xC00C
166 #define TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA 0xC00D
167 #define TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 0xC00E
168 #define TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 0xC00F
169 #define TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 0xC029
170 #define TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 0xC02A
171 #define TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 0xC031
172 #define TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 0xC032
173 #define TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0xC078
174 #define TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 0xC079
175 #define TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 0xC08C
176 #define TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 0xC08D
177 #define TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 0xC04E
178 #define TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 0xC04F
179 #define TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 0xC062
180 #define TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 0xC063
181 #define TLS_ECDHE_RSA_WITH_NULL_SHA 0xC010
182 #define TLS_ECDHE_RSA_WITH_RC4_128_SHA 0xC011
183 #define TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 0xC012
184 #define TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 0xC013
185 #define TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 0xC014
186 #define TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 0xC027
187 #define TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 0xC028
188 #define TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0xC02F
189 #define TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0xC030
190 #define TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0xC076
191 #define TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 0xC077
192 #define TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 0xC08A
193 #define TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 0xC08B
194 #define TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 0xC04C
195 #define TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 0xC04D
196 #define TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 0xC060
197 #define TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 0xC061
198 #define TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 0xCCA8
199 #define TLS_ECDH_ECDSA_WITH_NULL_SHA 0xC001
200 #define TLS_ECDH_ECDSA_WITH_RC4_128_SHA 0xC002
201 #define TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA 0xC003
202 #define TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0xC004
203 #define TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0xC005
204 #define TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 0xC025
205 #define TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 0xC026
206 #define TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0xC02D
207 #define TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0xC02E
208 #define TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0xC074
209 #define TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0xC075
210 #define TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 0xC088
211 #define TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 0xC089
212 #define TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 0xC04A
213 #define TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 0xC04B
214 #define TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 0xC05E
215 #define TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 0xC05F
216 #define TLS_ECDHE_ECDSA_WITH_NULL_SHA 0xC006
217 #define TLS_ECDHE_ECDSA_WITH_RC4_128_SHA 0xC007
218 #define TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA 0xC008
219 #define TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0xC009
220 #define TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0xC00A
221 #define TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 0xC023
222 #define TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 0xC024
223 #define TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0xC02B
224 #define TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0xC02C
225 #define TLS_ECDHE_ECDSA_WITH_AES_128_CCM 0xC0AC
226 #define TLS_ECDHE_ECDSA_WITH_AES_256_CCM 0xC0AD
227 #define TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 0xC0AE
228 #define TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 0xC0AF
229 #define TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0xC072
230 #define TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0xC073
231 #define TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 0xC086
232 #define TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 0xC087
233 #define TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 0xC048
234 #define TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 0xC049
235 #define TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 0xC05C
236 #define TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 0xC05D
237 #define TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 0xCCA9
238 #define TLS_ECDH_ANON_WITH_NULL_SHA 0xC015
239 #define TLS_ECDH_ANON_WITH_RC4_128_SHA 0xC016
240 #define TLS_ECDH_ANON_WITH_3DES_EDE_CBC_SHA 0xC017
241 #define TLS_ECDH_ANON_WITH_AES_128_CBC_SHA 0xC018
242 #define TLS_ECDH_ANON_WITH_AES_256_CBC_SHA 0xC019
243 #define TLS_PSK_WITH_NULL_SHA 0x002C
244 #define TLS_PSK_WITH_NULL_SHA256 0x00B0
245 #define TLS_PSK_WITH_NULL_SHA384 0x00B1
246 #define TLS_PSK_WITH_RC4_128_SHA 0x008A
247 #define TLS_PSK_WITH_3DES_EDE_CBC_SHA 0x008B
248 #define TLS_PSK_WITH_AES_128_CBC_SHA 0x008C
249 #define TLS_PSK_WITH_AES_256_CBC_SHA 0x008D
250 #define TLS_PSK_WITH_AES_128_CBC_SHA256 0x00AE
251 #define TLS_PSK_WITH_AES_256_CBC_SHA384 0x00AF
252 #define TLS_PSK_WITH_AES_128_GCM_SHA256 0x00A8
253 #define TLS_PSK_WITH_AES_256_GCM_SHA384 0x00A9
254 #define TLS_PSK_WITH_AES_128_CCM 0xC0A4
255 #define TLS_PSK_WITH_AES_256_CCM 0xC0A5
256 #define TLS_PSK_WITH_AES_128_CCM_8 0xC0A8
257 #define TLS_PSK_WITH_AES_256_CCM_8 0xC0A9
258 #define TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 0xC094
259 #define TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 0xC095
260 #define TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 0xC08E
261 #define TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 0xC08F
262 #define TLS_PSK_WITH_ARIA_128_CBC_SHA256 0xC064
263 #define TLS_PSK_WITH_ARIA_256_CBC_SHA384 0xC065
264 #define TLS_PSK_WITH_ARIA_128_GCM_SHA256 0xC06A
265 #define TLS_PSK_WITH_ARIA_256_GCM_SHA384 0xC06B
266 #define TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAB
267 #define TLS_RSA_PSK_WITH_NULL_SHA 0x002E
268 #define TLS_RSA_PSK_WITH_NULL_SHA256 0x00B8
269 #define TLS_RSA_PSK_WITH_NULL_SHA384 0x00B9
270 #define TLS_RSA_PSK_WITH_RC4_128_SHA 0x0092
271 #define TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA 0x0093
272 #define TLS_RSA_PSK_WITH_AES_128_CBC_SHA 0x0094
273 #define TLS_RSA_PSK_WITH_AES_256_CBC_SHA 0x0095
274 #define TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 0x00B6
275 #define TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 0x00B7
276 #define TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 0x00AC
277 #define TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 0x00AD
278 #define TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 0xC098
279 #define TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 0xC099
280 #define TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 0xC092
281 #define TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 0xC093
282 #define TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 0xC068
283 #define TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 0xC069
284 #define TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 0xC06E
285 #define TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 0xC06F
286 #define TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAE
287 #define TLS_DHE_PSK_WITH_NULL_SHA 0x002D
288 #define TLS_DHE_PSK_WITH_NULL_SHA256 0x00B4
289 #define TLS_DHE_PSK_WITH_NULL_SHA384 0x00B5
290 #define TLS_DHE_PSK_WITH_RC4_128_SHA 0x008E
291 #define TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA 0x008F
292 #define TLS_DHE_PSK_WITH_AES_128_CBC_SHA 0x0090
293 #define TLS_DHE_PSK_WITH_AES_256_CBC_SHA 0x0091
294 #define TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 0x00B2
295 #define TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 0x00B3
296 #define TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 0x00AA
297 #define TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 0x00AB
298 #define TLS_DHE_PSK_WITH_AES_128_CCM 0xC0A6
299 #define TLS_DHE_PSK_WITH_AES_256_CCM 0xC0A7
300 #define TLS_DHE_PSK_WITH_AES_128_CCM_8 0xC0AA
301 #define TLS_DHE_PSK_WITH_AES_256_CCM_8 0xC0AB
302 #define TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0xC096
303 #define TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0xC097
304 #define TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 0xC090
305 #define TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 0xC091
306 #define TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 0xC066
307 #define TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 0xC067
308 #define TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 0xC06C
309 #define TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 0xC06D
310 #define TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAD
311 #define TLS_ECDHE_PSK_WITH_NULL_SHA 0xC039
312 #define TLS_ECDHE_PSK_WITH_NULL_SHA256 0xC03A
313 #define TLS_ECDHE_PSK_WITH_NULL_SHA384 0xC03B
314 #define TLS_ECDHE_PSK_WITH_RC4_128_SHA 0xC033
315 #define TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 0xC034
316 #define TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA 0xC035
317 #define TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA 0xC036
318 #define TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0xC037
319 #define TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 0xC038
320 #define TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 0xD001
321 #define TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384 0xD002
322 #define TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256 0xD005
323 #define TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 0xD003
324 #define TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0xC09A
325 #define TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0xC09B
326 #define TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 0xC070
327 #define TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 0xC071
328 #define TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAC
329 #define TLS_KRB5_EXPORT_WITH_RC4_40_MD5 0x002B
330 #define TLS_KRB5_EXPORT_WITH_RC4_40_SHA 0x0028
331 #define TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 0x002A
332 #define TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA 0x0027
333 #define TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 0x0029
334 #define TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA 0x0026
335 #define TLS_KRB5_WITH_RC4_128_MD5 0x0024
336 #define TLS_KRB5_WITH_RC4_128_SHA 0x0020
337 #define TLS_KRB5_WITH_IDEA_CBC_MD5 0x0025
338 #define TLS_KRB5_WITH_IDEA_CBC_SHA 0x0021
339 #define TLS_KRB5_WITH_DES_CBC_MD5 0x0022
340 #define TLS_KRB5_WITH_DES_CBC_SHA 0x001E
341 #define TLS_KRB5_WITH_3DES_EDE_CBC_MD5 0x0023
342 #define TLS_KRB5_WITH_3DES_EDE_CBC_SHA 0x001F
343 #define TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0xC01A
344 #define TLS_SRP_SHA_WITH_AES_128_CBC_SHA 0xC01D
345 #define TLS_SRP_SHA_WITH_AES_256_CBC_SHA 0xC020
346 #define TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0xC01B
347 #define TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0xC01E
348 #define TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0xC021
349 #define TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0xC01C
350 #define TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0xC01F
351 #define TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0xC022
352 #define TLS_ECCPWD_WITH_AES_128_GCM_SHA256 0xC0B0
353 #define TLS_ECCPWD_WITH_AES_256_GCM_SHA384 0xC0B1
354 #define TLS_ECCPWD_WITH_AES_128_CCM_SHA256 0xC0B2
355 #define TLS_ECCPWD_WITH_AES_256_CCM_SHA384 0xC0B3
356 #define TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC 0xC100
357 #define TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC 0xC101
358 #define TLS_GOSTR341112_256_WITH_28147_CNT_IMIT 0xC102
359 #define TLS_AES_128_GCM_SHA256 0x1301
360 #define TLS_AES_256_GCM_SHA384 0x1302
361 #define TLS_AES_128_CCM_SHA256 0x1304
362 #define TLS_AES_128_CCM_8_SHA256 0x1305
363 #define TLS_CHACHA20_POLY1305_SHA256 0x1303
364 #define TLS_SM4_GCM_SM3 0x00C6
365 #define TLS_SM4_CCM_SM3 0x00C7
366 #define TLS_SHA256_SHA256 0xC0B4
367 #define TLS_SHA384_SHA384 0xC0B5
368 #define TLS_EMPTY_RENEGOTIATION_INFO_SCSV 0x00FF
369 #define TLS_FALLBACK_SCSV 0x5600
370 
371 /* https://datatracker.ietf.org/doc/html/rfc8701 */
372 #define TLS_CIPHER_GREASE_RESERVED_0  0x0A0A
373 #define TLS_CIPHER_GREASE_RESERVED_1  0x1A1A
374 #define TLS_CIPHER_GREASE_RESERVED_2  0x2A2A
375 #define TLS_CIPHER_GREASE_RESERVED_3  0x3A3A
376 #define TLS_CIPHER_GREASE_RESERVED_4  0x4A4A
377 #define TLS_CIPHER_GREASE_RESERVED_5  0x5A5A
378 #define TLS_CIPHER_GREASE_RESERVED_6  0x6A6A
379 #define TLS_CIPHER_GREASE_RESERVED_7  0x7A7A
380 #define TLS_CIPHER_GREASE_RESERVED_8  0x8A8A
381 #define TLS_CIPHER_GREASE_RESERVED_9  0x9A9A
382 #define TLS_CIPHER_GREASE_RESERVED_A  0xAAAA
383 #define TLS_CIPHER_GREASE_RESERVED_B  0xBABA
384 #define TLS_CIPHER_GREASE_RESERVED_C  0xCACA
385 #define TLS_CIPHER_GREASE_RESERVED_D  0xDADA
386 #define TLS_CIPHER_GREASE_RESERVED_E  0xEAEA
387 #define TLS_CIPHER_GREASE_RESERVED_F  0xFAFA
388 
389 /* ********************************************** */
390 
391 /* Signature algorithms */
392 
393 #define RSA_PKCS1_SHA1          0x0201
394 #define ECDSA_SHA1              0x0203
395 #define RSA_PKCS1_SHA256        0x0401
396 #define ECDSA_SECP256R1_SHA256  0x0403
397 #define RSA_PKCS1_SHA384        0x0501
398 #define ECDSA_SECP384R1_SHA384  0x0503
399 #define RSA_PKCS1_SHA512        0x0601
400 #define ECDSA_SECP521R1_SHA512  0x0603
401 #define RSA_PSS_RSAE_SHA256     0x0804
402 #define RSA_PSS_RSAE_SHA384     0x0805
403 #define RSA_PSS_RSAE_SHA512     0x0806
404 #define ED25519                 0x0807
405 #define ED448                   0x0808
406 #define RSA_PSS_PSS_SHA256      0x0809
407 #define RSA_PSS_PSS_SHA384      0x080A
408 #define RSA_PSS_PSS_SHA512      0x080B
409