Add support for retry integrity tag

This CL adds support for the retry integrity tag which was added in draft-25. It increases resilience to network errors and makes retry injection by attackers harder. This changes the wire-format of T050 and T099/draft-25 which are both disabled.

gfe-relnote: support retry integrity tag, client-only, not flag-protected
PiperOrigin-RevId: 292044658
Change-Id: Ib62a4d58cb761dce284c36b450816ad9151e4062
diff --git a/common/quiche_data_writer_test.cc b/common/quiche_data_writer_test.cc
index 78f8abf..343e6ea 100644
--- a/common/quiche_data_writer_test.cc
+++ b/common/quiche_data_writer_test.cc
@@ -386,6 +386,9 @@
   char expected_first_read[4] = {1, 2, 3, 4};
   char expected_remaining[12] = {5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
   QuicheDataReader reader(buffer, sizeof(buffer));
+  quiche::QuicheStringPiece previously_read_payload1 =
+      reader.PreviouslyReadPayload();
+  EXPECT_TRUE(previously_read_payload1.empty());
   char first_read_buffer[4] = {};
   EXPECT_TRUE(reader.ReadBytes(first_read_buffer, sizeof(first_read_buffer)));
   test::CompareCharArraysWithHexError(
@@ -401,6 +404,12 @@
   test::CompareCharArraysWithHexError("full_payload", full_payload.data(),
                                       full_payload.length(), buffer,
                                       sizeof(buffer));
+  quiche::QuicheStringPiece previously_read_payload2 =
+      reader.PreviouslyReadPayload();
+  test::CompareCharArraysWithHexError(
+      "previously_read_payload2", previously_read_payload2.data(),
+      previously_read_payload2.length(), first_read_buffer,
+      sizeof(first_read_buffer));
   quiche::QuicheStringPiece read_remaining_payload =
       reader.ReadRemainingPayload();
   test::CompareCharArraysWithHexError(
@@ -412,6 +421,11 @@
   test::CompareCharArraysWithHexError("full_payload2", full_payload2.data(),
                                       full_payload2.length(), buffer,
                                       sizeof(buffer));
+  quiche::QuicheStringPiece previously_read_payload3 =
+      reader.PreviouslyReadPayload();
+  test::CompareCharArraysWithHexError(
+      "previously_read_payload3", previously_read_payload3.data(),
+      previously_read_payload3.length(), buffer, sizeof(buffer));
 }
 
 }  // namespace