* @returns an EVP_MD_CTX if the operation is successful, NULL otherwise.
*/
-static EVP_MD_CTX *ml_dsa_mu_init(const ML_DSA_KEY *key, int encode,
- const uint8_t *ctx, size_t ctx_len)
+EVP_MD_CTX *ossl_ml_dsa_mu_init(const ML_DSA_KEY *key, int encode,
+ const uint8_t *ctx, size_t ctx_len)
{
EVP_MD_CTX *md_ctx;
uint8_t itb[2];
* @param msg_len: The length of the msg buffer to process
* @returns 1 on success, 0 on error
*/
-static int ml_dsa_mu_update(EVP_MD_CTX *md_ctx,
- const uint8_t *msg, size_t msg_len)
+int ossl_ml_dsa_mu_update(EVP_MD_CTX *md_ctx, const uint8_t *msg, size_t msg_len)
{
return EVP_DigestUpdate(md_ctx, msg, msg_len);
}
* @param mu_len: The size of the output buffer
* @returns 1 on success, 0 on error
*/
-static int ml_dsa_mu_finalize(EVP_MD_CTX *md_ctx, uint8_t *mu, size_t mu_len)
+int ossl_ml_dsa_mu_finalize(EVP_MD_CTX *md_ctx, uint8_t *mu, size_t mu_len)
{
if (!ossl_assert(mu_len == ML_DSA_MU_BYTES)) {
ERR_raise(ERR_LIB_PROV, PROV_R_BAD_LENGTH);
mu_ptr = msg;
mu_len = msg_len;
} else {
- md_ctx = ml_dsa_mu_init(priv, encode, context, context_len);
+ md_ctx = ossl_ml_dsa_mu_init(priv, encode, context, context_len);
if (md_ctx == NULL)
return 0;
- if (!ml_dsa_mu_update(md_ctx, msg, msg_len))
+ if (!ossl_ml_dsa_mu_update(md_ctx, msg, msg_len))
goto err;
- if (!ml_dsa_mu_finalize(md_ctx, mu, mu_len))
+ if (!ossl_ml_dsa_mu_finalize(md_ctx, mu, mu_len))
goto err;
}
mu_ptr = msg;
mu_len = msg_len;
} else {
- md_ctx = ml_dsa_mu_init(pub, encode, context, context_len);
+ md_ctx = ossl_ml_dsa_mu_init(pub, encode, context, context_len);
if (md_ctx == NULL)
return 0;
- if (!ml_dsa_mu_update(md_ctx, msg, msg_len))
+ if (!ossl_ml_dsa_mu_update(md_ctx, msg, msg_len))
goto err;
- if (!ml_dsa_mu_finalize(md_ctx, mu, mu_len))
+ if (!ossl_ml_dsa_mu_finalize(md_ctx, mu, mu_len))
goto err;
}
__owur int ossl_ml_dsa_pk_decode(ML_DSA_KEY *key, const uint8_t *in, size_t in_len);
__owur int ossl_ml_dsa_sk_decode(ML_DSA_KEY *key, const uint8_t *in, size_t in_len);
+EVP_MD_CTX *ossl_ml_dsa_mu_init(const ML_DSA_KEY *key, int encode,
+ const uint8_t *ctx, size_t ctx_len);
+__owur int ossl_ml_dsa_mu_update(EVP_MD_CTX *md_ctx, const uint8_t *msg, size_t msg_len);
+__owur int ossl_ml_dsa_mu_finalize(EVP_MD_CTX *md_ctx, uint8_t *mu, size_t mu_len);
+
__owur int ossl_ml_dsa_sign(const ML_DSA_KEY *priv, int msg_is_mu,
const uint8_t *msg, size_t msg_len,
const uint8_t *context, size_t context_len,