Codebase list sslscan / master missing_ciphersuites.h
master

Tree @master (Download .tar.gz)

missing_ciphersuites.h @masterraw · history · blame

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
#ifndef _MISSING_CIPHERSUITES_H
#define _MISSING_CIPHERSUITES_H


/* At run-time, the findMissingCiphers() function will enumerate all the ciphers that OpenSSL knows of, and compares them each to the missing_ciphersuites list.  Afterwards, the 'check_tls_versions' field will have the set of TLS versions that OpenSSL does not have an implementation for (i.e.: if the TLS_RSA_WITH_IDEA_CBC_SHA cipher is set to V1_2, then OpenSSL has an implementation for it for TLS v1.0 and v1.1, but not for v1.2). */


#define V1_0 (1)
#define V1_1 (1 << 1)
#define V1_2 (1 << 2)
#define VALL (V1_0 | V1_1 | V1_2)


struct missing_ciphersuite {
  unsigned short id;      /* TLS protocol ID. */
  char protocol_name[48]; /* IANA name, as defined in the RFCs. */
  int bits;               /* Bit strength of the cipher.  -1 if unknown. */
  unsigned int check_tls_versions; /* OR'ed list of V1_? defines.  Refers to TLS version that OpenSSL does not have a ciphersuite implementation for.  Hence, it should be tested under this version of TLS. */
  unsigned int accepted_tls_versions;  /* OR'ed list of V1_? defines.  Set at run-time if this ciphersuite was accepted by the server by the specified TLS version. */
};


