Check LMS offsets are sane at runtime
Signed-off-by: Raef Coles <raef.coles@arm.com>
diff --git a/library/lms.c b/library/lms.c
index adba195..296adce 100644
--- a/library/lms.c
+++ b/library/lms.c
@@ -733,6 +733,12 @@
*/
ctx->q_next_usable_key += 1;
+ if ( MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype)
+ < SIG_OTS_SIG_OFFSET )
+ {
+ return MBEDTLS_ERR_LMS_BAD_INPUT_DATA;
+ }
+
ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier],
f_rng, p_rng, msg, msg_size,
sig + SIG_OTS_SIG_OFFSET,