1use crate::msgs::codec::{Codec, Reader};
3
4enum_builder! {
5 @U16
9 EnumName: ProtocolVersion;
10 EnumVal{
11 SSLv2 => 0x0200,
12 SSLv3 => 0x0300,
13 TLSv1_0 => 0x0301,
14 TLSv1_1 => 0x0302,
15 TLSv1_2 => 0x0303,
16 TLSv1_3 => 0x0304
17 }
18}
19
20enum_builder! {
21 @U8
25 EnumName: HashAlgorithm;
26 EnumVal{
27 NONE => 0x00,
28 MD5 => 0x01,
29 SHA1 => 0x02,
30 SHA224 => 0x03,
31 SHA256 => 0x04,
32 SHA384 => 0x05,
33 SHA512 => 0x06
34 }
35}
36
37enum_builder! {
38 @U8
42 EnumName: SignatureAlgorithm;
43 EnumVal{
44 Anonymous => 0x00,
45 RSA => 0x01,
46 DSA => 0x02,
47 ECDSA => 0x03,
48 ED25519 => 0x07,
49 ED448 => 0x08
50 }
51}
52
53enum_builder! {
54 @U8
58 EnumName: ClientCertificateType;
59 EnumVal{
60 RSASign => 0x01,
61 DSSSign => 0x02,
62 RSAFixedDH => 0x03,
63 DSSFixedDH => 0x04,
64 RSAEphemeralDH => 0x05,
65 DSSEphemeralDH => 0x06,
66 FortezzaDMS => 0x14,
67 ECDSASign => 0x40,
68 RSAFixedECDH => 0x41,
69 ECDSAFixedECDH => 0x42
70 }
71}
72
73enum_builder! {
74 @U8
78 EnumName: Compression;
79 EnumVal{
80 Null => 0x00,
81 Deflate => 0x01,
82 LSZ => 0x40
83 }
84}
85
86enum_builder! {
87 @U8
91 EnumName: ContentType;
92 EnumVal{
93 ChangeCipherSpec => 0x14,
94 Alert => 0x15,
95 Handshake => 0x16,
96 ApplicationData => 0x17,
97 Heartbeat => 0x18
98 }
99}
100
101enum_builder! {
102 @U8
106 EnumName: HandshakeType;
107 EnumVal{
108 HelloRequest => 0x00,
109 ClientHello => 0x01,
110 ServerHello => 0x02,
111 NewSessionTicket => 0x04,
112 EndOfEarlyData => 0x05,
113 HelloRetryRequest => 0x06,
114 EncryptedExtensions => 0x08,
115 Certificate => 0x0b,
116 ServerKeyExchange => 0x0c,
117 CertificateRequest => 0x0d,
118 ServerHelloDone => 0x0e,
119 CertificateVerify => 0x0f,
120 ClientKeyExchange => 0x10,
121 Finished => 0x14,
122 CertificateURL => 0x15,
123 CertificateStatus => 0x16,
124 KeyUpdate => 0x18,
125 MessageHash => 0xfe
126 }
127}
128
129enum_builder! {
130 @U8
134 EnumName: AlertLevel;
135 EnumVal{
136 Warning => 0x01,
137 Fatal => 0x02
138 }
139}
140
141enum_builder! {
142 @U8
146 EnumName: AlertDescription;
147 EnumVal{
148 CloseNotify => 0x00,
149 UnexpectedMessage => 0x0a,
150 BadRecordMac => 0x14,
151 DecryptionFailed => 0x15,
152 RecordOverflow => 0x16,
153 DecompressionFailure => 0x1e,
154 HandshakeFailure => 0x28,
155 NoCertificate => 0x29,
156 BadCertificate => 0x2a,
157 UnsupportedCertificate => 0x2b,
158 CertificateRevoked => 0x2c,
159 CertificateExpired => 0x2d,
160 CertificateUnknown => 0x2e,
161 IllegalParameter => 0x2f,
162 UnknownCA => 0x30,
163 AccessDenied => 0x31,
164 DecodeError => 0x32,
165 DecryptError => 0x33,
166 ExportRestriction => 0x3c,
167 ProtocolVersion => 0x46,
168 InsufficientSecurity => 0x47,
169 InternalError => 0x50,
170 InappropriateFallback => 0x56,
171 UserCanceled => 0x5a,
172 NoRenegotiation => 0x64,
173 MissingExtension => 0x6d,
174 UnsupportedExtension => 0x6e,
175 CertificateUnobtainable => 0x6f,
176 UnrecognisedName => 0x70,
177 BadCertificateStatusResponse => 0x71,
178 BadCertificateHashValue => 0x72,
179 UnknownPSKIdentity => 0x73,
180 CertificateRequired => 0x74,
181 NoApplicationProtocol => 0x78
182 }
183}
184
185enum_builder! {
186 @U8
190 EnumName: HeartbeatMessageType;
191 EnumVal{
192 Request => 0x01,
193 Response => 0x02
194 }
195}
196
197enum_builder! {
198 @U16
202 EnumName: ExtensionType;
203 EnumVal{
204 ServerName => 0x0000,
205 MaxFragmentLength => 0x0001,
206 ClientCertificateUrl => 0x0002,
207 TrustedCAKeys => 0x0003,
208 TruncatedHMAC => 0x0004,
209 StatusRequest => 0x0005,
210 UserMapping => 0x0006,
211 ClientAuthz => 0x0007,
212 ServerAuthz => 0x0008,
213 CertificateType => 0x0009,
214 EllipticCurves => 0x000a,
215 ECPointFormats => 0x000b,
216 SRP => 0x000c,
217 SignatureAlgorithms => 0x000d,
218 UseSRTP => 0x000e,
219 Heartbeat => 0x000f,
220 ALProtocolNegotiation => 0x0010,
221 SCT => 0x0012,
222 Padding => 0x0015,
223 ExtendedMasterSecret => 0x0017,
224 SessionTicket => 0x0023,
225 PreSharedKey => 0x0029,
226 EarlyData => 0x002a,
227 SupportedVersions => 0x002b,
228 Cookie => 0x002c,
229 PSKKeyExchangeModes => 0x002d,
230 TicketEarlyDataInfo => 0x002e,
231 CertificateAuthorities => 0x002f,
232 OIDFilters => 0x0030,
233 PostHandshakeAuth => 0x0031,
234 SignatureAlgorithmsCert => 0x0032,
235 KeyShare => 0x0033,
236 NextProtocolNegotiation => 0x3374,
237 ChannelId => 0x754f,
238 RenegotiationInfo => 0xff01,
239 TransportParameters => 0xffa5
240 }
241}
242
243enum_builder! {
244 @U8
248 EnumName: ServerNameType;
249 EnumVal{
250 HostName => 0x00
251 }
252}
253
254enum_builder! {
255 @U16
259 EnumName: NamedCurve;
260 EnumVal{
261 sect163k1 => 0x0001,
262 sect163r1 => 0x0002,
263 sect163r2 => 0x0003,
264 sect193r1 => 0x0004,
265 sect193r2 => 0x0005,
266 sect233k1 => 0x0006,
267 sect233r1 => 0x0007,
268 sect239k1 => 0x0008,
269 sect283k1 => 0x0009,
270 sect283r1 => 0x000a,
271 sect409k1 => 0x000b,
272 sect409r1 => 0x000c,
273 sect571k1 => 0x000d,
274 sect571r1 => 0x000e,
275 secp160k1 => 0x000f,
276 secp160r1 => 0x0010,
277 secp160r2 => 0x0011,
278 secp192k1 => 0x0012,
279 secp192r1 => 0x0013,
280 secp224k1 => 0x0014,
281 secp224r1 => 0x0015,
282 secp256k1 => 0x0016,
283 secp256r1 => 0x0017,
284 secp384r1 => 0x0018,
285 secp521r1 => 0x0019,
286 brainpoolp256r1 => 0x001a,
287 brainpoolp384r1 => 0x001b,
288 brainpoolp512r1 => 0x001c,
289 X25519 => 0x001d,
290 X448 => 0x001e,
291 arbitrary_explicit_prime_curves => 0xff01,
292 arbitrary_explicit_char2_curves => 0xff02
293 }
294}
295
296enum_builder! {
297 @U16
301 EnumName: NamedGroup;
302 EnumVal{
303 secp256r1 => 0x0017,
304 secp384r1 => 0x0018,
305 secp521r1 => 0x0019,
306 X25519 => 0x001d,
307 X448 => 0x001e,
308 FFDHE2048 => 0x0100,
309 FFDHE3072 => 0x0101,
310 FFDHE4096 => 0x0102,
311 FFDHE6144 => 0x0103,
312 FFDHE8192 => 0x0104
313 }
314}
315
316enum_builder! {
317 @U16
321 EnumName: CipherSuite;
322 EnumVal{
323 TLS_NULL_WITH_NULL_NULL => 0x0000,
324 TLS_RSA_WITH_NULL_MD5 => 0x0001,
325 TLS_RSA_WITH_NULL_SHA => 0x0002,
326 TLS_RSA_EXPORT_WITH_RC4_40_MD5 => 0x0003,
327 TLS_RSA_WITH_RC4_128_MD5 => 0x0004,
328 TLS_RSA_WITH_RC4_128_SHA => 0x0005,
329 TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 => 0x0006,
330 TLS_RSA_WITH_IDEA_CBC_SHA => 0x0007,
331 TLS_RSA_EXPORT_WITH_DES40_CBC_SHA => 0x0008,
332 TLS_RSA_WITH_DES_CBC_SHA => 0x0009,
333 TLS_RSA_WITH_3DES_EDE_CBC_SHA => 0x000a,
334 TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA => 0x000b,
335 TLS_DH_DSS_WITH_DES_CBC_SHA => 0x000c,
336 TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA => 0x000d,
337 TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA => 0x000e,
338 TLS_DH_RSA_WITH_DES_CBC_SHA => 0x000f,
339 TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA => 0x0010,
340 TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA => 0x0011,
341 TLS_DHE_DSS_WITH_DES_CBC_SHA => 0x0012,
342 TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA => 0x0013,
343 TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA => 0x0014,
344 TLS_DHE_RSA_WITH_DES_CBC_SHA => 0x0015,
345 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA => 0x0016,
346 TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 => 0x0017,
347 TLS_DH_anon_WITH_RC4_128_MD5 => 0x0018,
348 TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA => 0x0019,
349 TLS_DH_anon_WITH_DES_CBC_SHA => 0x001a,
350 TLS_DH_anon_WITH_3DES_EDE_CBC_SHA => 0x001b,
351 SSL_FORTEZZA_KEA_WITH_NULL_SHA => 0x001c,
352 SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA => 0x001d,
353 TLS_KRB5_WITH_DES_CBC_SHA_or_SSL_FORTEZZA_KEA_WITH_RC4_128_SHA => 0x001e,
354 TLS_KRB5_WITH_3DES_EDE_CBC_SHA => 0x001f,
355 TLS_KRB5_WITH_RC4_128_SHA => 0x0020,
356 TLS_KRB5_WITH_IDEA_CBC_SHA => 0x0021,
357 TLS_KRB5_WITH_DES_CBC_MD5 => 0x0022,
358 TLS_KRB5_WITH_3DES_EDE_CBC_MD5 => 0x0023,
359 TLS_KRB5_WITH_RC4_128_MD5 => 0x0024,
360 TLS_KRB5_WITH_IDEA_CBC_MD5 => 0x0025,
361 TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA => 0x0026,
362 TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA => 0x0027,
363 TLS_KRB5_EXPORT_WITH_RC4_40_SHA => 0x0028,
364 TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 => 0x0029,
365 TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 => 0x002a,
366 TLS_KRB5_EXPORT_WITH_RC4_40_MD5 => 0x002b,
367 TLS_PSK_WITH_NULL_SHA => 0x002c,
368 TLS_DHE_PSK_WITH_NULL_SHA => 0x002d,
369 TLS_RSA_PSK_WITH_NULL_SHA => 0x002e,
370 TLS_RSA_WITH_AES_128_CBC_SHA => 0x002f,
371 TLS_DH_DSS_WITH_AES_128_CBC_SHA => 0x0030,
372 TLS_DH_RSA_WITH_AES_128_CBC_SHA => 0x0031,
373 TLS_DHE_DSS_WITH_AES_128_CBC_SHA => 0x0032,
374 TLS_DHE_RSA_WITH_AES_128_CBC_SHA => 0x0033,
375 TLS_DH_anon_WITH_AES_128_CBC_SHA => 0x0034,
376 TLS_RSA_WITH_AES_256_CBC_SHA => 0x0035,
377 TLS_DH_DSS_WITH_AES_256_CBC_SHA => 0x0036,
378 TLS_DH_RSA_WITH_AES_256_CBC_SHA => 0x0037,
379 TLS_DHE_DSS_WITH_AES_256_CBC_SHA => 0x0038,
380 TLS_DHE_RSA_WITH_AES_256_CBC_SHA => 0x0039,
381 TLS_DH_anon_WITH_AES_256_CBC_SHA => 0x003a,
382 TLS_RSA_WITH_NULL_SHA256 => 0x003b,
383 TLS_RSA_WITH_AES_128_CBC_SHA256 => 0x003c,
384 TLS_RSA_WITH_AES_256_CBC_SHA256 => 0x003d,
385 TLS_DH_DSS_WITH_AES_128_CBC_SHA256 => 0x003e,
386 TLS_DH_RSA_WITH_AES_128_CBC_SHA256 => 0x003f,
387 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 => 0x0040,
388 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA => 0x0041,
389 TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA => 0x0042,
390 TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA => 0x0043,
391 TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA => 0x0044,
392 TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA => 0x0045,
393 TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA => 0x0046,
394 TLS_ECDH_ECDSA_WITH_NULL_SHA_draft => 0x0047,
395 TLS_ECDH_ECDSA_WITH_RC4_128_SHA_draft => 0x0048,
396 TLS_ECDH_ECDSA_WITH_DES_CBC_SHA_draft => 0x0049,
397 TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA_draft => 0x004a,
398 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA_draft => 0x004b,
399 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA_draft => 0x004c,
400 TLS_ECDH_ECNRA_WITH_DES_CBC_SHA_draft => 0x004d,
401 TLS_ECDH_ECNRA_WITH_3DES_EDE_CBC_SHA_draft => 0x004e,
402 TLS_ECMQV_ECDSA_NULL_SHA_draft => 0x004f,
403 TLS_ECMQV_ECDSA_WITH_RC4_128_SHA_draft => 0x0050,
404 TLS_ECMQV_ECDSA_WITH_DES_CBC_SHA_draft => 0x0051,
405 TLS_ECMQV_ECDSA_WITH_3DES_EDE_CBC_SHA_draft => 0x0052,
406 TLS_ECMQV_ECNRA_NULL_SHA_draft => 0x0053,
407 TLS_ECMQV_ECNRA_WITH_RC4_128_SHA_draft => 0x0054,
408 TLS_ECMQV_ECNRA_WITH_DES_CBC_SHA_draft => 0x0055,
409 TLS_ECMQV_ECNRA_WITH_3DES_EDE_CBC_SHA_draft => 0x0056,
410 TLS_ECDH_anon_NULL_WITH_SHA_draft => 0x0057,
411 TLS_ECDH_anon_WITH_RC4_128_SHA_draft => 0x0058,
412 TLS_ECDH_anon_WITH_DES_CBC_SHA_draft => 0x0059,
413 TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA_draft => 0x005a,
414 TLS_ECDH_anon_EXPORT_WITH_DES40_CBC_SHA_draft => 0x005b,
415 TLS_ECDH_anon_EXPORT_WITH_RC4_40_SHA_draft => 0x005c,
416 TLS_RSA_EXPORT1024_WITH_RC4_56_MD5 => 0x0060,
417 TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 => 0x0061,
418 TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA => 0x0062,
419 TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA => 0x0063,
420 TLS_RSA_EXPORT1024_WITH_RC4_56_SHA => 0x0064,
421 TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA => 0x0065,
422 TLS_DHE_DSS_WITH_RC4_128_SHA => 0x0066,
423 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 => 0x0067,
424 TLS_DH_DSS_WITH_AES_256_CBC_SHA256 => 0x0068,
425 TLS_DH_RSA_WITH_AES_256_CBC_SHA256 => 0x0069,
426 TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 => 0x006a,
427 TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 => 0x006b,
428 TLS_DH_anon_WITH_AES_128_CBC_SHA256 => 0x006c,
429 TLS_DH_anon_WITH_AES_256_CBC_SHA256 => 0x006d,
430 TLS_DHE_DSS_WITH_3DES_EDE_CBC_RMD => 0x0072,
431 TLS_DHE_DSS_WITH_AES_128_CBC_RMD => 0x0073,
432 TLS_DHE_DSS_WITH_AES_256_CBC_RMD => 0x0074,
433 TLS_DHE_RSA_WITH_3DES_EDE_CBC_RMD => 0x0077,
434 TLS_DHE_RSA_WITH_AES_128_CBC_RMD => 0x0078,
435 TLS_DHE_RSA_WITH_AES_256_CBC_RMD => 0x0079,
436 TLS_RSA_WITH_3DES_EDE_CBC_RMD => 0x007c,
437 TLS_RSA_WITH_AES_128_CBC_RMD => 0x007d,
438 TLS_RSA_WITH_AES_256_CBC_RMD => 0x007e,
439 TLS_GOSTR341094_WITH_28147_CNT_IMIT => 0x0080,
440 TLS_GOSTR341001_WITH_28147_CNT_IMIT => 0x0081,
441 TLS_GOSTR341094_WITH_NULL_GOSTR3411 => 0x0082,
442 TLS_GOSTR341001_WITH_NULL_GOSTR3411 => 0x0083,
443 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA => 0x0084,
444 TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA => 0x0085,
445 TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA => 0x0086,
446 TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA => 0x0087,
447 TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA => 0x0088,
448 TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA => 0x0089,
449 TLS_PSK_WITH_RC4_128_SHA => 0x008a,
450 TLS_PSK_WITH_3DES_EDE_CBC_SHA => 0x008b,
451 TLS_PSK_WITH_AES_128_CBC_SHA => 0x008c,
452 TLS_PSK_WITH_AES_256_CBC_SHA => 0x008d,
453 TLS_DHE_PSK_WITH_RC4_128_SHA => 0x008e,
454 TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA => 0x008f,
455 TLS_DHE_PSK_WITH_AES_128_CBC_SHA => 0x0090,
456 TLS_DHE_PSK_WITH_AES_256_CBC_SHA => 0x0091,
457 TLS_RSA_PSK_WITH_RC4_128_SHA => 0x0092,
458 TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA => 0x0093,
459 TLS_RSA_PSK_WITH_AES_128_CBC_SHA => 0x0094,
460 TLS_RSA_PSK_WITH_AES_256_CBC_SHA => 0x0095,
461 TLS_RSA_WITH_SEED_CBC_SHA => 0x0096,
462 TLS_DH_DSS_WITH_SEED_CBC_SHA => 0x0097,
463 TLS_DH_RSA_WITH_SEED_CBC_SHA => 0x0098,
464 TLS_DHE_DSS_WITH_SEED_CBC_SHA => 0x0099,
465 TLS_DHE_RSA_WITH_SEED_CBC_SHA => 0x009a,
466 TLS_DH_anon_WITH_SEED_CBC_SHA => 0x009b,
467 TLS_RSA_WITH_AES_128_GCM_SHA256 => 0x009c,
468 TLS_RSA_WITH_AES_256_GCM_SHA384 => 0x009d,
469 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 => 0x009e,
470 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 => 0x009f,
471 TLS_DH_RSA_WITH_AES_128_GCM_SHA256 => 0x00a0,
472 TLS_DH_RSA_WITH_AES_256_GCM_SHA384 => 0x00a1,
473 TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 => 0x00a2,
474 TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 => 0x00a3,
475 TLS_DH_DSS_WITH_AES_128_GCM_SHA256 => 0x00a4,
476 TLS_DH_DSS_WITH_AES_256_GCM_SHA384 => 0x00a5,
477 TLS_DH_anon_WITH_AES_128_GCM_SHA256 => 0x00a6,
478 TLS_DH_anon_WITH_AES_256_GCM_SHA384 => 0x00a7,
479 TLS_PSK_WITH_AES_128_GCM_SHA256 => 0x00a8,
480 TLS_PSK_WITH_AES_256_GCM_SHA384 => 0x00a9,
481 TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 => 0x00aa,
482 TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 => 0x00ab,
483 TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 => 0x00ac,
484 TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 => 0x00ad,
485 TLS_PSK_WITH_AES_128_CBC_SHA256 => 0x00ae,
486 TLS_PSK_WITH_AES_256_CBC_SHA384 => 0x00af,
487 TLS_PSK_WITH_NULL_SHA256 => 0x00b0,
488 TLS_PSK_WITH_NULL_SHA384 => 0x00b1,
489 TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 => 0x00b2,
490 TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 => 0x00b3,
491 TLS_DHE_PSK_WITH_NULL_SHA256 => 0x00b4,
492 TLS_DHE_PSK_WITH_NULL_SHA384 => 0x00b5,
493 TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 => 0x00b6,
494 TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 => 0x00b7,
495 TLS_RSA_PSK_WITH_NULL_SHA256 => 0x00b8,
496 TLS_RSA_PSK_WITH_NULL_SHA384 => 0x00b9,
497 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 => 0x00ba,
498 TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 => 0x00bb,
499 TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 => 0x00bc,
500 TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 => 0x00bd,
501 TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 => 0x00be,
502 TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 => 0x00bf,
503 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 => 0x00c0,
504 TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 => 0x00c1,
505 TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 => 0x00c2,
506 TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 => 0x00c3,
507 TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 => 0x00c4,
508 TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 => 0x00c5,
509 TLS_EMPTY_RENEGOTIATION_INFO_SCSV => 0x00ff,
510 TLS13_AES_128_GCM_SHA256 => 0x1301,
511 TLS13_AES_256_GCM_SHA384 => 0x1302,
512 TLS13_CHACHA20_POLY1305_SHA256 => 0x1303,
513 TLS13_AES_128_CCM_SHA256 => 0x1304,
514 TLS13_AES_128_CCM_8_SHA256 => 0x1305,
515 TLS_ECDH_ECDSA_WITH_NULL_SHA => 0xc001,
516 TLS_ECDH_ECDSA_WITH_RC4_128_SHA => 0xc002,
517 TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA => 0xc003,
518 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA => 0xc004,
519 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA => 0xc005,
520 TLS_ECDHE_ECDSA_WITH_NULL_SHA => 0xc006,
521 TLS_ECDHE_ECDSA_WITH_RC4_128_SHA => 0xc007,
522 TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA => 0xc008,
523 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA => 0xc009,
524 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA => 0xc00a,
525 TLS_ECDH_RSA_WITH_NULL_SHA => 0xc00b,
526 TLS_ECDH_RSA_WITH_RC4_128_SHA => 0xc00c,
527 TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA => 0xc00d,
528 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA => 0xc00e,
529 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA => 0xc00f,
530 TLS_ECDHE_RSA_WITH_NULL_SHA => 0xc010,
531 TLS_ECDHE_RSA_WITH_RC4_128_SHA => 0xc011,
532 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA => 0xc012,
533 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA => 0xc013,
534 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA => 0xc014,
535 TLS_ECDH_anon_WITH_NULL_SHA => 0xc015,
536 TLS_ECDH_anon_WITH_RC4_128_SHA => 0xc016,
537 TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA => 0xc017,
538 TLS_ECDH_anon_WITH_AES_128_CBC_SHA => 0xc018,
539 TLS_ECDH_anon_WITH_AES_256_CBC_SHA => 0xc019,
540 TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA => 0xc01a,
541 TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA => 0xc01b,
542 TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA => 0xc01c,
543 TLS_SRP_SHA_WITH_AES_128_CBC_SHA => 0xc01d,
544 TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA => 0xc01e,
545 TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA => 0xc01f,
546 TLS_SRP_SHA_WITH_AES_256_CBC_SHA => 0xc020,
547 TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA => 0xc021,
548 TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA => 0xc022,
549 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 => 0xc023,
550 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 => 0xc024,
551 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 => 0xc025,
552 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 => 0xc026,
553 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 => 0xc027,
554 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 => 0xc028,
555 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 => 0xc029,
556 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 => 0xc02a,
557 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 => 0xc02b,
558 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 => 0xc02c,
559 TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 => 0xc02d,
560 TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 => 0xc02e,
561 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 => 0xc02f,
562 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 => 0xc030,
563 TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 => 0xc031,
564 TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 => 0xc032,
565 TLS_ECDHE_PSK_WITH_RC4_128_SHA => 0xc033,
566 TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA => 0xc034,
567 TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA => 0xc035,
568 TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA => 0xc036,
569 TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 => 0xc037,
570 TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 => 0xc038,
571 TLS_ECDHE_PSK_WITH_NULL_SHA => 0xc039,
572 TLS_ECDHE_PSK_WITH_NULL_SHA256 => 0xc03a,
573 TLS_ECDHE_PSK_WITH_NULL_SHA384 => 0xc03b,
574 TLS_RSA_WITH_ARIA_128_CBC_SHA256 => 0xc03c,
575 TLS_RSA_WITH_ARIA_256_CBC_SHA384 => 0xc03d,
576 TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 => 0xc03e,
577 TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 => 0xc03f,
578 TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 => 0xc040,
579 TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 => 0xc041,
580 TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 => 0xc042,
581 TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 => 0xc043,
582 TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 => 0xc044,
583 TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 => 0xc045,
584 TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 => 0xc046,
585 TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 => 0xc047,
586 TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 => 0xc048,
587 TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 => 0xc049,
588 TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 => 0xc04a,
589 TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 => 0xc04b,
590 TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 => 0xc04c,
591 TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 => 0xc04d,
592 TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 => 0xc04e,
593 TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 => 0xc04f,
594 TLS_RSA_WITH_ARIA_128_GCM_SHA256 => 0xc050,
595 TLS_RSA_WITH_ARIA_256_GCM_SHA384 => 0xc051,
596 TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 => 0xc052,
597 TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 => 0xc053,
598 TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 => 0xc054,
599 TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 => 0xc055,
600 TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 => 0xc056,
601 TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 => 0xc057,
602 TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 => 0xc058,
603 TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 => 0xc059,
604 TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 => 0xc05a,
605 TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 => 0xc05b,
606 TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 => 0xc05c,
607 TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 => 0xc05d,
608 TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 => 0xc05e,
609 TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 => 0xc05f,
610 TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 => 0xc060,
611 TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 => 0xc061,
612 TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 => 0xc062,
613 TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 => 0xc063,
614 TLS_PSK_WITH_ARIA_128_CBC_SHA256 => 0xc064,
615 TLS_PSK_WITH_ARIA_256_CBC_SHA384 => 0xc065,
616 TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 => 0xc066,
617 TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 => 0xc067,
618 TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 => 0xc068,
619 TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 => 0xc069,
620 TLS_PSK_WITH_ARIA_128_GCM_SHA256 => 0xc06a,
621 TLS_PSK_WITH_ARIA_256_GCM_SHA384 => 0xc06b,
622 TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 => 0xc06c,
623 TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 => 0xc06d,
624 TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 => 0xc06e,
625 TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 => 0xc06f,
626 TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 => 0xc070,
627 TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 => 0xc071,
628 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 => 0xc072,
629 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 => 0xc073,
630 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 => 0xc074,
631 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 => 0xc075,
632 TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 => 0xc076,
633 TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 => 0xc077,
634 TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 => 0xc078,
635 TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 => 0xc079,
636 TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 => 0xc07a,
637 TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 => 0xc07b,
638 TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 => 0xc07c,
639 TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 => 0xc07d,
640 TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 => 0xc07e,
641 TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 => 0xc07f,
642 TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 => 0xc080,
643 TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 => 0xc081,
644 TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 => 0xc082,
645 TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 => 0xc083,
646 TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 => 0xc084,
647 TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 => 0xc085,
648 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 => 0xc086,
649 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 => 0xc087,
650 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 => 0xc088,
651 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 => 0xc089,
652 TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 => 0xc08a,
653 TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 => 0xc08b,
654 TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 => 0xc08c,
655 TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 => 0xc08d,
656 TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 => 0xc08e,
657 TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 => 0xc08f,
658 TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 => 0xc090,
659 TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 => 0xc091,
660 TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 => 0xc092,
661 TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 => 0xc093,
662 TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 => 0xc094,
663 TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 => 0xc095,
664 TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 => 0xc096,
665 TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 => 0xc097,
666 TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 => 0xc098,
667 TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 => 0xc099,
668 TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 => 0xc09a,
669 TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 => 0xc09b,
670 TLS_RSA_WITH_AES_128_CCM => 0xc09c,
671 TLS_RSA_WITH_AES_256_CCM => 0xc09d,
672 TLS_DHE_RSA_WITH_AES_128_CCM => 0xc09e,
673 TLS_DHE_RSA_WITH_AES_256_CCM => 0xc09f,
674 TLS_RSA_WITH_AES_128_CCM_8 => 0xc0a0,
675 TLS_RSA_WITH_AES_256_CCM_8 => 0xc0a1,
676 TLS_DHE_RSA_WITH_AES_128_CCM_8 => 0xc0a2,
677 TLS_DHE_RSA_WITH_AES_256_CCM_8 => 0xc0a3,
678 TLS_PSK_WITH_AES_128_CCM => 0xc0a4,
679 TLS_PSK_WITH_AES_256_CCM => 0xc0a5,
680 TLS_DHE_PSK_WITH_AES_128_CCM => 0xc0a6,
681 TLS_DHE_PSK_WITH_AES_256_CCM => 0xc0a7,
682 TLS_PSK_WITH_AES_128_CCM_8 => 0xc0a8,
683 TLS_PSK_WITH_AES_256_CCM_8 => 0xc0a9,
684 TLS_PSK_DHE_WITH_AES_128_CCM_8 => 0xc0aa,
685 TLS_PSK_DHE_WITH_AES_256_CCM_8 => 0xc0ab,
686 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 => 0xcca8,
687 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 => 0xcca9,
688 TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 => 0xccaa,
689 TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 => 0xccab,
690 TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 => 0xccac,
691 TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 => 0xccad,
692 TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 => 0xccae,
693 SSL_RSA_FIPS_WITH_DES_CBC_SHA => 0xfefe,
694 SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA => 0xfeff
695 }
696}
697
698enum_builder! {
699 @U8
703 EnumName: ECPointFormat;
704 EnumVal{
705 Uncompressed => 0x00,
706 ANSIX962CompressedPrime => 0x01,
707 ANSIX962CompressedChar2 => 0x02
708 }
709}
710
711enum_builder! {
712 @U8
716 EnumName: HeartbeatMode;
717 EnumVal{
718 PeerAllowedToSend => 0x01,
719 PeerNotAllowedToSend => 0x02
720 }
721}
722
723enum_builder! {
724 @U8
728 EnumName: ECCurveType;
729 EnumVal{
730 ExplicitPrime => 0x01,
731 ExplicitChar2 => 0x02,
732 NamedCurve => 0x03
733 }
734}
735
736enum_builder! {
737 @U16
741 EnumName: SignatureScheme;
742 EnumVal{
743 RSA_PKCS1_SHA1 => 0x0201,
744 ECDSA_SHA1_Legacy => 0x0203,
745 RSA_PKCS1_SHA256 => 0x0401,
746 ECDSA_NISTP256_SHA256 => 0x0403,
747 RSA_PKCS1_SHA384 => 0x0501,
748 ECDSA_NISTP384_SHA384 => 0x0503,
749 RSA_PKCS1_SHA512 => 0x0601,
750 ECDSA_NISTP521_SHA512 => 0x0603,
751 RSA_PSS_SHA256 => 0x0804,
752 RSA_PSS_SHA384 => 0x0805,
753 RSA_PSS_SHA512 => 0x0806,
754 ED25519 => 0x0807,
755 ED448 => 0x0808
756 }
757}
758
759enum_builder! {
760 @U8
764 EnumName: PSKKeyExchangeMode;
765 EnumVal{
766 PSK_KE => 0x00,
767 PSK_DHE_KE => 0x01
768 }
769}
770
771enum_builder! {
772 @U8
776 EnumName: KeyUpdateRequest;
777 EnumVal{
778 UpdateNotRequested => 0x00,
779 UpdateRequested => 0x01
780 }
781}
782
783enum_builder! {
784 @U8
788 EnumName: CertificateStatusType;
789 EnumVal{
790 OCSP => 0x01
791 }
792}