enable encoding of ML-DSA-44 messages

This commit is contained in:
orignal 2025-03-14 11:40:54 -04:00
parent cd9427d5d5
commit ad7ca428ae

View file

@ -203,13 +203,7 @@ namespace crypto
#if OPENSSL_PQ #if OPENSSL_PQ
#include <openssl/core_names.h> #include <openssl/core_names.h>
static const OSSL_PARAM MLDSAParams[] =
{
OSSL_PARAM_octet_string("context-string", (unsigned char *)"A context string", 16),
OSSL_PARAM_END
};
MLDSA44Verifier::MLDSA44Verifier (): MLDSA44Verifier::MLDSA44Verifier ():
m_Pkey (nullptr) m_Pkey (nullptr)
{ {
@ -254,11 +248,11 @@ namespace crypto
EVP_SIGNATURE * sig = EVP_SIGNATURE_fetch (NULL, "ML-DSA-44", NULL); EVP_SIGNATURE * sig = EVP_SIGNATURE_fetch (NULL, "ML-DSA-44", NULL);
if (sig) if (sig)
{ {
int encode = 0; int encode = 1;
OSSL_PARAM params[] = OSSL_PARAM params[] =
{ {
OSSL_PARAM_construct_int(OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING, &encode), OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING, &encode),
OSSL_PARAM_construct_end() OSSL_PARAM_END
}; };
EVP_PKEY_verify_message_init (vctx, sig, params); EVP_PKEY_verify_message_init (vctx, sig, params);
ret = EVP_PKEY_verify (vctx, signature, GetSignatureLen (), buf, len); ret = EVP_PKEY_verify (vctx, signature, GetSignatureLen (), buf, len);
@ -308,7 +302,13 @@ namespace crypto
EVP_SIGNATURE * sig = EVP_SIGNATURE_fetch (NULL, "ML-DSA-44", NULL); EVP_SIGNATURE * sig = EVP_SIGNATURE_fetch (NULL, "ML-DSA-44", NULL);
if (sig) if (sig)
{ {
EVP_PKEY_sign_message_init (sctx, sig, MLDSAParams); int encode = 1;
OSSL_PARAM params[] =
{
OSSL_PARAM_int(OSSL_SIGNATURE_PARAM_MESSAGE_ENCODING, &encode),
OSSL_PARAM_END
};
EVP_PKEY_sign_message_init (sctx, sig, params);
size_t siglen = MLDSA44_SIGNATURE_LENGTH; size_t siglen = MLDSA44_SIGNATURE_LENGTH;
EVP_PKEY_sign (sctx, signature, &siglen, buf, len); EVP_PKEY_sign (sctx, signature, &siglen, buf, len);
EVP_SIGNATURE_free (sig); EVP_SIGNATURE_free (sig);