diff --git a/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/rsa_blinder_test.cc b/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/rsa_blinder_test.cc
index 19bab75..c2f55df 100644
--- a/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/rsa_blinder_test.cc
+++ b/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/rsa_blinder_test.cc
@@ -274,7 +274,8 @@
 
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       std::string blinded_signature,
-      TestSignWithPublicMetadata(blinded_message, public_metadata, *rsa_key_));
+      TestSignWithPublicMetadata(blinded_message, public_metadata, *rsa_key_,
+                                 /*use_rsa_public_exponent=*/true));
   EXPECT_NE(blinded_signature, blinded_message);
   EXPECT_NE(blinded_signature, message);
 
@@ -306,7 +307,7 @@
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       std::string blinded_signature,
       TestSignWithPublicMetadata(blinded_message, empty_public_metadata,
-                                 *rsa_key_));
+                                 *rsa_key_, /*use_rsa_public_exponent=*/true));
   EXPECT_NE(blinded_signature, blinded_message);
   EXPECT_NE(blinded_signature, message);
 
@@ -337,8 +338,8 @@
 
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       std::string blinded_signature,
-      TestSignWithPublicMetadata(blinded_message, public_metadata_2,
-                                 *rsa_key_));
+      TestSignWithPublicMetadata(blinded_message, public_metadata_2, *rsa_key_,
+                                 /*use_rsa_public_exponent=*/true));
   EXPECT_NE(blinded_signature, blinded_message);
   EXPECT_NE(blinded_signature, message);
 
@@ -401,7 +402,8 @@
 
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       std::string blinded_signature,
-      TestSignWithPublicMetadata(blinded_message, public_metadata, *rsa_key_));
+      TestSignWithPublicMetadata(blinded_message, public_metadata, *rsa_key_,
+                                 /*use_rsa_public_exponent=*/true));
   EXPECT_NE(blinded_signature, blinded_message);
   EXPECT_NE(blinded_signature, message);
 
diff --git a/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/rsa_ssa_pss_verifier_test.cc b/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/rsa_ssa_pss_verifier_test.cc
index fad236a..32fe85e 100644
--- a/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/rsa_ssa_pss_verifier_test.cc
+++ b/quiche/blind_sign_auth/anonymous_tokens/cpp/crypto/rsa_ssa_pss_verifier_test.cc
@@ -182,7 +182,8 @@
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       std::string potentially_insecure_signature,
       TestSignWithPublicMetadata(encoded_message, public_metadata,
-                                 *private_key_));
+                                 *private_key_,
+                                 /*use_rsa_public_exponent=*/true));
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       auto verifier, RsaSsaPssVerifier::New(salt_length_, sig_hash_, mgf1_hash_,
                                             public_key_, public_metadata));
@@ -203,7 +204,8 @@
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       std::string potentially_insecure_signature,
       TestSignWithPublicMetadata(encoded_message, public_metadata,
-                                 *private_key_));
+                                 *private_key_,
+                                 /*use_rsa_public_exponent=*/true));
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       auto verifier, RsaSsaPssVerifier::New(salt_length_, sig_hash_, mgf1_hash_,
                                             public_key_, public_metadata_2));
@@ -228,7 +230,8 @@
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       std::string potentially_insecure_signature,
       TestSignWithPublicMetadata(encoded_message, public_metadata,
-                                 *private_key_));
+                                 *private_key_,
+                                 /*use_rsa_public_exponent=*/true));
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       auto verifier,
       RsaSsaPssVerifier::New(salt_length_, sig_hash_, mgf1_hash_, public_key_,
@@ -253,7 +256,8 @@
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       std::string potentially_insecure_signature,
       TestSignWithPublicMetadata(encoded_message, public_metadata,
-                                 *private_key_));
+                                 *private_key_,
+                                 /*use_rsa_public_exponent=*/true));
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       auto verifier,
       RsaSsaPssVerifier::New(salt_length_, sig_hash_, mgf1_hash_, public_key_));
@@ -277,7 +281,8 @@
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       std::string potentially_insecure_signature,
       TestSignWithPublicMetadata(encoded_message, public_metadata,
-                                 *private_key_.get()));
+                                 *private_key_.get(),
+                                 /*use_rsa_public_exponent=*/true));
   ANON_TOKENS_ASSERT_OK_AND_ASSIGN(
       auto verifier, RsaSsaPssVerifier::New(salt_length_, sig_hash_, mgf1_hash_,
                                             public_key_, public_metadata));
diff --git a/quiche/blind_sign_auth/anonymous_tokens/cpp/testing/utils.cc b/quiche/blind_sign_auth/anonymous_tokens/cpp/testing/utils.cc
index a35307b..572f717 100644
--- a/quiche/blind_sign_auth/anonymous_tokens/cpp/testing/utils.cc
+++ b/quiche/blind_sign_auth/anonymous_tokens/cpp/testing/utils.cc
@@ -71,7 +71,7 @@
 
 absl::StatusOr<std::string> TestSignWithPublicMetadata(
     const absl::string_view blinded_data, absl::string_view public_metadata,
-    const RSA& rsa_key) {
+    const RSA& rsa_key, const bool use_rsa_public_exponent) {
   if (blinded_data.empty()) {
     return absl::InvalidArgumentError("blinded_data string is empty.");
   } else if (blinded_data.size() != RSA_size(&rsa_key)) {
@@ -80,10 +80,17 @@
         " actual blind data size = ", blinded_data.size(), " bytes."));
   }
   // Compute new public exponent using the public metadata.
-  ANON_TOKENS_ASSIGN_OR_RETURN(
-      bssl::UniquePtr<BIGNUM> new_e,
-      ComputeExponentWithPublicMetadataAndPublicExponent(
-          *RSA_get0_n(&rsa_key), *RSA_get0_e(&rsa_key), public_metadata));
+  bssl::UniquePtr<BIGNUM> new_e;
+  if (use_rsa_public_exponent) {
+    ANON_TOKENS_ASSIGN_OR_RETURN(
+        new_e,
+        ComputeExponentWithPublicMetadataAndPublicExponent(
+            *RSA_get0_n(&rsa_key), *RSA_get0_e(&rsa_key), public_metadata));
+  } else {
+    ANON_TOKENS_ASSIGN_OR_RETURN(
+        new_e, ComputeExponentWithPublicMetadata(*RSA_get0_n(&rsa_key),
+                                                 public_metadata));
+  }
 
   // Compute phi(p) = p-1
   ANON_TOKENS_ASSIGN_OR_RETURN(bssl::UniquePtr<BIGNUM> phi_p, NewBigNum());
diff --git a/quiche/blind_sign_auth/anonymous_tokens/cpp/testing/utils.h b/quiche/blind_sign_auth/anonymous_tokens/cpp/testing/utils.h
index adea664..777e071 100644
--- a/quiche/blind_sign_auth/anonymous_tokens/cpp/testing/utils.h
+++ b/quiche/blind_sign_auth/anonymous_tokens/cpp/testing/utils.h
@@ -80,7 +80,7 @@
 // anonympous_tokens/public/cpp/crypto
 absl::StatusOr<std::string> TestSignWithPublicMetadata(
     absl::string_view blinded_data, absl::string_view public_metadata,
-    const RSA& rsa_key);
+    const RSA& rsa_key, bool use_rsa_public_exponent);
 
 // Returns the IETF test example from
 // https://datatracker.ietf.org/doc/draft-irtf-cfrg-rsa-blind-signatures/
