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;
