From 22527713f5faba3ec92f910d9d50d5f8eebce427 Mon Sep 17 00:00:00 2001 From: Basil Hess Date: Thu, 25 Sep 2025 16:33:01 +0200 Subject: [PATCH] Update SLH-DSA template to fix addrnd sizes [extended tests] Signed-off-by: Basil Hess --- .../slh_dsa/templates/slh_dsa_src_template.jinja | 16 ++++++++-------- .../slh_dsa_sha2_512_224_prehash_shake_192f.c | 4 ++-- .../slh_dsa_sha2_512_224_prehash_shake_192s.c | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/sig/slh_dsa/templates/slh_dsa_src_template.jinja b/src/sig/slh_dsa/templates/slh_dsa_src_template.jinja index cb7141767..3495507ac 100644 --- a/src/sig/slh_dsa/templates/slh_dsa_src_template.jinja +++ b/src/sig/slh_dsa/templates/slh_dsa_src_template.jinja @@ -56,8 +56,8 @@ OQS_API OQS_STATUS OQS_SIG_slh_dsa_pure_{{hashAlg}}_{{paramSet}}_sign(uint8_t *s const slh_param_t *prm = &slh_dsa_{{hashAlg}}_{{paramSet}}; const uint8_t *ctx = NULL; const size_t ctxlen = 0; - uint8_t addrnd[32]; - OQS_randombytes(addrnd, 32); + uint8_t addrnd[{{pkSize // 2}}]; + OQS_randombytes(addrnd, {{pkSize // 2}}); *signature_len = slh_sign(signature, message, message_len, ctx, ctxlen, secret_key, addrnd, prm); @@ -90,8 +90,8 @@ OQS_API OQS_STATUS OQS_SIG_slh_dsa_pure_{{hashAlg}}_{{paramSet}}_sign_with_ctx_s size_t ctx_str_len, const uint8_t *secret_key) { const slh_param_t *prm = &slh_dsa_{{hashAlg}}_{{paramSet}}; - uint8_t addrnd[32]; - OQS_randombytes(addrnd, 32); + uint8_t addrnd[{{pkSize // 2}}]; + OQS_randombytes(addrnd, {{pkSize // 2}}); *signature_len = slh_sign(signature, message, message_len, ctx_str, ctx_str_len, secret_key, addrnd, prm); @@ -165,8 +165,8 @@ OQS_API OQS_STATUS OQS_SIG_slh_dsa_{{prehashHashAlg}}_prehash_{{hashAlg}}_{{para const char *ph = "{{ prehashString|replace('_', '-')|upper }}"; const uint8_t *ctx_str = NULL; const size_t ctx_str_len = 0; - uint8_t addrnd[32]; - OQS_randombytes(addrnd, 32); + uint8_t addrnd[{{pkSize // 2}}]; + OQS_randombytes(addrnd, {{pkSize // 2}}); *signature_len = hash_slh_sign(signature, message, message_len, ctx_str, ctx_str_len, ph, secret_key, addrnd, prm); @@ -200,8 +200,8 @@ OQS_API OQS_STATUS OQS_SIG_slh_dsa_{{prehashHashAlg}}_prehash_{{hashAlg}}_{{para const slh_param_t *prm = &slh_dsa_{{hashAlg}}_{{paramSet}}; const char *ph = "{{ prehashString|replace('_', '-')|upper }}"; - uint8_t addrnd[32]; - OQS_randombytes(addrnd, 32); + uint8_t addrnd[{{pkSize // 2}}]; + OQS_randombytes(addrnd, {{pkSize // 2}}); *signature_len = hash_slh_sign(signature, message, message_len, ctx_str, ctx_str_len, ph, secret_key, addrnd, prm); diff --git a/src/sig/slh_dsa/wrappers/prehash_sha2_512_224/slh_dsa_sha2_512_224_prehash_shake_192f.c b/src/sig/slh_dsa/wrappers/prehash_sha2_512_224/slh_dsa_sha2_512_224_prehash_shake_192f.c index a3a80907f..66710dde4 100644 --- a/src/sig/slh_dsa/wrappers/prehash_sha2_512_224/slh_dsa_sha2_512_224_prehash_shake_192f.c +++ b/src/sig/slh_dsa/wrappers/prehash_sha2_512_224/slh_dsa_sha2_512_224_prehash_shake_192f.c @@ -92,8 +92,8 @@ OQS_API OQS_STATUS OQS_SIG_slh_dsa_sha2_512_224_prehash_shake_192f_sign_with_ctx const slh_param_t *prm = &slh_dsa_shake_192f; const char *ph = "SHA2-512/224"; - uint8_t addrnd[32]; - OQS_randombytes(addrnd, 32); + uint8_t addrnd[24]; + OQS_randombytes(addrnd, 24); *signature_len = hash_slh_sign(signature, message, message_len, ctx_str, ctx_str_len, ph, secret_key, addrnd, prm); diff --git a/src/sig/slh_dsa/wrappers/prehash_sha2_512_224/slh_dsa_sha2_512_224_prehash_shake_192s.c b/src/sig/slh_dsa/wrappers/prehash_sha2_512_224/slh_dsa_sha2_512_224_prehash_shake_192s.c index 1a55413b8..5a22b3107 100644 --- a/src/sig/slh_dsa/wrappers/prehash_sha2_512_224/slh_dsa_sha2_512_224_prehash_shake_192s.c +++ b/src/sig/slh_dsa/wrappers/prehash_sha2_512_224/slh_dsa_sha2_512_224_prehash_shake_192s.c @@ -92,8 +92,8 @@ OQS_API OQS_STATUS OQS_SIG_slh_dsa_sha2_512_224_prehash_shake_192s_sign_with_ctx const slh_param_t *prm = &slh_dsa_shake_192s; const char *ph = "SHA2-512/224"; - uint8_t addrnd[32]; - OQS_randombytes(addrnd, 32); + uint8_t addrnd[24]; + OQS_randombytes(addrnd, 24); *signature_len = hash_slh_sign(signature, message, message_len, ctx_str, ctx_str_len, ph, secret_key, addrnd, prm);