From 2d5a6032e969df0cf73de0e4c5d356db1c3c3c2a Mon Sep 17 00:00:00 2001 From: Norman Ashley Date: Tue, 19 Dec 2023 10:46:19 -0500 Subject: [PATCH] Fix Build Errors (#1635) * Fix build err when built with no thread * Enable KAT * Add Generated test * Fix typo * update formatting * Fix typo * Fix build issues * Fix undefined error * Fixed SA issue * Fixed warnings * Skip variant that exceeds timeout * Fix style format * Fix various build issues --- .CMake/alg_support.cmake | 20 +++ src/common/sha2/sha2_armv8.c | 32 ++--- src/oqsconfig.h.cmake | 13 ++ src/sig_stfl/lms/external/endian.c | 2 +- src/sig_stfl/lms/external/hss_alloc.c | 10 +- src/sig_stfl/lms/external/hss_aux.c | 2 +- src/sig_stfl/lms/external/hss_compute.c | 2 +- src/sig_stfl/lms/external/hss_generate.c | 2 +- src/sig_stfl/lms/external/hss_keygen.c | 2 +- src/sig_stfl/lms/external/hss_sign.c | 6 +- src/sig_stfl/lms/external/hss_sign_inc.c | 2 +- src/sig_stfl/lms/external/hss_verify.c | 16 +-- src/sig_stfl/lms/external/hss_verify_inc.c | 16 +-- src/sig_stfl/lms/external/lm_common.c | 2 +- src/sig_stfl/lms/external/lm_ots_verify.c | 2 +- src/sig_stfl/lms/external/lm_verify.c | 8 +- src/sig_stfl/lms/sig_stfl_lms.h | 136 +++++++++--------- tests/KATs/sig_stfl/kats.json | 16 +++ tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W1.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W2.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W4.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W8.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W1.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W2.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W4.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W8.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W1.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W2.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W4.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W8.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W1.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W2.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W4.rsp | 8 ++ tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W8.rsp | 8 ++ tests/example_sig_stfl.c | 2 +- tests/test_sig_stfl.c | 121 ++++++++++------ 36 files changed, 374 insertions(+), 166 deletions(-) create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W1.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W2.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W4.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W8.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W1.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W2.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W4.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W8.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W1.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W2.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W4.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W8.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W1.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W2.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W4.rsp create mode 100644 tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W8.rsp diff --git a/.CMake/alg_support.cmake b/.CMake/alg_support.cmake index 27ce29c1da..119ee52f3f 100644 --- a/.CMake/alg_support.cmake +++ b/.CMake/alg_support.cmake @@ -529,6 +529,26 @@ cmake_dependent_option(OQS_ENABLE_SIG_STFL_xmssmt_shake128_h60_12 "" ON "OQS_ENA option(OQS_ENABLE_SIG_STFL_LMS "Enable LMS algorithm family" ON) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h5_w1 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h5_w2 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h5_w4 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h5_w8 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h10_w1 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h10_w2 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h10_w4 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h10_w8 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h15_w1 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h15_w2 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h15_w4 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h15_w8 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h20_w1 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h20_w2 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h20_w4 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h20_w8 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h25_w1 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h25_w2 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h25_w4 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h25_w8 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h5_w8_h5_w8 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) cmake_dependent_option(OQS_ENABLE_SIG_STFL_lms_sha256_h10_w4_h5_w8 "" ON "OQS_ENABLE_SIG_STFL_LMS" OFF) diff --git a/src/common/sha2/sha2_armv8.c b/src/common/sha2/sha2_armv8.c index 71d2cebb59..9f5a96bd97 100644 --- a/src/common/sha2/sha2_armv8.c +++ b/src/common/sha2/sha2_armv8.c @@ -290,27 +290,27 @@ void oqs_sha2_sha256_inc_armv8(sha256ctx *state, const uint8_t *in, size_t len) incr = len; } - for (size_t i = 0; i < incr; ++i, state->data_len++, in_index++)) { - state->data[state->data_len] = in[in_index++)]; + for (size_t i = 0; i < incr; ++i, state->data_len++, in_index++) { + state->data[state->data_len] = in[in_index++]; } if (state->data_len < 64) { - break; - } + break; + } - /* - * Process a complete block now - */ - bytes = load_bigendian_64(state->ctx + 32) + 64; - crypto_hashblocks_sha256_armv8(state->ctx, state->data, 64); - store_bigendian_64(state->ctx + 32, bytes); + /* + * Process a complete block now + */ + bytes = load_bigendian_64(state->ctx + 32) + 64; + crypto_hashblocks_sha256_armv8(state->ctx, state->data, 64); + store_bigendian_64(state->ctx + 32, bytes); - /* - * update the remaining input - */ - len -= incr; - state->data_len = 0; -} + /* + * update the remaining input + */ + len -= incr; + state->data_len = 0; + } } void oqs_sha2_sha224_inc_blocks_armv8(sha224ctx *state, const uint8_t *in, size_t inblocks) { diff --git a/src/oqsconfig.h.cmake b/src/oqsconfig.h.cmake index c2de65c545..9fce48b769 100644 --- a/src/oqsconfig.h.cmake +++ b/src/oqsconfig.h.cmake @@ -222,5 +222,18 @@ #cmakedefine OQS_ENABLE_SIG_STFL_xmssmt_shake128_h60_12 1 #cmakedefine OQS_ENABLE_SIG_STFL_LMS 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h5_w1 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h5_w2 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h5_w4 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h5_w8 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h10_w1 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h10_w2 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h10_w4 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h10_w8 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h15_w1 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h15_w2 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h15_w4 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h15_w8 1 +#cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h20_w1 1 #cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h5_w8_h5_w8 1 #cmakedefine OQS_ENABLE_SIG_STFL_lms_sha256_h10_w4_h5_w8 1 diff --git a/src/sig_stfl/lms/external/endian.c b/src/sig_stfl/lms/external/endian.c index 709dc7bf98..0c3c55b0fe 100644 --- a/src/sig_stfl/lms/external/endian.c +++ b/src/sig_stfl/lms/external/endian.c @@ -4,7 +4,7 @@ void put_bigendian( void *target, unsigned long long value, size_t bytes ) { unsigned char *b = target; int i; - for (i = bytes-1; i >= 0; i--) { + for (i = (int)(bytes-1); i >= 0; i--) { b[i] = value & 0xff; value >>= 8; } diff --git a/src/sig_stfl/lms/external/hss_alloc.c b/src/sig_stfl/lms/external/hss_alloc.c index 8f7cf6054b..3907d8764b 100644 --- a/src/sig_stfl/lms/external/hss_alloc.c +++ b/src/sig_stfl/lms/external/hss_alloc.c @@ -167,7 +167,7 @@ struct hss_working_key *allocate_working_key( if (memory_target > LONG_MAX) { mem_target = LONG_MAX; } else { - mem_target = memory_target; + mem_target = (unsigned long)memory_target; } #if 0 signed long initial_mem_target = mem_target; /* DEBUG HACK */ @@ -178,7 +178,7 @@ signed long initial_mem_target = mem_target; /* DEBUG HACK */ info->error_code = hss_error_out_of_memory; return NULL; } - mem_target -= sizeof(*w) + MALLOC_OVERHEAD; + mem_target -= (unsigned long)sizeof(*w) + MALLOC_OVERHEAD; unsigned i; w->levels = levels; w->status = hss_error_key_uninitialized; /* Not usable until we see a */ @@ -220,13 +220,13 @@ signed long initial_mem_target = mem_target; /* DEBUG HACK */ info->error_code = hss_error_out_of_memory; return 0; } - mem_target -= w->signed_pk_len[i] + MALLOC_OVERHEAD; + mem_target -= (unsigned long)w->signed_pk_len[i] + MALLOC_OVERHEAD; } w->signature_len = signature_len; /* Also account for the overhead for the stack allocation (the memory */ /* used by the stack will be accounted as a part of the tree level size */ - mem_target -= MALLOC_OVERHEAD; + mem_target -= (unsigned long)MALLOC_OVERHEAD; /* * Plot out how many subtree sizes we have at each level. We start by @@ -305,7 +305,7 @@ signed long initial_mem_target = mem_target; /* DEBUG HACK */ level_height[i], hash_size[i], &subtree_levels[i], &stack_used ); - mem_target -= mem; + mem_target -= (unsigned long)mem; stack_usage += stack_used; } diff --git a/src/sig_stfl/lms/external/hss_aux.c b/src/sig_stfl/lms/external/hss_aux.c index 5817b76c81..0d8777386f 100644 --- a/src/sig_stfl/lms/external/hss_aux.c +++ b/src/sig_stfl/lms/external/hss_aux.c @@ -133,7 +133,7 @@ struct expanded_aux_data *hss_expand_aux_data( const unsigned char *aux_data, if (!aux_data || aux_data[AUX_DATA_MARKER] == NO_AUX_DATA) return 0; const unsigned char *orig_aux_data = aux_data; - unsigned long aux_level = get_bigendian( aux_data, 4 ); + unsigned long aux_level = (unsigned long)get_bigendian( aux_data, 4 ); aux_data += 4; aux_level &= 0x7ffffffffL; /* Turn off the 'used' marker */ diff --git a/src/sig_stfl/lms/external/hss_compute.c b/src/sig_stfl/lms/external/hss_compute.c index 353ec939fb..752a7e2868 100644 --- a/src/sig_stfl/lms/external/hss_compute.c +++ b/src/sig_stfl/lms/external/hss_compute.c @@ -51,7 +51,7 @@ static enum hss_error_code hss_compute_internal_node( unsigned char *dest, merkle_index_t q = r - tree_size; merkle_index_t i; - unsigned ots_len = lm_ots_get_public_key_len(lm_ots_type); + unsigned ots_len = (unsigned)lm_ots_get_public_key_len(lm_ots_type); unsigned char pub_key[ LEAF_MAX_LEN ]; memcpy( pub_key + LEAF_I, I, I_LEN ); SET_D( pub_key + LEAF_D, D_LEAF ); diff --git a/src/sig_stfl/lms/external/hss_generate.c b/src/sig_stfl/lms/external/hss_generate.c index b604ab3593..5d6880c267 100644 --- a/src/sig_stfl/lms/external/hss_generate.c +++ b/src/sig_stfl/lms/external/hss_generate.c @@ -695,7 +695,7 @@ bool hss_generate_working_key( if (ratio > 1000) { core_target = 1; } else { - core_target = core_target / ratio; + core_target = (unsigned)(core_target / ratio); if (core_target == 0) core_target = 1; } prev_cost = p_order->cost; diff --git a/src/sig_stfl/lms/external/hss_keygen.c b/src/sig_stfl/lms/external/hss_keygen.c index 743604f170..7a364b3f04 100644 --- a/src/sig_stfl/lms/external/hss_keygen.c +++ b/src/sig_stfl/lms/external/hss_keygen.c @@ -101,7 +101,7 @@ bool hss_generate_private_key( return false; } - unsigned len_ots_pub = lm_ots_get_public_key_len(lm_ots_type[0]); + unsigned len_ots_pub = (unsigned)lm_ots_get_public_key_len(lm_ots_type[0]); if (len_ots_pub == 0) { info->error_code = hss_error_bad_param_set; return false; diff --git a/src/sig_stfl/lms/external/hss_sign.c b/src/sig_stfl/lms/external/hss_sign.c index 359e59df7b..3ce7159fbf 100644 --- a/src/sig_stfl/lms/external/hss_sign.c +++ b/src/sig_stfl/lms/external/hss_sign.c @@ -41,7 +41,7 @@ static enum subtree_build_status subtree_add_next_node( /* Compute the leaf node */ merkle_index_t i; - unsigned ots_len = lm_ots_get_public_key_len(tree->lm_ots_type); + unsigned ots_len = (unsigned int)lm_ots_get_public_key_len(tree->lm_ots_type); unsigned char pub_key[ LEAF_MAX_LEN ]; const unsigned char *I = (next_tree ? tree->I_next : tree->I); memcpy( pub_key + LEAF_I, I, I_LEN ); @@ -253,7 +253,7 @@ bool hss_create_signed_public_key(unsigned char *signed_key, unsigned len_public_key = 8 + I_LEN + hash_size; /* Now, generate the signature */ - if (!generate_merkle_signature( signed_key, len_signature, + if (!(unsigned int)generate_merkle_signature( signed_key, len_signature, parent, w, public_key, len_public_key)) { return false; } @@ -303,7 +303,7 @@ static void do_gen_sig( const void *detail, struct thread_collection *col) { const unsigned char *message = d->message; size_t message_len = d->message_len; - if (!generate_merkle_signature(signature, signature_len, + if (!(unsigned int)generate_merkle_signature(signature, signature_len, w->tree[ levels-1 ], w, message, message_len)) { goto failed; } diff --git a/src/sig_stfl/lms/external/hss_sign_inc.c b/src/sig_stfl/lms/external/hss_sign_inc.c index e455b5cd2b..6890a4a621 100644 --- a/src/sig_stfl/lms/external/hss_sign_inc.c +++ b/src/sig_stfl/lms/external/hss_sign_inc.c @@ -159,7 +159,7 @@ bool hss_sign_finalize( int i; for (i=0; i working_key->tree[i]->max_index) { hss_zeroize( seed_buff, sizeof seed_buff ); return 0; diff --git a/src/sig_stfl/lms/external/hss_verify.c b/src/sig_stfl/lms/external/hss_verify.c index 089bdbd1ef..b7f0f8b489 100644 --- a/src/sig_stfl/lms/external/hss_verify.c +++ b/src/sig_stfl/lms/external/hss_verify.c @@ -68,17 +68,17 @@ bool hss_validate_signature( info->error_code = hss_error_bad_signature; return false; } - uint_fast32_t levels = get_bigendian( signature, 4 ) + 1; + uint_fast32_t levels = (uint_fast32_t)get_bigendian( signature, 4 ) + 1; /* +1 because what's in the signature is levels-1 */ signature += 4; signature_len -= 4; if (levels < MIN_HSS_LEVELS || levels > MAX_HSS_LEVELS || - levels != get_bigendian( public_key, 4 )) { + levels != (uint_fast32_t)get_bigendian( public_key, 4 )) { info->error_code = hss_error_bad_signature; return false; } /* Compare that to what the public key says */ - uint_fast32_t pub_levels = get_bigendian( public_key, 4 ); + uint_fast32_t pub_levels = (uint_fast32_t)get_bigendian( public_key, 4 ); if (levels != pub_levels) { /* Signature and public key don't agree */ info->error_code = hss_error_bad_signature; @@ -109,9 +109,9 @@ bool hss_validate_signature( */ /* Get the length of Signature A */ - param_set_t lm_type = get_bigendian( public_key, 4 ); - param_set_t lm_ots_type = get_bigendian( public_key+4, 4 ); - unsigned l_siglen = lm_get_signature_len(lm_type, lm_ots_type); + param_set_t lm_type = (param_set_t)get_bigendian( public_key, 4 ); + param_set_t lm_ots_type = (param_set_t)get_bigendian( public_key+4, 4 ); + unsigned l_siglen = (unsigned)lm_get_signature_len(lm_type, lm_ots_type); if (l_siglen == 0 || l_siglen > signature_len) { info->error_code = hss_error_bad_signature; goto failed; @@ -134,8 +134,8 @@ bool hss_validate_signature( * someone other than the valid signer modified it), then * Signature A will not validate, and so we'll catch that */ - lm_type = get_bigendian( signature, 4 ); - unsigned l_pubkeylen = lm_get_public_key_len(lm_type); + lm_type = (param_set_t)get_bigendian( signature, 4 ); + unsigned l_pubkeylen = (unsigned)lm_get_public_key_len(lm_type); if (l_pubkeylen == 0 || l_pubkeylen > signature_len) { info->error_code = hss_error_bad_signature; goto failed; diff --git a/src/sig_stfl/lms/external/hss_verify_inc.c b/src/sig_stfl/lms/external/hss_verify_inc.c index 451082f8de..bb8da66db1 100644 --- a/src/sig_stfl/lms/external/hss_verify_inc.c +++ b/src/sig_stfl/lms/external/hss_verify_inc.c @@ -44,15 +44,15 @@ bool hss_validate_signature_init( ctx->status = info->error_code = hss_error_bad_signature; return false; } - uint_fast32_t levels = get_bigendian( signature, 4 ) + 1; + uint_fast32_t levels = (uint_fast32_t)get_bigendian( signature, 4 ) + 1; /* +1 because what's in the signature is levels-1 */ signature += 4; signature_len -= 4; if (levels < MIN_HSS_LEVELS || levels > MAX_HSS_LEVELS || - levels != get_bigendian( public_key, 4 )) { + levels != (uint_fast32_t)get_bigendian( public_key, 4 )) { ctx->status = info->error_code = hss_error_bad_signature; return false; } - uint_fast32_t pub_levels = get_bigendian( public_key, 4 ); + uint_fast32_t pub_levels = (uint_fast32_t)get_bigendian( public_key, 4 ); if (levels != pub_levels) { /* Signature and public key don't agree */ ctx->status = info->error_code = hss_error_bad_signature; @@ -72,9 +72,9 @@ bool hss_validate_signature_init( /* as we go. Note that we don't validate the bottom level yet */ for (i=0; i signature_len) goto failed; const unsigned char *l_sig = signature; signature += l_siglen; signature_len -= l_siglen; @@ -82,7 +82,7 @@ bool hss_validate_signature_init( /* The next thing is the next level public key (which we need */ /* to validate) */ if (signature_len < 4) goto failed; - lm_type = get_bigendian( signature, 4 ); + lm_type = (param_set_t)get_bigendian( signature, 4 ); unsigned l_pubkeylen = lm_get_public_key_len(lm_type); if (l_pubkeylen == 0 || l_pubkeylen > signature_len) goto failed; const unsigned char *l_pubkey = signature; @@ -122,7 +122,7 @@ bool hss_validate_signature_init( memcpy( ctx->final_public_key, public_key, 8 + I_LEN + MAX_HASH ); /* Now, initialize the context */ - param_set_t ots_type = get_bigendian( public_key+4, 4 ); + param_set_t ots_type = (param_set_t)get_bigendian( public_key+4, 4 ); unsigned h, n; if (!lm_ots_look_up_parameter_set(ots_type, &h, &n, NULL, NULL, NULL)) { diff --git a/src/sig_stfl/lms/external/lm_common.c b/src/sig_stfl/lms/external/lm_common.c index e3eb56f0f0..5976f4b589 100644 --- a/src/sig_stfl/lms/external/lm_common.c +++ b/src/sig_stfl/lms/external/lm_common.c @@ -66,7 +66,7 @@ size_t lm_get_signature_len(param_set_t lm_type, if (!lm_look_up_parameter_set( lm_type, 0, &n, &height )) return 0; - int ots_sig_len = lm_ots_get_signature_len(lm_ots_type); + int ots_sig_len = (int)lm_ots_get_signature_len(lm_ots_type); if (ots_sig_len == 0) return 0; diff --git a/src/sig_stfl/lms/external/lm_ots_verify.c b/src/sig_stfl/lms/external/lm_ots_verify.c index 91576474b5..478f5ffe8d 100644 --- a/src/sig_stfl/lms/external/lm_ots_verify.c +++ b/src/sig_stfl/lms/external/lm_ots_verify.c @@ -38,7 +38,7 @@ bool lm_ots_validate_signature_compute( if (signature_len < 4) return false; /* Ha, ha, very funny... */ /* We don't trust the parameter set that's in the signature; verify it */ - param_set_t parameter_set = get_bigendian( signature, 4 ); + param_set_t parameter_set = (param_set_t)get_bigendian( signature, 4 ); if (parameter_set != expected_parameter_set) { return false; } diff --git a/src/sig_stfl/lms/external/lm_verify.c b/src/sig_stfl/lms/external/lm_verify.c index 46b3627885..3ec4cb6599 100644 --- a/src/sig_stfl/lms/external/lm_verify.c +++ b/src/sig_stfl/lms/external/lm_verify.c @@ -36,8 +36,8 @@ bool lm_validate_signature( const unsigned char *signature, size_t signature_len) { union hash_context ctx; - param_set_t lm_type = get_bigendian( public_key + LM_PUB_PARM_SET, 4 ); - param_set_t ots_type = get_bigendian( public_key + LM_PUB_OTS_PARM_SET, 4 ); + param_set_t lm_type = (param_set_t)get_bigendian( public_key + LM_PUB_PARM_SET, 4 ); + param_set_t ots_type = (param_set_t)get_bigendian( public_key + LM_PUB_OTS_PARM_SET, 4 ); unsigned h, n, height; if (!lm_look_up_parameter_set(lm_type, &h, &n, &height)) return false; @@ -47,7 +47,7 @@ bool lm_validate_signature( const unsigned char *I = public_key + LM_PUB_I; if (signature_len < 8) return false; - merkle_index_t count = get_bigendian( signature, 4 ); + merkle_index_t count = (param_set_t)get_bigendian( signature, 4 ); signature += 4; signature_len -= 4; /* 4 bytes, rather then 8 */ /* the OTS type is expected to be a part of the OTS signature, */ /* which lm_ots_validate_signature_compute will expect */ @@ -67,7 +67,7 @@ bool lm_validate_signature( /* Get the parameter set declared in the sigature; make sure it matches */ /* what we expect */ if (signature_len < 4) return false; - param_set_t parameter_set = get_bigendian( signature, 4 ); + param_set_t parameter_set = (param_set_t)get_bigendian( signature, 4 ); if (parameter_set != lm_type) return false; signature += 4; signature_len -= 4; diff --git a/src/sig_stfl/lms/sig_stfl_lms.h b/src/sig_stfl/lms/sig_stfl_lms.h index 8380656eb0..b583782e64 100644 --- a/src/sig_stfl/lms/sig_stfl_lms.h +++ b/src/sig_stfl/lms/sig_stfl_lms.h @@ -94,29 +94,29 @@ #define OQS_SIG_STFL_alg_lms_sha256_h5_w1_length_signature 8688 #define OQS_SIG_STFL_alg_lms_sha256_h5_w1_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h5_w1_length_sk 64 -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h5_w1_new(void); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H5_W1_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h5_w1_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H5_W1_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h5_w1_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); #define OQS_SIG_STFL_alg_lms_sha256_h5_w2_length_signature 4464 #define OQS_SIG_STFL_alg_lms_sha256_h5_w2_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h5_w2_length_sk 64 -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h5_w2_new(void); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H5_W2_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h5_w2_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H5_W2_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h5_w2_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); #define OQS_SIG_STFL_alg_lms_sha256_h5_w4_length_signature 2352 #define OQS_SIG_STFL_alg_lms_sha256_h5_w4_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h5_w4_length_sk 64 -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h5_w4_new(void); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H5_W4_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h5_w4_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H5_W4_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h5_w4_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); #define OQS_SIG_STFL_alg_lms_sha256_h5_w8_length_signature 1296 #define OQS_SIG_STFL_alg_lms_sha256_h5_w8_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h5_w8_length_sk 64 -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h5_w8_new(void); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H5_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h5_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H5_W8_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h5_w8_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); //H10 @@ -128,29 +128,29 @@ OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h5_w8_keypair(uint8_t *public_key #define OQS_SIG_STFL_alg_lms_sha256_h10_w1_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h10_w1_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W1_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w1_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W1_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w1_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h10_w2_length_signature 4624 #define OQS_SIG_STFL_alg_lms_sha256_h10_w2_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h10_w2_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W2_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w2_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W2_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w2_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h10_w4_length_signature 2512 #define OQS_SIG_STFL_alg_lms_sha256_h10_w4_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h10_w4_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W4_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w4_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W4_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w4_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h10_w8_length_signature 1456 #define OQS_SIG_STFL_alg_lms_sha256_h10_w8_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h10_w8_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w8_new(void); //H15 // H15 W1 60 9008 64 @@ -161,29 +161,29 @@ OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w8_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h15_w1_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h15_w1_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W1_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w1_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W1_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w1_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h15_w2_length_signature 4784 #define OQS_SIG_STFL_alg_lms_sha256_h15_w2_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h15_w2_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W2_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w2_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W2_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w2_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h15_w4_length_signature 2672 #define OQS_SIG_STFL_alg_lms_sha256_h15_w4_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h15_w4_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W4_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w4_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W4_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w4_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h15_w8_length_signature 1616 #define OQS_SIG_STFL_alg_lms_sha256_h15_w8_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h15_w8_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w8_new(void); //H20 // H20 W1 60 9168 64 @@ -194,29 +194,29 @@ OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w8_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h20_w1_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h20_w1_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W1_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w1_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W1_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w1_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h20_w2_length_signature 4944 #define OQS_SIG_STFL_alg_lms_sha256_h20_w2_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h20_w2_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W2_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w2_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W2_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w2_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h20_w4_length_signature 2832 #define OQS_SIG_STFL_alg_lms_sha256_h20_w4_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h20_w4_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W4_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w4_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W4_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w4_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h20_w8_length_signature 1776 #define OQS_SIG_STFL_alg_lms_sha256_h20_w8_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h20_w8_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w8_new(void); //H25 // H25 W1 60 9328 64 @@ -227,32 +227,32 @@ OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w8_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h25_w1_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h25_w1_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H25_W1_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h25_w1_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H25_W1_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h25_w1_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h25_w2_length_signature 5104 #define OQS_SIG_STFL_alg_lms_sha256_h25_w2_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h25_w2_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H25_W2_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h25_w2_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H25_W2_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h25_w2_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h25_w4_length_signature 2992 #define OQS_SIG_STFL_alg_lms_sha256_h25_w4_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h25_w4_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H25_W4_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h25_w4_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H25_W4_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h25_w4_new(void); #define OQS_SIG_STFL_alg_lms_sha256_h25_w8_length_signature 1936 #define OQS_SIG_STFL_alg_lms_sha256_h25_w8_length_pk 60 #define OQS_SIG_STFL_alg_lms_sha256_h25_w8_length_sk 64 -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H25_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h25_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H25_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h25_w8_new(void); -OQS_API OQS_STATUS OQS_SIG_STFL_lms_sigs_left(unsigned long long *remain, const OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_API OQS_STATUS OQS_SIG_STFL_lms_sigs_total(unsigned long long *totaln, const OQS_SIG_STFL_SECRET_KEY *secret_key); +OQS_API OQS_API OQS_STATUS OQS_SIG_STFL_lms_sigs_left(unsigned long long *remain, const OQS_SIG_STFL_SECRET_KEY *secret_key); +OQS_API OQS_API OQS_STATUS OQS_SIG_STFL_lms_sigs_total(unsigned long long *totaln, const OQS_SIG_STFL_SECRET_KEY *secret_key); void OQS_SECRET_KEY_LMS_free(OQS_SIG_STFL_SECRET_KEY *sk); @@ -280,56 +280,56 @@ void OQS_SECRET_KEY_LMS_free(OQS_SIG_STFL_SECRET_KEY *sk); #define OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8_length_signature 3604 OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H5_W8_H5_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H5_W8_H5_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h5_w8_h5_w8_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W4_H5_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W4_H5_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w4_h5_w8_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W8_H5_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W8_H5_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w8_h5_w8_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W2_H10_W2_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W2_H10_W2_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w2_h10_w2_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W4_H10_W4_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W4_H10_W4_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w4_h10_w4_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W8_H10_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H10_W8_H10_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h10_w8_h10_w8_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W8_H5_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W8_H5_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w8_h5_w8_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W8_H10_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W8_H10_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w8_h10_w8_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W8_H15_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H15_W8_H15_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h15_w8_h15_w8_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W8_H5_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W8_H5_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w8_h5_w8_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W8_H10_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W8_H10_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w8_h10_w8_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W8_H15_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W8_H15_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w8_h15_w8_new(void); OQS_API OQS_STATUS OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); -OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W8_H20_W8_new(void); -OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_LMS_SHA256_H20_W8_H20_W8_new(void); +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_lms_sha256_h20_w8_h20_w8_new(void); // ----------------------------------- WRAPPER FUNCTIONS ------------------------------------------------ int oqs_sig_stfl_lms_keypair(uint8_t *pk, OQS_SIG_STFL_SECRET_KEY *sk, const uint32_t oid); diff --git a/tests/KATs/sig_stfl/kats.json b/tests/KATs/sig_stfl/kats.json index 592008ce84..59bda4d7e2 100644 --- a/tests/KATs/sig_stfl/kats.json +++ b/tests/KATs/sig_stfl/kats.json @@ -27,6 +27,22 @@ "XMSSMT-SHAKE_60/3_256" : "09d26df5e911e98e71ef73a1ab6f224964d4a7beacd8071b4c7f7d1930a537bd", "XMSSMT-SHAKE_60/6_256" : "0692a32e318d5c3ac8631120910b783edfed4cb7ed69e3ffa29f83aaa34e27d5", "XMSSMT-SHAKE_60/12_256" : "1a05ff4a4fea850a5fe5c9e976006577335eab0494e1759fe217c2f33f5a84e6", + "LMS_SHA256_H5_W1" : "6b5ffc953ee90b32ee4f1972de5bbb8f055073e831009fc3004e1ead32ecf64e", + "LMS_SHA256_H5_W2" : "68f4412a902595e6debe7da1af714ba3179e2ea21053d8fa25acc1bddad7232c", + "LMS_SHA256_H5_W4" : "01c828a559c5b91b3347c4a1ff5040a50371b7056b4248cba6b8d35080240e37", + "LMS_SHA256_H5_W8" : "f8bc9145732676a2017a3cd065cca68d224cef1671487e3cbd921bd9c772c745", + "LMS_SHA256_H10_W1" : "276a037406ce9f1df6a8ff87f6b892d45bd42af5724a2ebd3fdb1d64b3d94d5f", + "LMS_SHA256_H10_W2" : "c59da910cf06a8de9f0c5fd4b55895ce1996a55983f4c8d9be328c5d83831041", + "LMS_SHA256_H10_W4" : "2ae301108ed8c9eb363e423a483925dcfc089720cd5b9cf8eee62bd1869c8182", + "LMS_SHA256_H10_W8" : "3eac8278b3f9eaea6361ced30149d2d3136c153c6e45d59899af4322e5df7941", + "LMS_SHA256_H15_W1" : "a68af38d6c955fda6c6deabb6925a686ad768ffaa0f6a93d8649e5985dbc6be1", + "LMS_SHA256_H15_W2" : "3ce54ed403203c996c50bf50c69492acb7cadbb41521c2b7d49baed65fe2bda4", + "LMS_SHA256_H15_W4" : "38cce574c163e6a7167ae328dc6bdd44c60d4e9be08408eaa6c239d8625d5a07", + "LMS_SHA256_H15_W8" : "a2e16430224b3caeebd63397e9780be087efcf672421ffc5008f852af2597692", + "LMS_SHA256_H20_W1" : "b31f8b45eee9ec551178cb260cc431256ed7ddd233e69de1587579f0b8ff0128", + "LMS_SHA256_H20_W2" : "0d9ced22271ab0bf90968ec4934a4a44211ef25df11e562bc32767a42cd3a9b2", + "LMS_SHA256_H20_W4" : "7f52315a8fe04caee69874e87bc0f7f4ce38a250f95a0ed39baecc0cb55cad54", + "LMS_SHA256_H20_W8" : "1f5d5a149830ad72a9709659d5968997ffe4a43e034a5c72550032ce6dbb53c2", "LMS_SHA256_H5_W8_H5_W8": "fa6f9a0948626c1e078ad442ea2fccdf456b529413eba441c175cbb681f9bc32", "LMS_SHA256_H10_W4_H5_W8": "2485c56164bbfa4bdc8604195bf397bfe8f54e2ebe925423e4e70fce173c0fff" } \ No newline at end of file diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W1.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W1.rsp new file mode 100644 index 0000000000..206c2dd284 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W1.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H10_W1 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 000000000000000000000001c044f6230d8e90854489e823101a65fd2f0ef7ee9c0d49fcf5a354076f3aee868880df42fe232b55bde5016e05e454850883a80d3570cf9ecd0c960b9701fa0617c2e0b4a730c7e1fe228ac702e0f68c0ea9b3985e0704db86f1bf0305addfd7b7db7617bc50db44b28dec65d4727393a6362cbaac5d368ed18e0f4b06d77088d97fe31a2276fc39885891915bd7a738aa81c360177de403ec91338f2c3d6097c7afbf153370a416161c03a4977ae1eed6ad61eea2d0dcd081d2533499c213cef6585a0210e8f806a064f739e1d3e630ecd4e422fa3967895ddda5621b176e1e4b3f20c11f875e45d7ea0f765875376cece2acd7ade36c52f3511aeb23624fa0b3a4bb554cf8abfe8adf0e5129a821fe71b0420ed90ef0c670e68ee81897a3665aa40bdc6e86614b91e042854b71fb1372db99872bdfd7979e8552a2633e8d123150f06c6ec2316aae6bf64ac2a2db5349b7d08a7b9a97152193747a69081fd3b57cd666cd28555e531bb870483a0144cc13075dafae36993b1aa3fb7ddc6dbf095a7c2142ecfcab40830a293ea6303b5666518692f468bdf82c0e802624621c5cbad8056aebf836506ecbd4992ced3e8c8e5ba2633591f3b0ab3f0fd61ee396a7fea0f0661d8271d56796a48cc88bb555c74c2b500d512622149b13a49550597cf1b17e140cfb3738ec36a386f1d9aa92caf1e75e7c9c819419a69e1711e4fd461dd1e00059e8172f0c5f8550c0a95b1eaf9f2796df7bbd8d0e08ab1a240a6049678f481a0097e3fd05359c78dd6fa3d9d53bba7fa3083f041820561703c5a5f071f3b3d33024657840d72156daa207a8c6308af5bf0b50e476292d95d6786092622c109d9fd388dd8f9f2bdfc31a95bedf6deead4760a6e76b363932246c8437294566da6f372dd61b1a0d957f7393c7b3dc43d26c4b413380d1a3e9fcb70c8c2028932b913fdd0e81b360b76b27662cc1e8119db1d00e35999196918fdc1763aca80c861bf8563cff7f62fd5c4713a5a44e9f6fe9ca3855183e1aaa120d72d27bac94aaf7f2216c9b1287c05e60da13799ebc3f8fd2ed9cd873707d0f093a1a57e169d88dbee305c7e08cbefa8bcf2e643dda0f464b7450e57cab132101e0da4612941c50f809c2a592e6c15f791cfa91d4dee9aacd064a4e1a147a52ad353710f15db8159e283ae8399620b58401373fc093d91303a9bda436a23390023897bf3747c55a103c18a4f40dea1029b2ae1c6404d0387a7c5c7f1202ba8cd49c451d9bcabd23489ab3a5e82cef30712c95d02bb804ab01993c9e765474cfc9cdf9b7b68d6e6228f1481e73ca03138ff76d92d37dcb5ba9047b9ca8cddc7427b1d01f33114a2262df1ce69711920fe7ac428b2a92f0df08f3059be97e404b34d1ad3c04a837d76b3ad7966335568247f386bd5fa9de5cbafe53000ee3559eb6c06a3a3c85fa8ecd68e2ab30cc02db71aa9cfaaeae95dde704b353945198f75874dc746b3c169bf2edd15cb24f7414a070643b882a39720804e8f845dcfcd4254fb717d0748a9c9186eeae81b8066533b1dfed213886fb579e660bb2b9660b6878b02b514bc9ae3026a161b23bd3f1e0ad57bad5a4861e8930c20731e6dba31a6de742820384611cd2ff2e392a37402ff7016ee68d2ea04e00f7eed62a5c1fff05c2e32326b37f19ab7b36b57f43ac4ed784ade45dc2a7b69c5b93fadf362920e23bc000b2700c8b3fa81f43149d2a1300638af7c780813c11bc9eec1cfb3e719a02eec19c0205581d371f2d4892e1725f286ea62fb92bcf002b4ff2cd03c4ce8de4bba8cab2b3d060ec504f51de9858e4ebd87700192d06062fc19b75709215d080e04f2d1bf1330336c70d21d996f5597c971e6a91aaef92fb712908d1dd6338be54fe6b433752e92f4d841844f63bb42fe25eba83978664ceb75229b9406acca437b627b262b4f73d2e6221695f8f8e23cfde9c4933b6d22705536eb66f9a6bb8892c5fd47b014bfd81bdba6bd53e2cc5c8e4af2a275735fb974d675ec1abf6a4b46ccbd7eb9853252055143d054dc22114fd12a74ea3672952f6796dbfee528e744ae8808fb94f44aa289465805bac2446e1e2652bef7a411d12f8f28bece67c3d71723aa4c345e91077230e93eefcd19933b2ad7ce6f2a4e716b22201509a797531856920a3ad3d0b256eef648414b1ce56193994035de4f755927324300b0187571683905acae0ed98a6c9cc5487aeb006a4e8b20077ec6749ed8e8d6c1ba74746f47580d6fd834ff19076a1a53d4f627d83c8eeb54383071eecd277531a1f17b078a57875464d069f7de6ba87ebed03b6133b70807989aa1d887e875a0dd6caa1fb7577ac7db6196040473c5116c19ad0f78add6041d3790b8b124fb87d3290e14ed4437a040b557f6a57bbe35df9ab0b593998ea6002a7d33ea0053bf07ac82842d8bccf0f8f6366e0a496e4470825c00d5f88c4726f4e6bffe39aaa127d868b71ede4fa178501888a985241ead8d21145d0e78200ffab22b38708220a6313b507e3282dd575f070868790efaf886dfb4d18144488fb992d8e8e9983151310ddcac4a6a10af0708a10b9e74f46c972a852d1352538849d53f23887bff6ad1d56cec8ee77097b50184f27efd6ff5643bd8f9a7438bfb00937a13a6a65ea4cf70c2287a80c2de433878a504433fd2244c59d8f65e907a15ffefe7b7ba487e1d39749aa3503dcddf071c6e904d98b070c2c226da31fc17c649dc494263009abdbcd2bfce0c96d2e53ab169cee718c4809b3e1f49d43d60369b79af9c0dac15799576c58163b513db329729fd391a4ee5adc3df2f6cffd927187c2714f2f0ef52796550d71c93982e1406b37221cdde3da3675638f5c9ea2c4fab3ffc03519616a09138be036a33ab7f3b025608b3cbc263d44729a02d3af7f7aa587ad2661067cb88d3aac03f3efb3f3eb7da876ed42a7b8292406a965bc3da2fe2f5d815183e291b0a667e442ff907127e48a6e7aa70ce6b893720eb4fe104935fbda3ce1ddc4f0c2cc8ba6ab0e66d1850ecb32ed50f3767763593e8223304ff768ced4e03816526b6d3958477fe2ff57f77a2a1c80745a3737883196aa7aeb090655626a3d3682c9aab46fa0090cb09c398dc14be9a16a52281df2a875a2e7690923a8d63be691e6c519ae41cc550c8618af002ad5b826badc763762046e4ebcc474b3618b56fe2deed72425252390c20fda469d4ea19ba8746aaf06b10e7dc822c0ef872ec1b85e39c3b2944d1680964c11f5eee844bb6b9d97952e29b946c9c71fa0f7c94dbb6cac5b701d03690b5ffa669089118af04e42e5a12ab0b7199bcdfa41933a7de4de50239ab0f82ba223fea923c2ac4bb37534aeeb0abe8883cb458a8388fb94e0e1c7cae58689d297d8ef2bfb356993f761754ac1ffa5670b69a43e61362a3e71f99d0f1d95ab0789d8a831efa30a388d3b3f191237026a541f556b44d67d131c29a9329634bdf7deef48ddfb1636b9094ddee01261e135c7fc782faccf9489de8ca1b2790af3d8b77ab92a9dd992139a6fc0f369e2031bb9df07ad67bbb7ed9366f214ff9efb115c9510b219afbc7decf1de3c0e471adf5897189745dabd7525c760bc49739f1a45ef64f126de0dde44e95a44801a617191e960b72a6a3d362e84b7f8c0a852fae3191a8be19e4fdef968586b20dc51b78029722d7f44eeac63e50a3e19f9b49e2a47495d708e59091e78f57e4e17cb8cd37971aa83ead384da8fab871aa3a90a506fb7ef2cf316b626bf0e34a4f6718af6df12dc38ea7b382cc5bb5fe15ee5c5fa54a54824e31faaed6ced9364cd7e0692d76979d95b0ca7c1e912c9a6a6e882e2df0e143562b17e33c81a5d7e5c0a44cced6bc961d11fe6d7a7ceae323f8e136842982ee764f9b7622dcc43639bbbd55207165aa6525415af15813260e9b7735fc68ebcc7cd8346cd8fb661aec511e5a17d11892a5c8cf84d3cacc9971edf88f979be7f891aff54de818486d03f51581e10e12bbb8ac43587d0b0e87aa0c1302346ae31aaacb290968a56b88b7e06c99591b5e096f638f540d6627a0ec9c0be8a71426c7581baac231b8cbbbd8b1d4a8e6332782aba68c61c274fd39b2c04fed27ff8c6afffdc285f652fcc3e4f81fe2667f04f0aaa043162ab7fc0fa2e5dace3ee139bd7a2a7c4137b786e8e631d39313ffe4d6359be064b97f87a43ea52b59830a791399b60e567e3ab072ccbc85ee731cb0e3eec8eb588dd38b9128b948f9faafd1afbcd1c22808746306085763bb36cdac3ebf03c78c73522e7f9b048450afcf26aa4e6ba5c0b9d67a4f23a1737206e5a455fccaf939616dffb2a37bc4f0f8b07d50b6f165013fb8b19b7fdbe5fc963bf4ca5eed1cac12dc25f0bdbd7dfd155d92d7a67f5996684558c2391f7491e01777c8b870de45587195883ef84879185646833b305ff883b67700a2bdbad3cecc2c72c29f31afe69ea90d62b07d77985c6b66c98536abee2fb469beca6231a7b18e9e2f15d2b5cb1413ac0cac4306fab163abbc7825882f4469c819eb34e090980a7855289858967d68bce082629d1a284e128bc05d8aa3b20d3bc1cae265a279cdcabd582b3fb52afbd72f57402289946f9abe07b2e4a6e4be45996d7555eaa95c9964254f8a97f0d4f8dec47b451ad63b79b463c6ba27e81775edf8eda9d6109ee75534c7eca0bf0922cfa1764cae631535daa56d9db9af3ff7ca7294b6c8b94c416970bb5465dac9b437810ed393724d8f4b9aee0dfdb76c80634c512182ca3a61041f3a9ebd9b0ed13fe80ec347c60efffdf259f39c87cb87a107ae7b66f847fb30d62ac3fb3c4e364cce8a2d1c1b68da478e3cb18966510e3133f47be63f2247d95acef4959506ed21c4ee3a4dc2a6775feb0c317d6c96c58975901fd22a3cff32618b01d027ec5548ee82e7c6cad1401ec0de200d4ffa816a5c54ac344173a22145883c657d6b10bdcc522e9ddeb13d8c7cec932ef28dff74703f4a74fc75f75290227d11efd2909721b3f70a01db8b5a87c9e0bc63b30b2de13de8c0e25a91b6bd047148060f03783e6626252c8b278217d10df42db3b0fd1f7313270c141fadd1217972f3f78ee16607d3bb726dbe289355e1e277338bc60feedcff08f900d289db8a1e1670cae7a5ad5e4fd30aa367fc74854ba9dfb4084aec45bfdeba68ae85e9bf938b55b2db19d7d8b6f875bb2c74c2613edc3394d0e5bf3e71d01c2ee71d983083867efa32cae1c5cefa3089ea96500fe21f19920c8e182034fd3c009f9e48b6e49f6e691743c4066b478f73853f04485df6f3dfed6f307820c293ea8a7adf48a14e081b228136a74a51d59c14edd09decbe2903c4da0436e54b83626b678e75e91ac2e75e4180d6e1807110ba68576e59f80115926a352e8bc2d69e99b12f79537bf1264408fea3f0b6851d82557228291a39cbbe590f66b530fb022a7a3322b6a507fdb48f128c465ab1f98fee8ea442d957d14e3d060eed76cfa6f0d1cd1de93ec216bd5fcd9889afb0ca02c9ffc52fb92d76675dd30a4d2c2f937b7dad5044731a269b80c73f52db035474b6bb7f2124f50793a85818c0a1778ccae570002c695dc47641791eb89d7aab7370644fa9ec2f69c5349570cb0bfc9af395ec61589313121ae1a111028e0797845902fef6f2c2caf061d56674543b455acbf078378af10083adb7b29f9c347605c5d39287a5c94d6d512be0bb131ce06df64f2a5bf6e072b8d374afcc7a1eddfdb1d4ff98f0e2e015867e623f124a821d38c553ff4b899ea2e99fdba5b88ad921eb3c9a5bf42bd534972dac661eca5deb47c47bfe4af8bcf042d9f111613b11cace3332438cf10ad67b0e8c12faa1e60b460057cb36a719bef0fe9fd6dd672b30ccd61ae5d559e83b62bcae72db42da2b95217a7249fa8bc6878b9fc7f59c2988a27e1706bc84b47600ea42a45c3830752f00e33fa3318b2cdab84d44c9b7156bac88247dfaa5b3b7734aef4e12ffe77fcf399ef3916725ccd1214647339bee28b78c7bdd490ae7e8aa68e50f610ce12687e0c2faf91a2a84492067e17a7878a70d08f1f66c14aa556a2b9898273d4b7fbe5166baa52e9fee4daf24c9bdca63d543da430cb15318b5aadb721153dc6f3756c2f26d22780026e0e340246a5892787d6caf45dc3417d27c093d974edc3de8eaa34ae760081076389a050fd3b78f2e2c8c75250443f526361999f23d1a803c72246142e0203cba42c9fa4791623f7ffdb0fc9ae339ae92bcc66fda3e7d343ac701422dcdf4c89a2f2044d44093d225addaae2c3848a9e55c1643abb64e1222a33edfe62d44a3c146b48ff57c54408be6ccf605c5f4d97a1a4932d5bbdcebed5c6f8edcc35415c3be2cbd09166c03b5796417938ec7102943a9174ef3c377db5eba123b79830bf9aa9d6ba7094dd691400c1849fd987dfb94da5bc76537bd38504f7625d53f7adc60517e0b6420ab8d407293c1aaacafb9a73ce02436648c1343a24210a26fed2f6c73afada4d38da06231bbb8b7ccc1a9c045bba93f46abca2b691a0fbba1223274a9ce0e3221e4c606934ecbcfd5b1e6ff4bdb6c1fe1cdbc1b1a9fd3a4588a685ca786ab503767ba620d878f84d7b5338f0d9b6b07043453f53505e9d7e26f85ad8001aabdf661e92c06a8fac95590527aaffaa9502e689dceceee7322e63bbdd6dedf6c022c4d2fbe4cb68cab932a213a7dbb78e1c3d2dd8b147244faf11333f857311d3fc060816bd08b9bced8fd5c44ca9b4ec37355762caae31c0d3ed6b54ea06b46f6bec414e8ce70cf5e5ee2ba4d6e61aa7bf61d8fdc790d3f7e8d83df50000c9a3b627b5a79a974bc49ca887d5c81c4908d8a7b483f1cc8984bedcc346096ad8114722d23fedd319dcc95d3cda9f8a4af2d888751bbbd7138ab8d2d7dbc3a1505ac7675a7abd99c46f1d33a1b5e743be3cf002e7116eccd515cce11a46e198fd532bc0efb696fe871371c422486f5b0469a82869333a57df8a917b15f91960411743166c93ccd551bc48a779812a66550f4c4e395747ae09d35b28c466e5e61dc9f30ac2124a745bd3607b74021064bca34fe7fc99b5993ca0c35f8c7c751d35de70c25b2ca1e8e72e91841b9d9d436e115791ceb4a8e5ebf8bc232dfd3703975f0e5f50de5bc684232fff7a3a9da09cdb17c719e004d3354d90356bbe97624df21295cb372ad491b92d5b3487ccc27d4b65f0452a944d1f1e46a95c2d2195162f7fc76de43524104b6493dce02a8158a07504b37edab79c6cdfd4c849ff31d1b62e62516e7b306a8de7edf39ca6065cedced468e04a99585acc782bfa5e82372eaf284e5af5e9e5711d1188afeb3f5f4daaaeda0f018a6f69bb0eb5b9e759b846884889122a3cb2619788a7abcaa15a9a6296924cdb9e83df9761c0fbdc993a5d93a01f46d165d6bc9ba409ba6f16e4948849e9f03b3e14404df153f3fe4f10bc67bfd188897f0adef44428508733f11f49f10497e78f6070917d5b93c425ea628ac5c9fcce0f782132d74cb0347d90b3aabe395be584f497023984fccebc79d6634390080042567c4828ec7176ba8da4e05aa15d0e3c68f07caf5e373b8187c33de7387adb464d5e90378aaa5223d1360961f315c53c8cf6313c9fd48645f21c3fa7c3c1a685b93de4453bc09fc3b0ebdf6d52cc521818f1ba0c2e88fcb07a1a3f4e8cd33b9f0eb6fa811100169c6d4cbfb068bb22c618edb5c3d2cae01810151ebc960254284477ee68cf13c2e96f7aa5fb2666019d8abba36cfe9687658c378003e4e0d43d3771a850274d63d05686277ba10fe9fc134530f671344f77d5b9195fabaf5559399896222aecfe8d8bc4b1013429716ac93e676cb4a6326a0a7be15e917627ef9bfdef640579adc8e7aadd16f5c3352806ba9d380c65f927e1bab8fa0c1077490875890bf814256147ad951c5fe2d07f895946aae7ee5a24374255455d5aabf6104be3e3f4a4b36dc466a68486f1ae586e4db46da74dd3e195207c0f1fe34066871e9d7b28513d6b31f4f17a4a8a7a2e81b93c9c760c2a93ef24fc1d0321b64dd65845d1acf2d4dcc2fc3917935c59334d0e3268af83ccd350162d8e8930f04dd31c26bf2ba9d17168ba0f77451771bdcce1ab6205f2a8cf4df2f583a2ff43a049baf2beddd7d82e3239f8cbcfd50538656ffac80253e419a25b93bc931de0a24c9a37444a56a62d00ceb02664ab597719082f78ad463bf6d999f8c2e3cd0340dd1a5fa44c78196af816230ba3559c1c3bedae23a913b3d5b65a77e2a8bc6b39ef371cb82500e0124cc8179d26f8d9b21d82b1b81b323f42ff02584d16b020ff0319cd886a2b2492b4ed1c27b3f5b51ff759650bbb17643a18cdcd9f56b5e3e40c6762e20b147e55d56ee9773743db41a296fcc40b326d3e17062ebcc9720171cd8872001a9e5ee6135d1b9cd16e538ff8ba2a2d8ec3f931cd971b4757f4c92f840b0d985fac936ae6ab492b09ceb63ac80b13d5d9c5fc4508dc0cedb5bca1e2398dbb90c371696d93ec80a8cf2b6b9e5ee1a73b031da2709b4a6987af3bdf44fe2800502d10622884c562540d20c2c823eb92677d3accda6408b9ac3167adf889472c93405ffc37e2acfd8e2495725eef98b1b2c066af0e11a287e0313e63f79262e22921265614dac795912ac60ce6b626d5c2ad79420f136a9db58d2536d3525ebe30a00a88e81a787700ed2a077f6b4c1b6019115283c1d8a3a27dd4349fe0e77cb4b864c680dcc96410e00f5c1a09e6aace2ed201a8a0140c3156bd9d3ef2b08312cd22f04c2c7d08d7a298b7819d5f3a30877ad88b35aa5efd00cd7b5f01f0a5b491a6a1c7032fd19ce2e8a6e04693bd7d9481ccd22b57a0b8c749d975ecfc07e9c5205ecf4fa993ba866f5ae6eb45ad4518e3c94644fa5911141acc37ac2bf123ca70e627e604656c3615d38971e571019793e535a9ddc756dace6e1ba5a5d0135b7347d85d29adf6cbf17c6177346e4904353d5c8b44b2a0dedf4a039a9d945370697deeae5a850db0e8be9a003ad36ed3fb675ef5f6e386da850d3223549b1b6305159bcef54b3ddc39ada9d74d97ba4e7cd78d326c39eb9a9d5caaec9ac7ab7cd30181a9410a98b15a69c168c78b9b03d723f57b8be73b3698f7fceb5ccd92cb495a547ff2706805d97819a6f43d3423917f877dae750ebde6f81fe200b59c6dbc8565ccc5c96c55125e851783f3b60502df961e971fba37fbc592c05222bc1185763a5864479471ee97f05b1a953af6faca1f7669cda1f1bd7a4ca35d286cf1c699e4f74177f1a9feb71708c0404fcab769fe49fc0ec8ec2a8e310b69913f07ee69ece421379e0acd2381c7bdf9d877d847419181a9f27500b1750ee6f714beec530ce962829bdb9f1d1d6ff5ed7e28533abc4d3f31ca467627e34a89bfad4a50ce5b7c7409432c31319d98a0f986d4992a7709a949349b2caca79eb0fbb6c481f6e4b2cbf4eb89581694814ec968514915e92be777900564f99efb85d872bcf740cdd8f90b4c983f8677e43fd30f622ca502680f9f85e707c74f94e18e3fd9fa935f662004dd4af3d7e8cadc5bdd119806e2f630fea565dabdd51907035c8c8c4e5d94e37fe5efdab61ce8e459f5dea5a8582e3104741db18933907ca05c3fc93688fd75f60b4464a46a44356e78e8dcc8704eebc2c8c12b89ae7f3d64a9028cfb9b6284833695f565f8d6db30a2e597683c17e0529f653d6d90f290489cdd84b1b5f01a130c85b6ccdeb3ef3ff7ef8d8a8c2627aabab2b43e6cc957eb8165d6debcccb225f4d8d49ded27d1b5f9afbacc317fc289b951c22f390b91746c06d11e4c133318e24a62067873ca1147ac0f7b8b572ff4287fabd48d587f976d2b5eae6eef4d2acb924281891fc95304d5f99b3d0adfb3badf173b7ed56b3dc85fef93f917dfa4a45ce34ea61661e772e480c5bab1c09a07e3d4f5713f47f4a97f476a8188413479e6c0320db6b9a7ea2a05e130bb79eaf350b60d1d8936b29835d5fa873f70ed264dbfdc8172706ce713d7b52815bc458ca41f114b0897ee65dd59351db4fc4a069b344a1b95c53df6763f0e498958cbd3499c26fd8856cdfce17e8f8ced0f50a9afd62bbc2b1955bdc2c25b0a806f69e237cc2609182ce2d0916fe200027e038cb6d8e704b34ae7eb5b6408b42bed2f0ff03e3fd0e42b510cf1b0f9ff73c57120edf67f8742d75f5d7b8576049ce9ea5bb2cd8f3ad06e57b3155ef85f7539102c94bcc6fdd0a9faca161315c77906c5dcd6e0278498ceb2807fee87a6cfd387dea4605ff778449a000dfb7d79cfc194bb70e3e9f0a9c63faceeceebd47faff72f42493a18ede63f2cd06fd217d5772479d362055e27837157c047c5ef0a77bf5884ea78c9c618b571ac7dc2c24a81eab1a5d0c027ad5e1f9944d8200160c1a37ea44524fee0dadeca457cd259ac8766732acb7608ded63195a125221fb3d90b16f19cfef20953632dee7af848c75276e95ea9d34449e17465c91f2dc289c724d5179b7d2f83008d994e911a5d739c989dbf63d05dcefbb5a851045ae969787c167c8098bf14e473cd13848ce7ca4e16a440e0ec3dfae770d15201a41cf90b87d0e87ae78c0176b274a3b2c3fd9cb12e7eb4765dda7ed7eea3639b0cd11c862d7e2c65c1c6b0d1606595e9359bd6f94e20b12cdcb039cca934ee01f7f957c343cec9547592b180f6720cf2454b8fc526522c8c3071445d6ca95b47289862021855d9a2b38dd9d39a8fd633db4761a17969f941db403a7c0e260f0c8de4a1e45751aff151e33612dbefaad6809217023844e12f6a8b90be585c948c12a571b30ff0a69aa5bdb4c3c9b5018b77c57980c07dfbcf7667ebd7030406d3110d5406718b8e95d5d035a86dcf2c78fe575ac316d7c44407aa6c68087008433eada0e7bbf670b718830db42f668d203519d294ceb910edd4abeadc3af44cee24e0cbe6c436f3a523e60d0627129e9ea4ce01c5c45e0377c1655e8ed4b8f79ae0b8bef8a914f6326a0477d9f17e59ea6096d6a5ba75d64a94e68c8ce11e8f28eb80d07efac85c64a6c3c493516c7d929859307b33dda16c271cb21f4400f3156337ba02143f38f677b89b7907342fc16cc14bcf00ac312e0a0f9af6e0be926f345f556693d730e667f7f25098277efa691ef155fd65b8289c1e92d67dadb608902cbd4b567198cc776168a2c7543e58041a3f09989994a7aff610f9b35fe7aae6a8d43b676778dd7a8dc97475ace615e09e101de1a8f5f95ba082f296715aebb3d4ccd5f8d000ff8e3dd452a79f4b9ba75b7ec71545bad1c2ac91898d4564db141e42290a37390e0f4058274ffaed8ecba88a976761d716096babf3909bd37b873f1cd98cfbc3fed8978928c69211365519d30dc68598addf3f5ea2d0de53c4650d9b183834bd89b2fd55e1ae9ec2123e0fb66b8abb36b6ba62da3cc205f24edd14d68d355133de0aa26dae7c5d7b8b60bdbe4b6daa43aeeeeef410234d6b179557a39186022394615629430f783c8fc1efcfb23df92267cb81bdd20bce73f2e825d31c52d99d27b77a4cfe821d5f9b4d77c403e0640b0d53e04bba350228aac6a36fc7ec513cae4b832fb7de3b1938fc9aa35efe1df21ac41905fa9141cbe5719c3c3b73bc5b3d1a49d4c7e8e8f31f653634d8494b18c439e1f65751ecef9d95911370ec9c6ee74f632990aeb6ae3d04a429308177b6a7703b471a5335e2d356534c92768cf92e168e07d971a7abf08ab722622215982c97eccdf381f95c490f3596fd03c8465cdba4f9512767855dcc5a082f947e8f308f584d0971469fdf742dbdde2dbe79e97420f9f61076fc0dab44902f324f644ab22dac6374cc20f01e787da093ac0025e737fb2fd795cdd4f1da73018da1b992fab997189ea359c2cefa0465963c6505d0830ccc13c010295a61f69875e13dbf596a5e4320a648f07a9ef5d29c92babdf2757ebac1113dd761b2f5fa1fae5365aaea3ca3d0c3ae1de09f78ba8ece95e200000006a3761dc5d71c1cd0c210c04f7d6a2e64411150e168d7a5e83d532feee580087a78cd5fc4e68e3c9a2b34f4f5bf46a6773102f940d108e236c1830219c1ef88b8fd4846cc3f5f980b5aec0fc2a29d4408ad375735ce8803c9fad7b38c9e98dfe1dfeea1a3e57316f52addc5b501d133bcd1ca2e6a855f1705b6e946b2ee206446e1d400c943f425fc82ebaa069233b625195ab5bfbf9692d9607200c7442e33afc6cba48d00dfae2198d3c8a9d13f8b87774e41640ab9d7c2c66b778eb122e9b5298c717b3b4c58a2748ed811aa75154724454d8672a7cf49c0f9521993031e7cdb863bae7bfdd3d4d91ce8f61ffed3f8951b810594152fee76a4dd1c998f52b071f56a1e40a0b2963fb7ecf2a71952249fd9dd8ff29029d30a381dc6e1818224b2234904a8e50aa4e9df193b12c9d8a6f32b6c43c233889597e57abab57dcfaf + +pk = 00000001000000060000000116dc020cfd4abfd4d0423565aba4d66f585c5f38861af8c7c2626cc33b043c12db72c2210f1578c00a1e6d087eb37c8e + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W2.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W2.rsp new file mode 100644 index 0000000000..4a8296a3b8 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W2.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H10_W2 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 000000000000000000000002fbe373f21f0131199ae1967db9e8c8e5e91b55b41c1a30b1074b4aae40788dcb1fe11bc5b99ce8c08bb612b75649e5e7966836669e5b4fafad1766c736e99d66c47d7cdfdb318def37933fecbdd392174e6bf3d476122609c175052b0b03e8ea63aa156096b3b23472ba6f1252285802ad7272a4174c69b255cc64583b543e13668beb8581ca27a10023757560b6f5273a56d5c2dd4adf9ede64a7eab5cdc189a64d91bd7ca4e2d3ea559981ad535e2425911b9d8ab94cb81416326d851aa8d81ddae453fc4cb231a58cf405c0ddeb06f5c67e611a411add275d9567d3f625cfa26384586c435609da22f62ee8f14af17ef86c10f72d2e15fc00d6563e113ff96347e550bda84502167c62a9520d7c7bceb772866f422e8410d62418f7508e2192f7cf28d6192e93bae26533bec0139ebf6869464ed0f62a2b5d10bcbfc78923747fac8f0102dce0f60252b1160406849180a70befa6f56d11daf1ea4a02d4f85e3e653c7eb3b6db7a705d499e51ed477c305d92ccec35198f2bec53133c147ecd694689a5b636f935c0fa08407298328207df0f38a3ebf7dde9985cb71a1129442e03eb414881d63be98361c244a4cc92cad855521da2345eb24b52963f55aa7c7fb13b11b06d6acf8c2108a9090e35e75b10b177351f196002198c7b3e7126df03d1e625aba220bcef06c885a041ef5f33340d2104509595140b64b8f0222474141d0371995fd6461764e87f3d94f6e1a7bf06e350cfa5982de3bcb4c2eee90e884be8c78bf1ecd60d466fb01a33431536dc9106e989f9af03517c78e89f855727c8590567e91193ec3e646f3f7bc99dd55cb889c4751e9209198b55f27e82a14d55bb62324bb1e65a4ec65244c90b755d729bc13cd81f15aace49b1de09ad58f052258db141a8051990edf33c38cab95978dea6b507191251f09f22c9c53300883928c5ad361039751088eadea38ba65b9abff4ca94ec4f5cf5e64189bf9630c7019a48701288a9d01ad1cadba3a6df888e3bbd91d28685f02aac6fe1ce4fd79ddc577dd08b3b3909877694f1482bf0e1011a5953a035f6c78d94d5f18260108205badeb37e6f6bed44f3a7c8fb72e7258c9c23c4ed8463959463f60e2cb71dbb51d0c78be4f817fbc6f1c0287af42b9c889081da7c4ad849dd1ef36b41561322585aa7c12b0affecdb282298b2e3f1dba120a450919631ec0542e1d4923351818be85ddb0d9af8a86b40750ddd65308bed9fd789c6bb127f5e0dd7e5b7954be351411c16985e651e9117bf620e57761ee1e08bd79ff50ecb09a7b9b8e27802c991930472712a6475367bbf60de34e586ad178093245f47dfd068600267945783c61d3afcb030ba3a10d349daec3bd62832260561b621e9638f9123948880bc448e4503822afb4765aa8829a4a41501abe11bacb790793e2baf52306be0fda5f2ad39ccf950ea5101c99fd3f360f6c9310ddf112109106c33ec95a56bf18e6675e365eb50913b08e5e0ed6a8a4eb51e62f2999b50c4e7f933d325bea4e27c629c91fc41cdd0831a9d1173ad4dfeda232668acd172595c9a22164db2e21b15119b45742615cfab51ae7ae500d0617f8a47e3cd38e7e216a3307ad7f6bd675b44db9fff1c6dc7334558a122708045d03dd082fcac0ff210181435bd77d5b3da9a95eec42721c264823bbf73cb747c00101e654f7308e00d35ec90af819cd83e1695dca689625daf70a46b0f1a6849b75020216f5cdfd7638eca97e798a11efcae371b79779d96b68b3bee2da785b1b7be96202428de97877e08b38b634453aedf262d063d057e2a088bf52da274ea8a85085492724e99bb939cb2f2ae8e32aeb6e457f5e25a0f32844518d1333497f015a95e77066748731b92ea75855eb4a091279f775292045e6759259b31411d301ea0b3aeb797e9057bf66ea26ecf3f2c5fdfba8e59bb571eb27870251c830dbbde7992c5900a638034c4fddc2f32c10d680043ae528046f0f9418b19a423ec2b1ef1c9cf2f8823897a25582e4874244560797ab6883b47f31df1929b37938d81d71934fb2a3642587428dc3b050aac515b5c0d5b51e671f4ba3ab4f1f4e50cb854e0a8df162672c61d009a1ce84536eaf81644f790f582072bdc68902c1e100bcd21a4d349b24d860b9ac73b0ffd83af5c371a2d7c164912a9a7e397ca69704cbf831b07d702520628869f89549e641331ca8137f5ba478f08f3323807313fe5ae54898a2dd0f9c8a76fdb9920e5a9077bb9b4a0825889244c59e9cfd81cb1c219ef6649cfb0ca0ae7548f11e109ad2ef4f1083f23c6fa57fdbfdf4fa6544f7422eae4c8d0c3b6dc9d3566eff5568698fb4f65155a17b6ee202c4478dccfc3563ad3736856f750860c38ef414eb57bf007423f67d47f4a2b72372089e1c906b0cb3f495ce37180049a7b1839cfbb4e1c943e54cc026829322fda4a13d7cacc2466e1b3a74c6095fac5c37393616621e8885182c992ebc040cdb2d3cd17dff9d7f761a793c8a7272adb4a6f3b6a945a6476590f3f0c5291b7d367e896824d51e0c9a8cac943ab86a4dad31b13299e5c05375b4a69e1cd1a5c1f0db8221cc1e64a7f2d940a1c3ab2884b121ed8a02f379cafb47ecd0d07df41df903486f88b1564be398a3694817e6d00b6a9d704259bcf368c36b612ff131b136f620af09bf9757cddc741d04a48fecf8944f848f8f84d16f8475d726538e600b9666904fe8154e641fc79377455dfeeec84297e5220a0c8bae196e1b4f7afa7c513dac1c27d9e55d5cd942737685134ad28156e295c89e8377fc2eefb1b6f78002e9207fe4e6b490e03621e15cd8db3379d78bee769fa505f0939ae07e24e0a29612acc2f2b5fc9c7797b111096b1120ebf2e9e44bec5f7fd9bfb20e8d39aa922d0c781c2c79ecdb3cd97c5476d7d22648c718b088e24ad01759dbd5e38d81cbf5007649807e737509b8f89da5f9ad3471d136b50685504e1a2b8b9167d91020a4c8648dbfe1af14074e9ef4ccb66e34304d41f35b1fc9672dc4430fbaa1c654643bd7fc5012df2ac7818dbb0b739986ea1a8360e710a69a2b3acaf683c62320b1c5184a6ed97af06413244bc73a0dcaa3a023bf8ef4048083df122d4f8616ffb648116fb959f044277c9ff7ccc634d1d64955fc9dea925e2c87a1c5244b47e06f3a7350b7269f37adc5b4b6d13fc8bcde6c0b1a895077780074a66563ac9871976167c3b8cb588a2c3646d22605d74b429b39ed28f90c358e37d05ebc8ea55012e14e3140ef33037169baa700df3a26b81b65276058c0c7da75d555ae9930edae33610dc005e12b5ca33b4fc0bdd827b6732ef531c5fd12974a0d6346a05fce10e5bfd39501ab27752a7f1d93e8c1ad30df412a654096d5ddf91ca7cde9fdb93a4c594eebd12438c0a9caba13a7f054bab27d0d3710bffb80fc9d27da1c80cc1adc1f1f74d39f1b87c55b4b8401fee6f03be85cadaa9f0599db12371abbec87f401c4247199b2448165fc309e8f03530cfa94a929f61cd90caa6a715f75e9f8f8eeb3c889f4368bc2d04bea1babe2d6681c85a7c3767e11da601e346a63363694aa5c9bbae69b33246d383d17a964bc3cd92a9e866158d8ece3359c119ad05a6bae1b76797a20381683bfa209acd00c8e9395eda6c309368d7e11e8b1bcb8197b0e5ab033dc76044a22a96a15b1b5d329d692b67a6365aeb6f41c0628a436f5aacdf400aad71f1ba89aee43c442d17c172bf7fae4f26d755152fad7e4b9a3c76ed365d6e6c3852584cdf7ffd3784d5473f75e126d5678dff50f0b3add401019d00c3d843bb7dbff67c6a80ef95a257dc46dd80a900b731b768c88e1550a4705a07a9acad0dee22ea92ef4fbccad11d805ce0b74d42f009e0e1db5808f230488d7ca36f9f41648a69ec6e9f82bff6fccf1a029c1b4133c8eede4cea8faec69ec3368acfeac3f503b0b8b39d8cfb4ba0cb558a9dfcb26bfa88071585f06d51c45f5dc69a898a422cfc93a28bfbb351c8bfd820d2af034d6b8873701396fe37d80691fbef22c81d2b59e2528900401fd52c92a01168bbfb0f38accf304432fdee1059aa76071635abbe552a297915a6b0e32617f945fc2a17c00312e771ba75b92471309d0868ee4be35feb6122cf644e3625e0f2b45622e096d23303c50d26dbc75134658bbd2cbcec849a969a6e32da2198dd6bbebd859dbd9559b5263b68a6236acaf67c1a24ffcf0396f7d6cb0a67f7d147f6636b111ffeacc86a5200c8fee40d03f2ab4cffb3ab8d0347621b1c812afba8b50099c06d3f39222708218c4481b1b03dc2afd0f528aabc5bd917d2da2c6f9be60b84c07e86c84cc2cb54041254013f60523948aa48ff6936d19f6658b6ebb043df00a3f67e1f5769145d5b2c9fbfcfad4718f2555dae7345ec3460a2d006410619c0ababf3af5fd24ae0c6f0a6afba83b467ebcad8f4bf975d12cd5fd3c4aa81eafdf65b7cbeb0a40c23e2a9646b459369681b9390436096b0363d96bb941669e247d541e6bfd082614bb880c922e56afb2e061b5836852530ed2d56fabfe3cd88d035561574215999a1a309dd8696a63452f44c73c17675316137ca4eb59638f83c5e751642164e7b3e8d6cb6b55e2da2bb413d16c5bb46ba7bb887bd42ef2c7e7172d744f96ee8a6e42caf7e1a608aa353ad9bf541820c1bb37895ff2b7a3bf60b261c28c36ce1f08a979b51c2ebabd3870c1ecc05256344c21f72367f0d10eacdd169d074dc48418c7e996ec9bee750dbed649202a2c6f30cdec8eab58c4b42aca7cf52e4e3c49674f8e64512dc429156830438794a3f3d787926d1c1e1c321becc09ef7958b2af3a3be4dfcdfb1fbf725e7d3712a875e2fd665a2077a60c2dfc818d9dd11a31d4f237c21d65f07f16c894401df1cac95f5f8086156e39bf7cb2e9a5bb17c775d6b76dcff9ecfb81f511041ac6bdc97719842333ee30c11484b4045f0111d56f40c913686c812bd7700896d77996ee2caea8b5429d8b4bb469b516ea65aea4675e4a8a15017a56da3242e11322fe9ed0112fd521af63aeed89769c51b2db665776a75e8e6049c548fa59c83b59df8fbb3e1042b56debe1639d66750fc2ccb8ab379fea3ec1730ac865d8f93df792f2f6eeb1ab52660942457a83077cf1cde57150806b12fcdb2491afd1f9350579cb8c094dff941b0b72867b4b7abe3e522930460cb4459401bd9183d504b19cc23b8d0b25ba8253568a8991cdfd0502c964c8ca9b76da74e2fc343afd1c1d2ac0ebd9e5f582b527de90b2ef53435a4ab5106f6fc724e3eaa7c24cc2de651e784221e0a698f22a1cb64362c3ced006a7031ec875ea4ecde9e901d6f094db57e53b617876ef3f5eca499dd6a43cd0da463a1c74d89e071d9ed265fcf3cd691f4de004d82ccfa54889c9885d1de8a5f0cd1adaac04cfd586963760c36e59882b5619707a31220c7ef13ba47fb5c4efd887e6aa417f4bbabe089a385f1115e1189976854b53e4d6a45db155689ef525287b5f853bb71d065243e696441564980f94b2d33d8976993904e9f5ab06d6807def08e6a37a6c554aca37698225d8eb0345899e1a6d06ae26c6e50c791338097081eb58ee2b019f295a482272f24047d429fee6e8b783498db27684d5d591a66a63f3ca4f9649b73abd1bc4ec55b928ede769e54f08aa8160a1ad68b41a12ab7d7585088c61db423d41e1693edefa536606722aece9f8552e7ec0ed4dcd2b322794d808acf0911490ba37db7dbe9a1bb6c0a93db328d71457acc4ea6585a1323b613265b50b13a5ed68376cea8cfbdd4d44ceba37edf4941d3e8dec0d1acb6b93ff3fb965710c36b8d7417bf0cc32519c1f0dae8320914faccbadf2f572dba4027e3746a685c8ddffd7f3667f7495223378f0c73aca0db3999f51ab4e46f8e3c27b033de2475d73e758f1409ac8be14a788f552bf3116ecd76948e8cecd03ed9f057064387939f471c03ad1769b63d300ca960c7130a279c92d1a1aac12d9d021f045fdbcc91bd81b1dd970311d9427121b8f2bdfae35bc08b31cae8f95e92c000000069001b4ba886086ca8ae0e5b1d7b99491d7a5f93012a9a8fe4b8b38f49bd6ef107a0679dffea4a8993d4eb8dbc65ddf29f7df08ef81aa69c396230d5372a659391db0a224dffcc1a3b11b8cd29a29542687ed6f23741cde1d38d4620024ed4c6d3ba55af8762dcd8b31774c61a2eb5ddf60e0d06cb3557d13b44b675409306e639b41850b005ad91ace703d12e2532881289e340274ec561b21efce4b68e8f5bcc3b6a261cce940316dce317f0facb914822afb9050378c9f9f35f95991e1266f9d95d9680464bd717ed6dd0b54a06e39a57813ff9dde406d418f2cc925a7c2f1ad134818ed84d0475bbf35d761fc3ed4905a08779d52002835bc5702b54df36957a49173b48261407ee35c3c8eadb59a407b38d9c83c0dc2e959c89d380998486fa5a2cf960ea54f743ef0e3c1851b0297e1bb2e0292ee3b47956d598fe202cf + +pk = 000000010000000600000002f669d58a91971ac07f6a5944eb3559d47589156c855b69b744ce85da0ff511a6a353f52748de5549c1c7c6cd4236564d + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W4.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W4.rsp new file mode 100644 index 0000000000..ed69d34822 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W4.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H10_W4 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 000000000000000100000003584a33ceb2d50a9af04409357774dbaf8b8ea517370e62c4dc06882c1407baca174157ebbde27d8e255d5c522c78617f3cfa03b811e32593ca965f771f8d88fb3059a272c3b9af8e445b37650f3616b9a06d2a79e74e847dceddcb6f854fbae8e6790d241e5e496a66244ae738bca8482630b5369e2c45e27c7ed919fa298c1d5ca5efdde0a12b258a584c9f44799b5c40f3889b1e8f3c274a355e24c088bcdb5288a47bf40a4677062662f4feef135493ea4498640c8efca349dbedbf5525af5425a8aabbfb671de5f71072eb07867e15c383a06f39ca2a09ae0d53c4db18370011d4ab6842a35c3bab93e642bee89310ac457e68869f4289f9e93ba553e39892b2969578ca5a02ae8a0272f1b2d6c8a022dac6a397d84bd2ea56136ea45aaccc1122aca34bd4ba6a7a06b2cfede81ce193ff878368f9f2181b8116185558cee1cac048f61109ae5c7b3973241919d9974f8b44dde66f1a8b2830abebf3ba1a115f4563453fe20f7ac023f6a02544d24b38e661a25a68ccb44c287f28d3fb0769048eee6d8f41046423d77e56344f7d5771f8ebacda4a4b5069f0c4746a74e77aa8b5615257b2dbac9863937e6d9c905217341a825c0460dce7a13845db6449d1e1f86d42731df8eb6f4381d71dff4defc11fa5d6bc9a0309a47e298dcf55e559c750f3c5d0fc1a1fedc8c8c0248a7babf6390fbcf70ad7b51259b336a2a39e1306968abb7f39a94a36374910ffa96a436a225436f7753eb7a28198750c3b5deffa1092eeec7857244b4a4d13d1eec3adf0efcce3ea75507f376a6c7effcd9e904ef2bd7b3c8c092066d46955c7ca38ed79ca8a7ffb1617d1619026c8fcb3cdc23c7403cc3f90e3c3d88123b20d40e8763c0aeccaadf79c41a69667cdbdfb73b33642f1d1e3b021cf2400e6252526d3fe62edc9d022e88ef111b6b5b668d2b20e23baccd9746668fb63f3916630506d0b696d850dcc60eec42504398f4d25e2eb6f36a417bd71c20c780f1a5075f86e953302ef0b7a6a9b909857d0ee6fd4c1ade224cf667067d9df328433b19e136bed536e364f82ac05705439967560c8606cd1c26b7146b82e825a233dca703ce03ab7df5c5345b5285be16d542a47a1fb4af74e786cbfd01c0456b8f86fd0e685137617224ff627b5f3dfbb75c9258484d9347ad6282e170c2657f5721e24d5643a4705d6f9aa335294278421da783d44ac38cfc7676740a399f9002ecac9a78b41c70c3188298dca26452b72a8d582d167c3c965d5f5c8c8f57022f417b0941f7828721951978d568a3d2ee0b7a843e5c697b0c7fc0975f0f09fd18856a16fc63db04e0f3ce3a357e4d3208546460814c270629d7810e452454927f29666a919fc8fb104f3c9c1fd38c19c6574d4dddb5c18683a8973cd061faf5f5c18b66734bf8c08766612897d0d9025e380c6317d88791d0861484e51f205c14e0bd83d2d61c394df3645eb0d66c80ded707429fe5e1fa77f3c3389ac59b353ca657e6aa88dcf6498479e76bbba01e75e9d992e6d3181eccd53e122c0c3ed428d809eef91934ee657364151bf711f0c922b6490fa2a9ea9ef02a9fad3a655cd305a2ccff01f60b9ca0b3e8381cd83960c08c066a30a9f46585e7ba143da7700216cb5234406301beb66a0cecd7d8122429992f8eab74cebaa1e7c8ce4d54587056bdad8636c46326e484c63b5aef8b6560e289acc20b953e8bac254da2f22751d83845be6132c6595cbf91b0d2ff7402fd789c92249af031afc1076bc99b9e9cd6e42a1a2dcf8baa42a0c34dc343508e70bb0760e5f9d8ec6390995bbca810dff3a0474c59cf9fafd9d09bf190bbafe003c7576960a6dcfa0226f874a084b4a50d6a680f88f1f3f352c71eb26df521e5ac9c2c6cc410c51ecbfcd090d7c09541810c80cafa5710c849ed324ee734a8ec0610a1a0ccda429f86b28ca0d0cfdc7d29ec03ea1b97021dbb00a7837d5ec8f6e6ae198ae31c9b4365aec42e83e92e879fb641915ca129324176444171873a75b3df1322cc74796b5e6cac0f950d92c322a8a3c6c0a824f8f92ae30aa110c8a415687ce6dae5135b4121b67fe4e5bff65fda4e0cde3372a0937488d22211c92192eebb9c0b38770356fc65533a86efb75a759fcb02c62aff2f61d3af079ce09d6b01ec9d6fd3fa6f5e2f60273f4b9c3de7bed546311557c197dd2c5398853a5b768db5d45b64d2860137c1c1e9bf3bbaf8f44cda1ba1c88798bf91c962195a11d1d43b937801243ad3483d951ce3c250de463aa136273c9fb9404ea92a204ad15a161852182d271e6dccce0c1385eb8a192d063b0a018cfa36d8357d89f1257aef5be8be3f26051dcd238e4977324204029f2d70a4dd2a9e9cdef1831c7163276bcfff2f2530f29dff5dac9a7026f3ebf9ee0449465a61db572b18434dcbd30fb0843ed81560473f8529191b25abb086d5ee06022b10a64b3a1ff18aeeccf277c4b33c9ecf4097bd5097e6bd0a30ad4d52cf5db089d15f4627a44e0689781a6c6a8ce08d744123f6364b1e7428aea701b20985f2ef76cdb3023297c894c7f14892a3e891f396a3edc2507892034a142556e78deba31ee286f0e2752eea28a0322789fecdeec35306d87105ca2c19f977597bdce1de1f8cc1f00c45ab2ecc7dd6f2d8e8e7f625be39a2348e77688819ed541d2c12ed74688d201fa307d958ebc4b8ce08a6b0e9a3116b89a038807e587bceb9cc98cb91d69f884c67e88e30c7c8d72b208dca96f6af60a73c4444d5e7f5b472fd2ca3b36cfa2b4bcb767acea4d8085b080e57f76ccc0dce2c2943b6c806ce20c88300bed34a383e5bbcdfad496910b9198bd43364da92d1fec89b90b53ba54ac634d5ac1f7faf0385358b6b0b5f5d06e31df6d3b17eb9181cfa131897dacbde42ae3c66010b978ea391944db2b52e52e47ff7312b1600e569b46859bfb6af8c4402ccaa3632eb293ced20d61552c75f0068b5a0a7d71f276367f0061f01e7fe71985ecd70fea79d406217f42260791f554b1a1b943e5312ee65251ac228d78c90f517949f6460dd3664f09b092f483d6ef2c00000006ecf1ce60192137cb466675f2310292d462477d811c672cb1890ffff4979ded0aa791c87c602307be68e7e3ed69e59b7c22458d9d49f353679f1f89cba91cd886900b1eb3666e5f0e78dec37a110c5cf09c1571f66e5862d48f6f4dc01812fb600ab2b3ddb1c5585cb2127e4a5e5faf00636beeeafb3b18f2481de5a4dbb9182e93a5cad39c43bab87f66eefd1428d0a426e0ee8c41fab4baf40bb982b9b5f1ce9eb65ad914744b45a4f00c11dc8fb012844cde05816d91fd387be9a2087c3758634e4ae3658a035e9b9e2d50a98ecb21489779c538aac7fde32b293e4f809494a800bb16c5ad2e8d4f22d61fadd2cf82bcc9ac210bada1a203f90f67b115cca1f9c109cc955776335779e6d9153a9880c91c9af9eac9e88b7a5e5bceb3bba9ec9432fe015b672ce4c04cc49ec42b865038b7166de32c1f745c27ee919bc25d0a + +pk = 0000000100000006000000031fc1a45b518c620d9ecff3b054dc2104f35f80dffa2515819e569eaf3594081dd7029a581ae1e818b181368d1cabd76e + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W8.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W8.rsp new file mode 100644 index 0000000000..500754baef --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H10_W8.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H10_W8 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 000000000000000000000004e8005f5e66764d13c1a66c4b0919b51b818e23767f813cd64ce8f961e189ad2287a30c45cb69478d54db906e55516483dc65862e24ef059bafa11845aba072ee4302a1e4c22243cd893f12b053529942bf1d3c97de2c317a317c9d2fe5dd7e3cdab428bcb8935db5f3efbd2757261b50431c9ef1cf49256a37355bbc2931ff7478acce22a47dcf7c0662d7b21a8727b0d1ae54473d2c761cdfddefcf10f050821345b78d6a1fb6399a0233d8cb0062792bd3e944951a9d1bc85922fd5bad206242800aa6070d1968d1738f2837039f1d8023543302c075ae3b7e490b4e49b1c2f52f7604f94d455d49c08695f4536d027374838fb11e1c32de758434c1b95aff54b3a949c2249eade7486bbd5a600060d1d925da6cf66ec882558813bc3c35c7b461b013f847c3fcde510affdbb548f0cb16d4151341ecbf521090d6d94062d4c06316a0c932a260cc3a93fe75a6e56e642238902fe1d064b43390e71c95ab901dffaa506aa89fb5e4620fd9b71718a8e4516b791c0ca899addd197172f26fecfb6905ef031679b85fc32b98bebf54c172d294d749e041d4b8e11dcca56c70a181c55d1fac4acc936efa857eca994ef6b4bdbea24881ca38607babb2bfa9635d824119d87c78aa919b9ed71d4708f044222f5c80590638981ed8b46a099c5162982665ed2c1bbe1a6f1a91ebb2c07dd5d577713bac16964eb5bbc763b7600c08a13e02bfa253caac622d038961fac0d45f3e3ffa998d13f80f78f454ec7593bcf47214584f4f32dd02350a0175f646c7a80685f2d5d2bfa3ec8f09bf45869d077a6fd43b777c95bf8f848445709acaac75e82fb479a578a16ae5724084b3bab6d8bb5006d246545dabe8a27bc7419f2cbb71beaf7d30d2213d053e3d75d3e785d7d76347b45f0ae31e1d4138da2836b401424213e08863e87760d3cee7caee7e5c9d576ddd3cd0a827960c2697751b855fdfbb1ae63a87317fcabcbe251a305340172bbf0d907ca57d4d01fc10abdd4d7191fcd9400cac13ab3c949f2ff0b1559cf6336f2cac59b97c45faa702b1212b341490bb0905b0598b8d76d95cec3ee6fc37d4096b625c84c2ce3a4bfd1e541661eb57bd4ca0a5d1a55578d0018bf0183cc2684fe61d8376ed35fc6c9715e03d20c3c103f29f8eb4d19bfbfe71a81cd587ec0a2302789bdc9b6741fa811e0b7dd4e66abf7287fa282d039f9c98cba1e46594ba3d2fd2b994794c7afc627f3dbb29900f42aeb0d7aad125634fc281e9c37047a1c7aa7cf9d78c3100e3d1395df86e785970f3e107bf12ffcf7ee3fa8c1169192c61dd9f3bebdc08d4290e36e8b135d6596b70c91c281b766b0ff8ecc82d2355f33d1077d7f0a5bfd05e19210b78408175b1e7c9330a8f4ab4ceeee202b3667694277169bd0403db497b57d9974a3c1ee438a0339908736e1f97ccb1ea3f324682f0786e218c59751f8231ab20d9bf2648e06e32018f3822d66a2d180fe5203484401e5471b925cf05aa64f287571b0645d05c438f61c14660c316dce2d8aaf22a64430f69d7c3bb14721ce16569863b7e65dbb6192b581751a903fa2de500000006979941fe2a0034185d9aeb8f6eb51ef6767f2e0218f9f1a20c604fb41592503e1efd6c941c7e3056ad0b47b3afc6954a6354791967c9274a43f835fc370099fe0d26a4850bd75228166c06d23d16cb07326be16f454269d1648fa58b6ce4738a8fb926d2a61b5aa66c4a3d4417b0ab7ba7fec2f7bcc1d1d179b7d7a90bc316975c81d903b29345a3ccb9309534aeeb6647dc5662a5a64e9b2c622bd394339b9963ac9e6c3479a5d6180400620115b6b09af77ad82c7a39e278ced784702d1ca621705827bce972d17fe501ad892d4de6f94e748cc7ebaf600ef73037d41a4719cb7a96ef86d89b0eb0e7da8668c85e52407b2b14c232ae6df56bed6d1ab6d7e5bd2448f15e0acdb7792f62cdc3e7ff1db99db034524e0e2b77749ef0b624dc6e2937e289954069c33fe4d0328672caceb377112bbdaa844bdef5bfdedc1950aa + +pk = 000000010000000600000004d1436ef5c39f769b4c9b61659c603f4a29be7b4a06700654e65fcce588dab0b2478e6b0bfb4e74880afac2a1a2d2fb66 + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W1.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W1.rsp new file mode 100644 index 0000000000..138da7ff33 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W1.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H15_W1 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 0000000000000000000000017d1442b03e3d2c279b85ed284445fa421587601ebc1015f9b49ea82e29ae7fa09c61209ca5af037ba2779cd5e9ae813a491892562b8f737a6334445e63c739bd3ee3725b06f7b9a26316a6997f143db039f38134e35669d9dddf12e75dbcfc9cd0641d9281215a820882047fec3d52854c3285eb61b25c9b5db59d0fb4f38acf5a3bb2a14fa03e2e03a4df7570cdd167cbdddfa44973bcd3ebcf3501aa80a748b70fac5ae3735bbf1a8937d6b8621d837cf7c5edb65ffd08e830cd17bd6753cdc98df5a09fbbed909e812c50f80f71315e2ec337ea1ccd0f203c9932e889056e19144c0b17144bdcd0c50bb51e8f39ef8ba2d787fcf9536e55e59be8b5b5f55f15cb186678c41210466eb6843957f69f85fc0e1e789ac26c2a0744b076c971bd364cb121c87e2e08491734e51f9be2a3698373473761bdf54529fc40e2cfa865442f320e3045ca046ad2646f6a2e2e91f054a9c4ad449bdf7a35ac9b29e6b8385d342b49c15fb0077aa4a41c0d67dbbff3329c7f3a32f183b47affb5292af90082c6446999b1316c46f79716ff2c4a5a8d510977af1e86bae7cd578f43f4e8a85d8ab33541431499cfbbe66473f1d7653a3882ead0dae56f7e010fd17987361d5c48a2835f25ec9c70b7671dc53c950c27e4ebcce2b6d5b8332792afdf1a4ae1501af44799f9337edaf1933ad5b679b8291be1589190ace128670e5b3bc230925b78ae34a175c5d1dd7856812011da166d5d8ffaf33f60bf82223fa88bc25696fc21033c7ef5c47f6b0ae0ef47e2119b58882a379ff38b89cd6895cf84770abc68bdaf5309bb070a194f29f3aef69ad6731a741710951fbed65e82d259a73efd6cef99d642695651e1b0ca4dcbe39ae8fdb6ec4b1c44d9386125cac42335da4ca99610d0924473da7d1a85dd527999d363062bba6c919272cc529062120705fe39b11cf43003c851056cb858649da4a0b8eb53c056467163de4d3da8bfd370879c834f78553ad0921d5dde65855d47380121316e8e774adc1576ad529be5c7e465b77dc36e2b28cd88ea44574a8998e477911073fe4ead79e6ca304783ee4817cf1442d311ff17d949ad643f2abc4d71ee5332a62ce8be26623304e68ce1743acb9a25eac59d5ec657673278c28252a3dac364a232730eac4c0d03ea39ac7e954f1b551d8dfd5d429f944a357148f9ab5e74d05d4e2e3dc96c1f5d086e2e313e4ff986cae049445589de4be46e2360e311ddf0592f1c74224aecbf2dbfc72e8c9111fde1f64b7028702e8653f2f6a7823629e174b01c44bc33907709fd0e3673c5d087d730017ef2e61544ebe71ef69d23e0292afe1a7ebb41326cf530d1076b3cc863426d204c8e8b548640e62e1bb236a5d22f61bd1c769d70bace9e813f4ad7fcfa90167fe4c4c78648512185496e942331f0bf35f6bed5be20f9f7d77ca900871055eb9e84fd6c95e7e7bc72c0a92fac0c788841329921423e152c95efadbf31721a36194370bcb0d77738f3b1a4963056d220bc399276e7a0fdd3a1953bde9e2983fc2b045a5c6d5cec1bd6d8251184b93c7bbe06f2606a913f602bb7e2aa42264b25d8eb7d4aa9ec8bb6e90841e52e93b005539d3aa42e953c00a89289fbb75baecd04ba4fc13cb0e17989257cedaae0e52aaff6b06db21d4ab5fd45db385a1e978b91fe6c4aa9473ff6687a80b1f96bfb822f1314a2e097804602c81a1655b71ed74efbe23696e51310edf39b58091d791fd62d17432392e79cfc0c70b9da67f621bcc7fa93b9ee56d340450022f2b3ce5f01f3325c4a7851d7e64646241b394a65486829a794b82593d0579bf4a2203e673fcdc87411de87e157a1fabd7b137da30d632953460d76d48f461180c86cf77392265193906453ec36401340770fcd33a4a278d5c82059a089eb45fa784f5f5dca852f6cbf0ddfad9b8210d472be700e66efb8dc4fa66233a524daf2631be8e39f25119f6388c3d03ff75980d390c99392777ee8dbcc29ed93e9481dc4901d4d26ca5abbbc45a066b5318736967083f3abd97aa8ececf19822b22b3372a76095d5581c7e7a852438f937837cb7a9812234e93af88c465b201aedce324c2af3d7f75adad90e01b67e3e3fae8d8ea18b45506c00cb130312e3805ec4c38e4bc5264f4cee3ec1d1450752b4fb6c6466e3281527385c41e134945b80ba041a8b903a8e08124c9a3fe29bd9722cbd20f1f5f9a0b9cc67a118a504c89d4eceb7bdc87195930b1fa2c29c31abee9a0877f64dc02290871f204629b88a857bf2dc01ff1eeb80af9f44fe70d6f441edf54f72e8d96b0dcecdf7f2961aed57eadf36e40da8142f082cb118534fa7294cea8d741c8450075957f094eb170b6508cb504ee685dcc890d591f460a89c0c3cc08c4010d748c1b7bf32dabe1116dc0781bfded8d98c1c579d4b4f522c273f20255300e7e0b39123a1ba87f9dd4c8a6d435f6d6b4ad1c9580c7aaf5d0c5b4b4ecc1c201fb3fae9b76d14a6f64c1cdb101688909a4207176eeeeeaaa3f2abef9202d051b8042866b09db501adc7f6dd6ce283451f2b247ce89b1c177caf840865ab5cdb619928e92ac4a315eca917a52ab0af747c45c9d4f3977b96b84bf5b46e323ca4a0031ce21fb80021148b84218a420a9430bd23fca1bed37e84cec725b87d7b8e2a7a47d3d016cc434965ae6f6d106f46c8c4565fc467d8dfd24aed77db85834995f9f21c38f405c16d3212220415b3d0b5f97729ed438254a7aad03c8c555364b80885fe75f003b1cac833a4fa1cc3ec7af43e328e5498499836b830b310e46ddaa447c6e8db7d3eb0ee5523ccb52d05d84a4a51288bf73edaaac052fcf5130083937cac1d09e98a70f6f2610789476a30f8b9206448b448c36dd6874f9e5418ad11b7d790276140287f849b441409d2c7bb7b037bd15b5d52fc0190a02562734ac0349d5482b494c05321f0c484e5adc20d9b9d175491dbb05e7220996710d641449207d8d408e3bf4e5dab294381d72766a31038e02d08b007e30f21b79c655ca313a7fe1b893763f2b923dcaa23658d5cad13cd7818e3fab3ef2752b638bb6b5162578a74aa388628ff35e487d7754c4b7b18414973914fe4f075c63e81a7ffd474febf313edf64eff44d542afc40d5d90b7618b6577108523528d1d603535511f890e426da5cdc150d4c50b047a7159d48b7abfffe824cb176a8a6e5cf613bcce956a012b83b7d2b916f0b2db5d2e68b8255b6b3dd930fd8cd8eebc3fc0665865835dc0db816ef635275ec5f463b8edb99bec830746ec86bcf87cfc7cf3d6ce98528181d9f4c75bfdae6981e539ee06b97d48e1807eb4cbca3847debc05ca002b2f726018475de66e9ffc92adc1280774faf20162f9270fc6179ebca7ef612fef2dd253d637f51cf8c76fd1c831e4449091ff3aee820e8a545bfcf9a7c16d080c73aee97384618f24793cd6c37293c2c23d13ad0d7d03c38992215be779e73b6cb979908b2290d051297cc2591b5d7894da71f6c2dc255c9f01eb548c05b5fc5cfb4f9bdb6c007a03b173ec25970fe6b841754bbc529ca32486654556eb20a311f94983c77e118642d5de4d6eb2f4fc95f8b37c90a9825c56a2295e5dd166c9d0a1e3f94023738ae46fd4c99ba60c06d8d42cac8568e7547500a12d02c64a2d73bf075caa8218cab2ae30b0d2d45cc7c69fc44d21dc2cf17453eca38048e58f18980bb5c4c608f1e8f4c264f0683ae0229b8283c93a48eb1182857474a484f473b69aab94ab76ec62f9de834012c91f237d0fec778996482e04c58858bca4dc60573ab69628bb6b73e0fc51bdb3fdc684ebd00006210cce6ab04914001661c8d5b36260a0645053431ca8c29494efceafb20019ab9351225a20a513a8b2321f2c5a6e3c54424b4e9485e504701146812c051cd42fa482ac1c00ee2b227b978d7b0465114636cf1bc04c39840efdd33d033ff4067e850126acaa8b60005f61d69ad38613d3446bcb5e421371104c584711512f65d9131dc08a39291b910482438c6d459353d12d0d7ce4a06c3ac24facf80cf6d1b89b743467140a7d05a36b2eb970d38d914970b65eb6b6dec1b52f1e973b99d4a170bf31ca7908f4a4fb3cb62bc64aaf557b9e4c1511b0daed60f88bdf7aaa4f9b9a849758a6237467144b2aa2b0f24b16590bc151340235133827024fa8cb4e291fac6daa96e18afd121e076c12617d64a34139b1470fe7f7defe9653a6e416fec220656bbd1cf83adca819b7b415085bb746af4b0ff3ce65b5f8252f30ab100b46bff20c047ef76079e0061ac365a2a54d1020928c31d778e19676512d4bc359630b165534b7b6b50197d5146979336f33e9289a120dee4450a0a60394eb2e32a4b2a770a40f81fc98a02865833044f79ed73174118b2b201ce0c4d1a8a0ad9b44cbab004001c5d69734302f0d845cbefe6afa47342bf7924d8e8d231e7cb0e2e1af58938ee32bb08610864384c022f415876746454f427c0fd485d51707ef3227e0628076a14c0580dbd09fb05aab40bb307f290502b03b7d25d4c6259311255998c43be15f25c9f5a340a3cf1d2a6fe722689db45e283529a3c1237b9ecc84d76952a86c7461a73c7bb26aacffcf0a33f9cb21ad93e42e23c25090d7272c4721e48d73c752350a243a0d568b3d6da99ad1a5e31f1946ef130ebebfccaef41a28edcfb0bc3c7f76ac279d92979608f735ab4d5606ff04b21d67f4e44e3e152d871b3eb329612e8881a9e91e4ae037d7da1515397e8a99446ca0efdb889345db20c627b4b583e7d609c0bff453f7df98d3bda21c70187a14f8502699b4d55aa71b569a3f66b04c4b1791d830faec2fc9ab29c33b64165c9ac08377c475c2877e473b3d89018f734c1497bb7143b8e6386f474801403372f8acc43a7188c4fd67eafeb1f0637b9842dfccfb74468199bd90cb52fba0b556b8c32a5ef2ce65cbfdcc0bad3102861415405636a43c75f54b2844325cf7544a22d5c56f2d98c9fe6155c984ce23439440366a21a8ea24ce6846a7bfe40459039c0d7c1f3112a9d5ca8548f8f20d884086e907f9385a15493ebefbd509e7aa19691029741dbdabc15da65fb42f2816c633fbc1d5b42488466795a902ea4ccdfe4d70a50b6bb594f614e111f57527496a1901bb290c3c59f21aef0c68a877732de2774fd3823e2271ef0083bb35530158e9378fc050f0fe5df440a2e63fcab3e6b58a5ef185946f2f9fc780b329dff4fa5b29be55c1868812b71bebb26588c08b97878b7118412caf4ffe183efea366b626391a67f6d0ea2e00e28be4ecc261b397bd76cb9da3c99be84cf7ba4938622c3e7eb3965de2e1ae07e4e811811cdba640c9cc13c6fda6340df33e87ae23ae8edba372fd154b63e3851360380bda2b4856428f14f99d008357e45cef52b500cd84e6e07607d8b058fc2765ca7be87c3595d1455a05e984aac50f432145cdad0a98f2776b70c63ec6137754361d778a413fa657d0ca945682a179420c5ecec5d11d4088979bcf2a823c14fb3548108cc520560ed0e6842fe1a49268bcd69bc20e31136126f80084afc99444ff0b35824d3699c143a91eaf3e97ac4c01ea5c983c10cb910c0301d6ff257956789705be6445c56b260ce10dc8d8f165ce4619a8c56051a7fc4d62be54dffd06c3f95817c144282f33fbb7ecdf495dd44f2a4590137d3bf89b729ecd102e43e72b6f71a059baab8c54ade2d90f61a2dfa819443ccac6d3473a9fb6532820a3168e2a7870a07dc077fe3bffad4c9cd53dfa02a345b19115d89236fc843993c6a336d19bf666d67fb50b54e7001237137ea8c1ab4d35e9f330d322687e5b7653fbb72f14cebfa405dcb978eced6f313c3c6b2ed02892cf051ab489154a18ad86f59aa9e5af5c42b0cd85cd41d2e0294f5aa3989437535e4e362bcd92f6d7a74977590f1086e877ad1e291895a9913f24a44a5ee056b9e1624734c09d8ee02ec4da4a0327e5c3ec3d8441c1da8532214006b316ff404cda80d6595507676404ba8f3bab7a8b7459ec54e0acaa9b98263041d1e81b70bb48b24839cfc1737ff4116168f51dc5c9f84c91a3bbb4f7190da7271659f98286f11650a28c8bf8847810f7d286f3d28c5b86f2869e1d532e77f62ed0c24d4ee3c722038821736acfad959f763fc0b8d348f724d0a0a95371a6c4752f120eaddb080d73ca064751dcc3364fe950643a1f242be28d9b8a55a1a3d6bbb87b04eec17569011f19ae74ba249a12327d7f008442289d1c4324bc2f14d86283e195e76b47a9b599cad0a8ef23a952f85eb0610dc4a3cc2f77297c2a446ea43ea7839a0771c6b88b131ab2e2f2b39d031f39bad2c7336874db3f0b3b78274410321c61990498b16c68c1ca17e3f25c3ab283abb2938cc4e383dcb81432058abd8c7a298d0c892f482d77187fd25174b12b1194a50b29d90e7da3ec2388f75f85777bd2cbf224bf65ade3057561a0b37c6ff1c0ee59703fb7bff8ad9c58cd6d643b9a8da7116318c3cf737001af6a343104cfbacfff57fc82dcaadd13fd1ad6a8dff9506e1c3dff33832291e9174e8afd4c447164796d8daad8735922ec139a3bbc0721ed51e1ba85c5c9fb5cb0f4b23707cf32f7af4e61cd53775c4cd346dd09b8fa075adb9c311f3c4ecd79e9fa6bd3002651ea513765f847ce08ce5a0256501dde7804e320b1fa6528b88afa3f5094d326325d02ccddcf56a9be83afa5df7b69d83842e714f3cf18518f4145df769f7ae73856708aa90770496eb3e969e1f21aafbec05af7368e1bc31a668170a368bad96244a7cd42ac576f4d4b53324133fb0cfc849972781eabc2dc6d5361f9b5cfacd6d7f3a2cc69e1bcd6ca6515ac5d704ec53fa68f8422e7437a1df7db7fee7b0277b6ea71bb5c9c9f4f310faff9a0ccd118c0a463313ce4b0b9d61f72f48bd1ee8991f0e1120ece2255ca63e3a10750eec286b0d50ed7774206d0c268c9f5b29618547bf2bbaff0eccce72883b21dcad1b5bf47ab5a943da9823211684517ebf71745a2a0e627f15c8ebdfa104883b60693d4c3938dd6d6e5e170dcbafd9f15dbca23a4aef76c260d7f6394de91badda5ebc56e2fc19f7d5c663012a3be507a2f0648c31131128f6c0889fd65b323cb3d9a5d45a9e5a363dad6e450625bd5b227c37326789eb214725be108660cb30fa0de03637764156e72e1e545135698a561ff16d40ab264c2aab89494dd43afdd8ada1373e0c9dc703b2dd3af759d58fca6da57bea537ff54c8bfb7e8bf90d22fd7653b2695219136294bdcd68fce4fb19f53ee98bc6a677aca85bb74cf9a653996258bdf00b9f2d174163b330ecd55c86706e7d18983785e8bac6e2b3f96be025aa892bb4e02623d95f981d30d60f8583fb6f14bbfccafde70886d032c491df8e5d07dfced834e01a64b83fbf744a4c1c40afc38d6557f9258ab9fa49f52db50e3b261d367663f49bda16ef5e6c73635312b507132a1178cc8aa8b4befbcf1c595f966a36491ac23deb941e63b20f2d17d9e575043eeb3a2804cb6b509e731a54b718234c226c8efa217323924a0e09d73eabfc89399a49947e93c3d3ac6f65309fd70c09192d315dab37d2815077f684aaa9eaef4ce77b6d0653bc4d8bd77b0c5bd10174aeb5ad0dd7aa7af7fb79c8af3aff371f0a4c625e584a0b9c75c10187b009a6cf1bf7d92a44fa489aa1ffe90e00c1a5ee0a3ad9256c77be81f8adaa14311ea934bdbd9e1cdd0c31d9f7ed8004aa5343d28416e9e888a46be875bb8110d03b048a7de74b868b124b59a9f38d6f6164c263ad8d0fdc3728ae3aa7d103945faf106aa62db4401c3394ecde71b3e966aa4100efe8c2a233d97ddb3a376e0c5fcc2ea88fd35e8db7e391d9e5d6aba6d06137b725b7fe7d961773ffba819fb498185fc64399f7a45369cbd1138a67f2c8c8cf4aa112aae89e125b74adbf76b3e02bd1ae10670c57e3e87bcc2250682f34f7f41dcfc8a140b176a0e7254d8cbb9357e1daa642dfb72130649d1b9c680d7103ef60aa2cda3b661ccd41b310e6bb24f51531ee0ddf4255b50276199c01fa2b36b0b139b6fc245232371ca7239721a4d7ac080dc7dacfc12144f8e5186e7bbf89d4959351161be25407cf903290c1fbff1c52accb445e5aaeae4b49d35a3c4e4f2b6ce02947da170848a2e337c6f3cce5a3a32a3162b84b3e76e2b43be5600beeac09d2450f14dd7000d157f073b41ade05fec31e148dafe7a603cf9702e7b066418925c2182126d41a252c9f989f3d09483c5d036dabd5c00f0533a3691f834c88631f40b51d69356ff8310ca646ac1cb343866e6a721e118fa2ba83e18a00f0dbcc748feb16896908c4bb0607c02e235ff3d2376a8544f06322d27d88ea777e4bfa1473c855b9d42143cc7195eb796c5e5d1608aeab8806974c314b22e08eff7ce9547041c4fbd33858d5c2b6b56da4d64079745c02354ed18966a27548517aa255cdfc3e4cc7447e246d867eff4fb828a8d66e44c321bdc78bd34f6519a4d03a14b54727e6619e47a0d328b817ecfb44b7696de948aa382a0b9ef40201191aea8771aad83a7a854351942c7f1275667d0d55306a1484edea1f0c496ec3f73eb5c512a30de2fd3fb75bb9d438e328f18746309eacaba3e022a37d9e6a7ecd52565951609934bf206c9e3b547b56cbfdbaa1fb20c2cec67010180edaddf35613fbaab373895c3c0ed63ebdcb381a731690a96a2f3f7374dbfa74692bcf046c7dc093963f985501a8d3163e8deffc88b8af1492becb0246bae65cfc6270ac59b7cf6f89a75e2553427560343dd30da6e9cf9d286c7366f7612d33e123c759da9c77d86710463a6a4b940bbffa67834d471fe6fa1dd0d6a6eea669cea7dc2bfe265456e37e91caecb427900e3fe81e2ab3d89619b8887fdf07a1cfdf724a6ad7d3b64cdf6af69769f8baf3d6ec9b4cdd28dc255825d85a4e675b091cdd38074d81170e12820f2b87eb6bb9c28a6a810e867631930cb02283c3d7addcd7024a25199f1601f2afae5c41593c92d670ba4baaaaec69c472070205568dc084a2d11cf1d862c4ef31066031809990ba8abe27ad644559b2368c5495fb24bce089c6d84c539402a3a6da60477b032f4655b3f9750633f10527a1b9c08815bcef973d1c60e1c077b06dc0456288ff4cee7482215e2cd131875d19a46e88618a263e6fdd09ebdba9288ce359efbe18cb994eb5a532a52d6af1159fa0779be5faaa86f312c972516d4e752aedd501219f11f2f1ed0e646432bbf1220008007550b2ac59332728726f0e78774e16e085224c56da67b2da89a66c21233e14ebac292bc710a4e3420f821bbe79f3ecd76e6f27bea09604d7b9762b45147773742e7a98219708316e0d211a7829f179c038241f8289173a99c319702381f20aa96232da4d072dee8b587a1f1392939c9c0d2cdd0b2fd734b43cf5b742d5a11384503bbdfcccbb33c43795192e1f2e4c1309d4de9671d4e90a460159defc8f3d6fd7aee2ee2c07800d43d5a1a57c0d8a8f29ea1706bbb9d1c69cdbae5c27ddaed71b5483be5905037904ee19d2f126ee252dd7b769005b45428fc82447134b8c0a49759374ee62a1780b8797beef9e50acaee70c4cbda59eb615692f1c5f0de4e5b5f7468cfe5cebecf2d4fb33dc95b10627df81584dba001fcfdb1bdfed8b11022277f859fdb2bbe2083c124d15a260cf2160fdb8718258c0b10080a99e6e40f59b07f504b8cd526157f371c503e9e67c52ffcda238c3042d80d30f897a0ad481ac6771cf2556b07ccdcdcfe85c292e6b59c201889984758604e918b07270e38a182de814fc756763b10ab59cf832556c1813823ea2a276accae7b7e9e18a4cbcfcecb32f4745afa48305869fccd3d21a3c5d31105d64cc985cd9dd2d3fcefa6d6b397154dc219392dd7527ff4b0a3d62c3005bd770cbd00b4e15f6b85508e14c687ba63a167782a8392703f2f16010e1ef120e936efadc099a0e9e904e662f51f7f46951215773fc0eda8ae1f0f9411c799280cc2d2827e226ee1a7f7e225999aa49d47401b44a74dac13f16fcbe6709445addbd2005f390084d52e4a0c86d8a713ca5febf4f58ac66720f2f6d8382884a3c416b6e4c2f66ae865ac28f2a31d9ccf3bd7bfcad84d80116ce3c217b9f4ddb00db4dd8835b5ea1ed439c258ad054c8621d8842d95060e368be065f7b5c7f701f50d09c5d1c1c9ec085226894bb708bfc705fd7d63554c0a47742b0daf29de184b1bc96f7272449289054d6e8d35a27895b6f23ef2361ffc8a5ea338381bf39c63b4337c0779389f34e4ba8acc79fdffceddebc7999ec83d058e5f335f0962533aa8aed74d09dc2e21769e624b116ecefe4612f4c2552864e648b8c9f541469925d7f6601d778872515f675a446e908eadc235c9bcc6f84feea5e8b2ec7d437af884ccb619632959dd2ea272f38fc3c9ecd11d14857a499f8f98a358b5096b4f8565c3a72bca57dcce68f168c6bf092fe27a80084e5f803162f58ad7a0a5cb86e3ce57d2f5d4c3cbdfdb6d239e4d3ba25053127e2a5a668b7f955169135921ddb43839fe464dd2efb8a8c9fd93d62edcd0e2a949b69f398b0fe2f84b6e5aab4672a19d7454c9fbf9732da4252a1dd759a2d91aff5bbbd8a49b007087ac2c7663ce2f6801cb5668621c466fb273ed2584dcb3a7fd352156d4a9581ad007b1b5d072e8c2ff7ef003faad178c0fb2fe847c2991fbe952d59287e50d049b9745185ec9a64bb3bb9f9590fd890b3dfa2a415077322d308c84b3dbe1beea254cb583c87c88b22fd5e6e3ae819266cb777649519e839c52cf458a2ee5a1a4b2142baac0ebff7ff55e6fee2e362932ec9e58c5f106faebfe5079950a0d24ae615a8dd60e6611a9fd13bdc0b6de2f3e4b7cf355959e2803a430776d211aa97fa7f759ac4f8aa0bce11d9bab5ff2299bbc093a33d40054ca49f364e2afdb98b94ce7acb2f13e11dcfc7c9e16887df27f09c16dad202975d1683851d5bc410c1e1ddbc802f7493ea504076970f4b4c6d22ee0f1619e851238c3d056a6400ec0d27a9a20f41d238a2ee396bba4783fdadb71c266d110367bd9c64eb72dbd5a609f2ba414fb7f8f67b2b4da3339c43193df2c3d0942d3c3b30db2ab59b14a3fd30878a48c95ec161cccd572ea241ee4adc190b89560133475f5b99ac247b56c2488a8132c2f024472b45691223fdb9a46aeefb0df73e6ba3685dc2d19c909383d108fba300fdcb4a46cb8268cf6f19939c2cf789d009549d187d9b895e12034db35fd3a17e862795e50484dc071164bf2415eac1b0177e5677f20778ec4ed2cef56773b2f0227d355ed61804210ea7a136d6a0593b484c5ccfe733faf8244e5761225732a2aa1f6ad2f6a5263a4822a624ab308e590183af5663cf82f7043565edc1870c53f4d173189fd0e146925574e8e04b63d56d1eb9c3c67df7bd165ba2e089a7069a0678254cad9d15057c367de62b8e839128bb428dcbc3591443a5bb5afd147e1baae525cff0a7cda95587cedd15b67699b1378744b8143a0a112c5c467cfe26821a616107f9548e9418fb7e96cbaff23654cf029fe172a38fd830022ef2c05a8972593f6740fca55d68b924bda7ff73712f02288f195cfa6d9dcb66e5be19474aa7a584a282858fdb6341436140d7d11ec428e01d16cbf7a638dfbe9e18da8763fe2ec4f5987bcfce15e988a411da4b6e54f373f63fc6512a839a4840a37bcd845c4305e3723980647b038a7d298b67d94219b31a84ec3d4df4bb81aaa07a8a358736412bd5b761789dcff2d182a3ffd22ae05845af001f7f028fb3f46e461e4533db88b9fa11cfd12dd2d34ea11bc8c74b1843e8f28a5b845a8bb3c7277fd1c49ba1dd17acd340b1f63086fb9329c774c54c036798d5b5184de7097a71a4484bebb858a11428491669d4b41b652fb5848c8725938743aa03bff8d1bd5576155d77979cbe76fd5aa75875f395fbdb5d03af750dcbcf1afa0ffee9c7cfb1722b533c87f84a57b53b000000074390c608ff3cce57b78d6e566cfea91c5194e61fa3b921d8bf843acfcc90a14707eeb6d1583937420c247cff52d53f4400e90287ebb3ff64e2dd5b4455b39e56b4765ae3b1dac860e281ece98ddc4209d4e31c1ef61c01a8fe8027911f131d120b391b97b20915840e0e5cb9d727eed75623fa38673e6cb3a094e508d9a9983bde1bc386ee4d584347f341ea70358d9f35b1f64fbe08c8edfc4e4e1d79a44d2af06bc484d5a19d448adda5d1a5af9b7fbd5f9599c5e05a0f576cc3568cabf31541b650611d2793675d3edf1140b65f310f98be6af7618bb8735d7043d73df3409d37749582429085738936562f603720fa713f2df9e95fa47cf35f9b3bfa82618dd955d746010aab36d9d6e826e39eef5d682b87281b2ec40a1f03d9d1139361e15c12276ab4f1ef62e944538751e2a585118eb91581a2291d500075b7ad514cc840cd07a77accf69cb3b3ff7dd8d1c6eae293d702373647a8e215e7c386dbb9698ddbd84792d57c041ec08ae5b1e034f4bd6dda80c35d968397ee84afd6f533c90813a67f525faa2f5ff5bfda87c936fdbcc443b1f4e1ec87258484fbd36d3a708bdf805c5b8b287b352241df3f5ead4eb730276d5d7915cf5c6a8fcb357ae35b124439a5ae68d9425b3d476ec7de45d79e31a5732af9712d5844a7cc26889d + +pk = 000000010000000700000001ae5630e18184f7991499298f672208ddbc2277f012b38faec33bcdd80ef1b5f3577e649214e41db2724dfd194e3258d2 + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W2.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W2.rsp new file mode 100644 index 0000000000..e478aa9d33 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W2.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H15_W2 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 000000000000000000000002f08b5ed856f80451558c031cbeda91f6d5f610e6980ee56751444e2aa676356757ad620d1fd857d154c6c42ea5f4e169b4d9e71c8cc801cc32f9f5c675c6ed6b65ddfb0d0b3058e195d1abaf2db1c182a814453ff0bca5f67a5b7990aac2be11264c00cbe443510f9e7dc92b874fb03ba51f6841569f84c7be828662be715f3805e80ad07144ba1f74bcbdeacb4f487a04b4dfb873568eeea19da257507086c23e0e1c757ff97e4a3fddbf56caafde716eb678ccb9e70b097955d01a7354c32bb762af1aa18bba060580a9aa515507008ab99f0180f76d9d1548a85cb0c567129dfa7bcd632be21b545f0aaad3832ceab7dde6117f4f5cc65fe6e5d63b110badfee7d3233ac43d55717e721e5de68dcf99a13463823de42f488ac70d88fb04b50e2e4b8f9c3cfc57330ca0b84d33b8ec0842fabd160088e62dc64770aa3ee02e8840a7698183fb484c897fc7de9efd597347924921544fbb545ba4bb3ad3f95a05fa55e21a827f78d44d8ea96dde96a6d9bdce75491fd2e9c7edb3a0c155576cd083fdbf706d6c54ca1abed0e9ef069438779cf2fb20318b47db116c1fee2972617306a6bceb64bb910c11baacd8fcc0a63596d328dcab0f41bcdd1f5d4b17f3ec2a8b2726d2071d9257adf8fbfc52c620ca411c1a3d9afa3c224745f8601e28ef0e3351ca8593f119079b3ec16ae4009f78299eac494e5b4a4ed920dab2e2e9912856d586ff7d037f49f25dc5bcef30d0755f4949312cfc9a3673cbd4f636cf81350f5adc050c323ab9633bad880690cbc13f7cf0dd93922ea92688ef1fba968b903725c6ea09170f4d26bacd62132856b6972665b466f6688e37a6e8a8c938a72e1fccad2bc8c1fa7a246e1361ae543892f23c3637ddd20b3d8a3b0aeb68ccb5edff07be9e9169d93c6e4c0e5dd7adbb3384eb679b4b8c14c23e3679a6ff721678be639d3684375e9a01f14d29f310c8460fea41de9dc5289a784080c090d23da1ff5aad37caf80a920c82962f966f0a8f00cf4972752b44c4bf2af44e18cd373a6b5afc281055a71dc9d39d65233f1c397dcf8ffc0a32a07905f2007798979ef0123d65eb1033eb98be9481286b233875ca0e0e6a7734956c6120733ef49ffcadac9986e902a24aa00a5facebe20c8a90e899ef14cc4fb536cb2fd272849f448bdc30943fa027b697177dcd9dcb135c78d4e000230ba274754d5dc7591b0b818e8b2ec5eeb216e02415ffaddd6e10e42a2cb55c122bbe2dd7c19a70bb33b52e1450db1d49a30c1dda1673015cd7944b35efeda84a821134085193f70030a1e375fe43e89fe5e84a14283f78ab2a5985403b45f8da9ee082a1c773acc7c8b0faffdd433c840f5519a1945c622642548dfe4128a01bc15ddb3a4defdcc9fdeac62c27f8ea27e939966471ceb011e0a116b43b100050cb6c2d74c71156e48ad869c18b54d08196101f845ca21c89b647543fc38e05ce47fa3c21c3fd65401747ec0076fd74ba27e1c2d70db3c05bb1c08e2a392a8d548f428dcb572c7cfa49e709ef62305ac06ee9e705bb5c5c440ad92f8d72313dd0d35d244613b6df9a325e6b7670ed0838af40bd48bf42c239ba12408adbcfb492b9d2fc0eb523dfb419bf9eaebca4fa4305e622088a4482ca4735e14c0d8bb26305882c254e87f60d5039a1857b0d6d2a9dcbad8a10c802ab9a9ec8a6f5caf05a4dcfea0bff82b6830201978c145611a3eb060d08fb70e6d9a6eb85c6f779c7b50bf2c38f9631003a1d8c5943d24a987eddd3a9a27c694c6def4b3cb938515239a3e35452acefc29165e8c5cb3d8e8b5da9423debd3ce1ccce82d1279af8253c21e8dbf743fb80d8cb1f51d3d9afab06da2d11d99ebf26f69e93bf726d9d33a8f06ca228602692a7ba44ef95990ed181ca9acc62954f8a1af3b873b2a07faf575f387b3a3fdbd9ce68afcb2094f39713d2cdd430c85e534af140adf30d99167597d2b05ef7d7fb4a636bb8c94c4892484a00b987cb203ef3b038fd6034850015a0f3ee971896b9c76df5ff2d724ba2c5eaccf86f19e83bcf968774106d7fb42614cfcb5c1da672d5ca1bb41877bb3835ef3ad680f3c14ed7fb0e2839bde1a8d70ec318b1005ff0385f8cca6febb52294f4caa3b284349466d3fb2c65ba2df6fccbeed18187b24a65801304d1e09b56befbc5fa3ff1ef44d73e0f3e1dfb9b86f85f2f3a99c2541808071d20b9248e100e7813fe18d553b63ce520e3e60612aea4f076e65f53d23f122a9bf435eadf13e5053d8b509ca895844b7b36c284e6be757407d202c447355174634cee9c90a1c0c2d29628d9ac6e9c4996d6924f9f6b99adff788cb99e3a4ff46e257db3a9ce2b25e71dd783d59ac36f28d48e0d6271a1ddf1b4c5deaf1e97421031bf6d8e86579ffc1eef966e502b695878bfb514cb4524b28ce202d38e7d4545f14b4f4709f7b23de5a0b5695e9e1ccbd16bf8fc89b960da883667d256b08428f8b5874630213007a24d23c086e3b171ac61ea4a042f8129b22c1adc85de8d68f534116493980c28054f8a4887b7fb8d53bf0149927c5504956284f4105500c9b8170d2ec6746030ca343ad1224c836b4538fa9bedf2d2ee97ff85d6ea7290a1aa3df9e47550947c35a3b7c74e0969e6a3999deeaed57c9ce705fbf859f700a197f73ccceb5399a028c781aa42a4216500ac3a1592d7c3f58474986b0ae7f2685c6ede892b6098cbd6c9743fd974dc39d45d732f392617dabb33e12df59d4252bed5d19f36b77b67d45d56b9ffc26219fd9988646649742ee364f483aaccc9ef8c7aa16e19cf045a46dffb27863cbe8637403638826fcc79e79929f49dc315fe802301072b5fc9b26a91664e6b69ca897f4c5ff753e3be247a0adc3fe5e3d779f0da3c7f4be1340b6c38f596afafefd951760f4f25611f689aba3319dfe54044a1d6cc4aa9d6e3f1c21c35c6bc1dfeabff882eaa624fed9f50bac1fca9d53378629c1da9013c21750c820a860dd5a97ed04b3aaa771ed8135bb4ccb9bd3815fa925e464db27b96d4582c105c8a1f471dd5fd0c512a3e5f596856e3ca297e7b78bf654d078cdd2a46eea45ae7febd39f127351f2beeffa29d967417935dd98467d0f1766dadeac80f999d517902dc869fe13dbf186d7e871141e5e04f68a238140933a1e5b215666eb1c7499f28dbe2b3407f3bd2ce6a7088718768a6d71a24d3fa16e62d7d57e2643274029b5f87dd5e04d887012bab0eecab3c9b5f3391c713ed718e30b968d65e342f0b4a61baa381fc9c3d2aa398706a2ff9e6a7c5fb964cba0a1d58fcd6a133008245ad9788482e153effd601ac217568ff7a35675b0af3623df1ecb784f2e7b690a059870654057950a49cf7f037915baf02886badd23fcb2e61274482e7ba856d7203c620f81be9d22f24557c11126c79cbb45026e21c43638d059144c6a2dc7c161d87963b3185641d97bc8e2ffc9bf11e78d27b2bd62b1fd13f872c454d7354b92613436cce8a1333b59ef75409581c76fbfb76b2dfb157aa6a0fd85ef1cb38006c9ca2676b83ac624932175bd04f72b8ecca8b23a86bf440c9a8f9b874ad1508d515d18b5f097c7e182b63787d1acc78defed914cbd33ad0d07ffd9cfa73eaa956297281fe3e0310902b2dfa8fbbf21ac1ff387b1d8fb202a3be3b157bbd113c4db44e86329bc86080ee38593773f614ea7b7841583340fce41b7345607d84e877f8b715f5575fb57201572bf775c960cb17f976504a00a98b0057b664ecce394e3d117d62bf9b653b76ed6fb4e2436a22deb7f72b399154d151f85a224862c6bbe564c3ffae36a6732e528f84b15fd617e383663c3ee28cd442bd7ed4c38228fea64e543d684f6e613982bf8a9934e4f81db467ee1b5da2b8a2231eb5c2dac2795a478bfd91beeba8f3c731381c98593a4699a520437659a8dc297c561cfc66986e886b0f2a79899324af9029466f6593bf4dc5191f3ac0e2d0b7d6afa2764942987bcea3c0404de1942f0e058f5b1457a7713d987e408d54ac05bbc5322181fc30934d3fe516f1678f91ba1733b4b31fa1c968ab5bbc6567a436ad88b328b31194e7f3274ea9e14dfb2af9fd137dcf6bcb31ae8723d3d2b035cf062e614ddff037f3e636fba860ca70540dbb704fcf1886bd5453b028e7d50020973aef05155215b044ca7eff50cc74f1cb2cb6dd447f43d42ce8d3c69295aaac5433e72deea922afb0853b27bf5347d205eb121eefadd31fc337c4e67ecc1df4e36c125b77fe5dea89104a52a58b36e76a57cc5a5f61fbdd7ea04e7bfb0895a790724e9ea93eafe01d20d2f3a4db460fbd9728c0e954984851a48c3806fde2930b98274109201c57fe8d0ccffa2cceb7d7f1bac2264235676df2253d65de551b6112f0a617f9b16d64953c646b84137185e63018cbfd28643d4dc96c782a8ca43809426bb905a7d872fecfad0814fafdc0f6079aa80e1b7236e33f3ca28ac02fc32d4fc4e751fc053b5b31b38b76068dd443fbb9b37ac9ee779da0d90bd9b4fc80f1cb71675c243ad4f2c2f03e9cc58263da9bf5aed282b1ab905474bf3a37225f7bf7952c930b7135479f9fffdd2cf85f2c3d5664f696bd32832db043f6b39ff627448042f7248253ef8b9e3d577f824c5100230a35a3581eed96308693407fdfa960266f8e338a70e2a8206886467bdb5d7ef7e6695eb0145e52a370727cdc55f437469c56a52a69a667cac0f057caea787700c5ef454600574dc27784d9b6d4b91296d776752d12d0ba6b5569f79121bb1bcd3a11535c5badc7daa72362a23099aaa10d2e45c081423afa48d28203d18d16529610965e28af87ae97a73b7d5ae048dcd9f352381ac26b96ca3269da6dbf88e96c795650904e479b72b7dd6b9bf46ea10d24d88213a002d0655918cd9217d02750d396a44c653a71e2d9125a133542a5462756b0cfcd1e1d9e7be3b919a65042e69e3d3e293f1fc34974eb6a148700c7f74c5497351be1ded9060f95a103b5f1243db2acc218b30fe27697f5fa3bc7a43fe28174bf916e985750f3647b53479f1ebe74806322b64659ee49d3a754f5b1c22fd39f8b6f36aab9512b4371323a3d939b97aedd726303d91f804731ed921f70dab7c2475af8cdcd54bcb6747faf7e7b6a1aa579cedabf8447358d23aec2cc4b75a547e0b59de77984b33bf04557210150718f53f94dac4e80eff9e20c61bc457dcbfffb69c61d5df812ac70ed8600a2d8d9081e46c34ad9ce6a0f1aef9b25277b8600e3dc9a001ab305f732f5d01a1cd9096ae813c53731490e5af8018ea3a15618e365e12861340e7ca7f8afe683be65a508d8f8ca5dc701c2708ec1c2d70a80362a217cccbaec9bf6e1a201d70025701759121a5bced89d618a1fdd8b9456f23d7b3c105395f9397fb80ad8ca754c132f7d0e9f95ae2f956b18e313520da33dccf03e3ca0b37cc6a4034aa7d50489054970da47fc22f385a4ce208613fb347f74f02c0e17eaf381797362acbf78294609c343eb3035e42fe71ce86b9e0dad4f1777f29457e7ada88d3c0c3f8be6d59076bc2fcd9c52debe5fdfcc280b567bb7622c2012eed6cfefa3533d9a2606aef17ae20d9869f02f83606c93778529e20d2252ff239c4252b7944ed439f443c1b1394a1c1df5b386bf5f9a3a839d7b1f30aa6d04ae2f1348bc926c65c55880918a4ea278c141afc3229eb756e8f16402ad40ec7d30c8ee56317d6ff3023b58e468cbe0404decc7e2f548d41f4669c5ee79da45a3d30cfa9466ca9bc34474d1b3a3beede79ed5c177b2bb48edff3a8c3c71284a3bd1c29eef2bd1defb2d40c1c70f5fc02ff899dcd3e7c73d88602e7ff66b25b71537437eb0e349c4d62a306c97131f0cd5affde1e9938d86602df061f6837bd542d68600324f9f8120ee567c9ffc87fd0a9507b1034789055b932528d618959ae2c43778051824c117d884b3315a3c0fabe2ae16284ea6ac01712006d222f9874d7871777255b46cfb44b72b3048f1a43f7e9d72ae996ae791d2f17ad97c26ef23692126df47840f7219e414e4994ac281328000000071f0adb73b4cd33823d14c463983567475f253c2723200371379ddd88255aaa21bd9434e4366d569655f38c8f6f2d25c66fdf7450ae9aaac284e91d433870308864e3f2568c460cfe515027b525228a27f154ca0161e0c3571ad85e38b2b5e622871da013c0ce035df5cb59508775198d3b69dc52a7cbb459d10ca900172c9c46a44efaee553817d7fdc7f7f1e3f2f6714d101c8555756b1d5b8d13342d7fffe8f1a37aaa0cffb53ef5cd6c83bb78b450a026edfa8e34d18fc68743dceaba69ebc6b26d18d63a9b80f6dfcf9293b7cad5523e0b215539cfd6dd858471d7fd725e030265518140575ab772b858152f41844ef97e54b685e81745c47e9b7f0b9d375e65a2214ffb0fa163b8df334d1495b44b8232ce3dd8c5e2a760cd92eb59c80080c841d0150fed836cd7ac390ee1b17ff670869b98dc3ec29c5f42c4381a3866764e0754fb5f4b73050993e1445fccad4d346a2dc6b61476cf0cc8658b3ff406bb1ed89df047dcd49f2583911ca3a7c4bf17fe0dbf5ba32440f253f12f9f791b9bb80d413204c41b4e9689cd72b5b8bf73272fc005c6a9f230997310d49dddd68df985bba18ce58c1dc63d5c62c8f150b29e077892d148e1c6ebf342277990b51c26762bd0da452a6c88bc50de214cb59918583839641b67df417828fc2b9f08 + +pk = 000000010000000700000002e8de95cb58a8b0aa8ad47f68af1c98524fd0f190b5205f40ed55507653ae7fda835c910eea1f29d7716330c27dc4f835 + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W4.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W4.rsp new file mode 100644 index 0000000000..b63cadafb9 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W4.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H15_W4 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 000000000000000000000003b15d44eb5dec79430945738b499d2beebb5302eafc1318028103aab6469c2cc9f7701919bad01498c915de8d56a9e221413bc8191bbb0a6e538298c49f46213ec9b6f27b26d85c13541b2dca4fde3fcb5c6cd830ba044c8e6478011c13a10e79d5ab11157d952166ca5e5cf7f36c675af016a4476d97b79bed46cc06d261e82ee8eceae9031cdf85e0afabb71aee45054e90534ea22e32987f6bdad1d82e5753c3d49b70a2da50e715598dc45e37ce67404f50d6f068ea9f053f89a25f3167b778f670834a4247dbf2f3463772f1af1fe98def960bad75531503874a8ba1679b0eaacfa0532017d7f12587180a0cadd20abd54e206f9482ff3d24be9efb41e6fe749facd7312927a81857f0810d14610528c4ea6b3fe3e8efb75f3c100ace31d91b273790534851f0ba37977178b38df4319405c8ad6c9a657c536836c6362f41fe67884198d8ec5366bc788c43b8f7c1689c47d4f3d1c33727937fcab453fccb7dfd4f1932caad1ad5ac45d51e4c4fec014ea796b3b9e70781a541e9bebdb309ebde3a30918b63d6d076c4ca22387e0b7a17a42e300ec1f9b750511d989c443edf89d9f24bcfe96767aca712ee08583a70fc80b6d7b7f3d7883c02491bcc02e37e267d9f14ac003fe002a669a8ff5ffb37e55a8c002bc1ed3743745119eb0ec227ff38eec5956f1a36390fa086f98ab4d9200e7c17a48ecd8f8b5bf38341ecbf8a5a0f5f3fe4b2a0f813df19df6277b014126d1c0d42e093d1bbc4e2cbae00422a78c1e70b2203ea18591b22d2015f8d4d000fa484e879d44ceb86e7ef89e11f3ea786f3b6d204e4ba13466bad37b1cfb4cdbe0f7bf26623d787681441e6a64d3d783bdeae7fceb6fad18c8b011c2f14b3660951a8cf87b75d292489dc87cfdfed0610cbc7b727b780400b8ddf7a1c5d5fc265a7f0d2356a7e39862dca4ceb0b07efbea59bfa5c8d27ca1c04857b5c033322dfa8bb5f0aad504c246f17d97e306c55cf17f0724d5201ef283f8e0191ddb9b5ffb5f2e86586a1ec2243dfe17b61e6c5b48204717a3de944a26082b396d016a3f689fec52354321d08722f2141e53063305f988a720a91cd326bd7ec72071ea45e314ad505c66a85ac4478fa2fbb7abfe83e890779f607de7bef9b852e1b72ca511cb49b5495884f04a6c6252dae87ad6154f0934c44ffd9f9b7e78ff32163f414fb1ae01d703b53afd5400178ebdfefaaff149de556b474d507cc4f83a2b6bc8d8aba86d55f32dd6c59f90376480d195ccb157201150438b93432b26cb6a437be4bc84b5239b89bc477ce4ad981c7c6ff38cee53091aa3489a095e72b582ccfcfe783554b3dedb32af18f136cbe0c83ace70cc09164debd2b67fc5aa9a9320024dec45a74be1793e3850062849860596cdc36b9ea154cada6ea752049b391082ba0107e4658e6efd741fc5899fb5ddb7549cae174fb9e08d0b42d75f15b1743d06f107045ec931f8ffcc67fe70779cfb6c3e3f58fa230c951cc6278571796cd0f83249ec93f7ba62868782e431c177a691fdf617e9af2221feab9ee09684365d0a8a5e1948de7a01b6e390d18651f26655d994c1363efb93e6dc196b64e65b8ce1150b7d020b280760e0354d561d08228611e2fe9f483ab574f93cbd709fb3b4b07af72d27f3960f6c6579ecc02ceaae745a3939112e883e9dca7856d5803dd5b21f889c145d3c54b2a5fc117c341e2109b935cde6c7959ef33e3c2a9aaf32cbe003c14aff7f36cabdf25f37467e7fcc58155eb0a354313057f30898370ecdc5b75eb2a74388197adfb36439ecf97a7f9302a2f4d7be079abb824db22f7e962136df36dad41cd5816f4e8deb434b59b4f308818a12963dcc0168f20a15017f941f129dbced6e41fadd87f91655655b7001170188fe9545fa93424f939464c7af32a5f282d999e5f93523ac2090041cb087f6be7e8cf2aeb95e05afba361e973c4a69eca8bf7c1f22bd98e94dd71e604561ccd316f6579a82c75b58f731282f658ed2de278ec4c627bd7e89b4f7c4a8ea68a48cf8744be232981218ca4ed83db5dce7719b3237236632e9679516271015ec8db512d517f03e038910cdac47ab895d8a8a17dc43fdb7c27273cb830372edc94e9188fc8eb0b95bbd6f10ea1d593a7aaccf302b6ceea1f6f3b71d7d4bff16abefdc5c065922e1eb3527af393186b963b15b3a5c0c7626e68b69de1df88dd9d5430d8919548b1dd21fc65f4e602b6a0e1fed96e931ad8953b30f84eaf86b630a104d5f296afd9196c865134e9f93ccafd17abcb2b2fad3d7c379cd4b7f2382b30af940474665eef0e0817e322cbaed4ff5607e7970a8b5292313a9594e5ad6878cfb8cd74e9c498dcc63510e7c28d931ff70253c602ab5cd2d600580ff642f68aabf7a3643f1c7af8a41e65310311ea43c75e95f8370ba5a6ac3cb0065d599d79e4d44f0591135a87245eaa7866f49046e764facfaddff76c5759fb7e58c215dd446f8a81ff4b8e48154e6840c38cd961b9b9dfcd55fd605880bdb8816d877fe1a53237b7a3e056f60476ef3ae607725eab95cf03290fda825d9db7ae0262ecfda3370e5799ea77dce227ed43316cbaca2bf61217151d703ad6801add7891d374353de6bedbf63c69bf33eff12c937df5300f52bfe07f7dc12f197e7aa071a76e0d2e3eba64f99737a8fc0f413b143c8a068e64fd7c0767094b46945ccb76ca3591c0f7cf02caf00254eec04585a8b9e38d3125283c3932fa6ea02999cde821a534272b267df5be0aa822a18edbd174bba9262d0f43a6870b2a5e95e8e673a00b7de8a0acaa0f38d78523564b7dd045c151e5c072f6e8d4b179eb36d7775d3f55523331527c1af2b623b4c894da1847a3bf9ace1eff733eb1dd0a04c09d8b378e9abbd00ffdb9d9bc8d73fd4977b8271240d1ddcda20bf41e2402e2f3085dd9ccd4ac881455a22d46cf9637ab93fcb3e4bdea1facb4f10fcbcd96fa21ec295837c56148dcad04c34a15db5aa2a9b0b4098493682e9d536acce9150cdbcfa62015c43473d58e5fb1f30adb8905b90a4426c81abdb345696f21da4bd210000000775500fe3a11d75bbd8a575414493dd05e9089d78918012e60f09610f1d957fc6724bc66eb0f0ecaaf9d040e31cd61531b5b950991637d97ec4aebbdd68efef4fa42b984809bf91e21b1b767d8550f0ed2d957fc61db16b5bcb2965436e5e15b76bc299f66f30d459eca6642eba5b5068cbdb38aa87def567852f1adce0d08175390ad6b1e9db4eaf8a07c11fdc7e68bbeb66afa3916aca2b7e9366cea55c60d643ddae869ef53e95a5e24866168c106f6ed019c0b120417c64b479bd973077c1543ca6242a05abc1d48e778eaaa3b3bd5e45bc9d569f372189309aa91a927ab31f67daf8b45a5947db1149a9ff29a4972ea03b0b238bde23599b4068f4075f02bce308631ad3b4a00babb5fef7a03a6a335a543e10e360824272d7d17b9f169f1a9d39e941c61da753842870f3d058192ba9b808376e08a5879c077ee8fca7228f96cbb6d694d6bc10be0cf5b718389378115e38943a57716e5d98041c4a6b93f40e2a781728d98d9965784f7404dc2fc7b63e3c8af12992afe5322284fed577a9e9c866a590332436b08fb783891cf1cc7c7b4753d24e23feb7046f90aa3bb9ec1e30ed1dfcc1f22e78ee63e648ed3bf949bc04e47f410a3441d614b912a8e7aa21ffbb15fa2f3261cddac3758c6f5a54fecf3153d7e168c0aeed75c91cbef8 + +pk = 000000010000000700000003a61d708a980acafcb08bf59ee41d84fbac8fb29c8713a2d9ca6f42c2df089c931619b265671140e35027c6428e2cc18a + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W8.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W8.rsp new file mode 100644 index 0000000000..cc7ddaa6d2 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H15_W8.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H15_W8 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 0000000000000000000000047af430445b89d9b8c82509c6d6e14559a7e26488764d076cb6428ec25a95afb01d0fa6b245bcd544909ca29bf1787ea02eb45ad125a5aff76f43fcf8d58c8c92559e4a1f99339a26f66a75296eaef6d9c087606dd3df5987808521b95905e0a6c7119faa2e57df8e1ec02be9d1ce346f32d465eb404e928080dbbbc6f9994bdf9ef72a44948a0f69794401fedab887ba9a8dcf117650c5cb45b239d08b9247dcde09b238a5cfa5fc26aa00f2060e7eda5bd7d5ce5b6037475185b0b2561d8851626b2beebe8f12b1efb24bdb9a86b657893ccbadbee0d04efb421fa494aa1dc926a3666a959313d08358dce4d7ce16b23e36cad0c26e56e2d5b32afa744ed53310fceea855092a45fcd7058568cbe4508d511b8bab52cd30a75d3c97cd1a42e7cc2f16a6242e8e10fb498606556d6e65e2f7d55294560856f706cddaaea7f3d495d4d0c6b655cba91b211b7d79dd9e4cb4e8c44f187ee7de6312c39a99c34590a8f50141c31be1efd6083a8aaf36f5da7eca4f66fdff1d984e764b720bdc830ee4f6c7406c2b0cf0889a00ed51d435f0b31c7b9a10eb8484c64d3d24cac953d38b11c02047d919da39782db070571a9a10658eac751c19eca9df0b0a0f68916ae4830f56d28eec5f18341542bbf2c8652b44ac354326a9b2a854f6326ae920f4f201f5f71a1c698ce69e9964fe7aca73f9080c420fffc8fa3838194ce479c87e6ed5619eab0bd317b84485755a2390ab4b8220d74b73d14087ea334c14f61bb06da084eaa77aa99f13b62758e6a83f9665999b0f86f92c854a1e44b45e5cb5209193025d78bc7e5fd8300c91740b444ae3cd3880bf22927f777d2833eae0d4792b917fae8dda163cf4be2928e8c881d0fbab323a4925657335a5964f2cf295de1d4c1817be9a78e89712accb11e4b02bb02ef55e42832f94b293c732e1164e1254c6597053620fd88b78d884106d98c88f87756656ab1fab40175542c4f716340d485441e9af121860e971eb8c2b26d8f5d262d09376e04c8cbfd79f5c45261cfb6c290563b4ea0b62c6464d40d1ef036a2cbc3e8e9e227c91798fc2018c393ad54a6709a8b13caa03e2c0c8cace8253baef126a4e2900ec69bd79e2a99faf088795b894b09f002e8c33ac189346003372543b186e145f322630883a283b9c31d8f0679b9fddf0b3a551c451bce5f9d6e47cd113894d723accf6ff6a28e37452884244456f55cc89514dc24585b458725595890c809a6e034e69135ce605bba18d813a3f68f0a91595b3c301e955a283620e88425d3ce747e68d081dcaca159d269adfdd8901920916ac8dc652fd2b019d86342d1b92e3e8dacae938fc14bc775021a8faac81f5722446c8e9715e23ce5c68a114ad1611a6e146dc80488d4f359537de3b44bd3f1b7ea74d045f6846931bfcf1747e089c75a5ffd2b7cc7adf693a282966d414ce7715fae6064938f7db7006bbd98c70b661f2b82bfe5dc4d30a9d7763e4be9bfefbc63bb7c5d4c8da6c9adf6a9e1f20025bef2564fa87886feed6789d555ebee11bc812660b5e5b4b54c196eea96f693324ff20646e1e4dba9400000007f656672dea662ec5bcc26a23487368222eade00324f8f5f72c9111c474af6995e54f45a1ea3ede6d95a73d863b1491982f23f2ecada075a63512600c7661590ea4097241a052c5bcad87ba7858e9d5458a9a7627c06ffb3a7351aa34e7654ea893deced8e5736374ad7a3efae2331d3f4ccfa90ba46871258a920ad200f575b755e977555f8480b3b59e1e5aca7300654b78a56befe6cbc8f7194ef7b451e09644d4220ddb8c52ddb9029d220bc3794a26581e2e1dab769184b502f32141242b0f73f608ecea7f3915e7e4730a99dca80a672cd4ee902b64e15ab4292e265431012040373192b3579d916b8cb20f746c512c065eed493dc15d7af1a7836caa481a3a0369373debf8061bc276f8fe6cdf6062c607457bb08653baad184ce8dc6262114e566eb3e6917a12977028a252d27b4d20f88a0157dd5bcda24fb14d9b55a4663782d6ba567f424acfcdaa1ef74e3b4467f42f78cb1a75e5df72d2f3f1f8b027252d2598fa3cfe6cb30db132eee876479f7de10a3988bf5f9f828bb34cd497307f92d16d14ea5041dcb7223099850a79f6411dd01eae4d04a5a029c6c32f728f778728492ff47cd2867a830a0c68db065021b163470ec315ac84d0f1086b841651ed5101170aa822dc63cd76d198a44d50ca755cc39d0cc421b9923ff4e2 + +pk = 000000010000000700000004ee75d92a6e0f472dfff23ae76e330d6175dc24edee5b25641c195c2c60ddbfd9382942405a37f4bb4b3bac9806603507 + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W1.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W1.rsp new file mode 100644 index 0000000000..b9d272dd0d --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W1.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H20_W1 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 000000000000000000000001c0228b6816e9c280638c69e725851f996df55bfaa61141788b213464e517bcfae1e2e52bccdd49fb616c682c3feff0257c25f758fb41e031b0de1999c68856c95de7f94489ff58f275cc6ae9084c0224c65f015b6a370965e4a16953f311b2cb2020f5d7fd649c2535d47409f7144817fcb8e3cc6e4faea1a4e49fe32af89087f7c992578df860af90f4e1357c3be9d05fc5b2dcd23840e708847d65433412df9f238afa72c6a7561b917f3e3313e44628daaed4663206a63a39d8e5eb2306857bb29f7667394937e7a9a7a1b3ab5e231046efb97028f0ac6bab86e2637c46bf164bcfe7d8613d9aeac631a3af401f562b7e6b24473e7c22d7030d27bed9ca721119e1b0ea2b195fe3f9b2abbb0ff03cd3fd666ce0d1cb94ade5a8b189be3bd888a21f41e5f9ade9ec1c377d047553185aad657609bd4356936c60ae1eb29ad56ff4de54b79a9027ab406e9ce8f4b5aae8fc4ee3a401950df35b3376394869abfa8276328de1e2b4d17e8d3ffa1ccdfe80c808514401def95d73c87c9af8e301b03ee17ed3a6d3a6a82664ba846600b9b2482a009cd1aaa1dfc319ee98e98619c91785a6f404508748205992e12f115a0f35640598241a5c320151d3d7568385d79cd8e7fecfa570538ad82fb1a5aed8fb13310f1791b9b885d638c182f148b9a035cd4774f303828a534c33590d6aa4cac1a8f51717694662f0995912ff63856179479c35e93fdcc079c3a7ee4ad220417be72d2634d2768103b5c1c9c7af1cf957cc89720fdd004da77a1e2fe9cff04aedc64b13f5a509b8810167aa2014a4036a89f5b4e03f72348882adf6b9aade977b6a61b0cfa0a789812c4086b7c1d0ad78fb0ceb59e246e06caae90011cdda63af047d4eeca24d631f72cb83cdf52d41814101af0d0c6261b034a9a5588945f046616f35049093ea66ca788cf7cefa41de218915ef934ce4c2c883a1f44682bc450fe8e78c5616e4598443611de11394d463744e3896f9de8c63af0e6caa11f4c9f1668f31e43fc7b78803b089f05314f781cb9c60f29f65f03fedc199f0f953d8f120b189977d028160b15b0607898722709cba176df3441894959dde46c52cf78987bf102b1ca44290efd51ad37fe969b2177e24983c4bd7569723c4c13ddef10222fe9277346e67db8ea3c7eb11e598044d514faf74f34c25e3ea6891c0a1ba4b91f1f0ae79d5a36174c342bc58e5dbe8840b4aea026c4353445b1068b29dc6d42632c2742606615b3c94116694e5051ceb193c6d10446f3529e513c2ac81e3e69e56db86dd17672eea3e6a4bd35dd8be87919a853694b65f439003e4631ee6a2ecf1e783bca8e87c5fd232ebb068fbef64ed41eb2e0c1f6ee536c23010574a23d5265bafbe40e6cac639469432d926caf4b3c3f9e04a4cc232b595777353f00ab2efac0a3d1175c1eeb9d9b160f7af3d2859e17efbf7dd5a3a9de48e27533728161ecd5880e6ac0865b4e1f2a5c517c449e7f336546655ad546d51d77b98f65290b003a89fd7f187f72daabb36010898709f85b959600f8f92323788fbba6e4d8c10c352f13dab5f1ad2dc5bfb3753b4b7f22207a8a591f1e291c02ae53b3c5d593238686907792ffb6118d162f8e8a884b8bf091f5a788250231aa5660f87ade9aaf7e1e87dc2fffaea7afcf584e6fba8cc8674b405921d32722f34002a0ef915e0c313c36b1e3ee600155ccbb0c09536256d83662896c4dde681747289dec9c9bada62312df7e69f6140b036a45801405163a7aafce19c642ff9bbdd807189fbbe5c4cd7490cf291010d4d3e7ff0713c611a3427a28782456c09faf1c40f76157a39adf0b805ea40070b08403821e416444f904e12d243cd2d92f026dc6cb4b9bdb6227ffd4e97ed1de4f7c23e1670a51710b60478ccadca849aba66871020d799f3a5ea4087fa0246ddaad1d4e7e6355076bd59a1c02822aaf12d1fb63a5648cbe597d839c142cb14b0f1998ef266a35ba5eec1f26e7f6587425cb3ffc0be475d56446a45bcfc45b781c1a8c32c98eecf271242a0c69ae67f01e6ec4df033b574ab143782ce393de71bcc0db84bb72c0319cf089f8707c3926eb0202ce01f08c548f579269e9f32254a6d2f8a83ae6ace7d80ca4aca63e08ad5169997c05b6a809f243f5c1e3dbd9d5fe0dcd3cf77cb17578f09a731d2a3891c8a4496ee62f87d93afbc9ba68039403234cb1e552133a88ae9c644c6d8504becbc5f457072cf07ba6a02cf49b22592d1963e01359326e476da37a439fe9c52c001519de2e4228e34c10e99f897749156769512ccb6efff3dea10fada8e1d49924f3c4b0e9f8360f0fc9c680e721f292d2744370674b1780eedc8e7e106024c5ed240dca97b0bc91de1d4e39a3921866785fec13e325ee3042b09e40b804b195eca06b488e53f0ce7dfec718004a5a3f2256b6044e8635cf8642949ea9550c9ed9ddecedca7bf886fff103c674ba334aed47c3734e7c0c8cb50f4fb197502886ec02017c18dd94d5df6e404e6312bad153abc8ac5d8c860f3b6d35c8ca1837ff40a35d55b210ee7ff6e9e9efc5617398727cca27768abeb372a19a79db130a5aa7e17dd53805d8c9b5ecf3b33bcabd89ca491c8b0dca65c218f03006c29ab6e145b7f4ce12df7575712a93ae7ab746ecac67358fda8b96b43bb144d15f15206636cc6d5404eb14bbfaafbb9c967a5849b1472a1829dc41e9277ffe2a1252d3346be797fdd6be25a203006fbeb5d4c44e2ac95e9066838d199f2c5fce7d6ed825851b6ba51d319eb50d7379edcf054d1620ac4d9c74f0a9c3339f69627ff961be41a603423fd5b23c8fd42120ff6ef745d72a8b82528edd42e0ab00a1bef3440bd671312a4c134f5d1e25314043c48296910cc4084dafdb0b392526b68d79c7a3cebc01300243e5de21a317e53f09e4b65872d769c19b1aa72768b3298496d5ab64bfc993c4ad21a25f5864d53d8ebd1d7cfaaa7ac12fa517af42c4e1d874ca356bb4d40a55a3276fe42ff468bd45618342baf4bdabff943b76a9822104207987d9278fde73e031e848183e11a85580aa99538ba1f69fe18f7a36e38caa69982bf62c67991c37632fa6522352776fec155f55e134b64e6b688a3b0734634a99b545aec48641ffc243ca9e6d83b203f6bd529010b99790779f5463c7ae521324cfb004d2df83881552215168efb59ec495d425f5d51f6c25eb4a4eb066f45fb754e7e1d869981d4ccb46b54554ff41f3a7228c07bd8ac2b4cc7f21a7b59007eab643581e89340910dc1e966c93e2b16f6b42d6638a95ccb1456225c4e1f16e9b81c6ad1c681a7dba004f60f312b15a34958b00198e19b351760ef7f54137096af6ee388cd3431e184f3fec8527fe3a9dffbe70f4bdf688ac845699c652f6c70c588d4ca1599e8274a15843d77f82b34c6f85571b565d485017b35e05da22b8428278e97dd2ea96ae4961ffe02dded0f1026af739484eb97a259c7a95c367e5408d527ed08f7e1d485ab7b6e806a6687c7bb4bcdb5ee6815fe38e83ba6380905902bf2a19f26e3811168544b68476dd6402a2ca14f625b0150ca18fce52444a93ed0004cd60f013e68f5d01335eccf3be61ac5cff0b67f876db0368a779f98d81d0f451bc353cbbe57d6d54dc450582f47c3fc626eadefb971f6b570ab943d02ccb016e90ac926ba73afb1d4c03f55b355143aa9356ac9821c53e2b6552369c5607b05cc2ecbf3a522cf2c442cf1341c42e06517f7191a7195f2e80f93d78b4e6ec0d65ccaf946b2e95d1e58e19d4601b85a8630a5d44cef2439eaa4437a99e743d5fcefe8f204fe3a02d080b1146423d08cbaa1eb46ca0ee414db14e9aa81028ab1ad4f760089c84e83ab5bf786ac9d8343de08a7f419b2f27bdec69c4dd36c905880b13c90edec09a4dc10cdcf7e045a7700c538837895383bfad6fa0f3820cc147dfcb0c649ad62cf79f97447b2e8001f68e0c59639f2c5e5ccdc7c8c8028cc528cd979a55eb3ae4aa9716ae9b8629574c37bfd9790f6027bc7e3053aa580e5af824199d14bd0c0f00dfcab665bd255c6eb367e6072b4eafbb68e1310eabb0be06493a542bd394c106a52741030e20d25ac1956485e4967fb8d5cd21a4e9165273beb2853d8c85de85a68771e87f57232eb2e600cd912a41da7c56ea0ebedf12db3b160e456f584ea870f13f973d7ceb8069a96dea7fb355d3ea077ef5949ff71a8f33b1e2d2b71d7f6b671da32ca60fd100e1261319bcc54eff8e9602ba4a5e5df945203b3112764baefd20154e662f8e0738ce867e4e8c13ecde81750981ab29c366a9709df04f5e3a425801125ece6029637d0dc7a15a180eaa22bd6105b6a774e306111ccbb4631316965aa61b9b51821c0d1bf77ab7f8227f60b9209e418fc90263536b5f616bfa23285a4054a9302aec6073d4eedd896415a4a6afb20b406e51914ed1f04fe83fed971e977c89cd01beb90e449ed1270e61a1dbd13e2b111d232e337d5d0813f1a89950db909b3bc3991cc65c54ad51c07197f3a6887a2d6c3343c7e708d3723037e1a3dcb5c921500224100aa6aef3d877993632cd3cf53702844d22249336cd3bbbf3a75b14958fe79850476ff9a142787484b134cf2689f48b3f3ae9f847f6f3682604fb7b58577093f39e65a2f9bbc4cb041194e62e9909b2104ff2d9520b541780c60cfdbc039758fd3e822648e0aa0de4507834a790a57b7dd3651b337e7757768547d92b9f3a41441f29dccc3d32321e445a3466604a0fd9779202918a172005bfff0e3d3604335de16185023dae0e5b06ee6dd24d5232149b5a2c36619479dc5d24f56a014e73431fa5562f8b4952d132ca77328b94c121fd63dfb071a881a349ddf00689b35066822e35d79203eb8544cca9f46dc860d6931b41e9cfdd0d68befa32ed018a4e40e989d22eaa9cc2b6bdd076a698e555e0ad7eb8d18b559e3bc1f6325a416c4f20c45e91f3537839889255c24498abfdfc62e31a58bb3c4adac6fc06c02ea797181d25a471788606d0b6cfc86ce9c3b648041be48238a76e48d21bc01c6089499d0ad702ee3a8db82c0b07e17801db880477bf51b9b5c5fa042aabc45322c5f2b480f291d77cba252b1b807e317851382bb4b9fbdc818baf23a84bb3e68daca17d0679b3310c70d261a541681d8ae3868aa4c82b35c7f7d341aaba00e23c39721692b4fe9f4b370ed737ba1a1425f1cc7966d06497ab9fc3454d51251c582d2f58ede07cc6ee4f5afed06014a1565b4db5c3291e05ef6724cd426cfcc351abb31791bf23fd02f9d0a94adfce6a5ffd0649dd731b716b650a81aacfbbc0f321e423df0399197f0117987726bbc5066befdf298a2626cdbc9bdfbc8fb4ca1019e10ae713e553689cfd262b0785f89c387223d414083456b14bac872b9d10d244585ae64c247bd49f89bf931b716439d6b62f25934f8115c5bb171878f9f7d8c2cc313ad461be60698074adf388ced446609d8ec6df763711d7c0a6b84f39a1df7b7b91dba55b2836a471c6f4b1fc71c63f2c7a902664931af1d533c28642fe6e1e7213f896b96445a66c02a2d18cab936298e49c7475cad39727ed018ec06abcd7f127899d6eb3c04fae1ecb4d898e31587cbca97c5ccaf072aa3b6687ec73049a838d39fc0eb23c9fb4e7f3cb9bc8ff59035948ba51e1b6227616e07ec238bf73e62778ade666ebaaf9ca1fc8f75061a274f05a81b453a82919626a5b4806bc90fa9e67759c393b2dd01e4355256f675726d0b427efaf9249d8a65597d84ca5202a2b25099750c5caecd998b6cc4f096663f2a22408a3c30a01a1a55576dfea2248ce9fe192d14d2c7847f331ffc55facc83ae63de3f06ed4da61a680f5398ef17de35f839c00561430d6d5f954045fe73cf4e4d5b5f7a6da31bebc22e7efdc09d2365e16fdf4005657132986a8b00a3e42803a0e7c5536b1e676969d710f1edae0bb10886410939aff6cfe873103c170178b3767c82c7bd517c2a4c9ef780b407c4d793bd37cd30841bd4bf92cad75c92d42b523f274ba5a5e70d73a7fcf4fac4096cc33f5c1fd414d98592f1dda66038dd43e279c4cfe53a7491151e534fcf9a0dffe6d8ab9816b71909d31172133a8688e7f6c686ba9cac6c3b5c3b97349c6d1d35159e065f8eec03ea00dc13b8a3aca6a214e0dd84784d8ca3bd7ba82f3e8b72fe9e795eddb1e40b892d22e678b821bfca547e39cac1d0ec79f41cfc838e12246a0d4afd25310cd8978511fd1350fb537985f8492dba75192395364f6139b1e6920ba5f798e4f856e4f43f1befd17efffe5e53e31c7ff03cc78dce7b262e939b8bc37a8c364272806d3c726c0b30db4d3604bf5511771b4c14cd17a15afa7a25c85427d3aed70b1f54dd6227ab2d134a5118decf9dd63f31f20f19c82bef4dcade144de5caa366ee7fd56d77850e6f49a302f4f3e4daea513985c2c6a56b9ef68b1150da5445fc7ed014f2630193640b0c54cf30e6db14c229639650e90131d8c2074551d9bffeeff5005293add6166581651bae5db6d0ece72d6393cc3216128b5161598e170093245a1e068b5b3b0e87991eb06622fc52796c79970ff7b813b952ebea86373377a7decb8de35fee87e00d7ae758165f2b244ec85aa96eceae5e37021958afbb50e81a9553b6358003f042936d15536ecb57d15846413cbedbc124c01777f0973954c7d93af230716526eba5bd84f0e35050c74b075023759b71074bc09a77dc1f9715cbd8858bd64068b376fca1b28e12f9644d314a31ba2a54f0a9119a04bd3ac40beff7d79d110a9861b5362b157dd5364fe9b778ba940aa1bfbfd88e9eca65b6f9cb6ae2823a056897b6fcfa402490801e3dcdca784bde34ca6e02ad1e3c33a2a21e8d4990d52ebb363119c30de6c6e882bdeabcec6b3e9fe55b5c2acbcd1ee39c4800d33266723b7fbfe3b2714d6f5de746fef266d692f0748906caedda4e7366dc8e515bfbe033044ef6694731f1fdac5f732498469033fb0e89e6a6003ba11eb2e75d131542c4ea9ce728282db5dd20254d9814e91dc8efeb3f11467c9410134a7d8f10201c6d6a6dd76909524a24138da4afade14c662ccd901f076c92321e2c55375900668eaca39aed979f25ecc0f646d5ecf7d276369b9c400c64abb86a086f8a7fbc87c9862ddbfa8e752c125927d52ddcb177488ea6dd486c9f4cff3979cd2a7ce422a1ab0cc5f50d9b04ec03c3aaad923c97dba8702fa573f66c3cfe48dd162b329ef8176f254292dd48197b67bfa3c2d4762d1bbad6b713b5da53425d2fc2ae192a5936692927c4d8b4528a6cadf4db389aa541c5dd217709b5be86d8d680bb408d7bfc3b4b6d74d66a07e7ae19aa4f4ab4977980741f026d79543460856e14c0be10fc7cdc8fb757b4d52072942693ade204e245f6cb7689a8a2ed626d73efea6d52c5f1fb8ee532ad72b069bfada33221785796186303a90620a809c07c051701b7b77882b00e243461bec75f00b82a009f91d26a602157f9199889c54be8e4cfb88488ce52e8ecec906d658228954699a533016e61e6dc2baf01373591945bf42fda64287cda318628e5b1d50f23cc7ddeabb49137d915621d47e8d8674ea4d28d66ca97d92b5a8766701fbe0e456c3c96cb981ad8fefbf7e2bec0e0c6e8416b6b16b92093dbfa70b1f22e5134b437870ebce5105c919ae78bbe11cfbc9f67b9b3a3f32bb7c4b377aa7240d7cb57986a69a7b09af890df89aa302b02dfb1c1890bb12ce2867548c1f82759e48809163b4dbef99b25a0530a379e4a6e9c34323aac76d6d0e2402d9fb5913f69b5a22bf963dd213009b2816f0f9aa40d1a53dcf55bcd4335cb3e4946eb692a997857d3fee5ccd3477f2c10eb7350940394ade01f1a0d4d91be111413b2e3439881a1b79f65b9293b743c9dcd4b125ba5a832b4a40bb0ba3db4f386272c7c197a0e61c33ae0faabe1e77f7be21be7a7c76545d0072d3ec5de25dfba72fea931b527e2753b0dface81fda30a6a2aa7a82508cd0f26c6b2618fe5f79ff649dcfd5c7aae489061d848f49fe3c3c8ba76cd140fa02a83db417fc6c5dbdfbf34b841318f86c7d3a7ffef5d3bb10d33aab4c6b37919bcef9c8b799f9c4ea1d26017a391bdf6b45d5eb1a9996b6236b8ab3296efa5e70b6a13e4fc22b9c0e6b51ffd13c079f05dc91168dd9c745452a57c16b68a138212946f1f70b4ed0334e6001c23bb8304ad95191870f5ee2b25e16c20250446f4c6aac9032f467705beb550c5493abbb9a84d245c4c80f5c6be3f40d8a3067c10a4f647e63ccc8047b1c48a904b2eb4c78755df457d5e09a12236e09097692dc0f5b87c9738fde4a863ff925380b62c5545b326403cf0d0f00a417a4f0e59a1d637833ba1d763427a5df1f291b94890b115cad736b387f106776c5c68258587960663d5bb985b1d13e35bab772046d79d6eecb8bb0417bf1faf6f76ada12f0c9a9a3a1ba15a376d0475a3a4bbe33fd1bee878a112bf7281bdc5b60b126e2e6c1c8ccc8731d0bb924099af1ea3b555fefa367bc9854f804363925c1c497011bc2b47bf938d48220e0e8a916b075cb52b24e4233d688c33eee9b6c00eb6f1c4f78d2dc8d59f759746891a05cd990016a7b9aae3392b23ad4568a0f727f9f73de9bcf66574b381e470d757eee50c9e0a208804da1ce8fb5fc2633723595c89dea8ab17b19f3489b1cc43c4be2d9762fe7f3233ab35bf82a91a097dce2957cb3ed7d2417fd5164919b8f3a9e9ba064a194c1b69d999e9334cd6715a5ff1d5f653d2389e1f10f9c2841bdbb5d1241489dafba462b0aee76eac30dea6f20625bcf7958245009e839c325774023e8da431c3863fda3667836678be1c2297c2e41d2620109299dcb1d5b1dc2e5b4c45dbcba88cccdb33b962f5fcf19f54b6a41349f2e6725be606bc89aef7ff6a8e19d01459e007658d5d9a1576b22edefcbfa1d3a58fd654f17d9737108db5851f7bc3712414df1490ef7956ef109138214bc1f167522949c33b7138a9df39cabcba58701be56a2f9faf9b00c1d8c20fcc3e5188580a4cc3b1c175e2ef9ccff2fc1feaf3fced006502e732102d4f466e3c67b2deb7de46d02b098bf633306f08b78726c420f8d2a879f9ef7fe28fd09b4933a21e51b9264caffaf819f90dfe7f8b08698429833628bbde882f6efb266858ac67c297eb3c7dcd4a129f40714dfde897b996846c578c3515fb5f1a6047bddab51f6c3bb65bb4a7dd8176795a23309a3c79755138db59c4d102446114146b209103586d007292e8ff01eeae492283470fb8ce36a9862b476107e96c66f4422afdfdc1d9a9c5bd43fb29d20ab2b883d02713e7732dd58c729fe46b006718b69b264c13dc4096797a846e2c9e5fd4db0237801d9fed1ea104f46f978c6b040f627ba5cdd9e175d158bda4540eb9b775c17feeb5e2b43776ef351b649209ebc8d7e24caced0b68f6c83492405732c36538a706343f562c2a773d9045f6d809257f5a622772a104ab91b9819feb06a9c7c7689b046dfb6531bc46ca59af211eab34fc3a5abb0e97107178e33bbb9a5a763288a0eef707d6a450d399175f3df009efb17a10dfa99c96cbf5220546d280c43ee2bfab372e33fc7963bc9ba34fb9f249af84e10052e2a1fb3938f47fd464c6bc23b484ee240046841062b66141e9f791e5f4b7296abfd557947dd40c19404b03edf37e3574b2daaff918848f8e6e42fe167968a15c422dfc357d25825dae7d85921fe6235b64b2287df01686e469f11908eca1c79b0c0bf7dd852d959a89e33d83ecc227303eb6cb96d01e42aac20700f5b6772fbd03d838787c8124da272dbaf483ca6f74292a2b94c412a3fbeed8b027d4b49dd4eefc3c552bbcba74dd849622eb2c97340335dae7c58867e7f5b6f53a5baa4b5b27828916d74e1ef4a5cb0b571a52122c442fbffb76be605470c08cbbd06db2c829500bad3942b366108e2669a803ab88463702591ac552d6b20ff3ed8ae44c8d72bae401a2e4891ba6f68fa9ebc5e1c9ca0dea44a605da9a8977a5ef9453cc9a07b022726c8c87072fff9b5589a223f0c74707ec7e963e0487883a535d811cd8329fca2c8b536bb404761da5eecd4c6cfc8d4feab27340c29ae44b15114fcaf02a6bc8271383e697a1c8680b21ce4e22a961572da213dca40db8bfe68469afeb109ce524a0b906799dbaf4bc98cb41d5ce14e38320a9a3289f37e15dcab9dd07767b43447c6c04c65004ab47b4a03e652287325d313cf8ae129a40ff473bb472719feb37255707599d8b5b0e52d5ef56e0f4858c15fd7cd53aca5a36e77c3523e4c4f8028541770058b5d446091e6e67f6054fc11bc0b67ff07c2e8b3eee1953c70cf379a4344d1ff0277d0c3cddc749b6d92217d0eeea38c669d27ed521028e342daff82a5efb66b74c4fc65ff31c517236f9294b91ab8d08525ceb6f4f7a2ff6f812d75218337a5ce550131fb4bcf00a600f2e3e5c09709f6c801cb93af2da05601dcc73e47b6e46cfb011562132567a6c91362bf9db2710bcfbad097e81a3e35e3c53efcfed080760d93b3e0dffa96c4b16cf72ddc0d62ca91a4116a69536a22afeffcb7b1dbd79757f340fe7ff7e721044153e4e5f353a259d8e1546a98b7da7a039332c4118e0196a31c03077adb6b764fe9b34eb31b35f983248556fb5744d40e090a955759709df56a1e469431a510351f74c30a638c82b37b5555746ca1eb4176b1ac8ea8d6fa8f9cf5441d670d3e0347976be0d524b2b04c6657978c5eac4f14bd7520434e7082cb17edf5df97810497fd1ac5992824c8c52be2dc2ff130f3de8788a6a2aaa843a040592e268cac01a1f9bccfe30d7906af9ddef9c35435b1f18446c6a1221f88c904150694cfb01764ffb020e3a76efbf9cc178264b4ac5fb532594278e67daaa06e5f968f177a4a546a4d424dd4092d1635e9220c60d608dbfd55baadc6864a519ef31641bccc870a5bbc8430c779911b171e1e445f25f2bf79f14eda57235e2bf857d301ede525c8b5927b05f9a745e4ebcfe85c0a69af2a6639cda72c75fb1080c24cf602b16f7ac7c39f5c62900b5a7c3e3c864d6ab7d0acf6c03c16c75db3fd9064b67de88ebbd335b051ada9c5fd1c96d907c58adfc3a9e18d7e5e5ed50ac942d140d418c3697731a505e53923ca12caf0b9323d12df0f2bfd4b1f1d6f1534e55b6d0dbb94f3e74b710f6bf1cdfff0cbd6af49de716d89da6b136c88d8ea2ae82f908ff679aaa2c294dbdf5ee5ac73d0abf22a040238314eac35aedfebd49cc52f6f54c9ebe8299627ec1058cd82b99a0cb269852ddc8d9c520bfef9a339322be240fdc58d8b7eb2fd38206729255e2d5174e3acc3c88e144d039f25b6da38255a587d16be6929c9cfc2ddd08a6bd41a6a3e54bc3571a1ab1b2e2797fbfe4e3d469383de2cc4de2e0e6bfae99d97a936e1d354c92f93be90131397f35384f2889db4e949709a00e5703d80361c88321233e2eee03fdff19d012967351fd7610d0b0b38f21116ebc46abc56d7181e7dcbbb10de6479981ad536d9d9b8a817511f949b4322c20f0b40600bef17fc572653a1a14787a2042bf1453bfc0d9aa878ee7e1e5842be2d51803740e203d3530791b0ff6578904f90f094d06d9077d6488995cb37f075779b3c3425f3bb8fdd2be06ef877a730faf45d4af78e1c5b537f089ddfa9b19d17ec8a3051a1165f77029f2b03634723b24f7dd4cadb229f59c6a5fe15e1d07c582909d460f34ffa275838b0bc5dea8bfd0b95ea75ddb1732179120877064a2b91deca0163b96059a66467262e0544344681f547dfb6ea22828a8e18def5527ef4603f3641954da0d7554a58aac51b4898505413f84e2d0a387d86781370642ceb069a9451f35590fe6cc5edb02df40a11fb494c0c5e9c6d9690f699e1486ea14e053b6f2fea5b44bfe1488ed8ccf51614780880d22cca18494983f8012669a829d565a5652bbe2132d1954815c038e9a34abedc940aa10e3088a659300000008c8f1e9392a53c8ce2ea53d83626ee04031d76b225f2defb2dc8e3d78893e9a6613e02d1d2a36e2d9a8bed878ed678d74890868b489e5d9d1304036211350bb64ed0c11784af90af64dbf003dc210e2976fbaf867a9a2cfcdcabac0e9c4ae2a48e086855d5b3d6b28639f43a483bb27d17e883a1150b9ae2fdf1be6a31059182847f5d1e4c099750b3c7f3c2dd28d85ef383124d035129b83bfa588a507ce81514671f67958d1647240fb164997ca028b0630d6468898803d914c64376b22d1cb957c7b0d872930fb4a1820ce0a9928dc8896dad09e8f7266c4567426a909e1c54e39cb9cbf3a4fb612681e5e263e3350dad995fac91f22730d7d57bdedc09f1521b807f4e51f306b9c7af27c55db874f9b95a7c816b954d169ee4982963c0c7f3459510e311bad9381889f3b0a8b61172cfb8f5e787b8a956fcb9717aade60376547e8cf44e0e8d6e661078f63d5708ce36800ac3579d6dbfeeaa70c95e2a92b2e59e8ad96a2535054bb72cd58882fdafa350cf342d73e0e39a449e97849c61d3367cf7bdd18b0e7632f7d00a12ebc44c449f5941bd4f5751f429c578173dde171efdffc750a4bcc9cbe1e038a8b613a77c22ed876333e69b8e39742d11da0fdc014058741156912771c9b6687f6f1d37b2265b49ce914950fda134a5e90f7ad4677b0b5f75536837cdb8871383065333f6b7417487a99179280b413a7636917fac9b0300fbeab9d50243ab02cd3c45432fdffb348abc206e83b3bd85da6f8280c488909e487df8fbb592bfd1850ff2b06d1e520d4b460b5815d1dda2ae095f694881f6a8b49f2284d50c2a4d035331d1e9bdf5d3e7bbc4839aba234453462ad4b8b00b463419fac10612f07dbf2e6d036cdc4fca84f089055ad4c734ec411e4 + +pk = 000000010000000800000001f8142f2273c3495dc1e4bced0300a27839572bc36123d71f3bc6b847841ba4c377bd240deb05ec3ed15ee30f7fca56d3 + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W2.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W2.rsp new file mode 100644 index 0000000000..46b9405c33 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W2.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H20_W2 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 00000000000000000000000270cbc93eaef8347f7c263187859d5aa45969e78fd83aa3da69ea10802942af0cb7d0a433a5b0e39993a0200f7da84e434d0111941b43ea8819da913e0a955d7dd4c05fd2f719ebc987363dbac1f0db8bec4daf210f9aca23e68e5419ba0a0683c96965703529950ec0b563dc7616e7ad0feb9c9098c41ac82352f8f23b49f9c063fee47599a88d2580f3618f95b221998ece2324d10f5c9aca92d0b9b065d29051e41cf8242a5a6ce2562d28e3e8fa29823fb6ed5df3da56195bb01f5fdd7c62a07a3234e280cfb7e855890d7cc6423b1214155683b6a30f7a85dc2eecd4ccdf230899c31e819559786b81b1f7ab30e8a288b971eaa3c483ea0a13e5447fa0c0de47efba3e67e5759608702b094980b13d9a53852c8de6991101310fbaaba8c7b74ded0d53f47005dcf6dcdfe1d154e13308543bcee4e5f91197d9ceb9ffc763016b2a683f5b180990c126dbed2ab5d45c391a152bc7f3fefd088f76777dd6f24b12f3b9283d7108ce1b1d1ca1fa540f7100b62bce0cbfccd71f64f34d540a1d35056887ac069b4f07bde01f07eb2d2603884e396735e91aec35c93bef29fd5201db70e047e938e3ffa307dde005b7803f0699bcff5c0f9b56da1f13f77b6a239c7dca93be5ca1b5eff0534da3a6d22dcbfa312a95769c9b6894a32b5308f559a51e0eb6287d6ba51820b1b2c57fb75b9c073830735a173f3449356d11f4090b6f67c471200430a7a1c6d05158397c413be214ca194880484eef3d8e6072dab6a3e649194979b90e39e1cf243958b614a401ec578b1b6a2c0542a91b06021491c7524d9648dc9d4ff4e8590a2c1cbed9c8be58b29576625488f0caefaffef05f9b47fd9ca320d5338ae59391b24b981c492614861ed5a05c3dc23731d363b5d0a4efa8cee7f6b809ba89d6c3bcce1ef5b23b47dbec62d76cc30e7402b93954aa3ce710413a45b810274fb7a7ce5044fd4afb87706616997ad853c5bb0a2bc202e4b1f252cd2e5ae72742906bc36c2a8d129718678535b0bc9ffb269e1e74d5f2a37931d49add7bf397f4d62013fc7cd0e5af68d3df77eb74128119ca903f6ac8222d0492c1ec7f11f4220eaa3f1164b7322951ac2983397b11de0fe0b915a236b70f317c28e9ec458956cc7d62157f7fc7ad179cee31a6e0c07d09d99f65a8d2b1bf84a9b55d085f84aa94086d80f4045c11a67f8df1646df47735ad026b6db5ff769fb946caeb02829e3e11aeb0ed3e1a16be21cafdc66fb5d3bb8b133830209db4ad5b2c2e9935af16618001a714a098472d291f9dcb8949254a7529d654fb4460c14c88e55b966540ec4b22a19513665f02f00d560f586d08242a63a0f192832cf897e4a1587569de114ae85ce9263ab308a3a8fa2a62a0de24efed2193953c53c69d710e340acde7c1851dbe371954a59da03543f854a84f7aae5a3d50e2be068d0584199bdd81047d7adbc975d021202f97032217a3e4dc8398245b2c0b203845565c4f025df5eaa6347608a09462c81a134e32d5a0ef7cb4c464f8ce2ad0aa5cdb0d26a86ccae4bb1960b71eaf7075a402addbff18d3da51390f28f088fc3b0e8b625cf2bd082177ca20d7421fc38b44bdf73eaba440fb272850ed0461d544022807e79a45de86accbc3695d23d118a43439afe3e4f116bb306deee09ff7206e85352aa70b5cc8eba70f259b22c90d3084722ee4fabc67c92808140d1892439691f9a0afe9c5f3a2dedaf6ab211c5b29ef0e4fa9825ce11568549823d0ebbd36a4ca2d88f9344b2d20f7112f836768ad31ffe694419dbb35ce1a304944ea05ddfbb33f118290313a9847031e6f8a2b51ec3379b66fc4573ed1b2f6091d24156b44220d5fabe5b7389d7f8777a51c74fcb314c8a9dced4ddb0a551628647bf1d1a0ed665abe77dde46976e101cd7802b803035175ea7d4b57c1511f258b1878d4329d7530a9db0014d35d3b03339947a529ec16da327f61bb22994a50f1e274217c606f55dd959893cce0f0c471e535c2376437c72192dd783ea73cd7aed94a3120bfd0f315d61891a716fe67dcf44c5a50d8f82dd4edbd21c0fd5fc3e4a9ae32ee3cf138a2b9646eca7ba7fb5b1814a0162ecdcfd4b93d8d4d3316dd99db0df390050423b100edd5dc4f478fb930bb9e1ce7e85b62794e99b5f46ba96b9b734397777f1274998ec77817d704abbc6195283165b961d730e55c2c44306a6753bc42bfaf25939d22b3a4ac307c16ca28e260ec83615b934eba5a17a58bfd1be8cb4e336a68613b56ea8fceaade54afc2f87b2658a7b3a8e0c9e9bc76a8a012f2e15ab6ca59c9df0463fe2bbc594bd756f2516bacd04a423d219b22cd88144c0a4e4bca914a5c4e575a049dea608411afcaeae51f680743610b5d6d05d8fba39e5126ca1f0aa3a0bf7283b46099cd4f9337f354ac730f020ccaf0e33644807d72898b726ebdb20eb5078288800b3204dc58679b4658106fbe45b9324fe1da13239189e7aa068bbafaf36f6bfedcb6846464939ff03d0eea29f1464b90502bd4325d49c643ad5a4d51e7892dcc00d0f7d43e57511d2556424adebac0e2a0d6a053d0aba09bd7351638a05555c6fb7f91a5262ec8a326bf0b7b4392e06e479a87662b7b3b2bc5066e689aa2917509a07f74983714731e785104b81e9c5ccc734f3e47c0980001e1befca30e4a447ab317c7b139cb88f3e4c1819600713b4a45d3c292d2982a46be517dc3029a739e65dd107bdcdca86a6962f8fa7e5de507e4352938942ab99b19fbd95fadbfdad169807be9f8d9c9dc1c1ac4a530965a6abac63baec409b6d834ada0fcc58be2d3ec519d649b13502a98705535b5f841f4011bebd87237b2ade344a2dc63142e5390fb620e24b1f9504ca78fee0d2432e186e9efb7dbc3aeec617e3af88492492f6a70ff4bc2006e0ffa9020fdb386dc30a576f3a06b46cb43f8d5b4d6e2f691b7a7c471ec7c6f5c047595a8c5acd8d6194bf5fa500e362697266ccf0ab2621983013dd2984e8d7ef562a77cef437c1d68b22a522eb887fc39874d3579a262baad48a69a54f5523180d46da0a5c30ac87d79fed8a3bb1392cec27eec881192c63fd62f3624145a69ef54ff95979037c0bc9dfb70cce5b73ae6da2db0411d140c244d148532f02eebe97f4b5259dab9c01bd84bd9660d854a3bb7cb613725ce9e8224b14c1dd2325e8f44d30929700f0c95af1ba875336dea67471f650fc77922f3c8c49be00669506dc94a968c1f6ae58f5f2e61fad22760eadaf1bc70fc78fc82221ed6d6dd029563713daf4cc64f978fbceeed2d31113399922c48fa071297e44659484b2ccb98e0ad94735dfcd5b4acf7a80953b41b6c0d9c865cec6c5decb3669eeb8611b24b806ba7578074cce2299eab8fca8254841188fb9f06d0326009f13694552c34e9e54d79550362fe49ba7761385d3a4d092b77e20ba3bf1d1413c2fe0ffb29693b60f97643efd05a8a9e5165e13a9caed226a3a14ea37c7c54c37eb0197da7aca429da04a62cf4832702937d447c1a32fdbf3bab57727ad87bd8352f6ee1ed94b0808aa9de1feb8ed3325c53e1a440674dc7ee3ba523645a605d484a3909f83ab6651eabb5a5196ee9e9e1350af9370325d11a4f9c6a4cff9821435a7fb6be95dfcd6ec25294ba847cebead8d3cae3c388d58c04adcf545db68b983061962d2865bc9217f4c3b4890e02ecbe4300c55672c3f31ab3ab86175908914f852570d84dcacd03beba7eb379727dea0e117a5e6b33f760bd219e1cefa584a96931c873d21db1b529960d631dddbcfb799775d411f2c81f83368844557405e4da95a849eaa73da7b1f433a117ced5880abaf8f3b37e36e245ada21af768a4598572d729dda11aa62eb4af07cf1b467b954cbbe7fa1b0d0d92e1ca25e169189a144a9aebf1e1d13278fcb0ab4023c7b086acb5aa8aa3a948c189564a7ba8e3d4409fdb2f4610e9d16c44e4fcdc06d1a66dc96c645698bcaf4a1d2da65c5bbfa47d05f6e5234154f53c38db9af4828c6310e6d72469b746443bae8c5c37374b1626b842c46399508839e6b1b208e47e749ce6722e0dc966783944ecd8ae9bc4f959a704252b05caa70d4076de26f1648badacab530ad2920b5627fe558c9cbbdc4d583900ea33afdb995444adb283ef80979ef6dbfca07fb39b965a4c6aee65250d43460acad5547dbc62693993e9d28c91b0267d9df93e1cf375b0807b1f61d538c1ec089532f873c3dfb723300b8d3c2ce9189208bff8b0776a61625e639486503b3bb850a950ddb940c6161f67f904c482b423f5e63f5f9fa5de88204b2eff2d719a880bec7c882765918b33393f4bd3222010ebc37fd1b7c0c674ef850653b22f205d2a9005ba6bf5d9a33ca3fe0d6eab3e19d3bf4eb28ec5c55e7e9ea7c4e1b036deb668fa4a352b5f9ff0ab8f42ab110dc006b6c75249e3fd2f089b10423d592e8959cf275f2fba0f6dda4838526b81320e49bad5dbdce9541beee5e70377e03b54eab41fa04d65a2141d763f3bc3d2dacfe013b36940979d82070e4f3c5e6fdcdf4af93939f9af71224d3a3283dd21634a2062f98f4c5522ae34aacf773a5611fdad906e30598f51e27c052411e6ce1c7a755fde2dd530251c1f4de1164ab285658bb5a674951767e5bab6eefbed65de00ba4a5d88a2d30234215e73035f2a84d4468d827d3dff51aab1bc7e85e974b36268d139a0b9ceccf8e91c3301ac1fc31843b0edbf62f31306dc2e4c5104bcd6b7243d6578cec97f8c60e922a45e9f1a4ba06b20a0f2c49f8e7a3638ba6f6618c3f56d3425eaa8f14f76bcd6f7212a141aab63a3af49da3dd81f16b247ad36aeb7f4deb928c7804d1be0cd1721c0e0451dbf1449a52f82a0adb64e8f350117bf1204820c99d1046a8967034730cd3fce7302916a945b5bb6f373e713465130fa3ae1a233f0a412b890a47fa6c75d960894064bdc92cc570344eeda7176a238972a24e0297d7176d6f37e5878355cc151e9f8be423b3ca74be8b46cbdef22aa205c40d03e1d75380a32db764ec8feda089134ca7ae016c92d63565af09b66dd235c0d9148303b5924d44b8b854943093497224c350b112c7a786b4e085a9d7109ac33dc89a6c4d5bd9c9df514c69cae7cf226fca6de7eccf075521f1c929e3416f0ec19a93089d6888b2647415d8cba864ae643ea11402e0f685d1f047dcd43ff8d42e19430c6859aa812c477111e96521f427db2cd8c99c47d1d5c1de91f54219881bfc6e4cea3b4a844fc6180ca622dfcce3dfbaf4c775e3b27b2aaa021dcb99a7e6bb48bc14f969794d08656f7650091a6c15ed9880170328421bb4735205bc20267669fa89ea2301f508c81bc47104d320ea8d754d55f08d88ddff81edd342b7430a54c3406bbf843712137f13f78a1a951d6f4e4277ec4e9c66434f4ff0bcd4095a9ce744d969f7d73336847abf76dcd1023f2e5d92580ea275dc25df9a98165ba863ac31908d3466b03386e5abceab01b64dadac6237e1fab22c59e887ed71716c58e5ca8e88f1fd9f1cbdca0822c9dfb0101ee45fc64744f5a8f3e2c12abe7057e20121eb0141ec4f82a9a917242d4556a59348001243e8df4d272c1d455d05b4e792f8f522f8e5bedc5999bd0f0b79561e85617feba1af0875ae7fdd4f3f9761d279b34b9bc378c1c8d2df99aab19829201a3fa2f13b2d5516a8a3e8104021244fad1f5c13b6ce010b47410542fa9229bb4f7505806419f14764691b42ebc0ba569d3eda081a1f9ba3a6dc9bbedf66f85738eb574fadc183d5c6ac554bde82915193744fd332728779ae0f9ccdb6f9d43fed0b3bba36ab60027f8c29c035b2b50b01768183a288de3caef3e5087660bd1d10eceb17f0daeeb8778f234a57491fa439e646871ebabbb008886105d3ed601b5dca431167c03ee66b5622c9a28e9b415c4d03be006b0f7733a57380ba346c50c8370180eaa179339275c7147afd3884f029af75689ab5a1a7ef98ebf1aeb9fa612f5cacc1530eab1cf4de29cedbf12a1b21cfec2aaa453ef302066f05bc3ab318e23d9654cb86a00000008fbacba04e2608ce5de88939ed3cc5f92631b7a435f695253dbf8e35f0e92dc089d295724a3753e2a821aa454712d3739dcdbad73af25d7e4ac14cce109ee1510d75628951cbed855c82448eed4846e440f7cc824f0960f9eb6452fa955225b2ca657acc7cde4fa0b5057d407b37335492fb69444d00b89eca2d042bd0f839a7de3f0d236ce0fc52bd2ee6e7a10ee1018f47e3f3b8e7fea48886ae18144e5395f16528b67f3d3393ef6390d85c857fc497da24331e8ad8d11ccea2bb1fb7dbcbeda700058268bb61db029ba43f1602c90890222d07c6475102520466dadf30a1955898bab32c91f557534de0c7954b3f4effea63d64d16d2ab75532b1b8010c717106219f38b04fbe7c083e1f764ee72063154cb0042661f48c385eb9d5b0e3f20e002f0757655039feeb3add3517fd32b40833e81466a61d1270297f03ed65906667e0b19f862b37e2d02d98cb563aebadb65e967a26fec2d873b467f16c142b5c4301a935aa25a2011d7c2660b6cabb9940a681d1718944337472a9fed2f24f62009e568d3d7f6dbf2869e8e16b13dd36eddaaa4a7d198d1458351bed134d69c60bf516dfd21783a5025260fae43097e57f2054739763fa9dde8f4f088764facbb54b3547717f8c43fca90ee96b53a6af1fdd143e69031da0d2f76b2b0c6a356f5c15c1c8189c1fe397ece30ab2ab9d68509a234fe2a93f200436275164e0d4ece03dfaa8a3f0fd476f44f52f34990b938a86c07b93950c98d041f3fc68fbd4cca7026e213febc5cbea40f01ceb4e8c6be31f1741c3f708125b19ef3a2df2194e8eeb7d443c19b0731e44c05316f86f0b573378f7cbb30e8766598cf472175425d874b3967453dda75c4f795d8342bde0fd7bb97525a65ce0d7bcff9cb86182 + +pk = 0000000100000008000000027298009a2dad468224314c20395b436b6cd9955b10abbc17538e96f1cd6d55ee948288bf22a0602760b00231a8d71ba0 + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W4.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W4.rsp new file mode 100644 index 0000000000..0d461a43e6 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W4.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H20_W4 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 0000000000000000000000037c43ee18a5df8fbfd9e917f1c48edfdf3bba8def38735c8467489c1392881b827fa292e35aa39f67ca2a2ceb9301d7a592458d8bb115f78241ae487783e50926c43c04ae72ef85993a9a2d8db2139ae7cc95eb1d1cc04840713e0e867f0aa3644179e4411498d0f50c3e149c8849e03979ab92e726ffc2e3be442cbd4d1c9eb8605678e51e613417f33479ea18e3ac3e864c8219554629568da7f5b8ba9d4f3dfdd7f63b4fcaf606467d1f5b326e20c36e45c9f251c08b0116bcb01e3e5cbaa1d5e154ac2ce0e11ec42e81e105244a020773ed094262ee3d609d668b2948a0682e96ec77532d85e899d5f7e07e48b99b7416f27f05408e8704d36251bb5df5568c53df8c3aa7a0b14a7e311f0cb63752610127d73ac0b80733144c93d6de013fdfda6ff4693fbd19e6c7ecead046f1e2c937875f74f1428e3f1f54996b3b47fde49a07b34298b678d0753b9e363ac9e8a777148cf816ecffb458d829a440d983ab9b0d435bf8d98ae71a81a37b7d10f5e001fd0c6a3ff033530f0eb1f155fe96e21637dfc82c9e802070b1c4e008998206e9c04cf3a38f89108b275b5afed4d58b9c34cf4b7d94df20ae5a516e7da4557d53750ead4f760ba82a8e7e217c048acd6ba2ba877825522cdb72e152b31993cfc0fc1df21934cdb80fa088011c62e127b3799a498860108e5f4f8cd6e9fbaeab60b7ea46e84942e354e4065391a6c7039125eaab29dc08cc5bb695ee950bf37cd1d3d83030ba994f280b00d22d48269f05c56ffc54e43c45311bc6dbfb4b53a1df6ee4920a370c894c17fe90e521175bb5ed8bf39987d343e59fafe785e9389daef38de6e863035a3fb630cc2755b58f0d4952cdaa83040c84775faf0314a7d84008ff79239b7f77e3627afd2e868aaf5a73cb3d92f697eb4b880557cfa589fdde3feac0336c7814cd0bb962d96ab5a9a3737cc465e605ccdaf5162c21de0feebd23b6cf9cb0fccce7a1645a66341b7314df7cbf24ac1256ae53d5ac9952de184c1b026b9b2f227591694939f95d1480243488e5a26ed84a628dce33aa884460c0cc3535b73be0dbf4b01608866ac032c19fc1ddf288ee7e2b955c1fc80c1761cd6ce0ed9d6fa3a66723c1f4bfc67b5c2b36269035661a8f10d20dbee8712322d93f6d70c329b5ca914ccc91373f2b809686a5a68ed5bce241112ff1274350219cd10208c51f1b1ba415b61a1bab437e6a75d422f635584a83633ccac0040215df734c6d5e654874f8059a26893183a3d1357e01f2f5522351f945957a0d14c263d5da7602b2168c786c66bc419eb941c1b029ac4ae53b89fecfadfb58ee1aaea9e71287152c180952de7f553599aed4adaf6a6741fd358f2ae0968c027a1f5f175acd951303059cea84a98b70b7ca986709bc2ea405159ac9d50665f25eaba56e0ce2fbc5439df6e5cd08d10d4167030fdbade6eafac433d37eebffc185c9333411d3abe34f5254f1451191c7541352f7daafca626b26716663fb25726e77aee9c1c6ea2de33c1f28c2b6d15cb7addca5bc422d6b06c0e4db832b9ab0f08da4530218d082116a1a0ff9f4563992302b2ba889d04c1375bc15fda2510aa034963121af0cb9be12a68c99d76390c126f6fd7df89f8a38982e7edff991e8d9318a9429dfdab46a54aa9a04018b634079d23a511350e4b0162e628605ad852f0e589730d0f8e09222716bdae6151aed4a62dc3d50e417e9a8817fac017ddb0da99ce08723bf420b6a70d25abcb2914c3997361b5be31e485b4c621ae493729c7f9efb00e5e445f4828629d61d532459f08654531b4bd5da5867745b58a9e608a753e568c931afa3909da2a5dbede3ac7cd52cbf954e9fa26f510476cdaca57fb014b4d9f46cbf4d2450e2c5ad020d189e5d32eb49aec0782de2556403f51ed8ce5f519c2cbd451233f1adb9702918dfad4031ff5604376384a200fd64bc0bd80371cfb896dc56f379b8f3c964d2e57998bf67fc2fe12c88d23ed3bbb267e0b54d1603f833a5588a0458a04521b86d90a56c7e9ed3a8beff5f13a49517a79f270d245fb24fc3dafb1ce0f01f6f15b8e230291d5f6d6f394572a49f9f85d1847b990cb2060b09dcdbff555eaf9961fd5acfbacc64556b77139c177438b8e7a86112c60293eb1c583afbc17de5261eca46b76de8160d5068764c194fcb6a9243396ac5a7a6db9602b3421f8f4f425495d91d5da88eb9aa3036b5749a670d0fc8b40af82515f296057210751d49269d6e86e7cede47534b7b307b39c6ab21fecc37048f4c911112f38ae2cb01a5fe9a2379d37bdb4986a0e40c2db67f529cd3903d41a9157224224661414a9092f906e6fc7b6d60a68d311159107d22d2a15d757f0b4aee8d1a453676f26ba90ba8862b9ae5ea403e6ebee935407d468bd84107c8913592539adc3c65609f859f57770f72d202a903a63ee0778a321e402e036fdcfe4b62d78a67e3330b71efadf9bf2678fb024c75d9ec9591f2c58c08e6543b5fb5427177cda74ac3c0c641308c0562938e30455799bc555f9c0cbbbf12b9b1b7ad907ddf838c86634d3ae4f3b9f9d5d4dea929c75c5af465d17fa96fe88233fa8996cdff1e1cbe21cd5ee75fb3ffbee0f0f15817923588737a6b1647324b9cad29c33414b5f87c7db0b0280bc27dab78b4c8cf137752169d65fa5b9d374fceece83acbfca612847a147a66642d2b25bc19c4e7e86118efef57ef08eba9fd9bd36854f96ae47ec1b7ba8d4e53f97553386d1a117fd6d11eead3d10e58cda7258ab8d530c47d33321247690dddaa770c9dd6b5295e164e2a0b9b815dedbb9654517be6691b3dfc739c9d470cfee8ea2117ab7a2c2876a21e3513911486e00649f98aaf9ef1a32b63000dea1ecfecb9d433b51333781262053f1096c884fbcbb3187b09489fe1da7ef9d3eb14ec1cd91fa1e09bdc2a6f05ba95bbcc583a86fc73daeb18ffaa7802e671e0641331813bded68bfc6f284cf44ed3cf810caa5e6103208bd4c56ea670269e04f96a5627ce77b364b50b21b38eeebbaabed9b311bdf49f46310be5d19aba8b76b5ff276f90a784850000000863db9401ef22c5a1bc3ef9a0894c875e66109f097575f50f8feb4e2c18ef1b3804d41ae1c38fb1dc4d3306ab4cdc3a0912ea0d70983212a10c7fd15f9eabe503251cd8e12103dbb3d5520a22bb4f758ace010741d5eca7d2fb972e70abc782243b7639d486656e9c0bef7a89c6e64ecc0bdfee8af27e24349e9cbf37ea13c9533fac0b57d5ad9ed89b7af20991dd140b9c23a01f53eb3f1e649d8b2d6d941948ae30c64cdec7cf05e17ef2b74d24445ff0c108a240168aa5694336f1ebc3f9577ecf4aba3fe7494eed663a8fc01b85498206a6e87a435e30a3bfa64558126e79e440369683bba29269d86d8c08150286a1ff69fc0a4eec0067e88542a2dc03fbef3d11681fa55c18d9ce1ed722755012df301ad7082256925a5fd0b50d675913a929f7cb289ef8abfc5514815a88397a1be657ac0f5a3a343e18d56a8264d0d52596c561a22a72d18a7d6551b001af0ffc60576f54829d36515e4b9a5c4069306d2c3511f176d2d74c092c7e261d9fe4b8ef9b1d2f1dea9663795afbc7058c147f1fcb977f80f98fda75a7c8821fa226af50fe8d02b9f8b9a9ab58d6f498544e4c8414938f106891bbf87d215e42a3b3dd82462c9ee5007edbe45379f89bde29d86b485af81942fc8a71123b51971ecbb49ebce70a85298ef1eef2226ded1b68a16f525be1f074364084b9aa50a2f215e9824727ecdfb536c3e2f8254b2e37aa81bdd106ed7669e5085774e49ebeb7683554c867c6aa891d6f02ba298fb5bd75e2af2163e211cf09873ce061f20badfd14743a9088c2fcf756c37ebb41d3a437857a85abafd33d57765e8619429abeef65b6a532f5b2a8ed9892316f3ed951eb32a10f51edd95d7a5a0e5eda591a481d081e124831d297cbc44c233522ea9f26 + +pk = 000000010000000800000003bf90b647b42dad7ba89ff319a8b70dc30f41f24161c1b6d1935257ae4b0bfa5ce168fddedee56ad0931604f868f9d5b2 + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W8.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W8.rsp new file mode 100644 index 0000000000..dae33fafca --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H20_W8.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H20_W8 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 000000000000000000000004c77901fbdf3723a0e739e33dad60d6438b3a33adfc72c33f3e1a3e13791a362aa3a1cf96aefb864bcab9cf5714de25794d8d59428eb4585ba22ccb719b12dd7301bb456156130d9c8d34e1624025b402dca6c4d2d5462ef59c5842a9aa242c72cdf29daa26527f5f529c01af89066ed129477f2796f7a2bbf91233f4bd3a9f658e995fcf6221a40547c442f3f5dad46aecff3a4b061bd72c2bd725af87940805954d9b9cef4395fe8e914c736cff67cb8f481c5e9842ddfb95a4c7f9f1310c3bdf951acc06337ca482b677992f207e11fc3520c923d69fcf8b863bf113531e0266246adbd818300bce8ab72b081d453f109bb298e72bd499614f9e609a12bd1e7171187b65e70e9f175b7f03eec038f2faeea0a6c13058264f3b21ef4cfd27c3502eccaf94c68060a468353f1e3c111226bf3baae1af78d783c91c32a344ea5b1e3875f1571cf381e4a142f154c749a572ee587395b1bc49df8c979623dd8b4b09bf1622d7bd1846bf5f65d7be5f28f69a40eb9cb0f25cb30b1090205f85b067870d2abebc20f7bb67a35afe9eb9e1c8f9d90d32b18728b313e055c22671682ae85de2277aebfa94380bbc7ca11c090430cc519695f3af0c5667a3595bf565e7b1114e069d9343132d36adc42043cf0ff1d075f82147d4f8baa9e38e68ba8aa9170c855f3c6e3be4840dc92f65cb5f2e1e24730bbf6d4f73349c3d85e4507b8c4f39bc8b07eeee8f2fff240b07858d391a9e24d34d7f219bad1688546106ecdc177589ea3cda62c02b3c862d7ec1e995e6555beb0d2fecb6d6d86c232dc76f063fb90b1bb4f20116bafdd7436825a53fcd26d1544e71a1feeb0b154ea298948c3ba9ba0adeacdd46860c6d28da3630b36acc8913ecfbc1288417513b8988d977613b93fe7c5c883a4df6096ca35875f24b4e2f7c6c5cf715aa9428069b365e1a121323556113a0ed9a2b8c1cbb944eba56e4917ae1dd6dca34dbb4098a52651af8a8b32a0416b85a9ec8c3e305268c518f713edb977fd6b17cac7fe85d574003bc5133b590d117e5b471a0abe73f96a069b0162bafd492a01900cb3c9bf6ffa6c30f11e9d1ce0eb5385187990f54387a1f66be91b8e9cc09acc5cf0545da67470ffbe95b856f90335573b14cb487787a1440166a4b5249c8108b7d7e07f340f2a30f986cbc2b1e3055cf425dde138deb3fb12a9bb2cfae7020b2503ff50840ad2f026282bb9725e82e310cb2c32a1fc1e7291817f7539055d8b61335643d2a6754033df4326da389ed5f83a6a1c88125975548fb213a2fd7287d98e8d815f42524e10ad9117cdbf88464a8354a96e6c1127167f7cf00088440501d660e670bf98e174cbb5bef986899bd2ed23f0051d1d776e6f4eaf6a8b4c973f12fc85b218c17d346dc8e8f820f71716219165fecc90ac1101a58d0325a586e9a2fed1a2ca2a96b86c94892551712aa032e2a474315ef6e0aeabb2d92356a65e55ccdd371f79a5e6f59e902667731512f1faf7bbbc3ed307927323b1a51f52268d696be32066cdb859662fdb69f8e2a718462537a612987377552f3e34919ff9e044ebfef0f000000088688c398c528e063a27c2654d8ef6fcf86cccf6111384367569f78e0c5544ac0c32f502398b9fb43c94ce6b0c2fdff387ca058d8b3d70edf444567347c32180e5f579935bee605d8d59580c7092b374ce27758f3fabbdc1210c52e7cdea694281ba308427afff30f71588a9280f7ebc56fe9b80c84ea65867cbe443ce760d0dfa3c7889846873ca76dcf464c7ac41ce082605d115f02ac350289557bf7afa58157cbed69a0dee6991af022ce6cd54867c1a05e71949fef85c941fca240e0cb67ea053725b7fa8de0ef248b9203f3de202fad5415112aa621ffaa5504fe4d20929b4f761d9b8621a63726e079b36c2e04bff0782374e2cb103c54842768c164ee77668753efebca2f6f075f47002f7dfb3689e27f1096236cd904645108e7ee25a0f6f3a24ca2db67b53a13a5e9c39601d526b5bf1658c9e9ce2b80f0a6eda7ddeb8811c6458dcea902dad8c1e0da485459d01a9349bebc7e03c7da4366fd53ed29b30c7bb9d28d758c5574f7347cc02e1becabc07964ef20bb27950f4352c92382eba52126a33d4fbe947a1a70dcc622115e4a1e61d283cb7e21a26d43f5ef2317acba85a2aafd6fcdc6fd902bf7821de2b21f252d73efb0f632e46097ed8b9d7c859175c8b4c54d7509ed221131702fef73ca28d9f25f7e1e915be840ff3e56b8d09323f93da0a6a041b5fe66a1910707f5a06c805efe8cbbbcef36a20680cfbbc4d793bf7ba9be868e290e4fe99c1f44eff6f1444775ce1f2c2bf2479b38db8029024f7cca496cc0c1d4013f96a1791e73b72d4220d649d7333761aad155a45e23e00b83bf3c80848c4c3bef451b33102338b11e4fa27c0e63800f1fb10c72029c3034e04d606bed563c0a001f5ad8c718d4056acce6076a1a652b28699928 + +pk = 0000000100000008000000042fd1d7b686c84cbe1eaaf415f6095268787d809d3b8d9cd021a0967b3972c847cfdc0935346b1ce9f3f6e21a2fcde0cd + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W1.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W1.rsp new file mode 100644 index 0000000000..a3527abf11 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W1.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H5_W1 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 000000000000000000000001a5b1fcba390b752269e52f24ac609acf4e5f1cd5c45f46b26f6177ff23e3502f959bb3e4a9995e7337dda0dcfaf464974ca49ebf852abca2643fc8670b9428dea973c569cf1b6efb10b7aec60643882bbb57b84111901de9df43ff8b84941b85aae106b431995a6cbf103758a727cb4234cbf8b6e3f659aaa7d72286174708859e0e153c5101dac9615e1b9a43426433ff250df739bb9bc3e8e19723199f93564690801de8699bfbc5c966286a1d58936a50d2346635e4da1047576f1e97f97056975d2ff57baf59d88ba3459050f049b3a74c6fb82e7a8cc70c121ce1c633afc86093af3426c5bb2096dae2f40d68024928c28aa3b371d204194d22616413bf304548fb1c93821e16aa0005ec8d14cdf300de7a841b925731319c19b413594e3b2db5e74a913e70a1cb89b0bce8175c8856b1e221d5a07bd2d3a2d106f9acabef321cc2ef36e5ec9e60240956d5b9533f45e11bace27017bcf6d74eab81e3a55e10025e954b510b1b7909956f6d0b2188bc62dc05251114b8e878dba723f8cb9aedcb5c1bc2fc47b3f1663070a23ad908adb9abaffa2fb3c4fa3b8ef5305d979852e1306f3b88bf826ea086e9d6229de20cac880aaa32a0426fe9e0e5e283d055a298d3749721235ffaffb1561bbec3321d96c68140371ef7a20cce5987a9a37e9a3dddd45707e181a855df4bd29a22e63995c92b22db1919c7c1882d8e91c6764506dfbab529319e49dfe6c32a9dccafdcb387a05704938a20c786a9d413bcab3dd020ab8f8bd5a8b6821902c028e19b3ef75726dd5c6f546f25a820976f3d6c6d30ef4d42b06a0133d8ae43b97e639863f50310e822c568e4ee523f354feda584bf549294140674e5756c248afa342eb60b9e0873a1db661b1184371f752ad23026cef236855d3e707eef88b5f7b72f607c1a47db31cfb51bc346f20526f4f5b696ba7171a65d94e536a361863b67287b040860ea3ed4d25af0051581e135ff422243e4346896eb58ad50517b3b63df6d104176b02bdb5e2a6e8af0ef52ac4284c35b2561212a2d1b0b9f16d0f08378ba0368f0e5cd031cd898d21d0d7df5c81241861623896903b1115a0a61e4aed71abafcb609344eaf227af41a0ae4c3017c8dc7f8dc99aa679fe0605a800d6443bc27f18f4de198f93c4553836cede5f24de328319ec49bd203e322e4c1b57c2504e087b042824e11dbc6ea13207cffe3b0fa1fb595052e80cdfa8fe7ecf4be060b8d049bf52da0bf09a24b5297c2d7720ba7f9cf8264cf1397a5550a39206dd98bc5488cb7f5429f6327f643d3eb49c31cb66e281bfb7488777dc0ef8c18f9670e29c1f03d08cf405c263dbba87f5fcd1f1d365abe7dcdb087449618d3f0ad10b3b663757f8a496f24d857a61ad952984e13e181c31a7c39440f37ef23ca77e1a95264fc784cc53a779ae92cd3833967a8a7bd8baa57cf98be69d67f0d540592fbac6990d1b11b01facc7c570d267480f94ef5bdcbe6558c70b5e23d4fe14625e45439784601d0cad002b2f541f65880d286cc279f0ffbb0bac3a1bda18f3f8dcb3210300c843ebcc349cd59f48eb8763d901575158c77f6b1494ad63b2118f78461e773383a0ea685008d1bcca28f6dfebb445d2e82a90ea8f4856d1a3343bd00cfc8a73c0d496dba865a7b0c232f0a79bb0be78263ecab7d273db90219abde2deaed1e82c1ef3efe5d0a2fc826a396fb4121abca045898814c8b63bf70f584cbd75481eac9dbe9b13f5e50c95871bfb5facf07deb4873c2d8ad81b3a212195de3110be065dc1694a84fee5b4bc80b143a81e6055e3bd26fd4b487c7c27b73079449fe59393ca2ee06d51bd9902f5bff9c5bd6d0793a2ab21333009cd9efa6f64fb67f97d5775110be4356c20600188458faa739ca149796f5a598b05f46da225b969a297947b75185d0e9c8c32221414ac4ea886209b8e4dcaee07af50bc1a995fff0d5b0ae01a6a36c540f65642ed3be1d1b6808df18f575df9c01e1d2150e1ab268355d3fee33eeb7fd6dfac9adb0d9c99aada56e299e9e13a4c37e4c902738bc92b684d5ebde5284944a95cbbf2f5119040e3f8471b6d572f108415034f574f13dc417686a3a92306f0ff22bc9e253c5f04b9a96b9105c397da197ee587bacf961c71d8787cacc05d12bd14f8ec2eca4d8b11de8810d7d31cd0c172dfda21f732eb6a53088d11db3aa4b9080eda3230e2b55bb339b4aedc9624c32d5e6eed1110bb61373fa10d98255ecd9c073f374ddd197c4b9c208771d963e93beeb263c7be992ad8bb9930725303c9e5b8b2eb40fe7266e3c1f26f6150da42668021c9bb2ef8f91c76a1726efd58244f0aabac9d958f320fccab4e4f32898be68a83dbfc15f1dddf63fef8b3ce05d8f8d1765ed7b2d3aa6a8941c94600c4e177d3f0a0d606dc2a55b4c46be43dab0380fc96784b5dd0ed9dcb590083682aa3a7e6b32c90612be44d1082e3738cf5ca4ef581497c3ce6d7eed774561c86177901cd67cb7fdce4ccd81586a5a3d0587d8099fa7678a43f095eead13c98976481ed4040529ce29145436157b0228241634faa5a43c0d0185ed9f2e07eec3ee3aa95a62b127e45ea2902f97d024ff810968fdae1c1fc6c851b51b8829dd1280d2cc3b6029f0097326d34f3c350d6501a05d7a333323d23839931e947f5a7df7274098025a0041e4d5e719a0ad3480b3a16c76486d119a1a4ba0542fce25777e0cbaa44936b540c5ff91c013351e0ccc93d3413f9b145c551c2c4d302f000f2c5b3c3dfe5642ffb9e5e5978c323eea9ee7e012dac29f62af9d57f0b5dc106ba751900604c76573eedce79c4c06c8c055daec35e2534ef7c2eb6aad9c9c4cba215ae520cd87752ed32a4dd3916ce38c302a13c3e1dc613e754480bece4994b28e900a9be004a0aab63eddc3e06fd05bd744fc43f76487407b6999d9fa65d15550a1cce8478e55860f614a2f13d0667e98763788802a95c2fadab792928d397dd8e2e3a2691c88681574e1169642e9a1d637bd3ee8e0494629692ec9b1d0560df3374c53b33ef8a1c13c105daeb538b7fd65de27e2223255e3dedb08bcb8d3d18447a61948731d30a9358c3aa61169bf679ff24aaf7d0ed19a82add52a6ad496baf24934c3d991274d70380c8a9fe2a520272106e2d67d5a136b9588c0dad681d7b11fbce6d835caaad3dd9179c594be9e4c58a9d294b85353974fdecc6075f7dfe1ffd1cbfbba7b6f0d99f1f9b3eb3cd22f0a75e4ee9361025890de6556c2b450748dde7c200092a0a52ad85ea5e1d9c6eedd274c05e55cf42624a3a2477ac162061803eb176ba5747559b1460008b9f55eb5a3c55a575342addb5fcf0be3334aac1e0ed0f22c457a2c1f4b1dc0afc8485905ff537360060b895681acc58cd5f23eb587edd60b2e33c2aa77b1b07bd4090a3f8ea627dd1351fc68aeddc50d51bf5323ef3055f6a16bf2a6d1d97f124ffa7c27faac2a0e765a75f363faf715b0452e2719cf3e13b2b10d890a7c66aa3202760ba41874d14ca98709005166f7bf5f93de9054f31ab4d9eaf5c97e2db07c9b6376eeed1048dfb6c26242e5de8a46bd308b37edc9a9acd3a4beb04b084ec9e1325aa02ad58af47f264cdbe5fb49d4d79cefb6badb8e2afb4c2ee7db16606f0166be7b2acc848dcf51ae6603d72ac4c1be1b8e4cd54de4a2fccb53a42b83e8750c825b4e1b0052a5faf2f5bdd4581a557834c6571cae4e05d47e71efa27b792ce9596d2605fa89306942699d126f842746190a36c5605d5b83cc9fbf3133ae752ba0a4c42b474d30e6fd9127b306854f92d0f0e29c8a734c468e0837b073bd622319c05b00db874b63c2e6cc152bd0fd7e5107f168c897d80efc7d943f3bfb2a64a108d84506c2895d1a0cc6206ac92f9d274757e91defc3612b2c6868937fc02d45b0441cddc7969fa0dbf0df711a35b6c43ebf8b12a3ae77b941367175fa8795241002cfb3262cd4bc9857e1fc6420c9f7deff319bcad70047cc9a24dd13b19ee95a96df562d36c5eb010f45b0e0fe353f95fab81a722dffbaeeaecf1e169e8ed774048b34f9f35df7757438e57f157f83507382ad7bc169c50186cfea182a6e402cec92b4915f8447ba1b96a6e2fb16634241efb103f1de9184a62e3c32ac1fc4e3c5c7142d9895ebd5b80954cd141856dd2242a42d760712a895aa52c74c52a0c0544ea85ced655e74725944f87b9c1522806e0a6c9b8dd7a1f0f92ba06c9fb002de559cf637fc139abd90d0a836360be6fa4c0bb8eb6b797d4e64af3d4316e402c59e432f25d54220c50b04ba0f6a6e4b7f349090d5eaf205800cd6feb6f5459554f03cd8e3557f6132889f3d33b91a8a56190d9b552bfe99b0b3b3f260948ddb14e106a22b96ada2e7459adad648117dbc0c4944bf46db8d557fb3a1a997d963debf89e542f43e6695140eeef90f93b06a378b2f4466eceae8ba6d81e5019ebd2baa6d28a11a8824fb17fb808b612e36225d7c1ac798dc49faba3210f40fb230f9ba0d24549ba5eacfd9f8a470b83cedcc895347d50bee5fb5d4602d0294a5d73332b03d2800ed5eb21c6f7288e01a917da98e6c9214372d9139fa2bcf82912df4c6e9b4537f3ca9a57fbc55f20483b99acbba555f9ef4c6e6bc943e24919215854b902fb2e5497b22e6aaf0f5b0d4f3cb338f94c24ca9d53f87b98ecf391e27df19ce311598ccdb09f5581111d77c1caf8aa8d163a485c74db922355924ed67db075c2bc0dd29b4efb130e7869aaed5f20ba740cf5ad4f47c64c93fcc9e964bb0aabea679d4e17150658a3d97da9be89ade5ee42d52c36379d5bc2520b344bb269b0cad9e2e0087de976e121cf0f0975ed9051ff8fc0c7eca3341399f14b8e62fe5e0cbd3f15b8f3a18b10473a1b253d645815b0205841a9c4d7c493d4eeb4e982a4b5ea723d29c8ec06083dbd252846f119aebc07fc9d568b2eda28db5ad905123dad39d02c012186d854e561443b0fb73b139d632f2a102e33b52ab2b94c3993aa8d8713b141379c62193d3464a96529c75676fce6451482875c33a4d699bdafab582b543399764102820ef92837d3bce37938b6ffa46bc7a0ba4ad3cc8e7e196b12df2ef03748b8bbe1541613c693d4a02e54cff8b72438fc9cd36706422e327b5f60ecc0e7285c2cb3ae37a818fd9310da196ea7bc87ce42f358570032a1ff791a471fea3f5dededff0439d98ea5e49958e3521c646bba4f1494c9734b05f2758b81b8cc590cecf09ede5d69d29a388cfb04dd0d20d2b0e4bf6616aeccd45df4682ba6a93acb83f33d17ed8740bb26f6676519d29a96827af74882140a88603c0bc1cd98f0466f8a9952de5c9f8e58869a2783d4e35778fa2407522005c5666f70273d55f8901a5459c2e2c53f484ee811516a5a235b5575787acd073a944b29d5ee4f8a3f9936e0dde8570c357a990c49c05eeef2dd604c8ead74541d7593dea66125d19d2c65da11bcb7aeee7fbb35ecdd7f7a17520f46e17ad0c3e68bfde0d459d8aa9da2ef6cc2ca2c90c9349501312778adaf1948624ce0250e1254b443a11a0a1f5532a0576123d2bdac0be59e9111bf7dfae21859ca219760dc4f6dc5ad73782138084a48abee1a8d2476d44fc22aea93b99f3e4b94da17282cd2bb8f624a92ecc5d24f5c0096434e4a6ca1ce474ea3abe8d658cbf3ec5a9c9ab563bc68043c55d92267cd9dfc5bb086a0dc9b800849c675d5179e60bb6f38385118ec7b2aca937d54e8ea99bc9736fe94e614f2e584f203892ac14cd2ed24067680ec94d0c1d8dfb9cd0cbedea7efd865c32fa1e2e6c8f0f7e86dbca875dc0d0e83f1edb9ff190f463fd57b89ccac14b9142d513e6c60ce226cbac592a3aa47b4b062844b6aaf3976acb6714f9d4080dde568c29de2d710816693a31e2f0e4fe61608395f67c0b4f0000fc4d3eb46bac57251d99188969116864fe0593bc60f3e5f7c9f9ad0964194b37b897431acc14effaaeff4802753093027caaf6ad88e20cdf6ceeaceaf681a2edc951e4b6e4d49239797c54d87e591ac324a5718fb62338074330b1febd106ee389b727346b581e4b0ac8a7c40d7b56574ed506fca456838abf7ed3f789e55de37051c07ac02b610f0a8d656add1fe9104b0243a29ca46093f6292e0ae152e4976e7c5c8eb6c18e04cfeb11a3163a14cbaee778e0967936fcf76ddbbadbe93794a98ed8befffd0d182b3a96a8a0217ff1be9fe8377e93a2c5f4d75f83df93eaa3e2d55574851dc3e0d096685a3b3c575d6c703a41807888ee4222461e1753ebf1862e39f29a5bb321bcf111a0dbe748fe337e301ee9ffd1b7de24b90f815bbcff5ab6d1d730f4795446a5c5655fa4e99554fc9e461d9d88c26492b28d94c7bb32e5f99ca567705536b7c3530f3bd4c0db0eb984d15a110417247caadce1afd28cfa5cf9f7998459ae4461637aa5db978db1bb15187bd7606276d720be8a4a421f0b4fe049c0decf60c5cfaf3afecefc431ed8498ced36c88b20f417e4ff5a5b871df26e7918ddd44edfd04caff5870e0591cad7d085102dba0a880fc0b456535211cfba89a5b45fcc58d6d996a32e39488821b7834ca4ed81e4fa77b37a9fde7f4309531fae3988e0fe2c2c5cd390acb4232480b20896bb5a136b66b95c2728474d91acde95dc61b86f18d719f183aa1b47aaea4f9d7ab9ca0099f3496c79b203edc277b76a00e99d287aff8ee2cccf5da4725643f97f0aa6c9658c4a2deef1c5e09278080e035343632e3212f72d82e09d672463a3471af578c7da9aef1c727238626c8c76aac5544626fdab7fb15b620865db86cdbf3718c076dad60779186f13f334a0546ba457e5b33b96c575aadd2455139b911c3e69a14dcfd8c85ac63f1f9159c2825cd8ec8ce9c7eca54c3dbc8c37128867508e0b410030444cc0d6acc1e9ffdcf3288889710dbd95524333be72257d2dc79af0eefc4d0961ac720640af06e1d15f5da49664ab3eb1ba68c5767794e9a79f595f70626365a47f4e53d31229158270ff4b9a3ba2611a4a53fb739c87c7e4f9ef88b6d5ed6eed8d11d345756c867e37e342b48170236f9fdb11c4aa49d534daec9cba8bbf1b0a7fee6c1673175ac2677c4cf1604a8adc2c6d37df26f102ecb2b9f9b7a493767f81eea07fb60e319a5d2c5c239994952e56974900798cc2335de0790dcf706e18a563942aa04f32d869a97f9a6a30904a71164ede9a33f75e5d47b94e49ab6931092e982fc2635b83ed8e085cdaabe697bc26ef3611f894c97dd410ddd45d41f5144360c1a96b332a583f47e75ad4afb74ac27ae97bc0a1f05a1a780d0a0041f9416a1c5631562c34e0859d5e973400c9d5acfaed302364f11e65c47448bae7271dbc36c00c494614218f04585fff089d0914b3840939817972bf6740b7e6e53be78ba98d50aa469a965f0e8fd33857f5aa2ab731a7ca7a8eb4f000443eb6e436057debed8441c8dce197de6e9e32c646fda78feebcd0fb5d0ea4471f5dacda99f20e89657a6af993a5320979ab45b807b9f756197850d419b5c816662519ebae7fbd17c3893e753cc8eec9d7fc3910b8ee0277b78ae08eaa4dce23a64139dd9800a173e047d447664ff81f5689b164590af784e6e4859993683b747602a816d49b34405487ff12ceff7fe7ac0990ba49130295177d1678f783867ddb593e55fb3f49dbd7d7092078296852fa9c9f02d1d399250fae993c1eb51d32df789e75590657d25ae633ec882c896829f861375a8139b824775b8bbeafe72ce20a7b55a8d187cca8a8554b4a8c314c8c4d8cbe8124a7ff4d63a0ae11ad6806e9cbdc4b8c2c824579960b7c49a4b6bb3cbe18b28c9e64909ce50fd5d9d1744a44e016b0433b66ebb5eaeff9fac286d71d80f04c8e78b898b818cab7dbd2b701045d2cdcee907e3171408318fe0a4a5f86fda1fce6398b78854598e287bc0594402fa56773ad8cf53b839c84bdce861a20efa67aa3ea38ed601687f9a9050818b3aee87e22355e62bc5978979c98df3a7418e468d7ff33b15114e838db3b39b0f5e6bc83a774b84210a2642b9c56c8691e2796f7d0bd72c72035ba327ff33f220380d6a39cc1a0322e8c2bb5a843f6411652f4792f7c15f4c0d4cf87c484a89fe45eead455cd2dbc792a2c840e3be5278feb93a988c6426ff56529b0185520443f2c21aa5f6dc4c03f96d6d30d778fb9dcd685ee6e3ca5eeb0c05d300806dfd7ac94fda5118e115d2df3f8bb8bdf3e198a06d5e876b202d391ebe92a633fcfe2f8315d6ebb2c27a9cb7de232ee7cb12069ace3f58fac8a7ad8c628ce28a757151b9b690fe70ca8fbec03c0212c91e96a1efed549d46e379edc255b66e097acc473662d079c393f00177c80c0528240eb19e74378526eabab965d5e2f433191d0fb7eb3e3bb8c1ae32c8ed2ceb8ddbda24f8f06a8e64a2cf1fde2c1044a7f6d55d5cddbc8208a39f08f9d712aa40aa1d8223e3a42d866d8bb8925fe37291285d4aa71b83dc4072bdaaaf9f02fe833310014c050808a24e70830b6d0014fe3750dfe78515bf135bdd47af71258ecaf59cbb3dc147f55cc13274e8c959bc594a8394b690dcc1d98f564058f2ecf0097beada116507d9062394eb45164dcbec53137ca226043809bc44b9477137c99e79d483a523e60d29e35134cca5f589b5b1f1d5e49c971fc2e5ff224b53e0f19745d39c93f212447ef0fd0fa70856c1fcf86dec2c4583ec2943566353fdcc139ad4b87e4b4942f87f74f353bac1c9097818dc6796feaf1829bfadaa7dd07cf6b2ec95c0acd49f26a03616caf2a8ec2b1d44d8891b6846965cf0d7e6b08012c4d2b98ef86ad9c30380d023ee096fc749b94712ead24e2fa2e78600b3ad4ff5bf3451604c9a9c44513a1c18c665da883a5adfa8ac42d445c6572e30bf63324b94052342c671c1702e9ccd0da5abd1c77017414832ef16f636015a653268507f0e8fd186b83e4aeec1da71280b31393ce0f5a776cd8ac1d221ecae60617fcc3a36c53839043df0d5d94391f96c567b9659e94415f7c229518ff2f675eec0c97090146355e02f67ff5c42ed2b29dfc541b3e6fefed4d124031706b319a36999afb787740af4cdaa1da253bc3cd2e463d603b059dff4b5c6310a876b0260fa40d65300ca194bb590d599391a7e049e76b10e62b21b5ce6a83b4e92682b25dc6ec68f7ecf1e69d8e1db07d3837d45df27452cf4d6c26903450b352718f4d3ed7adad608c377c1f53e6414a3282d43f78b348c496d8603e762b909fcaefbc8193cf277041082cb9dd36b8810ff8221d956de5e0ced5635bfd261bc4c32de67fe1648f2b5d1e01784a288df133c2f8a803718bea3160b207f9b11c5dfa9981dbedf7fbdecaf5117b65760708045f8fc1e54d54f53c37995a367e3a578c876086c96bda438c9a8daad35ce5e8def882bfdf0a0d65cda63a7a9e3ea7fc91a45dd02ca9614263e6ac1f62d28c70922b81fcd98a5a966ea56beadf4ecd25aa5a2edc6f8a92ded720d8e062077db026fb845b08bbbfc9da7f6ac48eac5118b654cea44262e53db291d0cf4b7d4925e7115372aaf4164bb86d1fc5e52690984c74b055b384a91405ef626e79532917f8e26c63a4e8882372bd6c27eb747a2a3d1c17845b7ed826d2984947e8a299d718cc274e6c1bd530f14853656220b508c0dfe96e4cee284a60d183fea3b5c8d39eb0615e067633376acd5852fd447781aa5a288a5ae2347152a1830d72c5ce1f267157166cc33fc0ac5150b00db8f030ea63e51e1ca1cc1fbdef61fda793f29394d3a8053f04bfb2f182aa9060273b76a129e232687f2d42d00a3b9dc67c28c10d1c561c428aaf2e21bb290d66f7d73add81ff98cedd69f34875c84f30d4eb48dc3b882be8965db6c23b246cefa9c94c36c52c4979b464bb4592e422b121bc84f904acc48a04870d42e6894a12eb78b849b6ad26c4d637b8f870b25360542e143563efbb2adf39e8001c1b958ab1a04ec186a1c5748fab6d3bbbdd15bfd36300bb986044caded761067f841a31a4e95ffe9caccc1fbf0d51b83945a29ff1daa8d2d57630c7976e9ee730c5b2441330513e5fd21b234a5e9b65e36b256c3939d1de2730fc4c2a273d702e13dd3f8584d47ed692a730c82f5ccfaa8acf077b722ba2fdaa5c246b2209e897da9972c4a54b7a49e3a14eaa592a2ddcc9e70a8a7a8121a1ceb33d22dd0ffcfb7cfd76688b1ffdf6ee63abd623d30854266cb534fcd420a578437282a37a1deb3ab51f63c4c600f011be09f4ab3840caad041f87a033cb958cd4fa0307c8e33ae224fc85d8d332051324d2fb277874e1e17998ad1338843bc0160c31fcaf90c4fe87df89a48f14882f797e54c9a62702c8750d5051b631810ff0c01a05867c02346adcfe2c446db28c0d07e5dec99dbb508bfa0838d914ba1bf69b79c9b5eaaf46db732b57f315cedb1a050059c2e94a1b337bf7c64fd07df43ca7933827b6dc9fde538b53c3e8b8f579db106a743deaf31592b4697222f6b64d19210bd832207002690366c68291e641fb7c9f0877601de2d1590290ec3bfd8bb2e433f3c94416890e5bbff624c8e256d636994b5a3d1813e4334eb8f4f221333b1772dd15d280554c188fdd75063581362107d59d470dea5f3616be025b41ae8d00130f3b3357d6e7d5d9571cd6b801982fbdbc12b2f29aab5b9b7085a223629767c97e0f21d1040ada264f0c6a6e4cbe9690d2dfa58a52dbeba0db545a8a023adfc720923cd1b616bd0f60e7e3a9c3d08cd070faae9e7fbf5d7b8bfe0fd8c3212367db7fdfc9b635e986cf138900acf395188292be5dc88e6bd158eb637d8473ce8e750e49a4cabb6635d31da466a3b253192f633bd7125210d1fbd266c6c3d93701f888152ee1645481177d9981fe4b404f977004f6771c92049755d9d629eab760421137ddb63b778157924930bd5d239c2ae90fb5fdb8c8015a788cc45dc61a207ed4605d28a7cbd00caa8b97cd3b62a0e2278a76ea2b3d5bd41a774f659e196130fd4539ae8ff20fecc5b24a20bbd39ed7cdd08348116446ddaae9acdc320de58f63397b29c77199fc60f42f31ea467522ed446f4596b9917e27135bb7b73d1c5851aec57f763568d86b1f1340ff6acab7a45bb9c746a7f2a2f3faae60e4a598d37f45088d9d1250599fb0fbf68e45d2cfb28eb02215879ff74cec3b38f3741f64f03611ff7fc17b1c49c02ccfea56f2dbd13185c8d77f42a943ff5ee2fabe4e616d722ccf66314e8da191b67cd16c04aa94d19eae82c40d0c3f2e13ead51245e9fa9447380c597ea4bf26e90ed235e59ac2f783c681d21fe057b79e4bb3899fa72182892431c3c66dd3207b178d0d3a973123da3b69bbb2e73da6bb8d71a86fd501cd58ad5c72cf56e9c26387ec3271306cae768e920dd88eae06049d360015dc9719a0b91132bc0f55a005320fde40505bf18912817346ada67f36424907d7b6d950958bec05944a9b55bc93908a3cf1a9ae8d709ac366def39d29657c959d6a72b2cd1c57277d3b8340fcb9bb9745a0f003278ac104346eb655e60591b0e341d57828343b3fb6b8ba2ae24153cbdac528861fa30bd9b54c7d1035ddb4b280fce1a8a069d9224753cc449decb3148c111ea658601b59165f6374b010dbd343703e4a6cc5c8efba4ac7f420511b9150d13af80184bd1f371b64bc15e289268faef39b5eb7825dcda6326897dbdd9c6f37a3d5653b6613a37af51e5b74d27ae8b344baf8f47347227f201af58403ad59f68aeed8c9e3e1662a2bf2d0bb567fa22814cbe36b533ec64cb055122962d8725cf132aefda54f8ee290a51e53922e39abbf1df0439acedaec5031ecae048cbbe4a291044911f5b7097f98891f08ab729086e6fc4f9142dba686732db6f2b3044e4fa327284a1845fece6f59ef2ecca89b8d5000b2b1b21cfc690b557a54c6f1514d85fbccf269e8eeae79c4c2fa9d33965f46934324a1cc97c648cba1d5f6befe5dd06b45538689f146e28543b41c5c9b2de6000000005a83e68d4f50adec31a352dde617fa8ff70e9028362d2f20a9b1e9ba99a4ef0e0a8d6edbf3799ce086584ec56e2c3d9f8819e40bd62d4fe38e0295f2761f8e55d4da91ea2d2130a4b5b88ec92108b8b02b2967b1c68e4c467c8e3b65880f1dfc3b4fa3c1883401b6bd771d0147874f16d3635ec192c5990486ab3604f9b754229c837a959aa1847e50c6e05332d252e8f8b92e3db1d8b43a71a61c01e485ba1c7 + +pk = 000000010000000500000001b36459ada3fda491d658ab3eb3746402365eff2d5dc9a06584f35229d860137b855cf7759157d382db8a687384089567 + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W2.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W2.rsp new file mode 100644 index 0000000000..488997fed8 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W2.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H5_W2 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 000000000000000000000002150417e62d167e4676733e92d1394e814545ed6b9b5bcdb5abfe12ef0d5e14f418017877e0ae217554001f178e1fbb78c6517a7b91a4768e2133c5c0ffc3541c1c957502a004405cb29dc9f86b37da393939e10c6050fc178853f99a31f96dee2893a203398e3cb632d761c2552e0f181eb568ce5984b89658da394dd4138df820dc6974ab9baae3253756c4c90e329464b5663e5b4cd00ec4efd4e3d4224b2fd0d0c6e0241fa222e9ca3057d903c958a9e3bba381d3b3e91406f34f368be3f40f09a4d7ae479944113e69709ea4a8eb3a0dc3c02b49822f35deaa94bf1d98335bb0a10966eaa9fc19167d9d07956f1e2cb1eeaa6ce5ef1d1860824911d8d151aa133eaa0974823d9b0ebc6218b5f1d3d39560832c303c99fa3a73f4a5c983cf80937cc18788a162e025515213225f357dcd2e2d8a9411fd4abb915892461db7d02e15c4b7f774837ca87d764d2f07e8c437465c53152691e39c65e7c6649e83ddb3568e2e31c661c649ba174f9829351817456b4e527ef6e2db153033becc31af7ffb1ec040d7f4f6ccfad654a34d7041a854cddcb8ab905356d37e4332f5632aef346eae7a49d6d3f465d3a918a532e4efe3f458bc3c2a17200e18e71bd05730f44d1d3b9490fec0e4a52d532bc987c7f29b0c4d1a1375b302a48476645f6f9d938ed7c4b9d874b496488439a299e9108be95b2c695e5049e739a9a3d14684d88b064884ea5438f2e009c0126509541457c87a3f06af3c75da61373ecda9a693b980113b22c34ba15c95696388c2e66d90b2fbb800a97a1b96b31a954e411229bbd86cac0fe668990a9c15c6181f847f2a1db288e995257b2c525e049609ee143555eb36649e119c0f427c998ffb45592ea6faffeff2a9e498428b09b6f1d3fc3a0c8b62a749c51b279be712be38f7b323455b50ac4e325703cf564025e2aa1e5876dd56a7be2ccb920dd22e475be7db8b3ff442711e9d0f3b392eda27da8a34cae12cd4f99fa17d8364d5a2a1303e996621b649a6d7105343b0a5af6dd65f2b1f13d8f36545eb65b99b8b6db5f022bc702e8bd2a1ddbc99b64a291affd1e2adcf8a01e9dd9c117e80e32f874beea046b56b44ee8cc2240d03de68c90d9f4d67e5f3aea949cf6f47d5356a6232e979329c10422193f206c74cbe2d06d290d40fb0ffcf2bafbca374a7c327006cb1b21608af282955d3259a4f4b845ac2d9b386be83e96eeda3a84a64810ae3c81b709fef15078424298917b2697d2bdd3e7f4d365b9a84bbab07c0be4d0929be663a06345d1a67360141c03c3f37891f09c24776177e34a9093fa62005187511268fb2fa80740cb751f5e9fd0d74b0f61b643d139f8ccd040c9a9a32cc740b825a2e6a5beb28a8915fbbb1bcd41c9694fcc72ed570b1e96cafaedde8adf8d5028f80eead64f9407e57ff5465da3e5e341e587cbf091f2f5bab89e95666a3fb7158718afcf685df10ea4a22ae7fe55c8f70d5d5a5973f3dde9c80f2a9eb13d58ca3485268f6e380464892f4c3c3598c81fc3d77d1ce0d3d9f50c78be78b88f6a9e17d6ec4ad9e6a86edbd5a4e5e17219fde097f422498c171ec1d0f6dbb6a2a49d34a66ae854e2650fa4a6c2833af5106472e7c787ef2da06f28f84f0f1197c7b4c4cff6ab3ceaac5ee819809ef20ee9b535252c23117da43e31ce778abfd84bf647875573217cc79c088f91ab07adc4c930a4819b936a98834ba2f9b034996d26bff2cc901317536b5481431656c083780d774b686ac5b0abd7ae2e05981c39726e6efb4ea2507b20e85cffecac815d6d9f84fa86240e6ded4dcaa67a2e2f944ac6d38f986b7268f2c240d8f5eafc0b2b67dfc11992e305e64264e19e021fd29b72dea8be8c315e3aa5f02c49fb9e77a34c48c58a28c4340ffaa7fb5b5d0c8a4aa4abd7bbf3955a0b71cbff160c5dd9a6a4ddefdf00367f414dad1c7ec0f77c1a777ec1c726a1049a2c4bc01554b95665496584cb13b28dafd7c668baa7d0c1e425e5c8cef9f75f21819a5708db01e5a5918df096424abcea2d758d4a8c5fbd96e10ba91bef727bcc47930bd45bc7d6851b21c7daf94c016e8cd10498f18ea44c6474d865a8841800dd19fe3d57611660c3729b5c2a2f1d1765a1237db7b97bcb6af56f79f275677bfee3c37fb1a0d7c2b453feea1f7adc60892a95a7e00421b4fa320ea25119fbd6af73d9049c8e109e2b1b683f5bf83933d63bd552f65fbfb806f346db3592e244acc0878c450962956f4e47bb0bced88d1ee0d18f93acdaf6bff6e6d9b451db35755c1bbb547dc4e098012823874546757f5aa94cd0bd294709da538e8c8675e96d47269451bb63d35b6f027d68aa0871b23114553e883463512890d489286886a93227ad5ba80c53f0bb4d383f15f607091a3ddf07cb199a7d8abee54097371c8ae59b354a8f86765288dc635e4f5a3f1bed2f0998f0562755035f39a4fb0f69618ebdbc3427f1fec8d1040aef11da99c0d3f0864615b1283fb2f9e66b957cf666ae08b2e11fc9153dd32b5fc43736758f65d896d253dbe16d7b16db56130851b7a0935d92d33fa75affb9d509ee73c40c9b61359ff814267e962d4aa80f6fb0ddb76dd4cbaf49fe65ad51b406a2f33bbf698a6dde309a7d7ce95f7c68ee5bccd1631f1443f0b1e823af31b2245095afdf073708fa9afa0c3b1c4606d5428cfbe3799003437b74b136b1d0d2f80848a1e5ab14fe7e9ffe02a09e21bd5d9c4eb0607bb5549f0399c2336cbc76a6e55c7f80fc0ee968c696beaa803fb020438a9ca6c89ef1e8823801e91c1cd7cbacf09c79f128f22f29c9d49355ecfe470b8df5edf9a47bdc781a3ff0ae8e5596e13bc06c610bab6121f85d54ef764e6a82a290a4ac3db0f76820d986ffeb5f19460db6246b59aa659afe6753093998876cb961b07fac8b0c0896d0931bc5843c4f545263a950523b7ad8520654564e27d0661f1cbe60812ad232b458ca36c6439750ed12df2f5d89b12f584e0023a2b8fa39c2a13da2b7497a968189f183f65bb37c5999fd6187f9979f39ec459271d67676ae157271b24ac7b3d3876840c48296096ee2730e14adb8af5ae11666d02e441f83c859aad9657c1216a9c8116d660abfb5e061f2face2f11088e661ab2046b969e72c3d23c6410c951ad210572e3cbddba77c5fb81c7594e60e1a4784d3d606b254a49f05521a0289dd14687cf8efb78a2eef2211e6021aa14f2a3d2a5a0d5013282591239e7df7991e3f44442b544e14ae382181f0790d4901b30f659f0cf9b3080a113d2bf869e44149667438b194bca40f1ce542ef7021222e0d6b7bcf40b8631e9a23b87dc1b97cd6eea407d3f7149e250c70a021b3614b5f68c065eccba5ac481fc4435f2da541a1e368d69259bc179338e641b9b14e77abe6762ae8db9a980061c85f49aa161aa92851f6f1e6a38152edac3f121326e517215cfab5746db3e026ffa2b5b4ea41d297bc4bf91f1d07c866b21425e022f0081c7284fa81c0b6b43bea2ce4d61b910aaa539b5485b79f0f766bc704eba870b33855a589ddf7525cbc07c828cf51e687f6d804e4d43535820171d38a67a8025486f0594872c996768b56177a916b13bdf622ea4d05ac608bd1f9220420733fabcbee129a4e89b243bfb4cb7cafebdbd37b1b505014ac3b9419bb51e274f8aa81f82725693341424df75c08ff6acdf622fea4988d0925ffb33466489331b00dc3432d19dddf30fd64194d4523dd3cafef94bacaf6c72b68665d1731edc8c2e9933d9302c61d576160c3c98a9fa393aa60a843238acc975f5af75532b5088a06299dfe395bf4ffdd4ba2c96ca3c7536c6986d34bdf61e01004e537748f427a7cff650918ec3c0916cdc7ba3037d078c1f96d1d77ec7560d1fa3a55443a8b2876c882a7ae2ddfeb611af3806be2f02e39a82e734728348bd90394b732da8798ea1552925e36a8ae92697bca66ec1cc4f6c2d0d60348f81f74ddae919516cb53455e4642f0782acd678e0f2daf973f866ff0f5576517038ffc52301bc53624eee8cacd1d9fdc4c74bf2afd75bd3d0c7a8010ab8d082e6edba64106cff64b5a9ac166f02b906b9b84539361a68703e43c74439306382964d3f2245a1cb9699b9aafe48922dcfec3515cf9d737d72888562b4830e5a80594ea437556ca1c7921629438c620a439196d194a862dba078524bbfd801d2cb33cd500957b84719352baae64d8163ff85cf8236c509ba495633d4972ba8094d1e293b07f7693bc939ffcf4e3979c1f077e48b6a7b2666360759b82adffc811635b860062fe55d70b1397d6dbebe2f73e722fcb90af4d98a55d4043edea799954e8950e7f6744a1e3a98b2fd48f2ff685208c8ad85becaac5ae51e187e75beaf6589773d23367379a6b46082761f247d79341d9498d210a206424d07bb88fe5018a302f4bbdb2d0ceafd4b25603fce716eddbd18ba669fd0a18c93112082b2941924ba80c5a50efaf1f391e6e0d7d6e27cc991c29f4065d75be997762e4032b62bba80be85d4c8ec05ebf54354ebed5c32ffc47caf0e7c703c38559f125521ba736225d9284e33fbab9d32ad54e3ddce4a79a6a0adb2fcd15c57281a9f150a38d8fc96a27c751a888daa65c4461b54efaf2dd2e0d3b5a6ac12027e3b9721f6bb1a32239824faf8574574845a4d649820b1a003cbe2b3e6466f47062356432d3280edc53b1c4fffc63de4fac290e4525c151ce05314c8a8b0c744acd5768936f93a7421eea8e69522ad6d188f71f4b285a535d84ca72c965bc4e40f03b09703d534b6de536b2da8bb36704ee930f1252fbaab91d5974a9d89e1411c5662d65328334a3982c31d4d0588000204acb1f5fc359302d931d8844dbf24201483041dde064ac06dc020768f40039ab61e8a4b893a1a782a49632e38d5a70120aa4ae391d69c9fe11aff5c3f4fc55153ecf9bab047e130e4585e5de2fb875ae4841d21abc580a945e4738674ee2423a237e9f03edd0bf5e395760d5ffffa1645846019fac8a58ca6741a221ea52c0c3020ca6590a7633388da3daed3ea8425ad3671f235420b00ccdaa006a0cee192855a6d8f6cc17794c4bb1da3c6d1b3b2269572bc2f9d93ba886fe30cdcdd2f105536472a580d0e9ccbaf9d2bd091cd33a2243c816da0fd4a3e8f1c01657dc236ea26cb83e05f1c6c184d9c0391535307cb945f80f9329800b39dcbb10e1ba5d13185a3050772d694429e17426136db817cffe563a77703666f1dc827d81790bcc4e9ceba15c34a28c420b6cc7df34cea563d48e9fd20a208497e0cb5a02eb25c3f67095f3f3a63d62d06ad7953ebfddbfddbb613c676394ed866622ba3323d6b1ae1b1324aa41e99170ee1e66560fa78b74051fb172f9b82e53a02be5859ca2d59a133551b7f1cfde0ec524b4fb4aefa69df632a385db308044922dce6258d71b36b14cb481e82928fafc56111ebd5969a3588ecab557b8c15654cbd559f0792b6caed5413d750867d00ef53aa597949fdb837c468c41bdeb081aae58040a50172cbf3d075a9263f4ad7da16062e80e5fe39da2e05366b79a148ae181c465aae82ecec18e98f696649bca24931a702c338f25bb2d135b95bddea4f9f92a2f925f31ee784f195d29eb4003a5b9a21cda79c6a35a579a470bdfa05ce3ed9c2a693ec92ac559691cdf22e5b074c479f58ef2395781369738f7de2c13de64090dc6575920c28a2c5164c8266e9dee906ef55c69c73fc932a64549470fcfe4da13bda91672870957d0cc002998510826d6452f7b400d09c47925eb3e4bb8f53bbd3f657d2afcd7eecc992966bb1ea7774ed15d22d931dacd5bd45993151ce89e173548d0d9324ef74be4c0cb89a1d824f1eb164821249116274a536b1b760846a4f6d1426f946d338ef04f06494a8ad0e3a59fc2269cbd411b0106e8b1245dcc3814ccf330790dd352e68a675736119d839155378f573524f5071487329e2b30405d2b0f07ad82cf2a7a3514821356f126349668f35350f3f3b71045bf60f1f608da2ebb1b067f0e9b673a1e6bf221eee8aaaae8000000051c142d7004cafdc21431a71b81e6ddc44a8ab75a3a2c8fa3a9a8cc4a781d9079063f7a97bf683473a44e5ec3877cb60d400f6a6d8a3e4fdcb02f51160f6d828ea4358ff1f2fdeb78042387d9cf0452ad8653f511d53435401a55c32b0c03a76b0edfec3b1fcb0b864da0ef3663930feab4e318cb7c271ac7b0ee8f7fa2c67838b293d94a7bddb92e05b5810f88ac6eea3182bbe37704a0190fd4658e268be368 + +pk = 000000010000000500000002ad412ccdb2962114e64225d1add892b4adf8f6b43057169755d96b6ebc59eaa37904fb719e358e6759f598593ea69f7f + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W4.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W4.rsp new file mode 100644 index 0000000000..7e4ae977d5 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W4.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H5_W4 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 000000000000000000000003aeb14a03f55d830d64ab4981809d932f48f8371887e4b52188d67e9e77d296b7699c4267b07320535a32b9fda668fe4d64e126e1190851de8400a1eb29b6251778dbf3fb6e6c2d4ed9cd306501ff53e4b3e2e6338d8107537ba3bfd14ce795cf8f939e9ea6add97df60ae591800014cac041bb38857d29a479ece3289240b926b02e7079af6ce0bd239fd9c9c55880c7c68d527abc9210cba38903c561130e1cf88e75ac230a1ba6591edf39142739e8cd16d5c744d49c6dc9318927b3f6a2f44139131b5a29635a80e5e4ebde27570727e9fcd9aa18c7e45293f67c0a179a7a159574908c1a43de083e69aead0dfe6ae356367da1de7bc4007b45483f3863b045a047ccad8a88c16ebf45aa2e76a40a5806225bfefcfce1687602b204efd87385308a2a4d4e0378714ce5bd12341b1a71e8d155b2cb2e08616d5280c418d355987cffad11b65e2032371a211269943baa66907285e4968fb4bfb271230809365dbcb8fece0e66a6c23ae94a4a91ad6cebea8c2ed848ac76fd43935db8382731ad2188f556519b87efad901b656f8c5b533a772cdb1f59b2afadf46ea3cacb9eff1eff51ef73cb414da18f188880a67d6a2dc70c4aafda7d2d65ccb3e870033c3ccd2e16116b4f685ee45194cb8ff4415768a22ae5189ebd2f5d2a0bb796890b85a01979536d5ca3ea77994cfd530bf95a039a7ce635a6db922baa997a6c26ef45e12018b58cd2cbc7b3b3d0d2938b28ae7d0779369e0f8889c36ad3a20e6cac70268428eb43fc660d6a2a293762aef9df55e5873304141ec87a96ce4d6a7e20fe69d66a70e872c4f037f32b5317f51a602196c8e443ed0cf80bc2b7104b2b5211cffd650cba2de1777268b1e015556e55f3e4400e61abcff383541594947f4ca2394ad26c43d3301264d05cae9a38d4c70b7b6edf50368f2e30842bd619387961c258abf34181b0e662af0db9ddd8e444116e28d1959c4e56f5e32322d51b772f6f994e971c49869ced203936f76731787fa6e8d13dfc533103ca0c3cea5d8c27d8b3b05f9ac81b30b9ec947cf39299972214b6e058f3fcf58ed982efb02bd1cdb6199264183c82853ae04cac67f6d2baa37f725dc77f08534273e8cf070e9383d8f4ebdc44bb2f4a48a8aa9ad9b8c6ccd1a718fd9ad8716aece437630a5294ae83898d44392444bd7d26fa0705fc37f384b9b09b94ef0ffab639b9d01758d286a8ae14c933e746459c64dc31d609716e928469e38b36e563ef68e3644a7200a262b1688fd8e4363b57d42a64d0866e19501ec91d83707067fd37e1a3b42453e75afa9739e73030180ad38b687230b6bc8ba02ec2bc300a87828a1de3a8cab63fb26d30099f960dd82b7cc65923b0dc380d3513cf0c74e671e50ba668b8b0497919e260cd8c2755de8ae3455ab3dc3c378a789b8c84dd6ee8641a4feb06ac3d8dd80093e744ca7f44e1a3bd0e1d05870841e13a6744530cf89b887085cf8031c1c713d9167d9e1ad5d5e7c5d6ecce0830863f846d423dd76a91be60aff65a72f16e71173609a46f3bbd33f46d8d1928fe620a646bba75325dda0e8dbf1f95ca9bc02e891889e6b3009cbc944b9aab65fa30cce224ec1856abf23556ac570f43396c61cab7f458d5ff1fe7f83c0764e78fa0f9f9d75fa9e0c518379a3ca746205fe03751231ba269e19b579b90b1da30d8b6315ed7a4e54ae88fbcdb15a8fbf24fee6d9f7b95dceb99d330b449f05a53974118989ca9ac1bcdddad5a43b882db01cd27d72236c0d060b2b6120ecd7053820a5cfa84dc672fc2c310067cffd3f5a8c3bca13077fc1d44e99c111d4f95cd68d74bf827849277ccd7245166950beb19f33297a00838ca21b896073878f2b509bedc6d6ae8295dbe1a059cf3ebcf40e7790e0530dcb66159a8c0e0fdde36f1b6374e42eb331b92bfa9061c6f480bb64e73c539eda7ef879730904d5843ea1c5616798adbe21d6c5fc4efebb60c45ccb30b7b1fbe673e754717ac71f5ca272dfffd2aca2eb8cb885c8a8395800f70c90271aba676239abb86c0708301bbf643028e55b9dfcbd338f2e22f5cee5c4d0fa163488a06fab8f15337dc219292f53325f98a4ce0f3f931b2961483d165a97e19d9d1408a156c7d35eab47fa5edf71dcf862e68a37787a1203c35383047398b3f305e1d4fe19d8dddbeb07990c507e8d80b6992c5c996c14b7cd31f65006585dd6bdc7fe43a893e96e06daecbcde583759f8138b3461341ec115ff29f1ed2eb72ff45d29e674dbc27165c9c2ba212455264936a9b8615ec5fd6cc26390dc45e1bfdb9815c8026ab9744af6eedfef8d2b2e73adcc50c52593ae3750dbc880c19dd627f215a49b044f87f866098c14e2716a055819ed0314ce687193cddc15773a220c1204b81dbf11087019ef723f0e14131f638cce5224bc1c73626a2811fec0becf91b6e39674c16c31407289222bb02eeca5ccb6a195c8c594d5ec984ac7fa1cc266f40dc4c6ca0724a94da0e1c8ac89ae52ab5c35ab2dfab88d9899336b19b099a71d0564f31ecfce6c582446a37e4acd62c62902afe83d01b977d61b31e4d03efeef17e381891c5e96a1043da0421eafacb98358ec2e98986762add3036aa1a1dd9f3235dd9a6f991e935d44337a265755aec34e819175e140b51079662ab5905073e588c785647444c4a3484c7f5643056b49e4fd0927cbfdab1b4c3101484c20a673b5322fafba8525d8c76f05e2cf522f1bd9955b86ebff690c02bbe96f73247396f50829f12ab26d21f082af26fb68cf7c4edd47602955a72eb29fe18a22131a8ec9b33936e816da6ecbc78b83e7656796dd756eb408a462df7830a67371d088b4e3aa15d4f56412cc1147338ca3fbd759ec61c2069d58ef9e84fd436eadaf2f8a955bf86c1d336830e9e8e8ae5374827cd801f0fd92dfe10043e8e1776c6ecd0cb7b9e0bfb6e326e8eb0224203575ec16007008dd284836dc7b4425fd39048d3cd2df1ef4fe18d6499abcd55d38d44c70852557ce09c3e3f45234cfa94f417600886b9b8a946a24ddeb19726c8b0a0b1a41be57b203c310f558daa000000050233c68da9d372a5a75790fd99589f6cb07f2c9cf97325a28c59bac5ec87e8eac10877a29091357b9b12611d2ad4b6ebb92f2a92cd0efd4a80eba5fec0eb6f95d1d9ddfe0b6e9eadb2420921ab517eba102bb8fa0402cf463d7b7d3122e161a5b18959390a8a38d08706f1ee4c2a7cdbbf95a642133e504791cb5516e1ccf2915cdc752a2a6cc023632112bf44115a1d97fce39359885b203307721151e4574c + +pk = 0000000100000005000000034cadc1a52afbdd1adb775d499fa9defb5f95bfa52fa746594f3311b8fb9c837b15412323da079146956b63e0a30c423c + diff --git a/tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W8.rsp b/tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W8.rsp new file mode 100644 index 0000000000..57369ce635 --- /dev/null +++ b/tests/KATs/sig_stfl/lms/LMS_SHA256_H5_W8.rsp @@ -0,0 +1,8 @@ +# LMS_SHA256_H5_W8 + +msg = 54686520706f77657273206e6f742064656c65676174656420746f2074686520556e69746564205374617465732062792074686520436f6e737469747574696f6e2c206e6f722070726f6869626974656420627920697420746f20746865205374617465732c2061726520726573657276656420746f207468652053746174657320726573706563746976656c792c206f7220746f207468652070656f706c652e2e0a0a + +sm = 000000000000000000000004c15445cdb0955e650d038fe369128bb41dec49c85cd58208337d27a63c4c4c613fa669e360606b31f1bcbcef9540a8babe0fb27755ca9e444cc7e3b2de51f4f63b9fad23b7a334003a45ce9919f223efa24d1e24ccd6b7d46f645834ae72cdd32484d1db569f8ed1b784ee2aaca9645e3fb7b0c68c1c8d22812b6903176e4475f307e0fad497f2134462d94f51c63e1e29defaad7bdaf03e49da1ea7086c064b3e536c01c4cc435d5be073cea199da5e6d1c3fd3a9f6d5b32f5ae2d974f07dfef21994f9e33999dfc0d3074aa8bf41c73d1b2f106ec5624badbb6521a3d21bb59fa5c28e8f02788975290248ad126ccec0639da4b0eb2e1a09be522dbadac2fdf2643c4cf2f905a55e7181542ce391f9ec6e3023fb3f015a52358be92385d6fb2c5ea84ed630622c872fcfcfab61e90b94b0307b31fab6df36c43c3d8907ff7842573d998b4e66f629d37681700c8f8d0c4da8ff8ab6e20348e817ba9e818de076ebd99d0b8ce672c12459b5955dd714b40a93210050bf54c8bbaf22840c2d007cd1f40a000cc55c745cfd3316205731818b93cfb51045369a4ee88cbce94b77544e64861d62dd10e711795d6fe3d4ad1517ead72967403c1a6a308bf834d224da53c2f89528c480bf294ca41e9018f129c0ba6316ea18fdd6e9d80e0593333c668432cf8a9505659fb63fe309b5ef348bef9e19fbecc33af91790b1c4531a85cad51af236ce5efdcbd77212fc0b642dcb91f7719e49a38ddd5afad688ed9ce5fb48d98f5e2c08f06d743d92b005e4d013e4474703f8c8f5b085f4f479896191f8fc9e9d6fd8b9c529ce2a7e8d1fcf614078366943deb263455843a31d16be42aa8551185315c705e90afaf25a06e93a7c7ea6696cf6f3cb496c674e3366e1fd6c1280a83900d5e62de9757e3383feb324728b32a496b97f6356f30ab160611ea04abc38b21cc7553901599ea4c590f9a4082e6341a9c323ea5dbf0f93180ef5bec182694c44e3360cc4ba3be21aed6958da7a6d8a75bbd84e24b40d88a2cd477e319933ad193b3072a987915edd7404e67d67759b31bfca09c6863e3230ff1e8731d1d8611bcdf31d5c5e272f674eff68b25933555feb2356b7639b7147961e3d8405e42f01bd6710bf64e896658d3532a78f67dd99d047060e107e084141ab06ba38124224861d6ff5e356bb43f90ca37b7b119ee2a06665b1c9f5d913853cc27f20b539727957ff17c07de0b9754d49f3ea1ea6da022112015e82a477e719aebb35e4c7e680dce407e3919832143ae3898ee14cf91ceb150341ebf5f767d2e1581c41751b8ddee365491e69d4c3c9ac548d60b8105b6b6afef80be691f1a766c59ad94ddee2ac824e26a3341b4409050486fbc94a1d95488446fd58595465204a0b7baeb3654c85ad124a6a42d6bb134e2bb9231a9f073afdfdb9fc6f114a99d08a685587475567cc68df54376fd13acab6b83b06628715e5ebc69938154c9e7c14c7cae80f78ccd41a8d07f2a65c09f5be027cd8fae674059b48d9d720250fc35160dfbcf520f89cce57af12415ea14996e85c6eaecef30319642839d4ce000000052c26f6dbb703f8711854e896635d51cec418c2c01df5fa5067c3a3ec08b30d042f4a08bb5dd156f17039c6eb9cbea8cdfbf46e64c6e345edc8aff2dcc7ad2ad911f2fca9853978b696cab99a0d633873e5f36f7e3faae37e24f8a27451604e9aca4a6d3549035e7a4e4527fead4920e658bd66d06509eda1841f843720016117ef0a66c52e26a12b719480cdb6055127a1601bb7110772341f1202e54ac90824 + +pk = 00000001000000050000000467bf07c0d0e24981d1b189ccad1efab150d6409b74d36699f982f537969d785c7bc406d1803ccca5905e8e9c0aca1113 + diff --git a/tests/example_sig_stfl.c b/tests/example_sig_stfl.c index b332d8479b..cbabee8b14 100644 --- a/tests/example_sig_stfl.c +++ b/tests/example_sig_stfl.c @@ -122,7 +122,7 @@ static OQS_STATUS stfl_example(char *method_name) { int main(void) { OQS_init(); - if (stfl_example("XMSS-SHA2_10_256") == OQS_SUCCESS && stfl_example("LMS_SHA256_H10_W4") == OQS_SUCCESS) { + if (stfl_example((char *)"XMSS-SHA2_10_256") == OQS_SUCCESS && stfl_example((char *)"LMS_SHA256_H10_W4") == OQS_SUCCESS) { OQS_destroy(); return EXIT_SUCCESS; } else { diff --git a/tests/test_sig_stfl.c b/tests/test_sig_stfl.c index 55ba104d56..973a16692a 100644 --- a/tests/test_sig_stfl.c +++ b/tests/test_sig_stfl.c @@ -32,6 +32,12 @@ static pthread_mutex_t *sk_lock = NULL; #define OQS_TEST_CT_DECLASSIFY(addr, len) #endif +#ifdef __GNUC__ +#define UNUSED __attribute__((unused)) +#else +#define UNUSED +#endif + /* * For stateful signature, we skip key generation because it can takes hours to complete. * So the ReadHex and and FindMarker serve the purpose of reading pre-generate keypair from KATs. @@ -46,6 +52,7 @@ int FindMarker(FILE *infile, const char *marker) { unsigned long i, len; int curr_line; + memset(line, 0, MAX_MARKER_LEN); len = strlen(marker); if (len > MAX_MARKER_LEN - 1) { len = MAX_MARKER_LEN - 1; @@ -130,16 +137,16 @@ int ReadHex(FILE *infile, unsigned char *a, unsigned long Length, char *str) { return 1; } -static OQS_SIG_STFL_SECRET_KEY *lock_test_sk = NULL; -static OQS_SIG_STFL *lock_test_sig_obj = NULL; -static uint8_t *lock_test_public_key = NULL; -static char *lock_test_context = NULL; -static uint8_t *signature_1 = NULL; -static uint8_t *signature_2 = NULL; -static size_t signature_len_1; -static size_t signature_len_2; -static uint8_t message_1[] = "The quick brown fox ..."; -static uint8_t message_2[] = "The quick brown fox jumped from the tree."; +// static OQS_SIG_STFL_SECRET_KEY *lock_test_sk = NULL; +// static OQS_SIG_STFL *lock_test_sig_obj = NULL; +// static uint8_t *lock_test_public_key = NULL; +// static char *lock_test_context = NULL; +// static uint8_t *signature_1 = NULL; +// static uint8_t *signature_2 = NULL; +// static size_t signature_len_1; +// static size_t signature_len_2; +// static uint8_t message_1[] = "The quick brown fox ..."; +// static uint8_t message_2[] = "The quick brown fox jumped from the tree."; /* * Write stateful secret keys to disk. @@ -161,6 +168,18 @@ static OQS_STATUS save_secret_key(uint8_t *key_buf, size_t buf_len, void *contex } #if OQS_USE_PTHREADS_IN_TESTS + +static OQS_SIG_STFL_SECRET_KEY *lock_test_sk = NULL; +static OQS_SIG_STFL *lock_test_sig_obj = NULL; +static uint8_t *lock_test_public_key = NULL; +static char *lock_test_context = NULL; +static uint8_t *signature_1 = NULL; +static uint8_t *signature_2 = NULL; +static size_t signature_len_1; +static size_t signature_len_2; +static uint8_t message_1[] = "The quick brown fox ..."; +static uint8_t message_2[] = "The quick brown fox jumped from the tree."; + static OQS_STATUS lock_sk_key(void *mutex) { if (mutex == NULL) { return OQS_ERROR; @@ -183,11 +202,13 @@ static OQS_STATUS unlock_sk_key(void *mutex) { return OQS_SUCCESS; } #else -static OQS_STATUS lock_sk_key(void *mutex) { +static OQS_STATUS lock_sk_key(UNUSED void *mutex) { + // void(*mutex); return OQS_SUCCESS; } -static OQS_STATUS unlock_sk_key(void *mutex) { +static OQS_STATUS unlock_sk_key(UNUSED void *mutex) { + // void(mutex); return OQS_SUCCESS; } #endif @@ -213,12 +234,12 @@ OQS_STATUS sig_stfl_keypair_from_KATs(OQS_SIG_STFL *sig, uint8_t *public_key, OQ } // Grab the pk and sk from KAT file - if (!ReadHex(fp_rsp, public_key, sig->length_public_key, "pk = ")) { + if (!ReadHex(fp_rsp, public_key, sig->length_public_key, (char *)"pk = ")) { fprintf(stderr, "ERROR: unable to read 'pk' from <%s>\n", katfile); goto err; } - if (!ReadHex(fp_rsp, secret_key->secret_key_data, sig->length_secret_key, "sk = ")) { + if (!ReadHex(fp_rsp, secret_key->secret_key_data, sig->length_secret_key, (char *)"sk = ")) { fprintf(stderr, "ERROR: unable to read 'sk' from <%s>\n", katfile); goto err; } @@ -410,7 +431,7 @@ static OQS_STATUS sig_stfl_test_correctness(const char *method_name, const char file_store = convert_method_name_to_file_name(sig->method_name); if (file_store == NULL) { - fprintf(stderr, "%s: file_store is null\n", __FUNCTION__); + fprintf(stderr, "%s: file_store is null\n", __func__); goto err; } @@ -683,6 +704,23 @@ static OQS_STATUS sig_stfl_test_secret_key(const char *method_name, const char * return rc; } +#ifdef OQS_ENABLE_TEST_CONSTANT_TIME +static void TEST_SIG_STFL_randombytes(uint8_t *random_array, size_t bytes_to_read) { + // We can't make direct calls to the system randombytes on some platforms, + // so we have to swap out the OQS_randombytes provider. + + OQS_randombytes_switch_algorithm("system"); + OQS_randombytes(random_array, bytes_to_read); + OQS_randombytes_custom_algorithm(&TEST_SIG_STFL_randombytes); + + // OQS_TEST_CT_CLASSIFY tells Valgrind's memcheck tool to issue a warning if + // the program branches on any byte that depends on random_array. This helps us + // identify timing side-channels, as these bytes often contain secret data. + OQS_TEST_CT_CLASSIFY(random_array, bytes_to_read); +} +#endif + +#if OQS_USE_PTHREADS_IN_TESTS static OQS_STATUS sig_stfl_test_query_key(const char *method_name) { OQS_STATUS rc = OQS_SUCCESS; size_t message_len_1 = sizeof(message_1); @@ -883,9 +921,9 @@ static OQS_STATUS sig_stfl_test_secret_key_lock(const char *method_name, const c OQS_SIG_STFL_SECRET_KEY_SET_lock(lock_test_sk, lock_sk_key); OQS_SIG_STFL_SECRET_KEY_SET_unlock(lock_test_sk, unlock_sk_key); -#if OQS_USE_PTHREADS_IN_TESTS +//#if OQS_USE_PTHREADS_IN_TESTS OQS_SIG_STFL_SECRET_KEY_SET_mutex(lock_test_sk, test_sk_lock); -#endif +//#endif printf("================================================================================\n"); printf("Generate keypair %s\n", method_name); @@ -915,23 +953,7 @@ static OQS_STATUS sig_stfl_test_secret_key_lock(const char *method_name, const c return OQS_ERROR; } -#ifdef OQS_ENABLE_TEST_CONSTANT_TIME -static void TEST_SIG_STFL_randombytes(uint8_t *random_array, size_t bytes_to_read) { - // We can't make direct calls to the system randombytes on some platforms, - // so we have to swap out the OQS_randombytes provider. - - OQS_randombytes_switch_algorithm("system"); - OQS_randombytes(random_array, bytes_to_read); - OQS_randombytes_custom_algorithm(&TEST_SIG_STFL_randombytes); - // OQS_TEST_CT_CLASSIFY tells Valgrind's memcheck tool to issue a warning if - // the program branches on any byte that depends on random_array. This helps us - // identify timing side-channels, as these bytes often contain secret data. - OQS_TEST_CT_CLASSIFY(random_array, bytes_to_read); -} -#endif - -#if OQS_USE_PTHREADS_IN_TESTS typedef struct thread_data { const char *alg_name; const char *katfile; @@ -947,25 +969,25 @@ typedef struct lock_test_data { void *test_query_key(void *arg) { struct lock_test_data *td = arg; - printf("\n%s: Start Query Stateful Key info\n", __FUNCTION__); + printf("\n%s: Start Query Stateful Key info\n", __func__); td->rc = sig_stfl_test_query_key(td->alg_name); - printf("%s: End Query Stateful Key info\n\n", __FUNCTION__); + printf("%s: End Query Stateful Key info\n\n", __func__); return NULL; } void *test_sig_gen(void *arg) { struct lock_test_data *td = arg; - printf("\n%s: Start Generate Stateful Signature\n", __FUNCTION__); + printf("\n%s: Start Generate Stateful Signature\n", __func__); td->rc = sig_stfl_test_sig_gen(td->alg_name); - printf("%s: End Generate Stateful Signature\n\n", __FUNCTION__); + printf("%s: End Generate Stateful Signature\n\n", __func__); return NULL; } void *test_create_keys(void *arg) { struct lock_test_data *td = arg; - printf("\n%s: Start Generate Keys\n", __FUNCTION__); + printf("\n%s: Start Generate Keys\n", __func__); td->rc = sig_stfl_test_secret_key_lock(td->alg_name, td->katfile); - printf("%s: End Generate Stateful Keys\n\n", __FUNCTION__); + printf("%s: End Generate Stateful Keys\n\n", __func__); return NULL; } @@ -1086,10 +1108,6 @@ int main(int argc, char **argv) { if (sk_lock) { pthread_mutex_destroy(sk_lock); } -#else - rc = sig_stfl_test_correctness(alg_name, katfile); - rc1 = sig_stfl_test_secret_key(alg_name, katfile); -#endif OQS_SIG_STFL_SECRET_KEY_free(lock_test_sk); OQS_MEM_insecure_free(lock_test_public_key); @@ -1097,11 +1115,24 @@ int main(int argc, char **argv) { OQS_MEM_insecure_free(lock_test_context); OQS_MEM_insecure_free(signature_1); OQS_MEM_insecure_free(signature_2); - - OQS_destroy(); if (rc != OQS_SUCCESS || rc1 != OQS_SUCCESS || rc_create != OQS_SUCCESS || rc_sign != OQS_SUCCESS || rc_query != OQS_SUCCESS) { return EXIT_FAILURE; } return exit_status; +#else + rc = sig_stfl_test_correctness(alg_name, katfile); + rc1 = sig_stfl_test_secret_key(alg_name, katfile); +// OQS_MEM_insecure_free(signature_1); +// signature_1 = NULL; +// OQS_MEM_insecure_free(signature_2); +// signature_2 = NULL; + + OQS_destroy(); + + if (rc != OQS_SUCCESS || rc1 != OQS_SUCCESS) { + return EXIT_FAILURE; + } + return exit_status; +#endif }