Consolidate definitions of CreateClientObliviousRequestWithSeedForTesting

Chromium links all of the unit tests together into a single testing target, so the multiple definitions caused linking errors.

PiperOrigin-RevId: 482210098
diff --git a/quiche/oblivious_http/buffers/oblivious_http_integration_test.cc b/quiche/oblivious_http/buffers/oblivious_http_integration_test.cc
index ac096b7..5d00efc 100644
--- a/quiche/oblivious_http/buffers/oblivious_http_integration_test.cc
+++ b/quiche/oblivious_http/buffers/oblivious_http_integration_test.cc
@@ -51,15 +51,6 @@
 }
 }  // namespace
 
-absl::StatusOr<ObliviousHttpRequest>
-CreateClientObliviousRequestWithSeedForTesting(
-    absl::string_view plaintext_payload, absl::string_view hpke_public_key,
-    const ObliviousHttpHeaderKeyConfig &ohttp_key_config,
-    absl::string_view seed) {
-  return ObliviousHttpRequest::EncapsulateWithSeed(
-      plaintext_payload, hpke_public_key, ohttp_key_config, seed);
-}
-
 using ObliviousHttpParameterizedTest =
     test::QuicheTestWithParam<ObliviousHttpResponseTestStrings>;
 
diff --git a/quiche/oblivious_http/buffers/oblivious_http_request.cc b/quiche/oblivious_http/buffers/oblivious_http_request.cc
index 4ccd0fa..e7903b6 100644
--- a/quiche/oblivious_http/buffers/oblivious_http_request.cc
+++ b/quiche/oblivious_http/buffers/oblivious_http_request.cc
@@ -104,6 +104,15 @@
                              ohttp_key_config, "");
 }
 
+absl::StatusOr<ObliviousHttpRequest>
+ObliviousHttpRequest::CreateClientWithSeedForTesting(
+    absl::string_view plaintext_payload, absl::string_view hpke_public_key,
+    const ObliviousHttpHeaderKeyConfig& ohttp_key_config,
+    absl::string_view seed) {
+  return ObliviousHttpRequest::EncapsulateWithSeed(
+      plaintext_payload, hpke_public_key, ohttp_key_config, seed);
+}
+
 absl::StatusOr<ObliviousHttpRequest> ObliviousHttpRequest::EncapsulateWithSeed(
     absl::string_view plaintext_payload, absl::string_view hpke_public_key,
     const ObliviousHttpHeaderKeyConfig& ohttp_key_config,
diff --git a/quiche/oblivious_http/buffers/oblivious_http_request.h b/quiche/oblivious_http/buffers/oblivious_http_request.h
index 75f4780..1aef1f2 100644
--- a/quiche/oblivious_http/buffers/oblivious_http_request.h
+++ b/quiche/oblivious_http/buffers/oblivious_http_request.h
@@ -63,6 +63,12 @@
       absl::string_view plaintext_payload, absl::string_view hpke_public_key,
       const ObliviousHttpHeaderKeyConfig& ohttp_key_config);
 
+  // Same as above but accepts a random number seed for testing.
+  static absl::StatusOr<ObliviousHttpRequest> CreateClientWithSeedForTesting(
+      absl::string_view plaintext_payload, absl::string_view hpke_public_key,
+      const ObliviousHttpHeaderKeyConfig& ohttp_key_config,
+      absl::string_view seed);
+
   // Movable.
   ObliviousHttpRequest(ObliviousHttpRequest&& other) = default;
   ObliviousHttpRequest& operator=(ObliviousHttpRequest&& other) = default;
@@ -92,12 +98,6 @@
   }
 
  private:
