diff --git a/quiche/oblivious_http/common/oblivious_http_header_key_config.cc b/quiche/oblivious_http/common/oblivious_http_header_key_config.cc
index 992b5a9..e902057 100644
--- a/quiche/oblivious_http/common/oblivious_http_header_key_config.cc
+++ b/quiche/oblivious_http/common/oblivious_http_header_key_config.cc
@@ -20,7 +20,6 @@
 #include "absl/strings/string_view.h"
 #include "openssl/base.h"
 #include "openssl/hpke.h"
-#include "quiche/common/platform/api/quiche_bug_tracker.h"
 #include "quiche/common/platform/api/quiche_logging.h"
 #include "quiche/common/quiche_data_reader.h"
 #include "quiche/common/quiche_data_writer.h"
@@ -39,6 +38,8 @@
 constexpr size_t kSizeOfSymmetricAlgorithmHpkeKdfId = 2;
 constexpr size_t kSizeOfSymmetricAlgorithmHpkeAeadId = 2;
 
+}  // namespace
+
 absl::StatusOr<const EVP_HPKE_KEM*> CheckKemId(uint16_t kem_id) {
   switch (kem_id) {
     case EVP_HPKE_DHKEM_P256_HKDF_SHA256:
@@ -83,8 +84,6 @@
   }
 }
 
-}  // namespace
-
 ObliviousHttpHeaderKeyConfig::ObliviousHttpHeaderKeyConfig(uint8_t key_id,
                                                            uint16_t kem_id,
                                                            uint16_t kdf_id,
diff --git a/quiche/oblivious_http/common/oblivious_http_header_key_config.h b/quiche/oblivious_http/common/oblivious_http_header_key_config.h
index 89bb30a..36e1a8b 100644
--- a/quiche/oblivious_http/common/oblivious_http_header_key_config.h
+++ b/quiche/oblivious_http/common/oblivious_http_header_key_config.h
@@ -21,6 +21,12 @@
 
 namespace quiche {
 
+// Provide access to the underlying EVP_HPKE_KEM, EVP_HPKE_KDF, and
+// EVP_HPKE_AEAD if they are supported.
+absl::StatusOr<const EVP_HPKE_KEM*> CheckKemId(uint16_t kem_id);
+absl::StatusOr<const EVP_HPKE_KDF*> CheckKdfId(uint16_t kdf_id);
+absl::StatusOr<const EVP_HPKE_AEAD*> CheckAeadId(uint16_t aead_id);
+
 class QUICHE_EXPORT ObliviousHttpHeaderKeyConfig {
  public:
   // https://www.rfc-editor.org/rfc/rfc9458.html#section-4.3-4.2.1
diff --git a/quiche/oblivious_http/common/oblivious_http_header_key_config_test.cc b/quiche/oblivious_http/common/oblivious_http_header_key_config_test.cc
index 9d0c63d..7f2d329 100644
--- a/quiche/oblivious_http/common/oblivious_http_header_key_config_test.cc
+++ b/quiche/oblivious_http/common/oblivious_http_header_key_config_test.cc
@@ -16,6 +16,7 @@
 namespace quiche {
 namespace {
 using ::quiche::test::IsOkAndHolds;
+using ::quiche::test::StatusIs;
 using ::testing::AllOf;
 using ::testing::HasSubstr;
 using ::testing::Property;
@@ -77,6 +78,15 @@
   EXPECT_THAT(instance->DebugString(), HasSubstr("AES-256-GCM"));
 }
 
+TEST(ObliviousHttpHeaderKeyConfig, TestIds) {
+  QUICHE_EXPECT_OK(CheckKemId(EVP_HPKE_DHKEM_X25519_HKDF_SHA256));
+  EXPECT_THAT(CheckKemId(0xFFFF), StatusIs(absl::StatusCode::kUnimplemented));
+  QUICHE_EXPECT_OK(CheckKdfId(EVP_HPKE_HKDF_SHA256));
+  EXPECT_THAT(CheckKdfId(0xFFFF), StatusIs(absl::StatusCode::kUnimplemented));
+  QUICHE_EXPECT_OK(CheckAeadId(EVP_HPKE_AES_256_GCM));
+  EXPECT_THAT(CheckAeadId(0xFFFF), StatusIs(absl::StatusCode::kUnimplemented));
+}
+
 TEST(ObliviousHttpHeaderKeyConfig,
      TestSerializeRecipientContextInfoStandardLabel) {
   ExpectSerializedRecipientContextInfo("message/bhttp request");
