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. 4 5 #include "net/ssl/ssl_cipher_suite_names.h" 6 7 #include "base/basictypes.h" 8 #include "testing/gtest/include/gtest/gtest.h" 9 10 namespace net { 11 12 namespace { 13 14 TEST(CipherSuiteNamesTest, Basic) { 15 const char *key_exchange, *cipher, *mac; 16 bool is_aead; 17 18 SSLCipherSuiteToStrings(&key_exchange, &cipher, &mac, &is_aead, 0xc001); 19 EXPECT_STREQ("ECDH_ECDSA", key_exchange); 20 EXPECT_STREQ("NULL", cipher); 21 EXPECT_STREQ("SHA1", mac); 22 EXPECT_FALSE(is_aead); 23 24 SSLCipherSuiteToStrings(&key_exchange, &cipher, &mac, &is_aead, 0x009f); 25 EXPECT_STREQ("DHE_RSA", key_exchange); 26 EXPECT_STREQ("AES_256_GCM", cipher); 27 EXPECT_TRUE(is_aead); 28 EXPECT_EQ(NULL, mac); 29 30 SSLCipherSuiteToStrings(&key_exchange, &cipher, &mac, &is_aead, 0xff31); 31 EXPECT_STREQ("???", key_exchange); 32 EXPECT_STREQ("???", cipher); 33 EXPECT_STREQ("???", mac); 34 EXPECT_FALSE(is_aead); 35 } 36 37 TEST(CipherSuiteNamesTest, ParseSSLCipherString) { 38 uint16 cipher_suite = 0; 39 EXPECT_TRUE(ParseSSLCipherString("0x0004", &cipher_suite)); 40 EXPECT_EQ(0x00004u, cipher_suite); 41 42 EXPECT_TRUE(ParseSSLCipherString("0xBEEF", &cipher_suite)); 43 EXPECT_EQ(0xBEEFu, cipher_suite); 44 } 45 46 TEST(CipherSuiteNamesTest, ParseSSLCipherStringFails) { 47 const char* const cipher_strings[] = { 48 "0004", 49 "0x004", 50 "0xBEEFY", 51 }; 52 53 for (size_t i = 0; i < arraysize(cipher_strings); ++i) { 54 uint16 cipher_suite = 0; 55 EXPECT_FALSE(ParseSSLCipherString(cipher_strings[i], &cipher_suite)); 56 } 57 } 58 59 } // anonymous namespace 60 61 } // namespace net 62