From 2ac3020bb680458361779135d4eb54d40d8adc5f Mon Sep 17 00:00:00 2001 From: Paul Adelsbach Date: Mon, 30 Mar 2026 15:02:13 -0700 Subject: [PATCH] Add buffer size and callback checks to external wc_LmsKey_Sign --- wolfcrypt/src/ext_lms.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/wolfcrypt/src/ext_lms.c b/wolfcrypt/src/ext_lms.c index e45083c046..cd35423203 100644 --- a/wolfcrypt/src/ext_lms.c +++ b/wolfcrypt/src/ext_lms.c @@ -840,6 +840,22 @@ int wc_LmsKey_Sign(LmsKey* key, byte * sig, word32 * sigSz, const byte * msg, return -1; } + if ((size_t)*sigSz < len) { + /* Signature buffer too small. */ + WOLFSSL_MSG("error: LMS sig buffer too small"); + return BUFFER_E; + } + + if (key->write_private_key == NULL) { + WOLFSSL_MSG("error: LmsKey write/read callbacks are not set"); + return BAD_FUNC_ARG; + } + + if (key->context == NULL) { + WOLFSSL_MSG("error: LmsKey context is not set"); + return BAD_FUNC_ARG; + } + result = hss_generate_signature(key->working_key, LmsWritePrivKey, key, (const void *) msg, msgSz, sig, len, &key->info);