/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:4;tab-width:4;coding:utf-8 -*-│ │ vi: set et ft=c ts=2 sts=2 sw=2 fenc=utf-8 :vi │ ╞══════════════════════════════════════════════════════════════════════════════╡ │ Copyright The Mbed TLS Contributors │ │ │ │ Licensed under the Apache License, Version 2.0 (the "License"); │ │ you may not use this file except in compliance with the License. │ │ You may obtain a copy of the License at │ │ │ │ http://www.apache.org/licenses/LICENSE-2.0 │ │ │ │ Unless required by applicable law or agreed to in writing, software │ │ distributed under the License is distributed on an "AS IS" BASIS, │ │ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. │ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ╚─────────────────────────────────────────────────────────────────────────────*/ #include "third_party/mbedtls/iana.h" /** * Returns ciphersuite name. * * This contains a superset of what's actually supported. It should * include all IANA assignments. */ const char *GetCipherSuiteName(uint16_t x) { switch (x) { case 0x0000: return "NULL-NULL-NULL"; case 0x0001: return "RSA-NULL-MD5"; case 0x0002: return "RSA-NULL-SHA"; case 0x0003: return "RSA-EXPORT-RC4-40-MD5"; case 0x0004: return "RSA-RC4-128-MD5"; case 0x0005: return "RSA-RC4-128-SHA"; case 0x0006: return "RSA-EXPORT-RC2-CBC-40-MD5"; case 0x0007: return "RSA-IDEA-CBC-SHA"; case 0x0008: return "RSA-EXPORT-DES40-CBC-SHA"; case 0x0009: return "RSA-DES-CBC-SHA"; case 0x000A: return "RSA-3DES-EDE-CBC-SHA"; case 0x000B: return "DH-DSS-EXPORT-DES40-CBC-SHA"; case 0x000C: return "DH-DSS-DES-CBC-SHA"; case 0x000D: return "DH-DSS-3DES-EDE-CBC-SHA"; case 0x000E: return "DH-RSA-EXPORT-DES40-CBC-SHA"; case 0x000F: return "DH-RSA-DES-CBC-SHA"; case 0x0010: return "DH-RSA-3DES-EDE-CBC-SHA"; case 0x0011: return "DHE-DSS-EXPORT-DES40-CBC-SHA"; case 0x0012: return "DHE-DSS-DES-CBC-SHA"; case 0x0013: return "DHE-DSS-3DES-EDE-CBC-SHA"; case 0x0014: return "DHE-RSA-EXPORT-DES40-CBC-SHA"; case 0x0015: return "DHE-RSA-DES-CBC-SHA"; case 0x0016: return "DHE-RSA-3DES-EDE-CBC-SHA"; case 0x0017: return "DH-anon-EXPORT-RC4-40-MD5"; case 0x0018: return "DH-anon-RC4-128-MD5"; case 0x0019: return "DH-anon-EXPORT-DES40-CBC-SHA"; case 0x001A: return "DH-anon-DES-CBC-SHA"; case 0x001B: return "DH-anon-3DES-EDE-CBC-SHA"; case 0x001E: return "KRB5-DES-CBC-SHA"; case 0x001F: return "KRB5-3DES-EDE-CBC-SHA"; case 0x0020: return "KRB5-RC4-128-SHA"; case 0x0021: return "KRB5-IDEA-CBC-SHA"; case 0x0022: return "KRB5-DES-CBC-MD5"; case 0x0023: return "KRB5-3DES-EDE-CBC-MD5"; case 0x0024: return "KRB5-RC4-128-MD5"; case 0x0025: return "KRB5-IDEA-CBC-MD5"; case 0x0026: return "KRB5-EXPORT-DES-CBC-40-SHA"; case 0x0027: return "KRB5-EXPORT-RC2-CBC-40-SHA"; case 0x0028: return "KRB5-EXPORT-RC4-40-SHA"; case 0x0029: return "KRB5-EXPORT-DES-CBC-40-MD5"; case 0x002A: return "KRB5-EXPORT-RC2-CBC-40-MD5"; case 0x002B: return "KRB5-EXPORT-RC4-40-MD5"; case 0x002C: return "PSK-NULL-SHA"; case 0x002D: return "DHE-PSK-NULL-SHA"; case 0x002E: return "RSA-PSK-NULL-SHA"; case 0x002F: return "RSA-AES128-CBC-SHA"; case 0x0030: return "DH-DSS-AES128-CBC-SHA"; case 0x0031: return "DH-RSA-AES128-CBC-SHA"; case 0x0032: return "DHE-DSS-AES128-CBC-SHA"; case 0x0033: return "DHE-RSA-AES128-CBC-SHA"; case 0x0034: return "DH-anon-AES128-CBC-SHA"; case 0x0035: return "RSA-AES256-CBC-SHA"; case 0x0036: return "DH-DSS-AES256-CBC-SHA"; case 0x0037: return "DH-RSA-AES256-CBC-SHA"; case 0x0038: return "DHE-DSS-AES256-CBC-SHA"; case 0x0039: return "DHE-RSA-AES256-CBC-SHA"; case 0x003A: return "DH-anon-AES256-CBC-SHA"; case 0x003B: return "RSA-NULL-SHA256"; case 0x003C: return "RSA-AES128-CBC-SHA256"; case 0x003D: return "RSA-AES256-CBC-SHA256"; case 0x003E: return "DH-DSS-AES128-CBC-SHA256"; case 0x003F: return "DH-RSA-AES128-CBC-SHA256"; case 0x0040: return "DHE-DSS-AES128-CBC-SHA256"; case 0x0041: return "RSA-CAMELLIA128-CBC-SHA"; case 0x0042: return "DH-DSS-CAMELLIA128-CBC-SHA"; case 0x0043: return "DH-RSA-CAMELLIA128-CBC-SHA"; case 0x0044: return "DHE-DSS-CAMELLIA128-CBC-SHA"; case 0x0045: return "DHE-RSA-CAMELLIA128-CBC-SHA"; case 0x0046: return "DH-anon-CAMELLIA128-CBC-SHA"; case 0x0067: return "DHE-RSA-AES128-CBC-SHA256"; case 0x0068: return "DH-DSS-AES256-CBC-SHA256"; case 0x0069: return "DH-RSA-AES256-CBC-SHA256"; case 0x006A: return "DHE-DSS-AES256-CBC-SHA256"; case 0x006B: return "DHE-RSA-AES256-CBC-SHA256"; case 0x006C: return "DH-anon-AES128-CBC-SHA256"; case 0x006D: return "DH-anon-AES256-CBC-SHA256"; case 0x0084: return "RSA-CAMELLIA256-CBC-SHA"; case 0x0085: return "DH-DSS-CAMELLIA256-CBC-SHA"; case 0x0086: return "DH-RSA-CAMELLIA256-CBC-SHA"; case 0x0087: return "DHE-DSS-CAMELLIA256-CBC-SHA"; case 0x0088: return "DHE-RSA-CAMELLIA256-CBC-SHA"; case 0x0089: return "DH-anon-CAMELLIA256-CBC-SHA"; case 0x008A: return "PSK-RC4-128-SHA"; case 0x008B: return "PSK-3DES-EDE-CBC-SHA"; case 0x008C: return "PSK-AES128-CBC-SHA"; case 0x008D: return "PSK-AES256-CBC-SHA"; case 0x008E: return "DHE-PSK-RC4-128-SHA"; case 0x008F: return "DHE-PSK-3DES-EDE-CBC-SHA"; case 0x0090: return "DHE-PSK-AES128-CBC-SHA"; case 0x0091: return "DHE-PSK-AES256-CBC-SHA"; case 0x0092: return "RSA-PSK-RC4-128-SHA"; case 0x0093: return "RSA-PSK-3DES-EDE-CBC-SHA"; case 0x0094: return "RSA-PSK-AES128-CBC-SHA"; case 0x0095: return "RSA-PSK-AES256-CBC-SHA"; case 0x0096: return "RSA-SEED-CBC-SHA"; case 0x0097: return "DH-DSS-SEED-CBC-SHA"; case 0x0098: return "DH-RSA-SEED-CBC-SHA"; case 0x0099: return "DHE-DSS-SEED-CBC-SHA"; case 0x009A: return "DHE-RSA-SEED-CBC-SHA"; case 0x009B: return "DH-anon-SEED-CBC-SHA"; case 0x009C: return "RSA-AES128-GCM-SHA256"; case 0x009D: return "RSA-AES256-GCM-SHA384"; case 0x009E: return "DHE-RSA-AES128-GCM-SHA256"; case 0x009F: return "DHE-RSA-AES256-GCM-SHA384"; case 0x00A0: return "DH-RSA-AES128-GCM-SHA256"; case 0x00A1: return "DH-RSA-AES256-GCM-SHA384"; case 0x00A2: return "DHE-DSS-AES128-GCM-SHA256"; case 0x00A3: return "DHE-DSS-AES256-GCM-SHA384"; case 0x00A4: return "DH-DSS-AES128-GCM-SHA256"; case 0x00A5: return "DH-DSS-AES256-GCM-SHA384"; case 0x00A6: return "DH-anon-AES128-GCM-SHA256"; case 0x00A7: return "DH-anon-AES256-GCM-SHA384"; case 0x00A8: return "PSK-AES128-GCM-SHA256"; case 0x00A9: return "PSK-AES256-GCM-SHA384"; case 0x00AA: return "DHE-PSK-AES128-GCM-SHA256"; case 0x00AB: return "DHE-PSK-AES256-GCM-SHA384"; case 0x00AC: return "RSA-PSK-AES128-GCM-SHA256"; case 0x00AD: return "RSA-PSK-AES256-GCM-SHA384"; case 0x00AE: return "PSK-AES128-CBC-SHA256"; case 0x00AF: return "PSK-AES256-CBC-SHA384"; case 0x00B0: return "PSK-NULL-SHA256"; case 0x00B1: return "PSK-NULL-SHA384"; case 0x00B2: return "DHE-PSK-AES128-CBC-SHA256"; case 0x00B3: return "DHE-PSK-AES256-CBC-SHA384"; case 0x00B4: return "DHE-PSK-NULL-SHA256"; case 0x00B5: return "DHE-PSK-NULL-SHA384"; case 0x00B6: return "RSA-PSK-AES128-CBC-SHA256"; case 0x00B7: return "RSA-PSK-AES256-CBC-SHA384"; case 0x00B8: return "RSA-PSK-NULL-SHA256"; case 0x00B9: return "RSA-PSK-NULL-SHA384"; case 0x00BA: return "RSA-CAMELLIA128-CBC-SHA256"; case 0x00BB: return "DH-DSS-CAMELLIA128-CBC-SHA256"; case 0x00BC: return "DH-RSA-CAMELLIA128-CBC-SHA256"; case 0x00BD: return "DHE-DSS-CAMELLIA128-CBC-SHA256"; case 0x00BE: return "DHE-RSA-CAMELLIA128-CBC-SHA256"; case 0x00BF: return "DH-anon-CAMELLIA128-CBC-SHA256"; case 0x00C0: return "RSA-CAMELLIA256-CBC-SHA256"; case 0x00C1: return "DH-DSS-CAMELLIA256-CBC-SHA256"; case 0x00C2: return "DH-RSA-CAMELLIA256-CBC-SHA256"; case 0x00C3: return "DHE-DSS-CAMELLIA256-CBC-SHA256"; case 0x00C4: return "DHE-RSA-CAMELLIA256-CBC-SHA256"; case 0x00C5: return "DH-anon-CAMELLIA256-CBC-SHA256"; case 0x00C6: return "SM4-GCM-SM3"; case 0x00C7: return "SM4-CCM-SM3"; case 0x00FF: return "EMPTY-RENEGOTIATION-INFO-SCSV"; case 0x1301: return "AES128-GCM-SHA256"; case 0x1302: return "AES256-GCM-SHA384"; case 0x1303: return "CHACHA20-POLY1305-SHA256"; case 0x1304: return "AES128-CCM-SHA256"; case 0x1305: return "AES128-CCM8-SHA256"; case 0x5600: return "FALLBACK-SCSV"; case 0xC001: return "ECDH-ECDSA-NULL-SHA"; case 0xC002: return "ECDH-ECDSA-RC4-128-SHA"; case 0xC003: return "ECDH-ECDSA-3DES-EDE-CBC-SHA"; case 0xC004: return "ECDH-ECDSA-AES128-CBC-SHA"; case 0xC005: return "ECDH-ECDSA-AES256-CBC-SHA"; case 0xC006: return "ECDHE-ECDSA-NULL-SHA"; case 0xC007: return "ECDHE-ECDSA-RC4-128-SHA"; case 0xC008: return "ECDHE-ECDSA-3DES-EDE-CBC-SHA"; case 0xC009: return "ECDHE-ECDSA-AES128-CBC-SHA"; case 0xC00A: return "ECDHE-ECDSA-AES256-CBC-SHA"; case 0xC00B: return "ECDH-RSA-NULL-SHA"; case 0xC00C: return "ECDH-RSA-RC4-128-SHA"; case 0xC00D: return "ECDH-RSA-3DES-EDE-CBC-SHA"; case 0xC00E: return "ECDH-RSA-AES128-CBC-SHA"; case 0xC00F: return "ECDH-RSA-AES256-CBC-SHA"; case 0xC010: return "ECDHE-RSA-NULL-SHA"; case 0xC011: return "ECDHE-RSA-RC4-128-SHA"; case 0xC012: return "ECDHE-RSA-3DES-EDE-CBC-SHA"; case 0xC013: return "ECDHE-RSA-AES128-CBC-SHA"; case 0xC014: return "ECDHE-RSA-AES256-CBC-SHA"; case 0xC015: return "ECDH-anon-NULL-SHA"; case 0xC016: return "ECDH-anon-RC4-128-SHA"; case 0xC017: return "ECDH-anon-3DES-EDE-CBC-SHA"; case 0xC018: return "ECDH-anon-AES128-CBC-SHA"; case 0xC019: return "ECDH-anon-AES256-CBC-SHA"; case 0xC01A: return "SRP-SHA-3DES-EDE-CBC-SHA"; case 0xC01B: return "SRP-SHA-RSA-3DES-EDE-CBC-SHA"; case 0xC01C: return "SRP-SHA-DSS-3DES-EDE-CBC-SHA"; case 0xC01D: return "SRP-SHA-AES128-CBC-SHA"; case 0xC01E: return "SRP-SHA-RSA-AES128-CBC-SHA"; case 0xC01F: return "SRP-SHA-DSS-AES128-CBC-SHA"; case 0xC020: return "SRP-SHA-AES256-CBC-SHA"; case 0xC021: return "SRP-SHA-RSA-AES256-CBC-SHA"; case 0xC022: return "SRP-SHA-DSS-AES256-CBC-SHA"; case 0xC023: return "ECDHE-ECDSA-AES128-CBC-SHA256"; case 0xC024: return "ECDHE-ECDSA-AES256-CBC-SHA384"; case 0xC025: return "ECDH-ECDSA-AES128-CBC-SHA256"; case 0xC026: return "ECDH-ECDSA-AES256-CBC-SHA384"; case 0xC027: return "ECDHE-RSA-AES128-CBC-SHA256"; case 0xC028: return "ECDHE-RSA-AES256-CBC-SHA384"; case 0xC029: return "ECDH-RSA-AES128-CBC-SHA256"; case 0xC02A: return "ECDH-RSA-AES256-CBC-SHA384"; case 0xC02B: return "ECDHE-ECDSA-AES128-GCM-SHA256"; case 0xC02C: return "ECDHE-ECDSA-AES256-GCM-SHA384"; case 0xC02D: return "ECDH-ECDSA-AES128-GCM-SHA256"; case 0xC02E: return "ECDH-ECDSA-AES256-GCM-SHA384"; case 0xC02F: return "ECDHE-RSA-AES128-GCM-SHA256"; case 0xC030: return "ECDHE-RSA-AES256-GCM-SHA384"; case 0xC031: return "ECDH-RSA-AES128-GCM-SHA256"; case 0xC032: return "ECDH-RSA-AES256-GCM-SHA384"; case 0xC033: return "ECDHE-PSK-RC4-128-SHA"; case 0xC034: return "ECDHE-PSK-3DES-EDE-CBC-SHA"; case 0xC035: return "ECDHE-PSK-AES128-CBC-SHA"; case 0xC036: return "ECDHE-PSK-AES256-CBC-SHA"; case 0xC037: return "ECDHE-PSK-AES128-CBC-SHA256"; case 0xC038: return "ECDHE-PSK-AES256-CBC-SHA384"; case 0xC039: return "ECDHE-PSK-NULL-SHA"; case 0xC03A: return "ECDHE-PSK-NULL-SHA256"; case 0xC03B: return "ECDHE-PSK-NULL-SHA384"; case 0xC03C: return "RSA-ARIA128-CBC-SHA256"; case 0xC03D: return "RSA-ARIA256-CBC-SHA384"; case 0xC03E: return "DH-DSS-ARIA128-CBC-SHA256"; case 0xC03F: return "DH-DSS-ARIA256-CBC-SHA384"; case 0xC040: return "DH-RSA-ARIA128-CBC-SHA256"; case 0xC041: return "DH-RSA-ARIA256-CBC-SHA384"; case 0xC042: return "DHE-DSS-ARIA128-CBC-SHA256"; case 0xC043: return "DHE-DSS-ARIA256-CBC-SHA384"; case 0xC044: return "DHE-RSA-ARIA128-CBC-SHA256"; case 0xC045: return "DHE-RSA-ARIA256-CBC-SHA384"; case 0xC046: return "DH-anon-ARIA128-CBC-SHA256"; case 0xC047: return "DH-anon-ARIA256-CBC-SHA384"; case 0xC048: return "ECDHE-ECDSA-ARIA128-CBC-SHA256"; case 0xC049: return "ECDHE-ECDSA-ARIA256-CBC-SHA384"; case 0xC04A: return "ECDH-ECDSA-ARIA128-CBC-SHA256"; case 0xC04B: return "ECDH-ECDSA-ARIA256-CBC-SHA384"; case 0xC04C: return "ECDHE-RSA-ARIA128-CBC-SHA256"; case 0xC04D: return "ECDHE-RSA-ARIA256-CBC-SHA384"; case 0xC04E: return "ECDH-RSA-ARIA128-CBC-SHA256"; case 0xC04F: return "ECDH-RSA-ARIA256-CBC-SHA384"; case 0xC050: return "RSA-ARIA128-GCM-SHA256"; case 0xC051: return "RSA-ARIA256-GCM-SHA384"; case 0xC052: return "DHE-RSA-ARIA128-GCM-SHA256"; case 0xC053: return "DHE-RSA-ARIA256-GCM-SHA384"; case 0xC054: return "DH-RSA-ARIA128-GCM-SHA256"; case 0xC055: return "DH-RSA-ARIA256-GCM-SHA384"; case 0xC056: return "DHE-DSS-ARIA128-GCM-SHA256"; case 0xC057: return "DHE-DSS-ARIA256-GCM-SHA384"; case 0xC058: return "DH-DSS-ARIA128-GCM-SHA256"; case 0xC059: return "DH-DSS-ARIA256-GCM-SHA384"; case 0xC05A: return "DH-anon-ARIA128-GCM-SHA256"; case 0xC05B: return "DH-anon-ARIA256-GCM-SHA384"; case 0xC05C: return "ECDHE-ECDSA-ARIA128-GCM-SHA256"; case 0xC05D: return "ECDHE-ECDSA-ARIA256-GCM-SHA384"; case 0xC05E: return "ECDH-ECDSA-ARIA128-GCM-SHA256"; case 0xC05F: return "ECDH-ECDSA-ARIA256-GCM-SHA384"; case 0xC060: return "ECDHE-RSA-ARIA128-GCM-SHA256"; case 0xC061: return "ECDHE-RSA-ARIA256-GCM-SHA384"; case 0xC062: return "ECDH-RSA-ARIA128-GCM-SHA256"; case 0xC063: return "ECDH-RSA-ARIA256-GCM-SHA384"; case 0xC064: return "PSK-ARIA128-CBC-SHA256"; case 0xC065: return "PSK-ARIA256-CBC-SHA384"; case 0xC066: return "DHE-PSK-ARIA128-CBC-SHA256"; case 0xC067: return "DHE-PSK-ARIA256-CBC-SHA384"; case 0xC068: return "RSA-PSK-ARIA128-CBC-SHA256"; case 0xC069: return "RSA-PSK-ARIA256-CBC-SHA384"; case 0xC06A: return "PSK-ARIA128-GCM-SHA256"; case 0xC06B: return "PSK-ARIA256-GCM-SHA384"; case 0xC06C: return "DHE-PSK-ARIA128-GCM-SHA256"; case 0xC06D: return "DHE-PSK-ARIA256-GCM-SHA384"; case 0xC06E: return "RSA-PSK-ARIA128-GCM-SHA256"; case 0xC06F: return "RSA-PSK-ARIA256-GCM-SHA384"; case 0xC070: return "ECDHE-PSK-ARIA128-CBC-SHA256"; case 0xC071: return "ECDHE-PSK-ARIA256-CBC-SHA384"; case 0xC072: return "ECDHE-ECDSA-CAMELLIA128-CBC-SHA256"; case 0xC073: return "ECDHE-ECDSA-CAMELLIA256-CBC-SHA384"; case 0xC074: return "ECDH-ECDSA-CAMELLIA128-CBC-SHA256"; case 0xC075: return "ECDH-ECDSA-CAMELLIA256-CBC-SHA384"; case 0xC076: return "ECDHE-RSA-CAMELLIA128-CBC-SHA256"; case 0xC077: return "ECDHE-RSA-CAMELLIA256-CBC-SHA384"; case 0xC078: return "ECDH-RSA-CAMELLIA128-CBC-SHA256"; case 0xC079: return "ECDH-RSA-CAMELLIA256-CBC-SHA384"; case 0xC07A: return "RSA-CAMELLIA128-GCM-SHA256"; case 0xC07B: return "RSA-CAMELLIA256-GCM-SHA384"; case 0xC07C: return "DHE-RSA-CAMELLIA128-GCM-SHA256"; case 0xC07D: return "DHE-RSA-CAMELLIA256-GCM-SHA384"; case 0xC07E: return "DH-RSA-CAMELLIA128-GCM-SHA256"; case 0xC07F: return "DH-RSA-CAMELLIA256-GCM-SHA384"; case 0xC080: return "DHE-DSS-CAMELLIA128-GCM-SHA256"; case 0xC081: return "DHE-DSS-CAMELLIA256-GCM-SHA384"; case 0xC082: return "DH-DSS-CAMELLIA128-GCM-SHA256"; case 0xC083: return "DH-DSS-CAMELLIA256-GCM-SHA384"; case 0xC084: return "DH-anon-CAMELLIA128-GCM-SHA256"; case 0xC085: return "DH-anon-CAMELLIA256-GCM-SHA384"; case 0xC086: return "ECDHE-ECDSA-CAMELLIA128-GCM-SHA256"; case 0xC087: return "ECDHE-ECDSA-CAMELLIA256-GCM-SHA384"; case 0xC088: return "ECDH-ECDSA-CAMELLIA128-GCM-SHA256"; case 0xC089: return "ECDH-ECDSA-CAMELLIA256-GCM-SHA384"; case 0xC08A: return "ECDHE-RSA-CAMELLIA128-GCM-SHA256"; case 0xC08B: return "ECDHE-RSA-CAMELLIA256-GCM-SHA384"; case 0xC08C: return "ECDH-RSA-CAMELLIA128-GCM-SHA256"; case 0xC08D: return "ECDH-RSA-CAMELLIA256-GCM-SHA384"; case 0xC08E: return "PSK-CAMELLIA128-GCM-SHA256"; case 0xC08F: return "PSK-CAMELLIA256-GCM-SHA384"; case 0xC090: return "DHE-PSK-CAMELLIA128-GCM-SHA256"; case 0xC091: return "DHE-PSK-CAMELLIA256-GCM-SHA384"; case 0xC092: return "RSA-PSK-CAMELLIA128-GCM-SHA256"; case 0xC093: return "RSA-PSK-CAMELLIA256-GCM-SHA384"; case 0xC094: return "PSK-CAMELLIA128-CBC-SHA256"; case 0xC095: return "PSK-CAMELLIA256-CBC-SHA384"; case 0xC096: return "DHE-PSK-CAMELLIA128-CBC-SHA256"; case 0xC097: return "DHE-PSK-CAMELLIA256-CBC-SHA384"; case 0xC098: return "RSA-PSK-CAMELLIA128-CBC-SHA256"; case 0xC099: return "RSA-PSK-CAMELLIA256-CBC-SHA384"; case 0xC09A: return "ECDHE-PSK-CAMELLIA128-CBC-SHA256"; case 0xC09B: return "ECDHE-PSK-CAMELLIA256-CBC-SHA384"; case 0xC09C: return "RSA-AES128-CCM"; case 0xC09D: return "RSA-AES256-CCM"; case 0xC09E: return "DHE-RSA-AES128-CCM"; case 0xC09F: return "DHE-RSA-AES256-CCM"; case 0xC0A0: return "RSA-AES128-CCM8"; case 0xC0A1: return "RSA-AES256-CCM8"; case 0xC0A2: return "DHE-RSA-AES128-CCM8"; case 0xC0A3: return "DHE-RSA-AES256-CCM8"; case 0xC0A4: return "PSK-AES128-CCM"; case 0xC0A5: return "PSK-AES256-CCM"; case 0xC0A6: return "DHE-PSK-AES128-CCM"; case 0xC0A7: return "DHE-PSK-AES256-CCM"; case 0xC0A8: return "PSK-AES128-CCM8"; case 0xC0A9: return "PSK-AES256-CCM8"; case 0xC0AA: return "PSK-DHE-AES128-CCM8"; case 0xC0AB: return "PSK-DHE-AES256-CCM8"; case 0xC0AC: return "ECDHE-ECDSA-AES128-CCM"; case 0xC0AD: return "ECDHE-ECDSA-AES256-CCM"; case 0xC0AE: return "ECDHE-ECDSA-AES128-CCM8"; case 0xC0AF: return "ECDHE-ECDSA-AES256-CCM8"; case 0xC0B0: return "ECCPWD-AES128-GCM-SHA256"; case 0xC0B1: return "ECCPWD-AES256-GCM-SHA384"; case 0xC0B2: return "ECCPWD-AES128-CCM-SHA256"; case 0xC0B3: return "ECCPWD-AES256-CCM-SHA384"; case 0xC0B4: return "SHA256-SHA256"; case 0xC0B5: return "SHA384-SHA384"; case 0xC100: return "GOSTR341112-256-KUZNYECHIK-CTR-OMAC"; case 0xC101: return "GOSTR341112-256-MAGMA-CTR-OMAC"; case 0xC102: return "GOSTR341112-256-28147-CNT-IMIT"; case 0xC103: return "GOSTR341112-256-KUZNYECHIK-MGM-L"; case 0xC104: return "GOSTR341112-256-MAGMA-MGM-L"; case 0xC105: return "GOSTR341112-256-KUZNYECHIK-MGM-S"; case 0xC106: return "GOSTR341112-256-MAGMA-MGM-S"; case 0xCCA8: return "ECDHE-RSA-CHACHA20-POLY1305-SHA256"; case 0xCCA9: return "ECDHE-ECDSA-CHACHA20-POLY1305-SHA256"; case 0xCCAA: return "DHE-RSA-CHACHA20-POLY1305-SHA256"; case 0xCCAB: return "PSK-CHACHA20-POLY1305-SHA256"; case 0xCCAC: return "ECDHE-PSK-CHACHA20-POLY1305-SHA256"; case 0xCCAD: return "DHE-PSK-CHACHA20-POLY1305-SHA256"; case 0xCCAE: return "RSA-PSK-CHACHA20-POLY1305-SHA256"; case 0xD001: return "ECDHE-PSK-AES128-GCM-SHA256"; case 0xD002: return "ECDHE-PSK-AES256-GCM-SHA384"; case 0xD003: return "ECDHE-PSK-AES128-CCM8-SHA256"; case 0xD005: return "ECDHE-PSK-AES128-CCM-SHA256"; case 0x0A0A: case 0x1A1A: case 0x2A2A: case 0x3A3A: case 0x4A4A: case 0x5A5A: case 0x6A6A: case 0x7A7A: case 0x8A8A: case 0x9A9A: case 0xAAAA: case 0xBABA: case 0xCACA: case 0xDADA: case 0xEAEA: case 0xFAFA: return "GREASE-RFC8701"; case 0x0047 ... 0x004F: case 0x0050 ... 0x0058: case 0x0059 ... 0x005C: case 0x0060 ... 0x0066: case 0xFEFE ... 0xFEFF: return "RESERVED-NO-CONFLICT"; case 0x001C ... 0x001D: return "RESERVED-SSLV3-RFC5246"; case 0xFF00 ... 0xFFFF: return "PRIVATE-USE-RFC8446"; default: return "UNASSIGNED"; } }