Modifying the "TestSignWithPublicMetadata" test function take in a boolean that indicates whether RSA public exponent should be used for computations. PiperOrigin-RevId: 549749478
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/