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 TEST(NullEncrypterTest, Encrypt) {
     14   unsigned char expected[] = {
     15     // fnv hash
     16     0xa0, 0x6f, 0x44, 0x8a,
     17     0x44, 0xf8, 0x18, 0x3b,
     18     0x47, 0x91, 0xb2, 0x13,
     19     0x6b, 0x09, 0xbb, 0xae,
     20     // payload
     21     'g',  'o',  'o',  'd',
     22     'b',  'y',  'e',  '!',
     23   };
     24   NullEncrypter encrypter;
     25   scoped_ptr<QuicData> encrypted(
     26       encrypter.EncryptPacket(0, "hello world!", "goodbye!"));
     27   ASSERT_TRUE(encrypted.get());
     28   test::CompareCharArraysWithHexError(
     29       "encrypted data", encrypted->data(), encrypted->length(),
     30       reinterpret_cast<const char*>(expected), arraysize(expected));
     31 }
     32 
     33 TEST(NullEncrypterTest, GetMaxPlaintextSize) {
     34   NullEncrypter encrypter;
     35   EXPECT_EQ(1000u, encrypter.GetMaxPlaintextSize(1016));
     36   EXPECT_EQ(100u, encrypter.GetMaxPlaintextSize(116));
     37   EXPECT_EQ(10u, encrypter.GetMaxPlaintextSize(26));
     38 }
     39 
     40 TEST(NullEncrypterTest, GetCiphertextSize) {
     41   NullEncrypter encrypter;
     42   EXPECT_EQ(1016u, encrypter.GetCiphertextSize(1000));
     43   EXPECT_EQ(116u, encrypter.GetCiphertextSize(100));
     44   EXPECT_EQ(26u, encrypter.GetCiphertextSize(10));
     45 }
     46 
     47 }  // namespace test
     48 }  // namespace net
     49