Home | History | Annotate | Download | only in crypto
      1 // Copyright (c) 2012 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/quic/crypto/null_encrypter.h"
      6 #include "net/quic/test_tools/quic_test_utils.h"
      7 
      8 using base::StringPiece;
      9 
     10 namespace net {
     11 namespace test {
     12 
     13 class NullEncrypterTest : public ::testing::TestWithParam<bool> {
     14 };
     15 
     16 TEST_F(NullEncrypterTest, Encrypt) {
     17   unsigned char expected[] = {
     18     // fnv hash
     19     0xa0, 0x6f, 0x44, 0x8a,
     20     0x44, 0xf8, 0x18, 0x3b,
     21     0x47, 0x91, 0xb2, 0x13,
     22     // payload
     23     'g',  'o',  'o',  'd',
     24     'b',  'y',  'e',  '!',
     25   };
     26   NullEncrypter encrypter;
     27   scoped_ptr<QuicData> encrypted(
     28       encrypter.EncryptPacket(0, "hello world!", "goodbye!"));
     29   ASSERT_TRUE(encrypted.get());
     30   test::CompareCharArraysWithHexError(
     31       "encrypted data", encrypted->data(), encrypted->length(),
     32       reinterpret_cast<const char*>(expected),
     33       arraysize(expected));
     34 }
     35 
     36 TEST_F(NullEncrypterTest, GetMaxPlaintextSize) {
     37   NullEncrypter encrypter;
     38   EXPECT_EQ(1000u, encrypter.GetMaxPlaintextSize(1012));
     39   EXPECT_EQ(100u, encrypter.GetMaxPlaintextSize(112));
     40   EXPECT_EQ(10u, encrypter.GetMaxPlaintextSize(22));
     41 }
     42 
     43 TEST_F(NullEncrypterTest, GetCiphertextSize) {
     44   NullEncrypter encrypter;
     45   EXPECT_EQ(1012u, encrypter.GetCiphertextSize(1000));
     46   EXPECT_EQ(112u, encrypter.GetCiphertextSize(100));
     47   EXPECT_EQ(22u, encrypter.GetCiphertextSize(10));
     48 }
     49 
     50 }  // namespace test
     51 }  // namespace net
     52