/* Auto-generated by ./iana_tls_ciphersuite_parser.py on December 10, 2019. */
struct missing_ciphersuite missing_ciphersuites[] = {
  {0x0000, "TLS_NULL_WITH_NULL_NULL", -1, VALL, 0},
  {0x0001, "TLS_RSA_WITH_NULL_MD5", -1, VALL, 0},
  {0x0002, "TLS_RSA_WITH_NULL_SHA", -1, VALL, 0},
  {0x0003, "TLS_RSA_EXPORT_WITH_RC4_40_MD5", 40, VALL, 0},
  {0x0004, "TLS_RSA_WITH_RC4_128_MD5", 128, VALL, 0},
  {0x0005, "TLS_RSA_WITH_RC4_128_SHA", 128, VALL, 0},
  {0x0006, "TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5", 40, VALL, 0},
  {0x0007, "TLS_RSA_WITH_IDEA_CBC_SHA", 128, VALL, 0},
  {0x0008, "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA", 40, VALL, 0},
  {0x0009, "TLS_RSA_WITH_DES_CBC_SHA", 56, VALL, 0},
  {0x000A, "TLS_RSA_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0x000B, "TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA", 40, VALL, 0},
  {0x000C, "TLS_DH_DSS_WITH_DES_CBC_SHA", 56, VALL, 0},
  {0x000D, "TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0x000E, "TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA", 40, VALL, 0},
  {0x000F, "TLS_DH_RSA_WITH_DES_CBC_SHA", 56, VALL, 0},
  {0x0010, "TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0x0011, "TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA", 40, VALL, 0},
  {0x0012, "TLS_DHE_DSS_WITH_DES_CBC_SHA", 56, VALL, 0},
  {0x0013, "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0x0014, "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", 40, VALL, 0},
  {0x0015, "TLS_DHE_RSA_WITH_DES_CBC_SHA", 56, VALL, 0},
  {0x0016, "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0x0017, "TLS_DH_anon_EXPORT_WITH_RC4_40_MD5", 40, VALL, 0},
  {0x0018, "TLS_DH_anon_WITH_RC4_128_MD5", 128, VALL, 0},
  {0x0019, "TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA", 40, VALL, 0},
  {0x001A, "TLS_DH_anon_WITH_DES_CBC_SHA", 56, VALL, 0},
  {0x001B, "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0x001E, "TLS_KRB5_WITH_DES_CBC_SHA", 56, VALL, 0},
  {0x001F, "TLS_KRB5_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0x0020, "TLS_KRB5_WITH_RC4_128_SHA", 128, VALL, 0},
  {0x0021, "TLS_KRB5_WITH_IDEA_CBC_SHA", 128, VALL, 0},
  {0x0022, "TLS_KRB5_WITH_DES_CBC_MD5", 56, VALL, 0},
  {0x0023, "TLS_KRB5_WITH_3DES_EDE_CBC_MD5", 112, VALL, 0},
  {0x0024, "TLS_KRB5_WITH_RC4_128_MD5", 128, VALL, 0},
  {0x0025, "TLS_KRB5_WITH_IDEA_CBC_MD5", 128, VALL, 0},
  {0x0026, "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA", 56, VALL, 0},
  {0x0027, "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA", 40, VALL, 0},
  {0x0028, "TLS_KRB5_EXPORT_WITH_RC4_40_SHA", 40, VALL, 0},
  {0x0029, "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5", 56, VALL, 0},
  {0x002A, "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5", 40, VALL, 0},
  {0x002B, "TLS_KRB5_EXPORT_WITH_RC4_40_MD5", 40, VALL, 0},
  {0x002C, "TLS_PSK_WITH_NULL_SHA", -1, VALL, 0},
  {0x002D, "TLS_DHE_PSK_WITH_NULL_SHA", -1, VALL, 0},
  {0x002E, "TLS_RSA_PSK_WITH_NULL_SHA", -1, VALL, 0},
  {0x002F, "TLS_RSA_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0x0030, "TLS_DH_DSS_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0x0031, "TLS_DH_RSA_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0x0032, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0x0033, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0x0034, "TLS_DH_anon_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0x0035, "TLS_RSA_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0x0036, "TLS_DH_DSS_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0x0037, "TLS_DH_RSA_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0x0038, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0x0039, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0x003A, "TLS_DH_anon_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0x003B, "TLS_RSA_WITH_NULL_SHA256", -1, VALL, 0},
  {0x003C, "TLS_RSA_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0x003D, "TLS_RSA_WITH_AES_256_CBC_SHA256", 256, VALL, 0},
  {0x003E, "TLS_DH_DSS_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0x003F, "TLS_DH_RSA_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0x0040, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0x0041, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA", 128, VALL, 0},
  {0x0042, "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA", 128, VALL, 0},
  {0x0043, "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA", 128, VALL, 0},
  {0x0044, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA", 128, VALL, 0},
  {0x0045, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA", 128, VALL, 0},
  {0x0046, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA", 128, VALL, 0},
  {0x0067, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0x0068, "TLS_DH_DSS_WITH_AES_256_CBC_SHA256", 256, VALL, 0},
  {0x0069, "TLS_DH_RSA_WITH_AES_256_CBC_SHA256", 256, VALL, 0},
  {0x006A, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256", 256, VALL, 0},
  {0x006B, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256", 256, VALL, 0},
  {0x006C, "TLS_DH_anon_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0x006D, "TLS_DH_anon_WITH_AES_256_CBC_SHA256", 256, VALL, 0},
  {0x0084, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA", 256, VALL, 0},
  {0x0085, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA", 256, VALL, 0},
  {0x0086, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA", 256, VALL, 0},
  {0x0087, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA", 256, VALL, 0},
  {0x0088, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA", 256, VALL, 0},
  {0x0089, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA", 256, VALL, 0},
  {0x008A, "TLS_PSK_WITH_RC4_128_SHA", 128, VALL, 0},
  {0x008B, "TLS_PSK_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0x008C, "TLS_PSK_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0x008D, "TLS_PSK_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0x008E, "TLS_DHE_PSK_WITH_RC4_128_SHA", 128, VALL, 0},
  {0x008F, "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0x0090, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0x0091, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0x0092, "TLS_RSA_PSK_WITH_RC4_128_SHA", 128, VALL, 0},
  {0x0093, "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0x0094, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0x0095, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0x0096, "TLS_RSA_WITH_SEED_CBC_SHA", -1, VALL, 0},
  {0x0097, "TLS_DH_DSS_WITH_SEED_CBC_SHA", -1, VALL, 0},
  {0x0098, "TLS_DH_RSA_WITH_SEED_CBC_SHA", -1, VALL, 0},
  {0x0099, "TLS_DHE_DSS_WITH_SEED_CBC_SHA", -1, VALL, 0},
  {0x009A, "TLS_DHE_RSA_WITH_SEED_CBC_SHA", -1, VALL, 0},
  {0x009B, "TLS_DH_anon_WITH_SEED_CBC_SHA", -1, VALL, 0},
  {0x009C, "TLS_RSA_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0x009D, "TLS_RSA_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0x009E, "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0x009F, "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0x00A0, "TLS_DH_RSA_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0x00A1, "TLS_DH_RSA_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0x00A2, "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0x00A3, "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0x00A4, "TLS_DH_DSS_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0x00A5, "TLS_DH_DSS_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0x00A6, "TLS_DH_anon_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0x00A7, "TLS_DH_anon_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0x00A8, "TLS_PSK_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0x00A9, "TLS_PSK_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0x00AA, "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0x00AB, "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0x00AC, "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0x00AD, "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0x00AE, "TLS_PSK_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0x00AF, "TLS_PSK_WITH_AES_256_CBC_SHA384", 256, VALL, 0},
  {0x00B0, "TLS_PSK_WITH_NULL_SHA256", -1, VALL, 0},
  {0x00B1, "TLS_PSK_WITH_NULL_SHA384", -1, VALL, 0},
  {0x00B2, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0x00B3, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384", 256, VALL, 0},
  {0x00B4, "TLS_DHE_PSK_WITH_NULL_SHA256", -1, VALL, 0},
  {0x00B5, "TLS_DHE_PSK_WITH_NULL_SHA384", -1, VALL, 0},
  {0x00B6, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0x00B7, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384", 256, VALL, 0},
  {0x00B8, "TLS_RSA_PSK_WITH_NULL_SHA256", -1, VALL, 0},
  {0x00B9, "TLS_RSA_PSK_WITH_NULL_SHA384", -1, VALL, 0},
  {0x00BA, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0x00BB, "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0x00BC, "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0x00BD, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0x00BE, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0x00BF, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0x00C0, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256", 256, VALL, 0},
  {0x00C1, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256", 256, VALL, 0},
  {0x00C2, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256", 256, VALL, 0},
  {0x00C3, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256", 256, VALL, 0},
  {0x00C4, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256", 256, VALL, 0},
  {0x00C5, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256", 256, VALL, 0},
  {0x00C6, "TLS_SM4_GCM_SM3", 128, VALL, 0},
  {0x00C7, "TLS_SM4_CCM_SM3", 128, VALL, 0},
  {0x1301, "TLS_AES_128_GCM_SHA256", 128, VALL, 0},
  {0x1302, "TLS_AES_256_GCM_SHA384", 256, VALL, 0},
  {0x1303, "TLS_CHACHA20_POLY1305_SHA256", 256, VALL, 0},
  {0x1304, "TLS_AES_128_CCM_SHA256", 128, VALL, 0},
  {0x1305, "TLS_AES_128_CCM_8_SHA256", 128, VALL, 0},
  {0xC001, "TLS_ECDH_ECDSA_WITH_NULL_SHA", -1, VALL, 0},
  {0xC002, "TLS_ECDH_ECDSA_WITH_RC4_128_SHA", 128, VALL, 0},
  {0xC003, "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0xC004, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0xC005, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0xC006, "TLS_ECDHE_ECDSA_WITH_NULL_SHA", -1, VALL, 0},
  {0xC007, "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", 128, VALL, 0},
  {0xC008, "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0xC009, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0xC00A, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0xC00B, "TLS_ECDH_RSA_WITH_NULL_SHA", -1, VALL, 0},
  {0xC00C, "TLS_ECDH_RSA_WITH_RC4_128_SHA", 128, VALL, 0},
  {0xC00D, "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0xC00E, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0xC00F, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0xC010, "TLS_ECDHE_RSA_WITH_NULL_SHA", -1, VALL, 0},
  {0xC011, "TLS_ECDHE_RSA_WITH_RC4_128_SHA", 128, VALL, 0},
  {0xC012, "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0xC013, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0xC014, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0xC015, "TLS_ECDH_anon_WITH_NULL_SHA", -1, VALL, 0},
  {0xC016, "TLS_ECDH_anon_WITH_RC4_128_SHA", 128, VALL, 0},
  {0xC017, "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0xC018, "TLS_ECDH_anon_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0xC019, "TLS_ECDH_anon_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0xC01A, "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0xC01B, "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0xC01C, "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0xC01D, "TLS_SRP_SHA_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0xC01E, "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0xC01F, "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0xC020, "TLS_SRP_SHA_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0xC021, "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0xC022, "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0xC023, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0xC024, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384", 256, VALL, 0},
  {0xC025, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0xC026, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384", 256, VALL, 0},
  {0xC027, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0xC028, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384", 256, VALL, 0},
  {0xC029, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0xC02A, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384", 256, VALL, 0},
  {0xC02B, "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0xC02C, "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0xC02D, "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0xC02E, "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0xC02F, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0xC030, "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0xC031, "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0xC032, "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0xC033, "TLS_ECDHE_PSK_WITH_RC4_128_SHA", 128, VALL, 0},
  {0xC034, "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA", 112, VALL, 0},
  {0xC035, "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA", 128, VALL, 0},
  {0xC036, "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA", 256, VALL, 0},
  {0xC037, "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256", 128, VALL, 0},
  {0xC038, "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384", 256, VALL, 0},
  {0xC039, "TLS_ECDHE_PSK_WITH_NULL_SHA", -1, VALL, 0},
  {0xC03A, "TLS_ECDHE_PSK_WITH_NULL_SHA256", -1, VALL, 0},
  {0xC03B, "TLS_ECDHE_PSK_WITH_NULL_SHA384", -1, VALL, 0},
  {0xC03C, "TLS_RSA_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC03D, "TLS_RSA_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC03E, "TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC03F, "TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC040, "TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC041, "TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC042, "TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC043, "TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC044, "TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC045, "TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC046, "TLS_DH_anon_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC047, "TLS_DH_anon_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC048, "TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC049, "TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC04A, "TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC04B, "TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC04C, "TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC04D, "TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC04E, "TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC04F, "TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC050, "TLS_RSA_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC051, "TLS_RSA_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC052, "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC053, "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC054, "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC055, "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC056, "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC057, "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC058, "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC059, "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC05A, "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC05B, "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC05C, "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC05D, "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC05E, "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC05F, "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC060, "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC061, "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC062, "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC063, "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC064, "TLS_PSK_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC065, "TLS_PSK_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC066, "TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC067, "TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC068, "TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC069, "TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC06A, "TLS_PSK_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC06B, "TLS_PSK_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC06C, "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC06D, "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC06E, "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC06F, "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC070, "TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC071, "TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC072, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC073, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC074, "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC075, "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC076, "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC077, "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC078, "TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC079, "TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC07A, "TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC07B, "TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC07C, "TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC07D, "TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC07E, "TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC07F, "TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC080, "TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC081, "TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC082, "TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC083, "TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC084, "TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC085, "TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC086, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC087, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC088, "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC089, "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC08A, "TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC08B, "TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC08C, "TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC08D, "TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC08E, "TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC08F, "TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC090, "TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC091, "TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC092, "TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256", 128, VALL, 0},
  {0xC093, "TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384", 256, VALL, 0},
  {0xC094, "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC095, "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC096, "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC097, "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC098, "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC099, "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC09A, "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256", 128, VALL, 0},
  {0xC09B, "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384", 256, VALL, 0},
  {0xC09C, "TLS_RSA_WITH_AES_128_CCM", 128, VALL, 0},
  {0xC09D, "TLS_RSA_WITH_AES_256_CCM", 256, VALL, 0},
  {0xC09E, "TLS_DHE_RSA_WITH_AES_128_CCM", 128, VALL, 0},
  {0xC09F, "TLS_DHE_RSA_WITH_AES_256_CCM", 256, VALL, 0},
  {0xC0A0, "TLS_RSA_WITH_AES_128_CCM_8", 128, VALL, 0},
  {0xC0A1, "TLS_RSA_WITH_AES_256_CCM_8", 256, VALL, 0},
  {0xC0A2, "TLS_DHE_RSA_WITH_AES_128_CCM_8", 128, VALL, 0},
  {0xC0A3, "TLS_DHE_RSA_WITH_AES_256_CCM_8", 256, VALL, 0},
  {0xC0A4, "TLS_PSK_WITH_AES_128_CCM", 128, VALL, 0},
  {0xC0A5, "TLS_PSK_WITH_AES_256_CCM", 256, VALL, 0},
  {0xC0A6, "TLS_DHE_PSK_WITH_AES_128_CCM", 128, VALL, 0},
  {0xC0A7, "TLS_DHE_PSK_WITH_AES_256_CCM", 256, VALL, 0},
  {0xC0A8, "TLS_PSK_WITH_AES_128_CCM_8", 128, VALL, 0},
  {0xC0A9, "TLS_PSK_WITH_AES_256_CCM_8", 256, VALL, 0},
  {0xC0AA, "TLS_PSK_DHE_WITH_AES_128_CCM_8", 128, VALL, 0},
  {0xC0AB, "TLS_PSK_DHE_WITH_AES_256_CCM_8", 256, VALL, 0},
  {0xC0AC, "TLS_ECDHE_ECDSA_WITH_AES_128_CCM", 128, VALL, 0},
  {0xC0AD, "TLS_ECDHE_ECDSA_WITH_AES_256_CCM", 256, VALL, 0},
  {0xC0AE, "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8", 128, VALL, 0},
  {0xC0AF, "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8", 256, VALL, 0},
  {0xC0B0, "TLS_ECCPWD_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0xC0B1, "TLS_ECCPWD_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0xC0B2, "TLS_ECCPWD_WITH_AES_128_CCM_SHA256", 128, VALL, 0},
  {0xC0B3, "TLS_ECCPWD_WITH_AES_256_CCM_SHA384", 256, VALL, 0},
  {0xC0B4, "TLS_SHA256_SHA256", -1, VALL, 0},
  {0xC0B5, "TLS_SHA384_SHA384", -1, VALL, 0},
  {0xC100, "TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC", 256, VALL, 0},
  {0xC101, "TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC", 256, VALL, 0},
  {0xC102, "TLS_GOSTR341112_256_WITH_28147_CNT_IMIT", 256, VALL, 0},
  {0xCCA8, "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", 256, VALL, 0},
  {0xCCA9, "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", 256, VALL, 0},
  {0xCCAA, "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256", 256, VALL, 0},
  {0xCCAB, "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256", 256, VALL, 0},
  {0xCCAC, "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256", 256, VALL, 0},
  {0xCCAD, "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256", 256, VALL, 0},
  {0xCCAE, "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256", 256, VALL, 0},
  {0xD001, "TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256", 128, VALL, 0},
  {0xD002, "TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384", 256, VALL, 0},
  {0xD003, "TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256", 128, VALL, 0},
  {0xD005, "TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256", 128, VALL, 0},

  /* The ciphers below are reserved for private use (see RFC8446). */
  {0xFF00, "PRIVATE_CIPHER_0", -1, VALL, 0},
  {0xFF01, "PRIVATE_CIPHER_1", -1, VALL, 0},
  {0xFF02, "PRIVATE_CIPHER_2", -1, VALL, 0},
  {0xFF03, "PRIVATE_CIPHER_3", -1, VALL, 0},
  {0xFF04, "PRIVATE_CIPHER_4", -1, VALL, 0},
  {0xFF05, "PRIVATE_CIPHER_5", -1, VALL, 0},
  {0xFF06, "PRIVATE_CIPHER_6", -1, VALL, 0},
  {0xFF07, "PRIVATE_CIPHER_7", -1, VALL, 0},
  {0xFF08, "PRIVATE_CIPHER_8", -1, VALL, 0},
  {0xFF09, "PRIVATE_CIPHER_9", -1, VALL, 0},
  {0xFF0A, "PRIVATE_CIPHER_10", -1, VALL, 0},
  {0xFF0B, "PRIVATE_CIPHER_11", -1, VALL, 0},
  {0xFF0C, "PRIVATE_CIPHER_12", -1, VALL, 0},
  {0xFF0D, "PRIVATE_CIPHER_13", -1, VALL, 0},
  {0xFF0E, "PRIVATE_CIPHER_14", -1, VALL, 0},
  {0xFF0F, "PRIVATE_CIPHER_15", -1, VALL, 0},
  {0xFF10, "PRIVATE_CIPHER_16", -1, VALL, 0},
  {0xFF11, "PRIVATE_CIPHER_17", -1, VALL, 0},
  {0xFF12, "PRIVATE_CIPHER_18", -1, VALL, 0},
  {0xFF13, "PRIVATE_CIPHER_19", -1, VALL, 0},
  {0xFF14, "PRIVATE_CIPHER_20", -1, VALL, 0},
  {0xFF15, "PRIVATE_CIPHER_21", -1, VALL, 0},
  {0xFF16, "PRIVATE_CIPHER_22", -1, VALL, 0},
  {0xFF17, "PRIVATE_CIPHER_23", -1, VALL, 0},
  {0xFF18, "PRIVATE_CIPHER_24", -1, VALL, 0},
  {0xFF19, "PRIVATE_CIPHER_25", -1, VALL, 0},
  {0xFF1A, "PRIVATE_CIPHER_26", -1, VALL, 0},
  {0xFF1B, "PRIVATE_CIPHER_27", -1, VALL, 0},
  {0xFF1C, "PRIVATE_CIPHER_28", -1, VALL, 0},
  {0xFF1D, "PRIVATE_CIPHER_29", -1, VALL, 0},
  {0xFF1E, "PRIVATE_CIPHER_30", -1, VALL, 0},
  {0xFF1F, "PRIVATE_CIPHER_31", -1, VALL, 0},
  {0xFF20, "PRIVATE_CIPHER_32", -1, VALL, 0},
  {0xFF21, "PRIVATE_CIPHER_33", -1, VALL, 0},
  {0xFF22, "PRIVATE_CIPHER_34", -1, VALL, 0},
  {0xFF23, "PRIVATE_CIPHER_35", -1, VALL, 0},
  {0xFF24, "PRIVATE_CIPHER_36", -1, VALL, 0},
  {0xFF25, "PRIVATE_CIPHER_37", -1, VALL, 0},
  {0xFF26, "PRIVATE_CIPHER_38", -1, VALL, 0},
  {0xFF27, "PRIVATE_CIPHER_39", -1, VALL, 0},
  {0xFF28, "PRIVATE_CIPHER_40", -1, VALL, 0},
  {0xFF29, "PRIVATE_CIPHER_41", -1, VALL, 0},
  {0xFF2A, "PRIVATE_CIPHER_42", -1, VALL, 0},
  {0xFF2B, "PRIVATE_CIPHER_43", -1, VALL, 0},
  {0xFF2C, "PRIVATE_CIPHER_44", -1, VALL, 0},
  {0xFF2D, "PRIVATE_CIPHER_45", -1, VALL, 0},
  {0xFF2E, "PRIVATE_CIPHER_46", -1, VALL, 0},
  {0xFF2F, "PRIVATE_CIPHER_47", -1, VALL, 0},
  {0xFF30, "PRIVATE_CIPHER_48", -1, VALL, 0},
  {0xFF31, "PRIVATE_CIPHER_49", -1, VALL, 0},
  {0xFF32, "PRIVATE_CIPHER_50", -1, VALL, 0},
  {0xFF33, "PRIVATE_CIPHER_51", -1, VALL, 0},
  {0xFF34, "PRIVATE_CIPHER_52", -1, VALL, 0},
  {0xFF35, "PRIVATE_CIPHER_53", -1, VALL, 0},
  {0xFF36, "PRIVATE_CIPHER_54", -1, VALL, 0},
  {0xFF37, "PRIVATE_CIPHER_55", -1, VALL, 0},
  {0xFF38, "PRIVATE_CIPHER_56", -1, VALL, 0},
  {0xFF39, "PRIVATE_CIPHER_57", -1, VALL, 0},
  {0xFF3A, "PRIVATE_CIPHER_58", -1, VALL, 0},
  {0xFF3B, "PRIVATE_CIPHER_59", -1, VALL, 0},
  {0xFF3C, "PRIVATE_CIPHER_60", -1, VALL, 0},
  {0xFF3D, "PRIVATE_CIPHER_61", -1, VALL, 0},
  {0xFF3E, "PRIVATE_CIPHER_62", -1, VALL, 0},
  {0xFF3F, "PRIVATE_CIPHER_63", -1, VALL, 0},
  {0xFF40, "PRIVATE_CIPHER_64", -1, VALL, 0},
  {0xFF41, "PRIVATE_CIPHER_65", -1, VALL, 0},
  {0xFF42, "PRIVATE_CIPHER_66", -1, VALL, 0},
  {0xFF43, "PRIVATE_CIPHER_67", -1, VALL, 0},
  {0xFF44, "PRIVATE_CIPHER_68", -1, VALL, 0},
  {0xFF45, "PRIVATE_CIPHER_69", -1, VALL, 0},
  {0xFF46, "PRIVATE_CIPHER_70", -1, VALL, 0},
  {0xFF47, "PRIVATE_CIPHER_71", -1, VALL, 0},
  {0xFF48, "PRIVATE_CIPHER_72", -1, VALL, 0},
  {0xFF49, "PRIVATE_CIPHER_73", -1, VALL, 0},
  {0xFF4A, "PRIVATE_CIPHER_74", -1, VALL, 0},
  {0xFF4B, "PRIVATE_CIPHER_75", -1, VALL, 0},
  {0xFF4C, "PRIVATE_CIPHER_76", -1, VALL, 0},
  {0xFF4D, "PRIVATE_CIPHER_77", -1, VALL, 0},
  {0xFF4E, "PRIVATE_CIPHER_78", -1, VALL, 0},
  {0xFF4F, "PRIVATE_CIPHER_79", -1, VALL, 0},
  {0xFF50, "PRIVATE_CIPHER_80", -1, VALL, 0},
  {0xFF51, "PRIVATE_CIPHER_81", -1, VALL, 0},
  {0xFF52, "PRIVATE_CIPHER_82", -1, VALL, 0},
  {0xFF53, "PRIVATE_CIPHER_83", -1, VALL, 0},
  {0xFF54, "PRIVATE_CIPHER_84", -1, VALL, 0},
  {0xFF55, "PRIVATE_CIPHER_85", -1, VALL, 0},
  {0xFF56, "PRIVATE_CIPHER_86", -1, VALL, 0},
  {0xFF57, "PRIVATE_CIPHER_87", -1, VALL, 0},
  {0xFF58, "PRIVATE_CIPHER_88", -1, VALL, 0},
  {0xFF59, "PRIVATE_CIPHER_89", -1, VALL, 0},
  {0xFF5A, "PRIVATE_CIPHER_90", -1, VALL, 0},
  {0xFF5B, "PRIVATE_CIPHER_91", -1, VALL, 0},
  {0xFF5C, "PRIVATE_CIPHER_92", -1, VALL, 0},
  {0xFF5D, "PRIVATE_CIPHER_93", -1, VALL, 0},
  {0xFF5E, "PRIVATE_CIPHER_94", -1, VALL, 0},
  {0xFF5F, "PRIVATE_CIPHER_95", -1, VALL, 0},
  {0xFF60, "PRIVATE_CIPHER_96", -1, VALL, 0},
  {0xFF61, "PRIVATE_CIPHER_97", -1, VALL, 0},
  {0xFF62, "PRIVATE_CIPHER_98", -1, VALL, 0},
  {0xFF63, "PRIVATE_CIPHER_99", -1, VALL, 0},
  {0xFF64, "PRIVATE_CIPHER_100", -1, VALL, 0},
  {0xFF65, "PRIVATE_CIPHER_101", -1, VALL, 0},
  {0xFF66, "PRIVATE_CIPHER_102", -1, VALL, 0},
  {0xFF67, "PRIVATE_CIPHER_103", -1, VALL, 0},
  {0xFF68, "PRIVATE_CIPHER_104", -1, VALL, 0},
  {0xFF69, "PRIVATE_CIPHER_105", -1, VALL, 0},
  {0xFF6A, "PRIVATE_CIPHER_106", -1, VALL, 0},
  {0xFF6B, "PRIVATE_CIPHER_107", -1, VALL, 0},
  {0xFF6C, "PRIVATE_CIPHER_108", -1, VALL, 0},
  {0xFF6D, "PRIVATE_CIPHER_109", -1, VALL, 0},
  {0xFF6E, "PRIVATE_CIPHER_110", -1, VALL, 0},
  {0xFF6F, "PRIVATE_CIPHER_111", -1, VALL, 0},
  {0xFF70, "PRIVATE_CIPHER_112", -1, VALL, 0},
  {0xFF71, "PRIVATE_CIPHER_113", -1, VALL, 0},
  {0xFF72, "PRIVATE_CIPHER_114", -1, VALL, 0},
  {0xFF73, "PRIVATE_CIPHER_115", -1, VALL, 0},
  {0xFF74, "PRIVATE_CIPHER_116", -1, VALL, 0},
  {0xFF75, "PRIVATE_CIPHER_117", -1, VALL, 0},
  {0xFF76, "PRIVATE_CIPHER_118", -1, VALL, 0},
  {0xFF77, "PRIVATE_CIPHER_119", -1, VALL, 0},
  {0xFF78, "PRIVATE_CIPHER_120", -1, VALL, 0},
  {0xFF79, "PRIVATE_CIPHER_121", -1, VALL, 0},
  {0xFF7A, "PRIVATE_CIPHER_122", -1, VALL, 0},
  {0xFF7B, "PRIVATE_CIPHER_123", -1, VALL, 0},
  {0xFF7C, "PRIVATE_CIPHER_124", -1, VALL, 0},
  {0xFF7D, "PRIVATE_CIPHER_125", -1, VALL, 0},
  {0xFF7E, "PRIVATE_CIPHER_126", -1, VALL, 0},
  {0xFF7F, "PRIVATE_CIPHER_127", -1, VALL, 0},
  {0xFF80, "PRIVATE_CIPHER_128", -1, VALL, 0},
  {0xFF81, "PRIVATE_CIPHER_129", -1, VALL, 0},
  {0xFF82, "PRIVATE_CIPHER_130", -1, VALL, 0},
  {0xFF83, "PRIVATE_CIPHER_131", -1, VALL, 0},
  {0xFF84, "PRIVATE_CIPHER_132", -1, VALL, 0},
  {0xFF85, "PRIVATE_CIPHER_133", -1, VALL, 0},
  {0xFF86, "PRIVATE_CIPHER_134", -1, VALL, 0},
  {0xFF87, "PRIVATE_CIPHER_135", -1, VALL, 0},
  {0xFF88, "PRIVATE_CIPHER_136", -1, VALL, 0},
  {0xFF89, "PRIVATE_CIPHER_137", -1, VALL, 0},
  {0xFF8A, "PRIVATE_CIPHER_138", -1, VALL, 0},
  {0xFF8B, "PRIVATE_CIPHER_139", -1, VALL, 0},
  {0xFF8C, "PRIVATE_CIPHER_140", -1, VALL, 0},
  {0xFF8D, "PRIVATE_CIPHER_141", -1, VALL, 0},
  {0xFF8E, "PRIVATE_CIPHER_142", -1, VALL, 0},
  {0xFF8F, "PRIVATE_CIPHER_143", -1, VALL, 0},
  {0xFF90, "PRIVATE_CIPHER_144", -1, VALL, 0},
  {0xFF91, "PRIVATE_CIPHER_145", -1, VALL, 0},
  {0xFF92, "PRIVATE_CIPHER_146", -1, VALL, 0},
  {0xFF93, "PRIVATE_CIPHER_147", -1, VALL, 0},
  {0xFF94, "PRIVATE_CIPHER_148", -1, VALL, 0},
  {0xFF95, "PRIVATE_CIPHER_149", -1, VALL, 0},
  {0xFF96, "PRIVATE_CIPHER_150", -1, VALL, 0},
  {0xFF97, "PRIVATE_CIPHER_151", -1, VALL, 0},
  {0xFF98, "PRIVATE_CIPHER_152", -1, VALL, 0},
  {0xFF99, "PRIVATE_CIPHER_153", -1, VALL, 0},
  {0xFF9A, "PRIVATE_CIPHER_154", -1, VALL, 0},
  {0xFF9B, "PRIVATE_CIPHER_155", -1, VALL, 0},
  {0xFF9C, "PRIVATE_CIPHER_156", -1, VALL, 0},
  {0xFF9D, "PRIVATE_CIPHER_157", -1, VALL, 0},
  {0xFF9E, "PRIVATE_CIPHER_158", -1, VALL, 0},
  {0xFF9F, "PRIVATE_CIPHER_159", -1, VALL, 0},
  {0xFFA0, "PRIVATE_CIPHER_160", -1, VALL, 0},
  {0xFFA1, "PRIVATE_CIPHER_161", -1, VALL, 0},
  {0xFFA2, "PRIVATE_CIPHER_162", -1, VALL, 0},
  {0xFFA3, "PRIVATE_CIPHER_163", -1, VALL, 0},
  {0xFFA4, "PRIVATE_CIPHER_164", -1, VALL, 0},
  {0xFFA5, "PRIVATE_CIPHER_165", -1, VALL, 0},
  {0xFFA6, "PRIVATE_CIPHER_166", -1, VALL, 0},
  {0xFFA7, "PRIVATE_CIPHER_167", -1, VALL, 0},
  {0xFFA8, "PRIVATE_CIPHER_168", -1, VALL, 0},
  {0xFFA9, "PRIVATE_CIPHER_169", -1, VALL, 0},
  {0xFFAA, "PRIVATE_CIPHER_170", -1, VALL, 0},
  {0xFFAB, "PRIVATE_CIPHER_171", -1, VALL, 0},
  {0xFFAC, "PRIVATE_CIPHER_172", -1, VALL, 0},
  {0xFFAD, "PRIVATE_CIPHER_173", -1, VALL, 0},
  {0xFFAE, "PRIVATE_CIPHER_174", -1, VALL, 0},
  {0xFFAF, "PRIVATE_CIPHER_175", -1, VALL, 0},
  {0xFFB0, "PRIVATE_CIPHER_176", -1, VALL, 0},
  {0xFFB1, "PRIVATE_CIPHER_177", -1, VALL, 0},
  {0xFFB2, "PRIVATE_CIPHER_178", -1, VALL, 0},
  {0xFFB3, "PRIVATE_CIPHER_179", -1, VALL, 0},
  {0xFFB4, "PRIVATE_CIPHER_180", -1, VALL, 0},
  {0xFFB5, "PRIVATE_CIPHER_181", -1, VALL, 0},
  {0xFFB6, "PRIVATE_CIPHER_182", -1, VALL, 0},
  {0xFFB7, "PRIVATE_CIPHER_183", -1, VALL, 0},
  {0xFFB8, "PRIVATE_CIPHER_184", -1, VALL, 0},
  {0xFFB9, "PRIVATE_CIPHER_185", -1, VALL, 0},
  {0xFFBA, "PRIVATE_CIPHER_186", -1, VALL, 0},
  {0xFFBB, "PRIVATE_CIPHER_187", -1, VALL, 0},
  {0xFFBC, "PRIVATE_CIPHER_188", -1, VALL, 0},
  {0xFFBD, "PRIVATE_CIPHER_189", -1, VALL, 0},
  {0xFFBE, "PRIVATE_CIPHER_190", -1, VALL, 0},
  {0xFFBF, "PRIVATE_CIPHER_191", -1, VALL, 0},
  {0xFFC0, "PRIVATE_CIPHER_192", -1, VALL, 0},
  {0xFFC1, "PRIVATE_CIPHER_193", -1, VALL, 0},
  {0xFFC2, "PRIVATE_CIPHER_194", -1, VALL, 0},
  {0xFFC3, "PRIVATE_CIPHER_195", -1, VALL, 0},
  {0xFFC4, "PRIVATE_CIPHER_196", -1, VALL, 0},
  {0xFFC5, "PRIVATE_CIPHER_197", -1, VALL, 0},
  {0xFFC6, "PRIVATE_CIPHER_198", -1, VALL, 0},
  {0xFFC7, "PRIVATE_CIPHER_199", -1, VALL, 0},
  {0xFFC8, "PRIVATE_CIPHER_200", -1, VALL, 0},
  {0xFFC9, "PRIVATE_CIPHER_201", -1, VALL, 0},
  {0xFFCA, "PRIVATE_CIPHER_202", -1, VALL, 0},
  {0xFFCB, "PRIVATE_CIPHER_203", -1, VALL, 0},
  {0xFFCC, "PRIVATE_CIPHER_204", -1, VALL, 0},
  {0xFFCD, "PRIVATE_CIPHER_205", -1, VALL, 0},
  {0xFFCE, "PRIVATE_CIPHER_206", -1, VALL, 0},
  {0xFFCF, "PRIVATE_CIPHER_207", -1, VALL, 0},
  {0xFFD0, "PRIVATE_CIPHER_208", -1, VALL, 0},
  {0xFFD1, "PRIVATE_CIPHER_209", -1, VALL, 0},
  {0xFFD2, "PRIVATE_CIPHER_210", -1, VALL, 0},
  {0xFFD3, "PRIVATE_CIPHER_211", -1, VALL, 0},
  {0xFFD4, "PRIVATE_CIPHER_212", -1, VALL, 0},
  {0xFFD5, "PRIVATE_CIPHER_213", -1, VALL, 0},
  {0xFFD6, "PRIVATE_CIPHER_214", -1, VALL, 0},
  {0xFFD7, "PRIVATE_CIPHER_215", -1, VALL, 0},
  {0xFFD8, "PRIVATE_CIPHER_216", -1, VALL, 0},
  {0xFFD9, "PRIVATE_CIPHER_217", -1, VALL, 0},
  {0xFFDA, "PRIVATE_CIPHER_218", -1, VALL, 0},
  {0xFFDB, "PRIVATE_CIPHER_219", -1, VALL, 0},
  {0xFFDC, "PRIVATE_CIPHER_220", -1, VALL, 0},
  {0xFFDD, "PRIVATE_CIPHER_221", -1, VALL, 0},
  {0xFFDE, "PRIVATE_CIPHER_222", -1, VALL, 0},
  {0xFFDF, "PRIVATE_CIPHER_223", -1, VALL, 0},
  {0xFFE0, "PRIVATE_CIPHER_224", -1, VALL, 0},
  {0xFFE1, "PRIVATE_CIPHER_225", -1, VALL, 0},
  {0xFFE2, "PRIVATE_CIPHER_226", -1, VALL, 0},
  {0xFFE3, "PRIVATE_CIPHER_227", -1, VALL, 0},
  {0xFFE4, "PRIVATE_CIPHER_228", -1, VALL, 0},
  {0xFFE5, "PRIVATE_CIPHER_229", -1, VALL, 0},
  {0xFFE6, "PRIVATE_CIPHER_230", -1, VALL, 0},
  {0xFFE7, "PRIVATE_CIPHER_231", -1, VALL, 0},
  {0xFFE8, "PRIVATE_CIPHER_232", -1, VALL, 0},
  {0xFFE9, "PRIVATE_CIPHER_233", -1, VALL, 0},
  {0xFFEA, "PRIVATE_CIPHER_234", -1, VALL, 0},
  {0xFFEB, "PRIVATE_CIPHER_235", -1, VALL, 0},
  {0xFFEC, "PRIVATE_CIPHER_236", -1, VALL, 0},
  {0xFFED, "PRIVATE_CIPHER_237", -1, VALL, 0},
  {0xFFEE, "PRIVATE_CIPHER_238", -1, VALL, 0},
  {0xFFEF, "PRIVATE_CIPHER_239", -1, VALL, 0},
  {0xFFF0, "PRIVATE_CIPHER_240", -1, VALL, 0},
  {0xFFF1, "PRIVATE_CIPHER_241", -1, VALL, 0},
  {0xFFF2, "PRIVATE_CIPHER_242", -1, VALL, 0},
  {0xFFF3, "PRIVATE_CIPHER_243", -1, VALL, 0},
  {0xFFF4, "PRIVATE_CIPHER_244", -1, VALL, 0},
  {0xFFF5, "PRIVATE_CIPHER_245", -1, VALL, 0},
  {0xFFF6, "PRIVATE_CIPHER_246", -1, VALL, 0},
  {0xFFF7, "PRIVATE_CIPHER_247", -1, VALL, 0},
  {0xFFF8, "PRIVATE_CIPHER_248", -1, VALL, 0},
  {0xFFF9, "PRIVATE_CIPHER_249", -1, VALL, 0},
  {0xFFFA, "PRIVATE_CIPHER_250", -1, VALL, 0},
  {0xFFFB, "PRIVATE_CIPHER_251", -1, VALL, 0},
  {0xFFFC, "PRIVATE_CIPHER_252", -1, VALL, 0},
  {0xFFFD, "PRIVATE_CIPHER_253", -1, VALL, 0},
  {0xFFFE, "PRIVATE_CIPHER_254", -1, VALL, 0},
  {0xFFFF, "PRIVATE_CIPHER_255", -1, VALL, 0},
};

#endif