Roll src/net/third_party/quiche/src/ d5d13c2a8..f1c9d5683 (17 commits)

https://quiche.googlesource.com/quiche.git/+log/d5d13c2a81b5..f1c9d5683b6a

$ git log d5d13c2a8..f1c9d5683 --date=short --no-merges --format='%ad %ae %s'
2019-03-21 rch Include <algorithm> in quic_packet_number.cc to get std::max
2019-03-20 rch Use QUIC_ARRAYSIZE instead of arraysize in crypto files
2019-03-20 quiche-dev Check new connection ID length before reading it
2019-03-20 quiche-dev gfe-relnote: test-only changes to reduce usage of QuicUtils::GetCryptoStreamId
2019-03-20 danzh gfe-relnote: n/a(code clean-up) Remove unnecessary #include in quic_data_writer.cc.
2019-03-20 quiche-dev Make sure the read side is not closed when QuicSpdyStream tries to read from sequencer.
2019-03-20 quiche-dev gfe-relnote: Deprecate gfe2_restart_flag_quic_uint64max_uninitialized_pn.
2019-03-20 quiche-dev gfe-relnote: In QUIC, add getter for largest received packet to QuicConnection. No functional change expected, not protected.
2019-03-19 quiche-dev Allow QUIC server to replace connection IDs
2019-03-19 quiche-dev Add support for Header Protection to QuicCrypter classes
2019-03-19 danzh gfe-relnote: n/a(code clean-up) Remove unnecessary #include in quic_data_writer.h.
2019-03-19 quiche-dev Group configs and factor out config lookup
2019-03-19 quiche-dev gfe-relnote: In QUIC, add setter and getter for largest_seen_packet_with_ack_. Also add GetLargestSentPacket and GetLargestAckedPacket. No functional change expected. Not protected.
2019-03-19 quiche-dev gfe-relnote: In QUIC, add QuicPacketNumber::UpdateMax function. No functional change expected. Not protected.
2019-03-19 quiche-dev Pass reject reasons explicitly to BuildRejection
2019-03-19 quiche-dev Simplify QuicCryptoServerConfig::SetConfigs
2019-03-19 danzh gfe-relnote: n/a (code clean-up) Remove unnecessary #include in quic_stream_send_buffer.cc

Created with:
  roll-dep src/net/third_party/quiche/src src/third_party/quic_trace/src

Bug: 943951
Change-Id: I9969a4c787dbadfdfdfcc7d59ea286c50bc735e0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1533203
Commit-Queue: Ryan Hamilton <rch@chromium.org>
Auto-Submit: Ryan Hamilton <rch@chromium.org>
Reviewed-by: Nick Harper <nharper@chromium.org>
Cr-Commit-Position: refs/heads/master@{#642957}
diff --git a/DEPS b/DEPS
index e45f1d1..2df40279 100644
--- a/DEPS
+++ b/DEPS
@@ -268,7 +268,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'quiche_revision': 'd5d13c2a81b5b504c1bf3308b12c5479a1eb8d58',
+  'quiche_revision': 'f1c9d5683b6a6b79553710cb9604b6084373299f',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ios_webkit
   # and whatever else without interference from each other.
diff --git a/net/BUILD.gn b/net/BUILD.gn
index 724aed5..71eb22d 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1348,6 +1348,10 @@
       "third_party/quiche/src/quic/core/crypto/aes_256_gcm_decrypter.h",
       "third_party/quiche/src/quic/core/crypto/aes_256_gcm_encrypter.cc",
       "third_party/quiche/src/quic/core/crypto/aes_256_gcm_encrypter.h",
+      "third_party/quiche/src/quic/core/crypto/aes_base_decrypter.cc",
+      "third_party/quiche/src/quic/core/crypto/aes_base_decrypter.h",
+      "third_party/quiche/src/quic/core/crypto/aes_base_encrypter.cc",
+      "third_party/quiche/src/quic/core/crypto/aes_base_encrypter.h",
       "third_party/quiche/src/quic/core/crypto/cert_compressor.cc",
       "third_party/quiche/src/quic/core/crypto/cert_compressor.h",
       "third_party/quiche/src/quic/core/crypto/chacha20_poly1305_decrypter.cc",
@@ -1358,6 +1362,10 @@
       "third_party/quiche/src/quic/core/crypto/chacha20_poly1305_tls_decrypter.h",
       "third_party/quiche/src/quic/core/crypto/chacha20_poly1305_tls_encrypter.cc",
       "third_party/quiche/src/quic/core/crypto/chacha20_poly1305_tls_encrypter.h",
+      "third_party/quiche/src/quic/core/crypto/chacha_base_decrypter.cc",
+      "third_party/quiche/src/quic/core/crypto/chacha_base_decrypter.h",
+      "third_party/quiche/src/quic/core/crypto/chacha_base_encrypter.cc",
+      "third_party/quiche/src/quic/core/crypto/chacha_base_encrypter.h",
       "third_party/quiche/src/quic/core/crypto/channel_id.cc",
       "third_party/quiche/src/quic/core/crypto/channel_id.h",
       "third_party/quiche/src/quic/core/crypto/common_cert_set.cc",
diff --git a/net/quic/mock_decrypter.cc b/net/quic/mock_decrypter.cc
index 0b06df0e..689c58d 100644
--- a/net/quic/mock_decrypter.cc
+++ b/net/quic/mock_decrypter.cc
@@ -21,6 +21,15 @@
   return key.empty();
 }
 
