Refactor CreatePublicKeyRSAWithPublicMetadata into two functions that take different param types.

PiperOrigin-RevId: 545795948
diff --git a/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/crypto_utils.cc b/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/crypto_utils.cc
index 0516d3d..1a013bb 100644
--- a/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/crypto_utils.cc
+++ b/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/crypto_utils.cc
@@ -329,6 +329,22 @@
 }
 
 absl::StatusOr<bssl::UniquePtr<RSA>> CreatePublicKeyRSAWithPublicMetadata(
+    const BIGNUM& rsa_modulus, const BIGNUM& public_exponent,
+    absl::string_view public_metadata) {
+  ANON_TOKENS_ASSIGN_OR_RETURN(
+      bssl::UniquePtr<BIGNUM> derived_rsa_e,
+      ComputeFinalExponentUnderPublicMetadata(rsa_modulus, public_exponent,
+                                              public_metadata));
+  bssl::UniquePtr<RSA> rsa_public_key = bssl::UniquePtr<RSA>(
+      RSA_new_public_key_large_e(&rsa_modulus, derived_rsa_e.get()));
+  if (!rsa_public_key.get()) {
+    return absl::InternalError(
+        absl::StrCat("RSA_new_public_key_large_e failed: ", GetSslErrors()));
+  }
+  return rsa_public_key;
+}
+
+absl::StatusOr<bssl::UniquePtr<RSA>> CreatePublicKeyRSAWithPublicMetadata(
     const absl::string_view rsa_modulus,
     const absl::string_view public_exponent,
     const absl::string_view public_metadata) {
@@ -336,17 +352,8 @@
                                StringToBignum(rsa_modulus));
   ANON_TOKENS_ASSIGN_OR_RETURN(bssl::UniquePtr<BIGNUM> rsa_e,
                                StringToBignum(public_exponent));
-  ANON_TOKENS_ASSIGN_OR_RETURN(
-      bssl::UniquePtr<BIGNUM> derived_rsa_e,
-      ComputeFinalExponentUnderPublicMetadata(*rsa_n.get(), *rsa_e.get(),
-                                              public_metadata));
-  bssl::UniquePtr<RSA> rsa_public_key = bssl::UniquePtr<RSA>(
-      RSA_new_public_key_large_e(rsa_n.get(), derived_rsa_e.get()));
-  if (!rsa_public_key.get()) {
-    return absl::InternalError(
-        absl::StrCat("RSA_new_public_key_large_e failed: ", GetSslErrors()));
-  }
-  return rsa_public_key;
+  return CreatePublicKeyRSAWithPublicMetadata(*rsa_n.get(), *rsa_e.get(),
+                                              public_metadata);
 }
 
 absl::StatusOr<bssl::UniquePtr<BIGNUM>> ComputeCarmichaelLcm(
diff --git a/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/crypto_utils.h b/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/crypto_utils.h
index 2385e0d..2932a19 100644
--- a/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/crypto_utils.h
+++ b/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/crypto_utils.h
@@ -147,6 +147,13 @@
 // Create bssl::UniquePtr<RSA> representing a RSA public key derived using
 // public metadata.
 absl::StatusOr<bssl::UniquePtr<RSA>> QUICHE_EXPORT
+CreatePublicKeyRSAWithPublicMetadata(const BIGNUM& rsa_modulus,
+                                     const BIGNUM& public_exponent,
+                                     absl::string_view public_metadata);
+
+// Create bssl::UniquePtr<RSA> representing a RSA public key derived using
+// public metadata.
+absl::StatusOr<bssl::UniquePtr<RSA>> QUICHE_EXPORT
 CreatePublicKeyRSAWithPublicMetadata(absl::string_view rsa_modulus,
                                      absl::string_view public_exponent,
                                      absl::string_view public_metadata);