diff --git a/quiche/oblivious_http/oblivious_http_gateway.h b/quiche/oblivious_http/oblivious_http_gateway.h
index a7fbe6d..d3a1089 100644
--- a/quiche/oblivious_http/oblivious_http_gateway.h
+++ b/quiche/oblivious_http/oblivious_http_gateway.h
@@ -124,6 +124,12 @@
   absl::StatusOr<std::string> EncryptResponse(
       absl::string_view plaintext_payload, bool is_final_chunk);
 
+  // Returns true if the gateway has successfully decrypted the request and has
+  // the context necessary to encrypt responses.
+  bool CanEncrypt() const {
+    return oblivious_http_request_context_.has_value();
+  }
+
  private:
   enum class RequestMessageSection {
     kHeader,
diff --git a/quiche/oblivious_http/oblivious_http_gateway_test.cc b/quiche/oblivious_http/oblivious_http_gateway_test.cc
index 4ac95b0..c8d59b5 100644
--- a/quiche/oblivious_http/oblivious_http_gateway_test.cc
+++ b/quiche/oblivious_http/oblivious_http_gateway_test.cc
@@ -433,6 +433,7 @@
   ASSERT_TRUE(absl::HexStringToBytes(kEncapsulatedChunkedRequest,
                                      &encapsulated_request_bytes));
   QUICHE_EXPECT_OK(instance->DecryptRequest(encapsulated_request_bytes, true));
+  EXPECT_TRUE(instance->CanEncrypt());
 
   // 63 byte response to test final chunk indicator length.
   std::string plaintext_response =
@@ -467,6 +468,7 @@
   EXPECT_TRUE(
       absl::HexStringToBytes(plaintext_response, &plaintext_response_bytes));
   std::vector<std::string> encrypted_response_chunks;
+  EXPECT_TRUE(instance->CanEncrypt());
   absl::StatusOr<std::string> encrypted_response_chunk =
       instance->EncryptResponse(plaintext_response_bytes, false);
   QUICHE_EXPECT_OK(encrypted_response_chunk);
@@ -507,6 +509,7 @@
   ASSERT_TRUE(absl::HexStringToBytes(kEncapsulatedChunkedRequest,
                                      &encapsulated_request_bytes));
   QUICHE_EXPECT_OK(instance->DecryptRequest(encapsulated_request_bytes, true));
+  EXPECT_TRUE(instance->CanEncrypt());
 
   std::string plaintext_response = "0140c8";
   absl::StatusOr<std::string> encrypted_response =
@@ -520,6 +523,7 @@
 TEST(ChunkedObliviousHttpGateway, EncryptingBeforeDecryptingFails) {
   TestChunkHandler chunk_handler;
   auto instance = CreateChunkedObliviousHttpGateway(chunk_handler);
+  EXPECT_FALSE(instance->CanEncrypt());
 
   std::string plaintext_response = "0140c8";
   EXPECT_EQ(
@@ -530,6 +534,7 @@
 TEST(ChunkedObliviousHttpGateway, EncryptionErrorMarksGatewayInvalid) {
   TestChunkHandler chunk_handler;
   auto instance = CreateChunkedObliviousHttpGateway(chunk_handler);
+  EXPECT_FALSE(instance->CanEncrypt());
 
   std::string plaintext_response = "0140c8";
   EXPECT_EQ(
