Ensuse self tests run for ML-DSA prehash signing Change-Id: Ie84f406a24adc334578c7214baa283692033eca0 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/82967 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> Auto-Submit: Andrew Scull <ascull@google.com>
diff --git a/crypto/fipsmodule/mldsa/mldsa.cc.inc b/crypto/fipsmodule/mldsa/mldsa.cc.inc index 00ed6bb..6904e59 100644 --- a/crypto/fipsmodule/mldsa/mldsa.cc.inc +++ b/crypto/fipsmodule/mldsa/mldsa.cc.inc
@@ -1696,7 +1696,7 @@ // FIPS 204, Algorithm 7 (`ML-DSA.Sign_internal`), using a pre-computed mu. // Returns 1 on success and 0 on failure. template <int K, int L> -int mldsa_sign_mu( +int mldsa_sign_mu_no_self_test( uint8_t out_encoded_signature[signature_bytes<K>()], const private_key<K, L> *priv, const uint8_t mu[kMuBytes], const uint8_t randomizer[BCM_MLDSA_SIGNATURE_RANDOMIZER_BYTES]) { @@ -1833,6 +1833,18 @@ } } +// FIPS 204, Algorithm 7 (`ML-DSA.Sign_internal`), using a pre-computed mu. +// Returns 1 on success and 0 on failure. +template <int K, int L> +int mldsa_sign_mu( + uint8_t out_encoded_signature[signature_bytes<K>()], + const private_key<K, L> *priv, const uint8_t mu[kMuBytes], + const uint8_t randomizer[BCM_MLDSA_SIGNATURE_RANDOMIZER_BYTES]) { + fips::ensure_sign_self_test(); + return mldsa_sign_mu_no_self_test(out_encoded_signature, priv, mu, + randomizer); +} + // FIPS 204, Algorithm 7 (`ML-DSA.Sign_internal`). Returns 1 on success and 0 // on failure. template <int K, int L> @@ -1852,7 +1864,8 @@ BORINGSSL_keccak_absorb(&keccak_ctx, msg, msg_len); BORINGSSL_keccak_squeeze(&keccak_ctx, mu, kMuBytes); - return mldsa_sign_mu(out_encoded_signature, priv, mu, randomizer); + return mldsa_sign_mu_no_self_test(out_encoded_signature, priv, mu, + randomizer); } // FIPS 204, Algorithm 7 (`ML-DSA.Sign_internal`). Returns 1 on success and 0