+bool MockDecrypter::SetHeaderProtectionKey(QuicStringPiece key) {
+  return key.empty();
+}
+
+std::string MockDecrypter::GenerateHeaderProtectionMask(
+    quic::QuicDataReader* sample_reader) {
+  return std::string(5, 0);
+}
+
 bool MockDecrypter::SetNoncePrefix(QuicStringPiece nonce_prefix) {
   return nonce_prefix.empty();
 }
diff --git a/net/quic/mock_decrypter.h b/net/quic/mock_decrypter.h
index b375064..7b9256f 100644
--- a/net/quic/mock_decrypter.h
+++ b/net/quic/mock_decrypter.h
@@ -29,6 +29,7 @@
   // QuicDecrypter implementation
   bool SetKey(quic::QuicStringPiece key) override;
   bool SetNoncePrefix(quic::QuicStringPiece nonce_prefix) override;
+  bool SetHeaderProtectionKey(quic::QuicStringPiece key) override;
   bool SetIV(quic::QuicStringPiece iv) override;
   bool SetPreliminaryKey(quic::QuicStringPiece key) override;
   bool SetDiversificationNonce(
@@ -43,6 +44,8 @@
   size_t GetIVSize() const override;
   quic::QuicStringPiece GetKey() const override;
   quic::QuicStringPiece GetNoncePrefix() const override;
+  std::string GenerateHeaderProtectionMask(
+      quic::QuicDataReader* sample_reader) override;
 
   uint32_t cipher_id() const override;
 
diff --git a/net/quic/mock_encrypter.cc b/net/quic/mock_encrypter.cc
index 21bfe87..147cdda 100644
--- a/net/quic/mock_encrypter.cc
+++ b/net/quic/mock_encrypter.cc
@@ -43,6 +43,15 @@
   return true;
 }
 
+bool MockEncrypter::SetHeaderProtectionKey(QuicStringPiece key) {
+  return key.empty();
+}
+
+std::string MockEncrypter::GenerateHeaderProtectionMask(
+    QuicStringPiece sample) {
+  return std::string(5, 0);
+}
+
 size_t MockEncrypter::GetKeySize() const {
   return 0;
 }
diff --git a/net/quic/mock_encrypter.h b/net/quic/mock_encrypter.h
index d184ece..9200cf1a 100644
--- a/net/quic/mock_encrypter.h
+++ b/net/quic/mock_encrypter.h
@@ -27,6 +27,7 @@
   // QuicEncrypter implementation
   bool SetKey(quic::QuicStringPiece key) override;
   bool SetNoncePrefix(quic::QuicStringPiece nonce_prefix) override;
+  bool SetHeaderProtectionKey(quic::QuicStringPiece key) override;
   bool SetIV(quic::QuicStringPiece iv) override;
   bool EncryptPacket(uint64_t packet_number,
                      quic::QuicStringPiece associated_data,
@@ -34,6 +35,8 @@
                      char* output,
                      size_t* output_length,
                      size_t max_output_length) override;
+  std::string GenerateHeaderProtectionMask(
+      quic::QuicStringPiece sample) override;
   size_t GetKeySize() const override;
   size_t GetNoncePrefixSize() const override;
   size_t GetIVSize() const override;