-  friend absl::StatusOr<ObliviousHttpRequest>
-  CreateClientObliviousRequestWithSeedForTesting(
-      absl::string_view plaintext_payload, absl::string_view hpke_public_key,
-      const ObliviousHttpHeaderKeyConfig& ohttp_key_config,
-      absl::string_view seed);
-
   explicit ObliviousHttpRequest(
       bssl::UniquePtr<EVP_HPKE_CTX> hpke_context, std::string encapsulated_key,
       const ObliviousHttpHeaderKeyConfig& ohttp_key_config,
diff --git a/quiche/oblivious_http/buffers/oblivious_http_request_test.cc b/quiche/oblivious_http/buffers/oblivious_http_request_test.cc
index bfe7252..e313bb8 100644
--- a/quiche/oblivious_http/buffers/oblivious_http_request_test.cc
+++ b/quiche/oblivious_http/buffers/oblivious_http_request_test.cc
@@ -20,15 +20,6 @@
 
 namespace quiche {
 
-absl::StatusOr<ObliviousHttpRequest>
-CreateClientObliviousRequestWithSeedForTesting(
-    absl::string_view plaintext_payload, absl::string_view hpke_public_key,
-    const ObliviousHttpHeaderKeyConfig &ohttp_key_config,
-    absl::string_view seed) {
-  return ObliviousHttpRequest::EncapsulateWithSeed(
-      plaintext_payload, hpke_public_key, ohttp_key_config, seed);
-}
-
 namespace {
 const uint32_t kHeaderLength = ObliviousHttpHeaderKeyConfig::kHeaderLength;
 std::string GetHpkePrivateKey() {
@@ -161,7 +152,7 @@
   auto ohttp_key_config =
       GetOhttpKeyConfig(4, EVP_HPKE_DHKEM_X25519_HKDF_SHA256,
                         EVP_HPKE_HKDF_SHA256, EVP_HPKE_AES_256_GCM);
-  auto encapsulated = CreateClientObliviousRequestWithSeedForTesting(
+  auto encapsulated = ObliviousHttpRequest::CreateClientWithSeedForTesting(
       "test", GetHpkePublicKey(), ohttp_key_config, GetSeed());
   ASSERT_TRUE(encapsulated.ok());
   auto encapsulated_request = encapsulated->EncapsulateAndSerialize();
@@ -184,12 +175,12 @@
       GetOhttpKeyConfig(8, EVP_HPKE_DHKEM_X25519_HKDF_SHA256,
                         EVP_HPKE_HKDF_SHA256, EVP_HPKE_AES_256_GCM);
   auto req_with_same_plaintext_1 =
-      CreateClientObliviousRequestWithSeedForTesting(
+      ObliviousHttpRequest::CreateClientWithSeedForTesting(
           "same plaintext", GetHpkePublicKey(), ohttp_key_config, GetSeed());
   ASSERT_TRUE(req_with_same_plaintext_1.ok());
   auto ciphertext_1 = req_with_same_plaintext_1->EncapsulateAndSerialize();
   auto req_with_same_plaintext_2 =
-      CreateClientObliviousRequestWithSeedForTesting(
+      ObliviousHttpRequest::CreateClientWithSeedForTesting(
           "same plaintext", GetHpkePublicKey(), ohttp_key_config, GetSeed());
   ASSERT_TRUE(req_with_same_plaintext_2.ok());
   auto ciphertext_2 = req_with_same_plaintext_2->EncapsulateAndSerialize();
@@ -202,12 +193,12 @@
       GetOhttpKeyConfig(8, EVP_HPKE_DHKEM_X25519_HKDF_SHA256,
                         EVP_HPKE_HKDF_SHA256, EVP_HPKE_AES_256_GCM);
   auto req_with_different_plaintext_1 =
-      CreateClientObliviousRequestWithSeedForTesting(
+      ObliviousHttpRequest::CreateClientWithSeedForTesting(
           "different 1", GetHpkePublicKey(), ohttp_key_config, GetSeed());
   ASSERT_TRUE(req_with_different_plaintext_1.ok());
   auto ciphertext_1 = req_with_different_plaintext_1->EncapsulateAndSerialize();
   auto req_with_different_plaintext_2 =
-      CreateClientObliviousRequestWithSeedForTesting(
+      ObliviousHttpRequest::CreateClientWithSeedForTesting(
           "different 2", GetHpkePublicKey(), ohttp_key_config, GetSeed());
   ASSERT_TRUE(req_with_different_plaintext_2.ok());
   auto ciphertext_2 = req_with_different_plaintext_2->EncapsulateAndSerialize();
diff --git a/quiche/oblivious_http/buffers/oblivious_http_response_test.cc b/quiche/oblivious_http/buffers/oblivious_http_response_test.cc
index 1e8eb34..f19020d 100644
--- a/quiche/oblivious_http/buffers/oblivious_http_response_test.cc
+++ b/quiche/oblivious_http/buffers/oblivious_http_response_test.cc
@@ -18,15 +18,6 @@
 
 namespace quiche {
 
-absl::StatusOr<ObliviousHttpRequest>
-CreateClientObliviousRequestWithSeedForTesting(
-    absl::string_view plaintext_payload, absl::string_view hpke_public_key,
-    const ObliviousHttpHeaderKeyConfig &ohttp_key_config,
-    absl::string_view seed) {
-  return ObliviousHttpRequest::EncapsulateWithSeed(
-      plaintext_payload, hpke_public_key, ohttp_key_config, seed);
-}
-
 namespace {
 std::string GetHpkePrivateKey() {
   absl::string_view hpke_key_hex =
@@ -102,7 +93,7 @@
                                                absl::string_view plaintext) {
   auto ohttp_key_config = GetOhttpKeyConfig(key_id, kem_id, kdf_id, aead_id);
   auto client_request_encapsulate =
-      CreateClientObliviousRequestWithSeedForTesting(
+      ObliviousHttpRequest::CreateClientWithSeedForTesting(
           plaintext, GetHpkePublicKey(), ohttp_key_config, GetSeed());
   EXPECT_TRUE(client_request_encapsulate.ok());
   auto oblivious_request =