Implement QUIC Header Protection

gfe-relnote: Protected by QUIC_VERSION_99
PiperOrigin-RevId: 247137283
Change-Id: I1deb08d304b7739c3c8fa6b995e55fbd8652dc1e
diff --git a/quic/core/quic_data_reader.cc b/quic/core/quic_data_reader.cc
index b13b061..ef09483 100644
--- a/quic/core/quic_data_reader.cc
+++ b/quic/core/quic_data_reader.cc
@@ -12,6 +12,9 @@
 
 namespace quic {
 
+QuicDataReader::QuicDataReader(QuicStringPiece data)
+    : QuicDataReader(data.data(), data.length(), NETWORK_BYTE_ORDER) {}
+
 QuicDataReader::QuicDataReader(const char* data, const size_t len)
     : QuicDataReader(data, len, NETWORK_BYTE_ORDER) {}
 
@@ -180,6 +183,15 @@
   return true;
 }
 
+bool QuicDataReader::Seek(size_t size) {
+  if (!CanRead(size)) {
+    OnFailure();
+    return false;
+  }
+  pos_ += size;
+  return true;
+}
+
 bool QuicDataReader::IsDoneReading() const {
   return len_ == pos_;
 }