- {0x0000, "SSL_NULL_WITH_NULL_NULL"},
- {0x0001, "SSL_RSA_WITH_NULL_MD5"},
- {0x0002, "SSL_RSA_WITH_NULL_SHA"},
- {0x0003, "SSL_RSA_EXPORT_WITH_RC4_40_MD5"},
- {0x0004, "SSL_RSA_WITH_RC4_128_MD5"},
- {0x0005, "SSL_RSA_WITH_RC4_128_SHA"},
- {0x0006, "SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5"},
- {0x0007, "SSL_RSA_WITH_IDEA_CBC_SHA"},
- {0x0008, "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA"},
- {0x0009, "SSL_RSA_WITH_DES_CBC_SHA"},
- {0x000A, "SSL_RSA_WITH_3DES_EDE_CBC_SHA"},
- {0x000B, "SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA"},
- {0x000C, "SSL_DH_DSS_WITH_DES_CBC_SHA"},
- {0x000D, "SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA"},
- {0x000E, "SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA"},
- {0x000F, "SSL_DH_RSA_WITH_DES_CBC_SHA"},
- {0x0010, "SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA"},
- {0x0011, "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"},
- {0x0012, "SSL_DHE_DSS_WITH_DES_CBC_SHA"},
- {0x0013, "SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"},
- {0x0014, "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA"},
- {0x0015, "SSL_DHE_RSA_WITH_DES_CBC_SHA"},
- {0x0016, "SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA"},
- {0x0017, "SSL_DH_anon_EXPORT_WITH_RC4_40_MD5"},
- {0x0018, "SSL_DH_anon_WITH_RC4_128_MD5"},
- {0x0019, "SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA"},
- {0x001A, "SSL_DH_anon_WITH_DES_CBC_SHA"},
- {0x001B, "SSL_DH_anon_WITH_3DES_EDE_CBC_SHA"},
- {0x001D, "SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA"},
- {0x001E, "SSL_FORTEZZA_KEA_WITH_RC4_128_SHA"},
- {0x001F, "TLS_KRB5_WITH_3DES_EDE_CBC_SHA"},
- {0x0020, "TLS_KRB5_WITH_RC4_128_SHA"},
- {0x0021, "TLS_KRB5_WITH_IDEA_CBC_SHA"},
- {0x0022, "TLS_KRB5_WITH_DES_CBC_MD5"},
- {0x0023, "TLS_KRB5_WITH_3DES_EDE_CBC_MD5"},
- {0x0024, "TLS_KRB5_WITH_RC4_128_MD5"},
- {0x0025, "TLS_KRB5_WITH_IDEA_CBC_MD5"},
- {0x0026, "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA"},
- {0x0027, "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA"},
- {0x0028, "TLS_KRB5_EXPORT_WITH_RC4_40_SHA"},
- {0x0029, "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5"},
- {0x002A, "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5"},
- {0x002B, "TLS_KRB5_EXPORT_WITH_RC4_40_MD5"},
- {0x002F, "TLS_RSA_WITH_AES_128_CBC_SHA"},
- {0x0030, "TLS_DH_DSS_WITH_AES_128_CBC_SHA"},
- {0x0031, "TLS_DH_RSA_WITH_AES_128_CBC_SHA"},
- {0x0032, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA"},
- {0x0033, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA"},
- {0x0034, "TLS_DH_anon_WITH_AES_128_CBC_SHA"},
- {0x0035, "TLS_RSA_WITH_AES_256_CBC_SHA"},
- {0x0036, "TLS_DH_DSS_WITH_AES_256_CBC_SHA"},
- {0x0037, "TLS_DH_RSA_WITH_AES_256_CBC_SHA"},
- {0x0038, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA"},
- {0x0039, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA"},
- {0x003A, "TLS_DH_anon_WITH_AES_256_CBC_SHA"},
- {0x003B, "TLS_RSA_WITH_NULL_SHA256"},
- {0x003C, "TLS_RSA_WITH_AES_128_CBC_SHA256"},
- {0x003D, "TLS_RSA_WITH_AES_256_CBC_SHA256"},
- {0x003E, "TLS_DH_DSS_WITH_AES_128_CBC_SHA256"},
- {0x003F, "TLS_DH_RSA_WITH_AES_128_CBC_SHA256"},
- {0x0040, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256"},
- {0x0041, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA"},
- {0x0042, "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA"},
- {0x0043, "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA"},
- {0x0044, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA"},
- {0x0045, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA"},
- {0x0046, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA"},
- {0x0067, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256"},
- {0x0068, "TLS_DH_DSS_WITH_AES_256_CBC_SHA256"},
- {0x0069, "TLS_DH_RSA_WITH_AES_256_CBC_SHA256"},
- {0x006A, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256"},
- {0x006B, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256"},
- {0x006C, "TLS_DH_anon_WITH_AES_128_CBC_SHA256"},
- {0x006D, "TLS_DH_anon_WITH_AES_256_CBC_SHA256"},
- {0x0084, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA"},
- {0x0085, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA"},
- {0x0086, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA"},
- {0x0087, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA"},
- {0x0088, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA"},
- {0x0089, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA"},
- {0x008A, "TLS_PSK_WITH_RC4_128_SHA"},
- {0x008B, "TLS_PSK_WITH_3DES_EDE_CBC_SHA"},
- {0x008C, "TLS_PSK_WITH_AES_128_CBC_SHA"},
- {0x008D, "TLS_PSK_WITH_AES_256_CBC_SHA"},
- {0x008E, "TLS_DHE_PSK_WITH_RC4_128_SHA"},
- {0x008F, "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA"},
- {0x0090, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA"},
- {0x0091, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA"},
- {0x0092, "TLS_RSA_PSK_WITH_RC4_128_SHA"},
- {0x0093, "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA"},
- {0x0094, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA"},
- {0x0095, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA"},
- {0x0096, "TLS_RSA_WITH_SEED_CBC_SHA"},
- {0x0097, "TLS_DH_DSS_WITH_SEED_CBC_SHA"},
- {0x0098, "TLS_DH_RSA_WITH_SEED_CBC_SHA"},
- {0x0099, "TLS_DHE_DSS_WITH_SEED_CBC_SHA"},
- {0x009A, "TLS_DHE_RSA_WITH_SEED_CBC_SHA"},
- {0x009B, "TLS_DH_anon_WITH_SEED_CBC_SHA"},
- {0x009C, "TLS_RSA_WITH_AES_128_GCM_SHA256"},
- {0x009D, "TLS_RSA_WITH_AES_256_GCM_SHA384"},
- {0x009E, "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"},
- {0x009F, "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384"},
- {0x00A0, "TLS_DH_RSA_WITH_AES_128_GCM_SHA256"},
- {0x00A1, "TLS_DH_RSA_WITH_AES_256_GCM_SHA384"},
- {0x00A2, "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256"},
- {0x00A3, "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384"},
- {0x00A4, "TLS_DH_DSS_WITH_AES_128_GCM_SHA256"},
- {0x00A5, "TLS_DH_DSS_WITH_AES_256_GCM_SHA384"},
- {0x00A6, "TLS_DH_anon_WITH_AES_128_GCM_SHA256"},
- {0x00A7, "TLS_DH_anon_WITH_AES_256_GCM_SHA384"},
- {0x00A8, "TLS_PSK_WITH_AES_128_GCM_SHA256"},
- {0x00A9, "TLS_PSK_WITH_AES_256_GCM_SHA384"},
- {0x00AA, "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256"},
- {0x00AB, "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384"},
- {0x00AC, "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256"},
- {0x00AD, "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384"},
- {0x00AE, "TLS_PSK_WITH_AES_128_CBC_SHA256"},
- {0x00AF, "TLS_PSK_WITH_AES_256_CBC_SHA384"},
- {0x00B0, "TLS_PSK_WITH_NULL_SHA256"},
- {0x00B1, "TLS_PSK_WITH_NULL_SHA384"},
- {0x00B2, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256"},
- {0x00B3, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384"},
- {0x00B4, "TLS_DHE_PSK_WITH_NULL_SHA256"},
- {0x00B5, "TLS_DHE_PSK_WITH_NULL_SHA384"},
- {0x00B6, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256"},
- {0x00B7, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384"},
- {0x00B8, "TLS_RSA_PSK_WITH_NULL_SHA256"},
- {0x00B9, "TLS_RSA_PSK_WITH_NULL_SHA384"},
- {0x00BA, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
- {0x00BB, "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256"},
- {0x00BC, "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
- {0x00BD, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256"},
- {0x00BE, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
- {0x00BF, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256"},
- {0x00C0, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256"},
- {0x00C1, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256"},
- {0x00C2, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256"},
- {0x00C3, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256"},
- {0x00C4, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256"},
- {0x00C5, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256"},
- {0x00FF, "TLS_EMPTY_RENEGOTIATION_INFO_SCSV"},
- {0xC001, "TLS_ECDH_ECDSA_WITH_NULL_SHA"},
- {0xC002, "TLS_ECDH_ECDSA_WITH_RC4_128_SHA"},
- {0xC003, "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA"},
- {0xC004, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA"},
- {0xC005, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA"},
- {0xC006, "TLS_ECDHE_ECDSA_WITH_NULL_SHA"},
- {0xC007, "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA"},
- {0xC008, "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA"},
- {0xC009, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA"},
- {0xC00A, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA"},
- {0xC00B, "TLS_ECDH_RSA_WITH_NULL_SHA"},
- {0xC00C, "TLS_ECDH_RSA_WITH_RC4_128_SHA"},
- {0xC00D, "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA"},
- {0xC00E, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA"},
- {0xC00F, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA"},
- {0xC010, "TLS_ECDHE_RSA_WITH_NULL_SHA"},
- {0xC011, "TLS_ECDHE_RSA_WITH_RC4_128_SHA"},
- {0xC012, "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA"},
- {0xC013, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"},
- {0xC014, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"},
- {0xC015, "TLS_ECDH_anon_WITH_NULL_SHA"},
- {0xC016, "TLS_ECDH_anon_WITH_RC4_128_SHA"},
- {0xC017, "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA"},
- {0xC018, "TLS_ECDH_anon_WITH_AES_128_CBC_SHA"},
- {0xC019, "TLS_ECDH_anon_WITH_AES_256_CBC_SHA"},
- {0xC01A, "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA"},
- {0xC01B, "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA"},
- {0xC01C, "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA"},
- {0xC01D, "TLS_SRP_SHA_WITH_AES_128_CBC_SHA"},
- {0xC01E, "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA"},
- {0xC01F, "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA"},
- {0xC020, "TLS_SRP_SHA_WITH_AES_256_CBC_SHA"},
- {0xC021, "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA"},
- {0xC022, "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA"},
- {0xC023, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"},
- {0xC024, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"},
- {0xC025, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256"},
- {0xC026, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384"},
- {0xC027, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"},
- {0xC028, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"},
- {0xC029, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256"},
- {0xC02A, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384"},
- {0xC02B, "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"},
- {0xC02C, "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"},
- {0xC02D, "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256"},
- {0xC02E, "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384"},
- {0xC02F, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"},
- {0xC030, "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"},
- {0xC031, "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256"},
- {0xC032, "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384"},
- {0xFEFE, "SSL_RSA_FIPS_WITH_DES_CBC_SHA"},
- {0xFEFF, "SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA"},
+ {0x0000, "SSL_NULL_WITH_NULL_NULL"},
+ {0x0001, "SSL_RSA_WITH_NULL_MD5"},
+ {0x0002, "SSL_RSA_WITH_NULL_SHA"},
+ {0x0003, "SSL_RSA_EXPORT_WITH_RC4_40_MD5"},
+ {0x0004, "SSL_RSA_WITH_RC4_128_MD5"},
+ {0x0005, "SSL_RSA_WITH_RC4_128_SHA"},
+ {0x0006, "SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5"},
+ {0x0007, "SSL_RSA_WITH_IDEA_CBC_SHA"},
+ {0x0008, "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA"},
+ {0x0009, "SSL_RSA_WITH_DES_CBC_SHA"},
+ {0x000A, "SSL_RSA_WITH_3DES_EDE_CBC_SHA"},
+ {0x000B, "SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA"},
+ {0x000C, "SSL_DH_DSS_WITH_DES_CBC_SHA"},
+ {0x000D, "SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA"},
+ {0x000E, "SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA"},
+ {0x000F, "SSL_DH_RSA_WITH_DES_CBC_SHA"},
+ {0x0010, "SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA"},
+ {0x0011, "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"},
+ {0x0012, "SSL_DHE_DSS_WITH_DES_CBC_SHA"},
+ {0x0013, "SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"},
+ {0x0014, "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA"},
+ {0x0015, "SSL_DHE_RSA_WITH_DES_CBC_SHA"},
+ {0x0016, "SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA"},
+ {0x0017, "SSL_DH_anon_EXPORT_WITH_RC4_40_MD5"},
+ {0x0018, "SSL_DH_anon_WITH_RC4_128_MD5"},
+ {0x0019, "SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA"},
+ {0x001A, "SSL_DH_anon_WITH_DES_CBC_SHA"},
+ {0x001B, "SSL_DH_anon_WITH_3DES_EDE_CBC_SHA"},
+ {0x001D, "SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA"},
+ {0x001E, "SSL_FORTEZZA_KEA_WITH_RC4_128_SHA"},
+ {0x001F, "TLS_KRB5_WITH_3DES_EDE_CBC_SHA"},
+ {0x0020, "TLS_KRB5_WITH_RC4_128_SHA"},
+ {0x0021, "TLS_KRB5_WITH_IDEA_CBC_SHA"},
+ {0x0022, "TLS_KRB5_WITH_DES_CBC_MD5"},
+ {0x0023, "TLS_KRB5_WITH_3DES_EDE_CBC_MD5"},
+ {0x0024, "TLS_KRB5_WITH_RC4_128_MD5"},
+ {0x0025, "TLS_KRB5_WITH_IDEA_CBC_MD5"},
+ {0x0026, "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA"},
+ {0x0027, "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA"},
+ {0x0028, "TLS_KRB5_EXPORT_WITH_RC4_40_SHA"},
+ {0x0029, "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5"},
+ {0x002A, "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5"},
+ {0x002B, "TLS_KRB5_EXPORT_WITH_RC4_40_MD5"},
+ {0x002F, "TLS_RSA_WITH_AES_128_CBC_SHA"},
+ {0x0030, "TLS_DH_DSS_WITH_AES_128_CBC_SHA"},
+ {0x0031, "TLS_DH_RSA_WITH_AES_128_CBC_SHA"},
+ {0x0032, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA"},
+ {0x0033, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA"},
+ {0x0034, "TLS_DH_anon_WITH_AES_128_CBC_SHA"},
+ {0x0035, "TLS_RSA_WITH_AES_256_CBC_SHA"},
+ {0x0036, "TLS_DH_DSS_WITH_AES_256_CBC_SHA"},
+ {0x0037, "TLS_DH_RSA_WITH_AES_256_CBC_SHA"},
+ {0x0038, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA"},
+ {0x0039, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA"},
+ {0x003A, "TLS_DH_anon_WITH_AES_256_CBC_SHA"},
+ {0x003B, "TLS_RSA_WITH_NULL_SHA256"},
+ {0x003C, "TLS_RSA_WITH_AES_128_CBC_SHA256"},
+ {0x003D, "TLS_RSA_WITH_AES_256_CBC_SHA256"},
+ {0x003E, "TLS_DH_DSS_WITH_AES_128_CBC_SHA256"},
+ {0x003F, "TLS_DH_RSA_WITH_AES_128_CBC_SHA256"},
+ {0x0040, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256"},
+ {0x0041, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA"},
+ {0x0042, "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA"},
+ {0x0043, "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA"},
+ {0x0044, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA"},
+ {0x0045, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA"},
+ {0x0046, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA"},
+ {0x0067, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256"},
+ {0x0068, "TLS_DH_DSS_WITH_AES_256_CBC_SHA256"},
+ {0x0069, "TLS_DH_RSA_WITH_AES_256_CBC_SHA256"},
+ {0x006A, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256"},
+ {0x006B, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256"},
+ {0x006C, "TLS_DH_anon_WITH_AES_128_CBC_SHA256"},
+ {0x006D, "TLS_DH_anon_WITH_AES_256_CBC_SHA256"},
+ {0x0084, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA"},
+ {0x0085, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA"},
+ {0x0086, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA"},
+ {0x0087, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA"},
+ {0x0088, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA"},
+ {0x0089, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA"},
+ {0x008A, "TLS_PSK_WITH_RC4_128_SHA"},
+ {0x008B, "TLS_PSK_WITH_3DES_EDE_CBC_SHA"},
+ {0x008C, "TLS_PSK_WITH_AES_128_CBC_SHA"},
+ {0x008D, "TLS_PSK_WITH_AES_256_CBC_SHA"},
+ {0x008E, "TLS_DHE_PSK_WITH_RC4_128_SHA"},
+ {0x008F, "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA"},
+ {0x0090, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA"},
+ {0x0091, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA"},
+ {0x0092, "TLS_RSA_PSK_WITH_RC4_128_SHA"},
+ {0x0093, "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA"},
+ {0x0094, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA"},
+ {0x0095, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA"},
+ {0x0096, "TLS_RSA_WITH_SEED_CBC_SHA"},
+ {0x0097, "TLS_DH_DSS_WITH_SEED_CBC_SHA"},
+ {0x0098, "TLS_DH_RSA_WITH_SEED_CBC_SHA"},
+ {0x0099, "TLS_DHE_DSS_WITH_SEED_CBC_SHA"},
+ {0x009A, "TLS_DHE_RSA_WITH_SEED_CBC_SHA"},
+ {0x009B, "TLS_DH_anon_WITH_SEED_CBC_SHA"},
+ {0x009C, "TLS_RSA_WITH_AES_128_GCM_SHA256"},
+ {0x009D, "TLS_RSA_WITH_AES_256_GCM_SHA384"},
+ {0x009E, "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"},
+ {0x009F, "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384"},
+ {0x00A0, "TLS_DH_RSA_WITH_AES_128_GCM_SHA256"},
+ {0x00A1, "TLS_DH_RSA_WITH_AES_256_GCM_SHA384"},
+ {0x00A2, "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256"},
+ {0x00A3, "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384"},
+ {0x00A4, "TLS_DH_DSS_WITH_AES_128_GCM_SHA256"},
+ {0x00A5, "TLS_DH_DSS_WITH_AES_256_GCM_SHA384"},
+ {0x00A6, "TLS_DH_anon_WITH_AES_128_GCM_SHA256"},
+ {0x00A7, "TLS_DH_anon_WITH_AES_256_GCM_SHA384"},
+ {0x00A8, "TLS_PSK_WITH_AES_128_GCM_SHA256"},
+ {0x00A9, "TLS_PSK_WITH_AES_256_GCM_SHA384"},
+ {0x00AA, "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256"},
+ {0x00AB, "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384"},
+ {0x00AC, "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256"},
+ {0x00AD, "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384"},
+ {0x00AE, "TLS_PSK_WITH_AES_128_CBC_SHA256"},
+ {0x00AF, "TLS_PSK_WITH_AES_256_CBC_SHA384"},
+ {0x00B0, "TLS_PSK_WITH_NULL_SHA256"},
+ {0x00B1, "TLS_PSK_WITH_NULL_SHA384"},
+ {0x00B2, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256"},
+ {0x00B3, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384"},
+ {0x00B4, "TLS_DHE_PSK_WITH_NULL_SHA256"},
+ {0x00B5, "TLS_DHE_PSK_WITH_NULL_SHA384"},
+ {0x00B6, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256"},
+ {0x00B7, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384"},
+ {0x00B8, "TLS_RSA_PSK_WITH_NULL_SHA256"},
+ {0x00B9, "TLS_RSA_PSK_WITH_NULL_SHA384"},
+ {0x00BA, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0x00BB, "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0x00BC, "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0x00BD, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0x00BE, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0x00BF, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256"},
+ {0x00C0, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256"},
+ {0x00C1, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256"},
+ {0x00C2, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256"},
+ {0x00C3, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256"},
+ {0x00C4, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256"},
+ {0x00C5, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256"},
+ {0x00FF, "TLS_EMPTY_RENEGOTIATION_INFO_SCSV"},
+ {0xC001, "TLS_ECDH_ECDSA_WITH_NULL_SHA"},
+ {0xC002, "TLS_ECDH_ECDSA_WITH_RC4_128_SHA"},
+ {0xC003, "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA"},
+ {0xC004, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA"},
+ {0xC005, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA"},
+ {0xC006, "TLS_ECDHE_ECDSA_WITH_NULL_SHA"},
+ {0xC007, "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA"},
+ {0xC008, "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA"},
+ {0xC009, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA"},
+ {0xC00A, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA"},
+ {0xC00B, "TLS_ECDH_RSA_WITH_NULL_SHA"},
+ {0xC00C, "TLS_ECDH_RSA_WITH_RC4_128_SHA"},
+ {0xC00D, "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA"},
+ {0xC00E, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA"},
+ {0xC00F, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA"},
+ {0xC010, "TLS_ECDHE_RSA_WITH_NULL_SHA"},
+ {0xC011, "TLS_ECDHE_RSA_WITH_RC4_128_SHA"},
+ {0xC012, "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA"},
+ {0xC013, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"},
+ {0xC014, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"},
+ {0xC015, "TLS_ECDH_anon_WITH_NULL_SHA"},
+ {0xC016, "TLS_ECDH_anon_WITH_RC4_128_SHA"},
+ {0xC017, "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA"},
+ {0xC018, "TLS_ECDH_anon_WITH_AES_128_CBC_SHA"},
+ {0xC019, "TLS_ECDH_anon_WITH_AES_256_CBC_SHA"},
+ {0xC01A, "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA"},
+ {0xC01B, "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA"},
+ {0xC01C, "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA"},
+ {0xC01D, "TLS_SRP_SHA_WITH_AES_128_CBC_SHA"},
+ {0xC01E, "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA"},
+ {0xC01F, "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA"},
+ {0xC020, "TLS_SRP_SHA_WITH_AES_256_CBC_SHA"},
+ {0xC021, "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA"},
+ {0xC022, "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA"},
+ {0xC023, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"},
+ {0xC024, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"},
+ {0xC025, "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256"},
+ {0xC026, "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384"},
+ {0xC027, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"},
+ {0xC028, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"},
+ {0xC029, "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256"},
+ {0xC02A, "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384"},
+ {0xC02B, "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"},
+ {0xC02C, "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"},
+ {0xC02D, "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256"},
+ {0xC02E, "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384"},
+ {0xC02F, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"},
+ {0xC030, "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"},
+ {0xC031, "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256"},
+ {0xC032, "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384"},
+ {0xFEFE, "SSL_RSA_FIPS_WITH_DES_CBC_SHA"},
+ {0xFEFF, "SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA"},
- const unsigned char *msg, size_t msglen)
- {
- const char *algname;
- int id;
- id = ssl_get_keyex(&algname, ssl);
- BIO_indent(bio, indent, 80);
- BIO_printf(bio, "KeyExchangeAlgorithm=%s\n", algname);
- switch(id)
- {
- /* Should never happen */
- case SSL_kDHd:
- case SSL_kDHr:
- BIO_indent(bio, indent + 2, 80);
- BIO_printf(bio, "Unexpected Message\n");
- break;
-
- case SSL_kRSA:
-
- if (!ssl_print_hexbuf(bio, indent + 2, "rsa_modulus", 2,
- &msg, &msglen))
- return 0;
- if (!ssl_print_hexbuf(bio, indent + 2, "rsa_exponent", 2,
- &msg, &msglen))
- return 0;
- break;
-
- case SSL_kEDH:
- if (!ssl_print_hexbuf(bio, indent + 2, "dh_p", 2,
- &msg, &msglen))
- return 0;
- if (!ssl_print_hexbuf(bio, indent + 2, "dh_g", 2,
- &msg, &msglen))
- return 0;
- if (!ssl_print_hexbuf(bio, indent + 2, "dh_Ys", 2,
- &msg, &msglen))
- return 0;
- break;
-
- case SSL_kEECDH:
- if (msglen < 1)
- return 0;
- BIO_indent(bio, indent + 2, 80);
- if (msg[0] == EXPLICIT_PRIME_CURVE_TYPE)
- BIO_puts(bio, "explicit_prime\n");
- else if (msg[0] == EXPLICIT_CHAR2_CURVE_TYPE)
- BIO_puts(bio, "explicit_char2\n");
- else if (msg[0] == NAMED_CURVE_TYPE)
- {
- int curve;
- if (msglen < 3)
- return 0;
- curve = (msg[1] << 8) | msg[2];
- BIO_printf(bio, "named_curve: %s (%d)\n",
- ssl_trace_str(curve, ssl_curve_tbl),
- curve);
- msg += 3;
- msglen -= 3;
- if (!ssl_print_hexbuf(bio, indent + 2, "point", 1,
- &msg, &msglen))
- return 0;
- }
- break;
- }
- return ssl_print_signature(bio, indent, ssl, &msg, &msglen);
- }
-
-static int ssl_print_certificate(BIO *bio, int indent,
- const unsigned char **pmsg, size_t *pmsglen)
- {
- size_t msglen = *pmsglen;
- size_t clen;
- X509 *x;
- const unsigned char *p = *pmsg, *q;
- if (msglen < 3)
- return 0;
- clen = (p[0] << 16) | (p[1] << 8) | p[2];
- if (msglen < clen + 3)
- return 0;
- q = p + 3;
- BIO_indent(bio, indent, 80);
- BIO_printf(bio, "ASN.1Cert, length=%d", (int)clen);
- x = d2i_X509(NULL, &q, clen);
- if (!x)
- BIO_puts(bio, "<UNPARSEABLE CERTIFICATE>\n");
- else
- {
- BIO_puts(bio, "\n------details-----\n");
- X509_print_ex(bio, x, XN_FLAG_ONELINE, 0);
- PEM_write_bio_X509(bio, x);
- /* Print certificate stuff */
- BIO_puts(bio, "------------------\n");
- X509_free(x);
- }
- if (q != p + 3 + clen)
- {
- BIO_puts(bio, "<TRAILING GARBAGE AFTER CERTIFICATE>\n");
- }
- *pmsg += clen + 3;
- *pmsglen -= clen + 3;
- return 1;
- }
-
-static int ssl_print_certificates(BIO *bio, int indent,
- const unsigned char *msg, size_t msglen)
- {
- size_t clen;
- if (msglen < 3)
- return 0;
- clen = (msg[0] << 16) | (msg[1] << 8) | msg[2];
- if (msglen != clen + 3)
- return 0;
- msg += 3;
- BIO_indent(bio, indent, 80);
- BIO_printf(bio, "certificate_list, length=%d\n", (int)clen);
- while (clen > 0)
- {
- if (!ssl_print_certificate(bio, indent + 2, &msg, &clen))
- return 0;
- }
- return 1;
- }
+ const unsigned char *msg, size_t msglen)
+{
+ const char *algname;
+ int id;
+ id = ssl_get_keyex(&algname, ssl);
+ BIO_indent(bio, indent, 80);
+ BIO_printf(bio, "KeyExchangeAlgorithm=%s\n", algname);
+ switch (id) {
+ /* Should never happen */
+ case SSL_kDHd:
+ case SSL_kDHr:
+ case SSL_kECDHr:
+ case SSL_kECDHe:
+ BIO_indent(bio, indent + 2, 80);
+ BIO_printf(bio, "Unexpected Message\n");
+ break;
+
+ case SSL_kRSA:
+
+ if (!ssl_print_hexbuf(bio, indent + 2, "rsa_modulus", 2,
+ &msg, &msglen))
+ return 0;
+ if (!ssl_print_hexbuf(bio, indent + 2, "rsa_exponent", 2,
+ &msg, &msglen))
+ return 0;
+ break;
+
+ case SSL_kDHE:
+ if (!ssl_print_hexbuf(bio, indent + 2, "dh_p", 2, &msg, &msglen))
+ return 0;
+ if (!ssl_print_hexbuf(bio, indent + 2, "dh_g", 2, &msg, &msglen))
+ return 0;
+ if (!ssl_print_hexbuf(bio, indent + 2, "dh_Ys", 2, &msg, &msglen))
+ return 0;
+ break;
+
+ case SSL_kECDHE:
+ if (msglen < 1)
+ return 0;
+ BIO_indent(bio, indent + 2, 80);
+ if (msg[0] == EXPLICIT_PRIME_CURVE_TYPE)
+ BIO_puts(bio, "explicit_prime\n");
+ else if (msg[0] == EXPLICIT_CHAR2_CURVE_TYPE)
+ BIO_puts(bio, "explicit_char2\n");
+ else if (msg[0] == NAMED_CURVE_TYPE) {
+ int curve;
+ if (msglen < 3)
+ return 0;
+ curve = (msg[1] << 8) | msg[2];
+ BIO_printf(bio, "named_curve: %s (%d)\n",
+ ssl_trace_str(curve, ssl_curve_tbl), curve);
+ msg += 3;
+ msglen -= 3;
+ if (!ssl_print_hexbuf(bio, indent + 2, "point", 1, &msg, &msglen))
+ return 0;
+ }
+ break;
+ }
+ return ssl_print_signature(bio, indent, ssl, &msg, &msglen);
+}
+
+static int ssl_print_certificate(BIO *bio, int indent,
+ const unsigned char **pmsg, size_t *pmsglen)
+{
+ size_t msglen = *pmsglen;
+ size_t clen;
+ X509 *x;
+ const unsigned char *p = *pmsg, *q;
+ if (msglen < 3)
+ return 0;
+ clen = (p[0] << 16) | (p[1] << 8) | p[2];
+ if (msglen < clen + 3)
+ return 0;
+ q = p + 3;
+ BIO_indent(bio, indent, 80);
+ BIO_printf(bio, "ASN.1Cert, length=%d", (int)clen);
+ x = d2i_X509(NULL, &q, clen);
+ if (!x)
+ BIO_puts(bio, "<UNPARSEABLE CERTIFICATE>\n");
+ else {
+ BIO_puts(bio, "\n------details-----\n");
+ X509_print_ex(bio, x, XN_FLAG_ONELINE, 0);
+ PEM_write_bio_X509(bio, x);
+ /* Print certificate stuff */
+ BIO_puts(bio, "------------------\n");
+ X509_free(x);
+ }
+ if (q != p + 3 + clen) {
+ BIO_puts(bio, "<TRAILING GARBAGE AFTER CERTIFICATE>\n");
+ }
+ *pmsg += clen + 3;
+ *pmsglen -= clen + 3;
+ return 1;
+}
+
+static int ssl_print_certificates(BIO *bio, int indent,
+ const unsigned char *msg, size_t msglen)
+{
+ size_t clen;
+ if (msglen < 3)
+ return 0;
+ clen = (msg[0] << 16) | (msg[1] << 8) | msg[2];
+ if (msglen != clen + 3)
+ return 0;
+ msg += 3;
+ BIO_indent(bio, indent, 80);
+ BIO_printf(bio, "certificate_list, length=%d\n", (int)clen);
+ while (clen > 0) {
+ if (!ssl_print_certificate(bio, indent + 2, &msg, &clen))
+ return 0;
+ }
+ return 1;
+}