diff options
Diffstat (limited to 'net/quic/crypto/crypto_framer_test.cc')
-rw-r--r-- | net/quic/crypto/crypto_framer_test.cc | 416 |
1 files changed, 201 insertions, 215 deletions
diff --git a/net/quic/crypto/crypto_framer_test.cc b/net/quic/crypto/crypto_framer_test.cc index cdbf548..25af325 100644 --- a/net/quic/crypto/crypto_framer_test.cc +++ b/net/quic/crypto/crypto_framer_test.cc @@ -24,7 +24,9 @@ namespace net { namespace { -char* AsChars(unsigned char* data) { return reinterpret_cast<char*>(data); } +char* AsChars(unsigned char* data) { + return reinterpret_cast<char*>(data); +} } // namespace @@ -57,33 +59,30 @@ TEST(CryptoFramerTest, ConstructHandshakeMessage) { message.SetStringPiece(0x1234567A, "lmnopqr"); unsigned char packet[] = { - // tag - 0x33, 0x77, 0xAA, 0xFF, - // num entries - 0x03, 0x00, - // padding - 0x00, 0x00, - // tag 1 - 0x78, 0x56, 0x34, 0x12, - // end offset 1 - 0x06, 0x00, 0x00, 0x00, - // tag 2 - 0x79, 0x56, 0x34, 0x12, - // end offset 2 - 0x0b, 0x00, 0x00, 0x00, - // tag 3 - 0x7A, 0x56, 0x34, 0x12, - // end offset 3 - 0x12, 0x00, 0x00, 0x00, - // value 1 - 'a', 'b', 'c', 'd', - 'e', 'f', - // value 2 - 'g', 'h', 'i', 'j', - 'k', - // value 3 - 'l', 'm', 'n', 'o', - 'p', 'q', 'r', + // tag + 0x33, 0x77, 0xAA, 0xFF, + // num entries + 0x03, 0x00, + // padding + 0x00, 0x00, + // tag 1 + 0x78, 0x56, 0x34, 0x12, + // end offset 1 + 0x06, 0x00, 0x00, 0x00, + // tag 2 + 0x79, 0x56, 0x34, 0x12, + // end offset 2 + 0x0b, 0x00, 0x00, 0x00, + // tag 3 + 0x7A, 0x56, 0x34, 0x12, + // end offset 3 + 0x12, 0x00, 0x00, 0x00, + // value 1 + 'a', 'b', 'c', 'd', 'e', 'f', + // value 2 + 'g', 'h', 'i', 'j', 'k', + // value 3 + 'l', 'm', 'n', 'o', 'p', 'q', 'r', }; CryptoFramer framer; @@ -101,26 +100,24 @@ TEST(CryptoFramerTest, ConstructHandshakeMessageWithTwoKeys) { message.SetStringPiece(0x12345679, "ghijk"); unsigned char packet[] = { - // tag - 0x33, 0x77, 0xAA, 0xFF, - // num entries - 0x02, 0x00, - // padding - 0x00, 0x00, - // tag 1 - 0x78, 0x56, 0x34, 0x12, - // end offset 1 - 0x06, 0x00, 0x00, 0x00, - // tag 2 - 0x79, 0x56, 0x34, 0x12, - // end offset 2 - 0x0b, 0x00, 0x00, 0x00, - // value 1 - 'a', 'b', 'c', 'd', - 'e', 'f', - // value 2 - 'g', 'h', 'i', 'j', - 'k', + // tag + 0x33, 0x77, 0xAA, 0xFF, + // num entries + 0x02, 0x00, + // padding + 0x00, 0x00, + // tag 1 + 0x78, 0x56, 0x34, 0x12, + // end offset 1 + 0x06, 0x00, 0x00, 0x00, + // tag 2 + 0x79, 0x56, 0x34, 0x12, + // end offset 2 + 0x0b, 0x00, 0x00, 0x00, + // value 1 + 'a', 'b', 'c', 'd', 'e', 'f', + // value 2 + 'g', 'h', 'i', 'j', 'k', }; CryptoFramer framer; @@ -138,16 +135,16 @@ TEST(CryptoFramerTest, ConstructHandshakeMessageZeroLength) { message.SetStringPiece(0x12345678, ""); unsigned char packet[] = { - // tag - 0x33, 0x77, 0xAA, 0xFF, - // num entries - 0x01, 0x00, - // padding - 0x00, 0x00, - // tag 1 - 0x78, 0x56, 0x34, 0x12, - // end offset 1 - 0x00, 0x00, 0x00, 0x00, + // tag + 0x33, 0x77, 0xAA, 0xFF, + // num entries + 0x01, 0x00, + // padding + 0x00, 0x00, + // tag 1 + 0x78, 0x56, 0x34, 0x12, + // end offset 1 + 0x00, 0x00, 0x00, 0x00, }; CryptoFramer framer; @@ -178,28 +175,26 @@ TEST(CryptoFramerTest, ConstructHandshakeMessageMinimumSize) { message.set_minimum_size(64); unsigned char packet[] = { - // tag - 0x33, 0x77, 0xAA, 0xFF, - // num entries - 0x02, 0x00, - // padding - 0x00, 0x00, - // tag 1 - 'P', 'A', 'D', 0, - // end offset 1 - 0x24, 0x00, 0x00, 0x00, - // tag 2 - 0x04, 0x03, 0x02, 0x01, - // end offset 2 - 0x28, 0x00, 0x00, 0x00, - // 36 bytes of padding. - '-', '-', '-', '-', '-', '-', '-', '-', - '-', '-', '-', '-', '-', '-', '-', '-', - '-', '-', '-', '-', '-', '-', '-', '-', - '-', '-', '-', '-', '-', '-', '-', '-', - '-', '-', '-', '-', - // value 2 - 't', 'e', 's', 't', + // tag + 0x33, 0x77, 0xAA, 0xFF, + // num entries + 0x02, 0x00, + // padding + 0x00, 0x00, + // tag 1 + 'P', 'A', 'D', 0, + // end offset 1 + 0x24, 0x00, 0x00, 0x00, + // tag 2 + 0x04, 0x03, 0x02, 0x01, + // end offset 2 + 0x28, 0x00, 0x00, 0x00, + // 36 bytes of padding. + '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', + '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', + '-', '-', '-', '-', '-', '-', + // value 2 + 't', 'e', 's', 't', }; CryptoFramer framer; @@ -218,26 +213,24 @@ TEST(CryptoFramerTest, ConstructHandshakeMessageMinimumSizePadLast) { message.set_minimum_size(64); unsigned char packet[] = { - // tag - 0x33, 0x77, 0xAA, 0xFF, - // num entries - 0x02, 0x00, - // padding - 0x00, 0x00, - // tag 1 - 0x01, 0x00, 0x00, 0x00, - // end offset 1 - 0x00, 0x00, 0x00, 0x00, - // tag 2 - 'P', 'A', 'D', 0, - // end offset 2 - 0x28, 0x00, 0x00, 0x00, - // 40 bytes of padding. - '-', '-', '-', '-', '-', '-', '-', '-', - '-', '-', '-', '-', '-', '-', '-', '-', - '-', '-', '-', '-', '-', '-', '-', '-', - '-', '-', '-', '-', '-', '-', '-', '-', - '-', '-', '-', '-', '-', '-', '-', '-', + // tag + 0x33, 0x77, 0xAA, 0xFF, + // num entries + 0x02, 0x00, + // padding + 0x00, 0x00, + // tag 1 + 0x01, 0x00, 0x00, 0x00, + // end offset 1 + 0x00, 0x00, 0x00, 0x00, + // tag 2 + 'P', 'A', 'D', 0, + // end offset 2 + 0x28, 0x00, 0x00, 0x00, + // 40 bytes of padding. + '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', + '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', + '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', }; CryptoFramer framer; @@ -255,26 +248,24 @@ TEST(CryptoFramerTest, ProcessInput) { framer.set_visitor(&visitor); unsigned char input[] = { - // tag - 0x33, 0x77, 0xAA, 0xFF, - // num entries - 0x02, 0x00, - // padding - 0x00, 0x00, - // tag 1 - 0x78, 0x56, 0x34, 0x12, - // end offset 1 - 0x06, 0x00, 0x00, 0x00, - // tag 2 - 0x79, 0x56, 0x34, 0x12, - // end offset 2 - 0x0b, 0x00, 0x00, 0x00, - // value 1 - 'a', 'b', 'c', 'd', - 'e', 'f', - // value 2 - 'g', 'h', 'i', 'j', - 'k', + // tag + 0x33, 0x77, 0xAA, 0xFF, + // num entries + 0x02, 0x00, + // padding + 0x00, 0x00, + // tag 1 + 0x78, 0x56, 0x34, 0x12, + // end offset 1 + 0x06, 0x00, 0x00, 0x00, + // tag 2 + 0x79, 0x56, 0x34, 0x12, + // end offset 2 + 0x0b, 0x00, 0x00, 0x00, + // value 1 + 'a', 'b', 'c', 'd', 'e', 'f', + // value 2 + 'g', 'h', 'i', 'j', 'k', }; EXPECT_TRUE( @@ -295,33 +286,30 @@ TEST(CryptoFramerTest, ProcessInputWithThreeKeys) { framer.set_visitor(&visitor); unsigned char input[] = { - // tag - 0x33, 0x77, 0xAA, 0xFF, - // num entries - 0x03, 0x00, - // padding - 0x00, 0x00, - // tag 1 - 0x78, 0x56, 0x34, 0x12, - // end offset 1 - 0x06, 0x00, 0x00, 0x00, - // tag 2 - 0x79, 0x56, 0x34, 0x12, - // end offset 2 - 0x0b, 0x00, 0x00, 0x00, - // tag 3 - 0x7A, 0x56, 0x34, 0x12, - // end offset 3 - 0x12, 0x00, 0x00, 0x00, - // value 1 - 'a', 'b', 'c', 'd', - 'e', 'f', - // value 2 - 'g', 'h', 'i', 'j', - 'k', - // value 3 - 'l', 'm', 'n', 'o', - 'p', 'q', 'r', + // tag + 0x33, 0x77, 0xAA, 0xFF, + // num entries + 0x03, 0x00, + // padding + 0x00, 0x00, + // tag 1 + 0x78, 0x56, 0x34, 0x12, + // end offset 1 + 0x06, 0x00, 0x00, 0x00, + // tag 2 + 0x79, 0x56, 0x34, 0x12, + // end offset 2 + 0x0b, 0x00, 0x00, 0x00, + // tag 3 + 0x7A, 0x56, 0x34, 0x12, + // end offset 3 + 0x12, 0x00, 0x00, 0x00, + // value 1 + 'a', 'b', 'c', 'd', 'e', 'f', + // value 2 + 'g', 'h', 'i', 'j', 'k', + // value 3 + 'l', 'm', 'n', 'o', 'p', 'q', 'r', }; EXPECT_TRUE( @@ -343,26 +331,24 @@ TEST(CryptoFramerTest, ProcessInputIncrementally) { framer.set_visitor(&visitor); unsigned char input[] = { - // tag - 0x33, 0x77, 0xAA, 0xFF, - // num entries - 0x02, 0x00, - // padding - 0x00, 0x00, - // tag 1 - 0x78, 0x56, 0x34, 0x12, - // end offset 1 - 0x06, 0x00, 0x00, 0x00, - // tag 2 - 0x79, 0x56, 0x34, 0x12, - // end offset 2 - 0x0b, 0x00, 0x00, 0x00, - // value 1 - 'a', 'b', 'c', 'd', - 'e', 'f', - // value 2 - 'g', 'h', 'i', 'j', - 'k', + // tag + 0x33, 0x77, 0xAA, 0xFF, + // num entries + 0x02, 0x00, + // padding + 0x00, 0x00, + // tag 1 + 0x78, 0x56, 0x34, 0x12, + // end offset 1 + 0x06, 0x00, 0x00, 0x00, + // tag 2 + 0x79, 0x56, 0x34, 0x12, + // end offset 2 + 0x0b, 0x00, 0x00, 0x00, + // value 1 + 'a', 'b', 'c', 'd', 'e', 'f', + // value 2 + 'g', 'h', 'i', 'j', 'k', }; for (size_t i = 0; i < arraysize(input); i++) { @@ -383,20 +369,20 @@ TEST(CryptoFramerTest, ProcessInputTagsOutOfOrder) { framer.set_visitor(&visitor); unsigned char input[] = { - // tag - 0x33, 0x77, 0xAA, 0xFF, - // num entries - 0x02, 0x00, - // padding - 0x00, 0x00, - // tag 1 - 0x78, 0x56, 0x34, 0x13, - // end offset 1 - 0x01, 0x00, 0x00, 0x00, - // tag 2 - 0x79, 0x56, 0x34, 0x12, - // end offset 2 - 0x02, 0x00, 0x00, 0x00, + // tag + 0x33, 0x77, 0xAA, 0xFF, + // num entries + 0x02, 0x00, + // padding + 0x00, 0x00, + // tag 1 + 0x78, 0x56, 0x34, 0x13, + // end offset 1 + 0x01, 0x00, 0x00, 0x00, + // tag 2 + 0x79, 0x56, 0x34, 0x12, + // end offset 2 + 0x02, 0x00, 0x00, 0x00, }; EXPECT_FALSE( @@ -411,20 +397,20 @@ TEST(CryptoFramerTest, ProcessEndOffsetsOutOfOrder) { framer.set_visitor(&visitor); unsigned char input[] = { - // tag - 0x33, 0x77, 0xAA, 0xFF, - // num entries - 0x02, 0x00, - // padding - 0x00, 0x00, - // tag 1 - 0x79, 0x56, 0x34, 0x12, - // end offset 1 - 0x01, 0x00, 0x00, 0x00, - // tag 2 - 0x78, 0x56, 0x34, 0x13, - // end offset 2 - 0x00, 0x00, 0x00, 0x00, + // tag + 0x33, 0x77, 0xAA, 0xFF, + // num entries + 0x02, 0x00, + // padding + 0x00, 0x00, + // tag 1 + 0x79, 0x56, 0x34, 0x12, + // end offset 1 + 0x01, 0x00, 0x00, 0x00, + // tag 2 + 0x78, 0x56, 0x34, 0x13, + // end offset 2 + 0x00, 0x00, 0x00, 0x00, }; EXPECT_FALSE( @@ -439,12 +425,12 @@ TEST(CryptoFramerTest, ProcessInputTooManyEntries) { framer.set_visitor(&visitor); unsigned char input[] = { - // tag - 0x33, 0x77, 0xAA, 0xFF, - // num entries - 0xA0, 0x00, - // padding - 0x00, 0x00, + // tag + 0x33, 0x77, 0xAA, 0xFF, + // num entries + 0xA0, 0x00, + // padding + 0x00, 0x00, }; EXPECT_FALSE( @@ -459,20 +445,20 @@ TEST(CryptoFramerTest, ProcessInputZeroLength) { framer.set_visitor(&visitor); unsigned char input[] = { - // tag - 0x33, 0x77, 0xAA, 0xFF, - // num entries - 0x02, 0x00, - // padding - 0x00, 0x00, - // tag 1 - 0x78, 0x56, 0x34, 0x12, - // end offset 1 - 0x00, 0x00, 0x00, 0x00, - // tag 2 - 0x79, 0x56, 0x34, 0x12, - // end offset 2 - 0x05, 0x00, 0x00, 0x00, + // tag + 0x33, 0x77, 0xAA, 0xFF, + // num entries + 0x02, 0x00, + // padding + 0x00, 0x00, + // tag 1 + 0x78, 0x56, 0x34, 0x12, + // end offset 1 + 0x00, 0x00, 0x00, 0x00, + // tag 2 + 0x79, 0x56, 0x34, 0x12, + // end offset 2 + 0x05, 0x00, 0x00, 0x00, }; EXPECT_TRUE( |