1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "net/ssl/ssl_cipher_suite_names.h"
7 #include "base/basictypes.h"
8 #include "testing/gtest/include/gtest/gtest.h"
14 TEST(CipherSuiteNamesTest
, Basic
) {
15 const char *key_exchange
, *cipher
, *mac
;
18 SSLCipherSuiteToStrings(&key_exchange
, &cipher
, &mac
, &is_aead
, 0xc001);
19 EXPECT_STREQ("ECDH_ECDSA", key_exchange
);
20 EXPECT_STREQ("NULL", cipher
);
21 EXPECT_STREQ("HMAC-SHA1", mac
);
22 EXPECT_FALSE(is_aead
);
24 SSLCipherSuiteToStrings(&key_exchange
, &cipher
, &mac
, &is_aead
, 0x009f);
25 EXPECT_STREQ("DHE_RSA", key_exchange
);
26 EXPECT_STREQ("AES_256_GCM", cipher
);
30 SSLCipherSuiteToStrings(&key_exchange
, &cipher
, &mac
, &is_aead
, 0xcc15);
31 EXPECT_STREQ("DHE_RSA", key_exchange
);
32 EXPECT_STREQ("CHACHA20_POLY1305", cipher
);
36 SSLCipherSuiteToStrings(&key_exchange
, &cipher
, &mac
, &is_aead
, 0xff31);
37 EXPECT_STREQ("???", key_exchange
);
38 EXPECT_STREQ("???", cipher
);
39 EXPECT_STREQ("???", mac
);
40 EXPECT_FALSE(is_aead
);
43 TEST(CipherSuiteNamesTest
, ParseSSLCipherString
) {
44 uint16 cipher_suite
= 0;
45 EXPECT_TRUE(ParseSSLCipherString("0x0004", &cipher_suite
));
46 EXPECT_EQ(0x00004u
, cipher_suite
);
48 EXPECT_TRUE(ParseSSLCipherString("0xBEEF", &cipher_suite
));
49 EXPECT_EQ(0xBEEFu
, cipher_suite
);
52 TEST(CipherSuiteNamesTest
, ParseSSLCipherStringFails
) {
53 const char* const cipher_strings
[] = {
59 for (size_t i
= 0; i
< arraysize(cipher_strings
); ++i
) {
60 uint16 cipher_suite
= 0;
61 EXPECT_FALSE(ParseSSLCipherString(cipher_strings
[i
], &cipher_suite
));
65 TEST(CipherSuiteNamesTest
, SecureCipherSuites
) {
66 // Picked some random cipher suites.
67 EXPECT_FALSE(IsSecureTLSCipherSuite(0x0));
68 EXPECT_FALSE(IsSecureTLSCipherSuite(0x39));
69 EXPECT_FALSE(IsSecureTLSCipherSuite(0xc5));
70 EXPECT_FALSE(IsSecureTLSCipherSuite(0xc00f));
71 EXPECT_FALSE(IsSecureTLSCipherSuite(0xc083));
73 // Non-existent cipher suite.
74 EXPECT_FALSE(IsSecureTLSCipherSuite(0xffff)) << "Doesn't exist!";
77 EXPECT_TRUE(IsSecureTLSCipherSuite(0xcc13));
78 EXPECT_TRUE(IsSecureTLSCipherSuite(0xcc14));
79 EXPECT_TRUE(IsSecureTLSCipherSuite(0xcc15));
82 } // anonymous namespace