summaryrefslogtreecommitdiffstats
path: root/net/ssl
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-06 09:49:21 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-06 09:49:21 +0000
commite8a7e1103aeb51eb471a6baa32c68f3f8458b134 (patch)
tree688821153269e19b752962fcdd5636982a3c641e /net/ssl
parentc31c5f21273cd12785e0e4d04cb2eec6033d9d95 (diff)
downloadchromium_src-e8a7e1103aeb51eb471a6baa32c68f3f8458b134.zip
chromium_src-e8a7e1103aeb51eb471a6baa32c68f3f8458b134.tar.gz
chromium_src-e8a7e1103aeb51eb471a6baa32c68f3f8458b134.tar.bz2
net: update cipher suite names tables.
This change updates the cipher suite name tables with the latest values from IANA. It also fixes an issue where GCM ciphersuites were advertised as having the PRF hash as the MAC function. After this change, GCM ciphersuites will report AES_128_CTR as the cipher and GHASH as the MAC. Any ciphersuites that contained any of the following substrings were excluded: "_PSK_", "_ARIA_", "_CCM", "_SRP_", "_KRB" Review URL: https://chromiumcodereview.appspot.com/16461005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204469 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/ssl')
-rw-r--r--net/ssl/ssl_cipher_suite_names.cc419
-rw-r--r--net/ssl/ssl_cipher_suite_names_unittest.cc17
2 files changed, 198 insertions, 238 deletions
diff --git a/net/ssl/ssl_cipher_suite_names.cc b/net/ssl/ssl_cipher_suite_names.cc
index c07d5c2..6ead950 100644
--- a/net/ssl/ssl_cipher_suite_names.cc
+++ b/net/ssl/ssl_cipher_suite_names.cc
@@ -17,9 +17,9 @@
// those components from the name, number them and pack the result into a
// 16-bit number thus:
// (MSB to LSB)
-// <4 bits> unused
+// <3 bits> unused
// <5 bits> key exchange
-// <4 bits> cipher
+// <5 bits> cipher
// <3 bits> mac
// The following tables were generated by ssl_cipher_suite_names_generate.go,
@@ -31,211 +31,174 @@ struct CipherSuite {
static const struct CipherSuite kCipherSuites[] = {
{0x0, 0x0}, // TLS_NULL_WITH_NULL_NULL
- {0x1, 0x81}, // TLS_RSA_WITH_NULL_MD5
- {0x2, 0x82}, // TLS_RSA_WITH_NULL_SHA
- {0x3, 0x109}, // TLS_RSA_EXPORT_WITH_RC4_40_MD5
- {0x4, 0x91}, // TLS_RSA_WITH_RC4_128_MD5
- {0x5, 0x92}, // TLS_RSA_WITH_RC4_128_SHA
- {0x6, 0x119}, // TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
- {0x7, 0xa2}, // TLS_RSA_WITH_IDEA_CBC_SHA
- {0x8, 0x12a}, // TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
- {0x9, 0xb2}, // TLS_RSA_WITH_DES_CBC_SHA
- {0xa, 0xba}, // TLS_RSA_WITH_3DES_EDE_CBC_SHA
- {0xb, 0x1aa}, // TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
- {0xc, 0x232}, // TLS_DH_DSS_WITH_DES_CBC_SHA
- {0xd, 0x23a}, // TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
- {0xe, 0x2aa}, // TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
- {0xf, 0x332}, // TLS_DH_RSA_WITH_DES_CBC_SHA
- {0x10, 0x33a}, // TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
- {0x11, 0x3aa}, // TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
- {0x12, 0x432}, // TLS_DHE_DSS_WITH_DES_CBC_SHA
- {0x13, 0x43a}, // TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
- {0x14, 0x4aa}, // TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
- {0x15, 0x532}, // TLS_DHE_RSA_WITH_DES_CBC_SHA
- {0x16, 0x53a}, // TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
- {0x17, 0x589}, // TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
- {0x18, 0x611}, // TLS_DH_anon_WITH_RC4_128_MD5
- {0x19, 0x5aa}, // TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
- {0x1a, 0x632}, // TLS_DH_anon_WITH_DES_CBC_SHA
- {0x1b, 0x63a}, // TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
- {0x1e, 0x6b2}, // TLS_KRB5_WITH_DES_CBC_SHA
- {0x1f, 0x6ba}, // TLS_KRB5_WITH_3DES_EDE_CBC_SHA
- {0x20, 0x692}, // TLS_KRB5_WITH_RC4_128_SHA
- {0x21, 0x6a2}, // TLS_KRB5_WITH_IDEA_CBC_SHA
- {0x22, 0x6b1}, // TLS_KRB5_WITH_DES_CBC_MD5
- {0x23, 0x6b9}, // TLS_KRB5_WITH_3DES_EDE_CBC_MD5
- {0x24, 0x691}, // TLS_KRB5_WITH_RC4_128_MD5
- {0x25, 0x6a1}, // TLS_KRB5_WITH_IDEA_CBC_MD5
- {0x26, 0x742}, // TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA
- {0x27, 0x71a}, // TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA
- {0x28, 0x70a}, // TLS_KRB5_EXPORT_WITH_RC4_40_SHA
- {0x29, 0x741}, // TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5
- {0x2a, 0x719}, // TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5
- {0x2b, 0x709}, // TLS_KRB5_EXPORT_WITH_RC4_40_MD5
- {0x2c, 0x782}, // TLS_PSK_WITH_NULL_SHA
- {0x2d, 0x802}, // TLS_DHE_PSK_WITH_NULL_SHA
- {0x2e, 0x882}, // TLS_RSA_PSK_WITH_NULL_SHA
- {0x2f, 0xca}, // TLS_RSA_WITH_AES_128_CBC_SHA
- {0x30, 0x24a}, // TLS_DH_DSS_WITH_AES_128_CBC_SHA
- {0x31, 0x34a}, // TLS_DH_RSA_WITH_AES_128_CBC_SHA
- {0x32, 0x44a}, // TLS_DHE_DSS_WITH_AES_128_CBC_SHA
- {0x33, 0x54a}, // TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- {0x34, 0x64a}, // TLS_DH_anon_WITH_AES_128_CBC_SHA
- {0x35, 0xd2}, // TLS_RSA_WITH_AES_256_CBC_SHA
- {0x36, 0x252}, // TLS_DH_DSS_WITH_AES_256_CBC_SHA
- {0x37, 0x352}, // TLS_DH_RSA_WITH_AES_256_CBC_SHA
- {0x38, 0x452}, // TLS_DHE_DSS_WITH_AES_256_CBC_SHA
- {0x39, 0x552}, // TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- {0x3a, 0x652}, // TLS_DH_anon_WITH_AES_256_CBC_SHA
- {0x3b, 0x83}, // TLS_RSA_WITH_NULL_SHA256
- {0x3c, 0xcb}, // TLS_RSA_WITH_AES_128_CBC_SHA256
- {0x3d, 0xd3}, // TLS_RSA_WITH_AES_256_CBC_SHA256
- {0x3e, 0x24b}, // TLS_DH_DSS_WITH_AES_128_CBC_SHA256
- {0x3f, 0x34b}, // TLS_DH_RSA_WITH_AES_128_CBC_SHA256
- {0x40, 0x44b}, // TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
- {0x41, 0xda}, // TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
- {0x42, 0x25a}, // TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA
- {0x43, 0x35a}, // TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA
- {0x44, 0x45a}, // TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA
- {0x45, 0x55a}, // TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
- {0x46, 0x65a}, // TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA
- {0x67, 0x54b}, // TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- {0x68, 0x253}, // TLS_DH_DSS_WITH_AES_256_CBC_SHA256
- {0x69, 0x353}, // TLS_DH_RSA_WITH_AES_256_CBC_SHA256
- {0x6a, 0x453}, // TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
- {0x6b, 0x553}, // TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- {0x6c, 0x64b}, // TLS_DH_anon_WITH_AES_128_CBC_SHA256
- {0x6d, 0x653}, // TLS_DH_anon_WITH_AES_256_CBC_SHA256
- {0x84, 0xe2}, // TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
- {0x85, 0x262}, // TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA
- {0x86, 0x362}, // TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA
- {0x87, 0x462}, // TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA
- {0x88, 0x562}, // TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
- {0x89, 0x662}, // TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA
- {0x8a, 0x792}, // TLS_PSK_WITH_RC4_128_SHA
- {0x8b, 0x7ba}, // TLS_PSK_WITH_3DES_EDE_CBC_SHA
- {0x8c, 0x7ca}, // TLS_PSK_WITH_AES_128_CBC_SHA
- {0x8d, 0x7d2}, // TLS_PSK_WITH_AES_256_CBC_SHA
- {0x8e, 0x812}, // TLS_DHE_PSK_WITH_RC4_128_SHA
- {0x8f, 0x83a}, // TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
- {0x90, 0x84a}, // TLS_DHE_PSK_WITH_AES_128_CBC_SHA
- {0x91, 0x852}, // TLS_DHE_PSK_WITH_AES_256_CBC_SHA
- {0x92, 0x892}, // TLS_RSA_PSK_WITH_RC4_128_SHA
- {0x93, 0x8ba}, // TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
- {0x94, 0x8ca}, // TLS_RSA_PSK_WITH_AES_128_CBC_SHA
- {0x95, 0x8d2}, // TLS_RSA_PSK_WITH_AES_256_CBC_SHA
- {0x96, 0xea}, // TLS_RSA_WITH_SEED_CBC_SHA
- {0x97, 0x26a}, // TLS_DH_DSS_WITH_SEED_CBC_SHA
- {0x98, 0x36a}, // TLS_DH_RSA_WITH_SEED_CBC_SHA
- {0x99, 0x46a}, // TLS_DHE_DSS_WITH_SEED_CBC_SHA
- {0x9a, 0x56a}, // TLS_DHE_RSA_WITH_SEED_CBC_SHA
- {0x9b, 0x66a}, // TLS_DH_anon_WITH_SEED_CBC_SHA
- {0x9c, 0xf3}, // TLS_RSA_WITH_AES_128_GCM_SHA256
- {0x9d, 0xfc}, // TLS_RSA_WITH_AES_256_GCM_SHA384
- {0x9e, 0x573}, // TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- {0x9f, 0x57c}, // TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- {0xa0, 0x373}, // TLS_DH_RSA_WITH_AES_128_GCM_SHA256
- {0xa1, 0x37c}, // TLS_DH_RSA_WITH_AES_256_GCM_SHA384
- {0xa2, 0x473}, // TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
- {0xa3, 0x47c}, // TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
- {0xa4, 0x273}, // TLS_DH_DSS_WITH_AES_128_GCM_SHA256
- {0xa5, 0x27c}, // TLS_DH_DSS_WITH_AES_256_GCM_SHA384
- {0xa6, 0x673}, // TLS_DH_anon_WITH_AES_128_GCM_SHA256
- {0xa7, 0x67c}, // TLS_DH_anon_WITH_AES_256_GCM_SHA384
- {0xa8, 0x7f3}, // TLS_PSK_WITH_AES_128_GCM_SHA256
- {0xa9, 0x7fc}, // TLS_PSK_WITH_AES_256_GCM_SHA384
- {0xaa, 0x873}, // TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
- {0xab, 0x87c}, // TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
- {0xac, 0x8f3}, // TLS_RSA_PSK_WITH_AES_128_GCM_SHA256
- {0xad, 0x8fc}, // TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
- {0xae, 0x7cb}, // TLS_PSK_WITH_AES_128_CBC_SHA256
- {0xaf, 0x7d4}, // TLS_PSK_WITH_AES_256_CBC_SHA384
- {0xb0, 0x783}, // TLS_PSK_WITH_NULL_SHA256
- {0xb1, 0x784}, // TLS_PSK_WITH_NULL_SHA384
- {0xb2, 0x84b}, // TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
- {0xb3, 0x854}, // TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
- {0xb4, 0x803}, // TLS_DHE_PSK_WITH_NULL_SHA256
- {0xb5, 0x804}, // TLS_DHE_PSK_WITH_NULL_SHA384
- {0xb6, 0x8cb}, // TLS_RSA_PSK_WITH_AES_128_CBC_SHA256
- {0xb7, 0x8d4}, // TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
- {0xb8, 0x883}, // TLS_RSA_PSK_WITH_NULL_SHA256
- {0xb9, 0x884}, // TLS_RSA_PSK_WITH_NULL_SHA384
- {0xba, 0xdb}, // TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
- {0xbb, 0x25b}, // TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256
- {0xbc, 0x35b}, // TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256
- {0xbd, 0x45b}, // TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256
- {0xbe, 0x55b}, // TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
- {0xbf, 0x65b}, // TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256
- {0xc0, 0xe3}, // TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
- {0xc1, 0x263}, // TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256
- {0xc2, 0x363}, // TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256
- {0xc3, 0x463}, // TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256
- {0xc4, 0x563}, // TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
- {0xc5, 0x663}, // TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256
- {0xc001, 0x902}, // TLS_ECDH_ECDSA_WITH_NULL_SHA
- {0xc002, 0x912}, // TLS_ECDH_ECDSA_WITH_RC4_128_SHA
- {0xc003, 0x93a}, // TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
- {0xc004, 0x94a}, // TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
- {0xc005, 0x952}, // TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
- {0xc006, 0x982}, // TLS_ECDHE_ECDSA_WITH_NULL_SHA
- {0xc007, 0x992}, // TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
- {0xc008, 0x9ba}, // TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
- {0xc009, 0x9ca}, // TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- {0xc00a, 0x9d2}, // TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- {0xc00b, 0xa02}, // TLS_ECDH_RSA_WITH_NULL_SHA
- {0xc00c, 0xa12}, // TLS_ECDH_RSA_WITH_RC4_128_SHA
- {0xc00d, 0xa3a}, // TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
- {0xc00e, 0xa4a}, // TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
- {0xc00f, 0xa52}, // TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
- {0xc010, 0xa82}, // TLS_ECDHE_RSA_WITH_NULL_SHA
- {0xc011, 0xa92}, // TLS_ECDHE_RSA_WITH_RC4_128_SHA
- {0xc012, 0xaba}, // TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
- {0xc013, 0xaca}, // TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- {0xc014, 0xad2}, // TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- {0xc015, 0xb02}, // TLS_ECDH_anon_WITH_NULL_SHA
- {0xc016, 0xb12}, // TLS_ECDH_anon_WITH_RC4_128_SHA
- {0xc017, 0xb3a}, // TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA
- {0xc018, 0xb4a}, // TLS_ECDH_anon_WITH_AES_128_CBC_SHA
- {0xc019, 0xb52}, // TLS_ECDH_anon_WITH_AES_256_CBC_SHA
- {0xc01a, 0xbba}, // TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA
- {0xc01b, 0xc3a}, // TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA
- {0xc01c, 0xcba}, // TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA
- {0xc01d, 0xbca}, // TLS_SRP_SHA_WITH_AES_128_CBC_SHA
- {0xc01e, 0xc4a}, // TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA
- {0xc01f, 0xcca}, // TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA
- {0xc020, 0xbd2}, // TLS_SRP_SHA_WITH_AES_256_CBC_SHA
- {0xc021, 0xc52}, // TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA
- {0xc022, 0xcd2}, // TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA
- {0xc023, 0x9cb}, // TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- {0xc024, 0x9d4}, // TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- {0xc025, 0x94b}, // TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
- {0xc026, 0x954}, // TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
- {0xc027, 0xacb}, // TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- {0xc028, 0xad4}, // TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- {0xc029, 0xa4b}, // TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
- {0xc02a, 0xa54}, // TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
- {0xc02b, 0x9f3}, // TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- {0xc02c, 0x9fc}, // TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- {0xc02d, 0x973}, // TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
- {0xc02e, 0x97c}, // TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
- {0xc02f, 0xaf3}, // TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- {0xc030, 0xafc}, // TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- {0xc031, 0xa73}, // TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
- {0xc032, 0xa7c}, // TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
- {0xc033, 0xd12}, // TLS_ECDHE_PSK_WITH_RC4_128_SHA
- {0xc034, 0xd3a}, // TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
- {0xc035, 0xd4a}, // TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
- {0xc036, 0xd52}, // TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
- {0xc037, 0xd4b}, // TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
- {0xc038, 0xd54}, // TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
- {0xc039, 0xd02}, // TLS_ECDHE_PSK_WITH_NULL_SHA
- {0xc03a, 0xd03}, // TLS_ECDHE_PSK_WITH_NULL_SHA256
- {0xc03b, 0xd04}, // TLS_ECDHE_PSK_WITH_NULL_SHA384
+ {0x1, 0x101}, // TLS_RSA_WITH_NULL_MD5
+ {0x2, 0x102}, // TLS_RSA_WITH_NULL_SHA
+ {0x3, 0x209}, // TLS_RSA_EXPORT_WITH_RC4_40_MD5
+ {0x4, 0x111}, // TLS_RSA_WITH_RC4_128_MD5
+ {0x5, 0x112}, // TLS_RSA_WITH_RC4_128_SHA
+ {0x6, 0x219}, // TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
+ {0x7, 0x122}, // TLS_RSA_WITH_IDEA_CBC_SHA
+ {0x8, 0x22a}, // TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
+ {0x9, 0x132}, // TLS_RSA_WITH_DES_CBC_SHA
+ {0xa, 0x13a}, // TLS_RSA_WITH_3DES_EDE_CBC_SHA
+ {0xb, 0x32a}, // TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
+ {0xc, 0x432}, // TLS_DH_DSS_WITH_DES_CBC_SHA
+ {0xd, 0x43a}, // TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
+ {0xe, 0x52a}, // TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
+ {0xf, 0x632}, // TLS_DH_RSA_WITH_DES_CBC_SHA
+ {0x10, 0x63a}, // TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
+ {0x11, 0x72a}, // TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
+ {0x12, 0x832}, // TLS_DHE_DSS_WITH_DES_CBC_SHA
+ {0x13, 0x83a}, // TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
+ {0x14, 0x92a}, // TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
+ {0x15, 0xa32}, // TLS_DHE_RSA_WITH_DES_CBC_SHA
+ {0x16, 0xa3a}, // TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
+ {0x17, 0xb09}, // TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
+ {0x18, 0xc11}, // TLS_DH_anon_WITH_RC4_128_MD5
+ {0x19, 0xb2a}, // TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
+ {0x1a, 0xc32}, // TLS_DH_anon_WITH_DES_CBC_SHA
+ {0x1b, 0xc3a}, // TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
+ {0x2f, 0x142}, // TLS_RSA_WITH_AES_128_CBC_SHA
+ {0x30, 0x442}, // TLS_DH_DSS_WITH_AES_128_CBC_SHA
+ {0x31, 0x642}, // TLS_DH_RSA_WITH_AES_128_CBC_SHA
+ {0x32, 0x842}, // TLS_DHE_DSS_WITH_AES_128_CBC_SHA
+ {0x33, 0xa42}, // TLS_DHE_RSA_WITH_AES_128_CBC_SHA
+ {0x34, 0xc42}, // TLS_DH_anon_WITH_AES_128_CBC_SHA
+ {0x35, 0x14a}, // TLS_RSA_WITH_AES_256_CBC_SHA
+ {0x36, 0x44a}, // TLS_DH_DSS_WITH_AES_256_CBC_SHA
+ {0x37, 0x64a}, // TLS_DH_RSA_WITH_AES_256_CBC_SHA
+ {0x38, 0x84a}, // TLS_DHE_DSS_WITH_AES_256_CBC_SHA
+ {0x39, 0xa4a}, // TLS_DHE_RSA_WITH_AES_256_CBC_SHA
+ {0x3a, 0xc4a}, // TLS_DH_anon_WITH_AES_256_CBC_SHA
+ {0x3b, 0x103}, // TLS_RSA_WITH_NULL_SHA256
+ {0x3c, 0x143}, // TLS_RSA_WITH_AES_128_CBC_SHA256
+ {0x3d, 0x14b}, // TLS_RSA_WITH_AES_256_CBC_SHA256
+ {0x3e, 0x443}, // TLS_DH_DSS_WITH_AES_128_CBC_SHA256
+ {0x3f, 0x643}, // TLS_DH_RSA_WITH_AES_128_CBC_SHA256
+ {0x40, 0x843}, // TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
+ {0x41, 0x152}, // TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
+ {0x42, 0x452}, // TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA
+ {0x43, 0x652}, // TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA
+ {0x44, 0x852}, // TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA
+ {0x45, 0xa52}, // TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
+ {0x46, 0xc52}, // TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA
+ {0x67, 0xa43}, // TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
+ {0x68, 0x44b}, // TLS_DH_DSS_WITH_AES_256_CBC_SHA256
+ {0x69, 0x64b}, // TLS_DH_RSA_WITH_AES_256_CBC_SHA256
+ {0x6a, 0x84b}, // TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
+ {0x6b, 0xa4b}, // TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
+ {0x6c, 0xc43}, // TLS_DH_anon_WITH_AES_128_CBC_SHA256
+ {0x6d, 0xc4b}, // TLS_DH_anon_WITH_AES_256_CBC_SHA256
+ {0x84, 0x15a}, // TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
+ {0x85, 0x45a}, // TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA
+ {0x86, 0x65a}, // TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA
+ {0x87, 0x85a}, // TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA
+ {0x88, 0xa5a}, // TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
+ {0x89, 0xc5a}, // TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA
+ {0x96, 0x162}, // TLS_RSA_WITH_SEED_CBC_SHA
+ {0x97, 0x462}, // TLS_DH_DSS_WITH_SEED_CBC_SHA
+ {0x98, 0x662}, // TLS_DH_RSA_WITH_SEED_CBC_SHA
+ {0x99, 0x862}, // TLS_DHE_DSS_WITH_SEED_CBC_SHA
+ {0x9a, 0xa62}, // TLS_DHE_RSA_WITH_SEED_CBC_SHA
+ {0x9b, 0xc62}, // TLS_DH_anon_WITH_SEED_CBC_SHA
+ {0x9c, 0x16c}, // TLS_RSA_WITH_AES_128_GCM_SHA256
+ {0x9d, 0x174}, // TLS_RSA_WITH_AES_256_GCM_SHA384
+ {0x9e, 0xa6c}, // TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
+ {0x9f, 0xa74}, // TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
+ {0xa0, 0x66c}, // TLS_DH_RSA_WITH_AES_128_GCM_SHA256
+ {0xa1, 0x674}, // TLS_DH_RSA_WITH_AES_256_GCM_SHA384
+ {0xa2, 0x86c}, // TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
+ {0xa3, 0x874}, // TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
+ {0xa4, 0x46c}, // TLS_DH_DSS_WITH_AES_128_GCM_SHA256
+ {0xa5, 0x474}, // TLS_DH_DSS_WITH_AES_256_GCM_SHA384
+ {0xa6, 0xc6c}, // TLS_DH_anon_WITH_AES_128_GCM_SHA256
+ {0xa7, 0xc74}, // TLS_DH_anon_WITH_AES_256_GCM_SHA384
+ {0xba, 0x153}, // TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
+ {0xbb, 0x453}, // TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256
+ {0xbc, 0x653}, // TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256
+ {0xbd, 0x853}, // TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256
+ {0xbe, 0xa53}, // TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
+ {0xbf, 0xc53}, // TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256
+ {0xc0, 0x15b}, // TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
+ {0xc1, 0x45b}, // TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256
+ {0xc2, 0x65b}, // TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256
+ {0xc3, 0x85b}, // TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256
+ {0xc4, 0xa5b}, // TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
+ {0xc5, 0xc5b}, // TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256
+ {0xc001, 0xd02}, // TLS_ECDH_ECDSA_WITH_NULL_SHA
+ {0xc002, 0xd12}, // TLS_ECDH_ECDSA_WITH_RC4_128_SHA
+ {0xc003, 0xd3a}, // TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
+ {0xc004, 0xd42}, // TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
+ {0xc005, 0xd4a}, // TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
+ {0xc006, 0xe02}, // TLS_ECDHE_ECDSA_WITH_NULL_SHA
+ {0xc007, 0xe12}, // TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
+ {0xc008, 0xe3a}, // TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
+ {0xc009, 0xe42}, // TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
+ {0xc00a, 0xe4a}, // TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
+ {0xc00b, 0xf02}, // TLS_ECDH_RSA_WITH_NULL_SHA
+ {0xc00c, 0xf12}, // TLS_ECDH_RSA_WITH_RC4_128_SHA
+ {0xc00d, 0xf3a}, // TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
+ {0xc00e, 0xf42}, // TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
+ {0xc00f, 0xf4a}, // TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
+ {0xc010, 0x1002}, // TLS_ECDHE_RSA_WITH_NULL_SHA
+ {0xc011, 0x1012}, // TLS_ECDHE_RSA_WITH_RC4_128_SHA
+ {0xc012, 0x103a}, // TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
+ {0xc013, 0x1042}, // TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
+ {0xc014, 0x104a}, // TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
+ {0xc015, 0x1102}, // TLS_ECDH_anon_WITH_NULL_SHA
+ {0xc016, 0x1112}, // TLS_ECDH_anon_WITH_RC4_128_SHA
+ {0xc017, 0x113a}, // TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA
+ {0xc018, 0x1142}, // TLS_ECDH_anon_WITH_AES_128_CBC_SHA
+ {0xc019, 0x114a}, // TLS_ECDH_anon_WITH_AES_256_CBC_SHA
+ {0xc023, 0xe43}, // TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
+ {0xc024, 0xe4d}, // TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
+ {0xc025, 0xd43}, // TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
+ {0xc026, 0xd4d}, // TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
+ {0xc027, 0x1043}, // TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
+ {0xc028, 0x104d}, // TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
+ {0xc029, 0xf43}, // TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
+ {0xc02a, 0xf4d}, // TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
+ {0xc02b, 0xe6c}, // TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
+ {0xc02c, 0xe74}, // TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
+ {0xc02d, 0xd6c}, // TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
+ {0xc02e, 0xd74}, // TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
+ {0xc02f, 0x106c}, // TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
+ {0xc030, 0x1074}, // TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
+ {0xc031, 0xf6c}, // TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
+ {0xc032, 0xf74}, // TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
+ {0xc072, 0xe53}, // TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
+ {0xc073, 0xe5d}, // TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
+ {0xc074, 0xd53}, // TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
+ {0xc075, 0xd5d}, // TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
+ {0xc076, 0x1053}, // TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
+ {0xc077, 0x105d}, // TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384
+ {0xc078, 0xf53}, // TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256
+ {0xc079, 0xf5d}, // TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384
+ {0xc07a, 0x17c}, // TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256
+ {0xc07b, 0x184}, // TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384
+ {0xc07c, 0xa7c}, // TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
+ {0xc07d, 0xa84}, // TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
+ {0xc07e, 0x67c}, // TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256
+ {0xc07f, 0x684}, // TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384
+ {0xc080, 0x87c}, // TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256
+ {0xc081, 0x884}, // TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384
+ {0xc082, 0x47c}, // TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256
+ {0xc083, 0x484}, // TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384
+ {0xc084, 0xc7c}, // TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256
+ {0xc085, 0xc84}, // TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384
+ {0xc086, 0xe7c}, // TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
+ {0xc087, 0xe84}, // TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
+ {0xc088, 0xd7c}, // TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
+ {0xc089, 0xd84}, // TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
+ {0xc08a, 0x107c}, // TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
+ {0xc08b, 0x1084}, // TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
+ {0xc08c, 0xf7c}, // TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
+ {0xc08d, 0xf84}, // TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
};
static const struct {
char name[15];
-} kKeyExchangeNames[27] = {
+} kKeyExchangeNames[18] = {
{"NULL"}, // 0
{"RSA"}, // 1
{"RSA_EXPORT"}, // 2
@@ -249,25 +212,16 @@ static const struct {
{"DHE_RSA"}, // 10
{"DH_anon_EXPORT"}, // 11
{"DH_anon"}, // 12
- {"KRB5"}, // 13
- {"KRB5_EXPORT"}, // 14
- {"PSK"}, // 15
- {"DHE_PSK"}, // 16
- {"RSA_PSK"}, // 17
- {"ECDH_ECDSA"}, // 18
- {"ECDHE_ECDSA"}, // 19
- {"ECDH_RSA"}, // 20
- {"ECDHE_RSA"}, // 21
- {"ECDH_anon"}, // 22
- {"SRP_SHA"}, // 23
- {"SRP_SHA_RSA"}, // 24
- {"SRP_SHA_DSS"}, // 25
- {"ECDHE_PSK"}, // 26
+ {"ECDH_ECDSA"}, // 13
+ {"ECDHE_ECDSA"}, // 14
+ {"ECDH_RSA"}, // 15
+ {"ECDHE_RSA"}, // 16
+ {"ECDH_anon"}, // 17
};
static const struct {
char name[17];
-} kCipherNames[16] = {
+} kCipherNames[17] = {
{"NULL"}, // 0
{"RC4_40"}, // 1
{"RC4_128"}, // 2
@@ -276,27 +230,28 @@ static const struct {
{"DES40_CBC"}, // 5
{"DES_CBC"}, // 6
{"3DES_EDE_CBC"}, // 7
- {"DES_CBC_40"}, // 8
- {"AES_128_CBC"}, // 9
- {"AES_256_CBC"}, // 10
- {"CAMELLIA_128_CBC"}, // 11
- {"CAMELLIA_256_CBC"}, // 12
- {"SEED_CBC"}, // 13
- {"AES_128_GCM"}, // 14
- {"AES_256_GCM"}, // 15
+ {"AES_128_CBC"}, // 8
+ {"AES_256_CBC"}, // 9
+ {"CAMELLIA_128_CBC"}, // 10
+ {"CAMELLIA_256_CBC"}, // 11
+ {"SEED_CBC"}, // 12
+ {"AES_128_CTR"}, // 13
+ {"AES_256_CTR"}, // 14
+ {"CAMELLIA_128_CTR"}, // 15
+ {"CAMELLIA_256_CTR"}, // 16
};
static const struct {
- char name[7];
-} kMacNames[5] = {
+ char name[10];
+} kMacNames[6] = {
{"NULL"}, // 0
{"MD5"}, // 1
{"SHA1"}, // 2
{"SHA256"}, // 3
- {"SHA384"}, // 4
+ {"GHASH_128"}, // 4
+ {"SHA384"}, // 5
};
-
namespace net {
static int CipherSuiteCmp(const void* ia, const void* ib) {
@@ -329,8 +284,8 @@ void SSLCipherSuiteToStrings(const char** key_exchange_str,
const CipherSuite* cs = static_cast<CipherSuite*>(r);
- const int key_exchange = cs->encoded >> 7;
- const int cipher = (cs->encoded >> 3) & 0xf;
+ const int key_exchange = cs->encoded >> 8;
+ const int cipher = (cs->encoded >> 3) & 0x1f;
const int mac = cs->encoded & 0x7;
*key_exchange_str = kKeyExchangeNames[key_exchange].name;
diff --git a/net/ssl/ssl_cipher_suite_names_unittest.cc b/net/ssl/ssl_cipher_suite_names_unittest.cc
index 50bf1da..ede412d 100644
--- a/net/ssl/ssl_cipher_suite_names_unittest.cc
+++ b/net/ssl/ssl_cipher_suite_names_unittest.cc
@@ -14,14 +14,19 @@ namespace {
TEST(CipherSuiteNamesTest, Basic) {
const char *key_exchange, *cipher, *mac;
SSLCipherSuiteToStrings(&key_exchange, &cipher, &mac, 0xc001);
- EXPECT_STREQ(key_exchange, "ECDH_ECDSA");
- EXPECT_STREQ(cipher, "NULL");
- EXPECT_STREQ(mac, "SHA1");
+ EXPECT_STREQ("ECDH_ECDSA", key_exchange);
+ EXPECT_STREQ("NULL", cipher);
+ EXPECT_STREQ("SHA1", mac);
+
+ SSLCipherSuiteToStrings(&key_exchange, &cipher, &mac, 0x009f);
+ EXPECT_STREQ("DHE_RSA", key_exchange);
+ EXPECT_STREQ("AES_256_CTR", cipher);
+ EXPECT_STREQ("GHASH_128", mac);
SSLCipherSuiteToStrings(&key_exchange, &cipher, &mac, 0xff31);
- EXPECT_STREQ(key_exchange, "???");
- EXPECT_STREQ(cipher, "???");
- EXPECT_STREQ(mac, "???");
+ EXPECT_STREQ("???", key_exchange);
+ EXPECT_STREQ("???", cipher);
+ EXPECT_STREQ("???", mac);
}
TEST(CipherSuiteNamesTest, ParseSSLCipherString) {