From 23490d3587b18da599e05cf4aad02b1d48c66b73 Mon Sep 17 00:00:00 2001 From: Duc Tri Nguyen Date: Sat, 8 Jun 2024 17:56:33 -0400 Subject: [PATCH] add XMSS-SHAKE256_*_256 parameters Signed-off-by: Duc Tri Nguyen --- .CMake/alg_support.cmake | 3 + src/oqsconfig.h.cmake | 3 + src/sig_stfl/sig_stfl.c | 57 +++++++++++++++++++ src/sig_stfl/sig_stfl.h | 5 +- src/sig_stfl/xmss/CMakeLists.txt | 18 ++++++ src/sig_stfl/xmss/sig_stfl_xmss.h | 55 ++++++++++++++++++ .../xmss/sig_stfl_xmss_shake256_h10_256.c | 7 +++ .../xmss/sig_stfl_xmss_shake256_h16_256.c | 7 +++ .../xmss/sig_stfl_xmss_shake256_h20_256.c | 7 +++ tests/KATs/sig_stfl/kats.json | 3 + .../sig_stfl/xmss/XMSS-SHAKE256_10_256.rsp | 12 ++++ .../sig_stfl/xmss/XMSS-SHAKE256_16_256.rsp | 12 ++++ .../sig_stfl/xmss/XMSS-SHAKE256_20_256.rsp | 12 ++++ tests/test_sig_stfl.c | 13 ++++- 14 files changed, 211 insertions(+), 3 deletions(-) create mode 100644 src/sig_stfl/xmss/sig_stfl_xmss_shake256_h10_256.c create mode 100644 src/sig_stfl/xmss/sig_stfl_xmss_shake256_h16_256.c create mode 100644 src/sig_stfl/xmss/sig_stfl_xmss_shake256_h20_256.c create mode 100644 tests/KATs/sig_stfl/xmss/XMSS-SHAKE256_10_256.rsp create mode 100644 tests/KATs/sig_stfl/xmss/XMSS-SHAKE256_16_256.rsp create mode 100644 tests/KATs/sig_stfl/xmss/XMSS-SHAKE256_20_256.rsp diff --git a/.CMake/alg_support.cmake b/.CMake/alg_support.cmake index 54a14b006..73e972dd7 100644 --- a/.CMake/alg_support.cmake +++ b/.CMake/alg_support.cmake @@ -516,6 +516,9 @@ cmake_dependent_option(OQS_ENABLE_SIG_STFL_xmss_sha256_h20_192 "" ON "OQS_ENABLE cmake_dependent_option(OQS_ENABLE_SIG_STFL_xmss_shake256_h10_192 "" ON "OQS_ENABLE_SIG_STFL_XMSS" OFF) cmake_dependent_option(OQS_ENABLE_SIG_STFL_xmss_shake256_h16_192 "" ON "OQS_ENABLE_SIG_STFL_XMSS" OFF) cmake_dependent_option(OQS_ENABLE_SIG_STFL_xmss_shake256_h20_192 "" ON "OQS_ENABLE_SIG_STFL_XMSS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_xmss_shake256_h10_256 "" ON "OQS_ENABLE_SIG_STFL_XMSS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_xmss_shake256_h16_256 "" ON "OQS_ENABLE_SIG_STFL_XMSS" OFF) +cmake_dependent_option(OQS_ENABLE_SIG_STFL_xmss_shake256_h20_256 "" ON "OQS_ENABLE_SIG_STFL_XMSS" OFF) cmake_dependent_option(OQS_ENABLE_SIG_STFL_xmssmt_sha256_h20_2 "" ON "OQS_ENABLE_SIG_STFL_XMSS" OFF) cmake_dependent_option(OQS_ENABLE_SIG_STFL_xmssmt_sha256_h20_4 "" ON "OQS_ENABLE_SIG_STFL_XMSS" OFF) diff --git a/src/oqsconfig.h.cmake b/src/oqsconfig.h.cmake index 556c7532e..d2d01c477 100644 --- a/src/oqsconfig.h.cmake +++ b/src/oqsconfig.h.cmake @@ -210,6 +210,9 @@ #cmakedefine OQS_ENABLE_SIG_STFL_xmss_shake256_h10_192 1 #cmakedefine OQS_ENABLE_SIG_STFL_xmss_shake256_h16_192 1 #cmakedefine OQS_ENABLE_SIG_STFL_xmss_shake256_h20_192 1 +#cmakedefine OQS_ENABLE_SIG_STFL_xmss_shake256_h10_256 1 +#cmakedefine OQS_ENABLE_SIG_STFL_xmss_shake256_h16_256 1 +#cmakedefine OQS_ENABLE_SIG_STFL_xmss_shake256_h20_256 1 #cmakedefine OQS_ENABLE_SIG_STFL_xmssmt_sha256_h20_2 1 #cmakedefine OQS_ENABLE_SIG_STFL_xmssmt_sha256_h20_4 1 diff --git a/src/sig_stfl/sig_stfl.c b/src/sig_stfl/sig_stfl.c index fc6bae0be..e5774e6b8 100644 --- a/src/sig_stfl/sig_stfl.c +++ b/src/sig_stfl/sig_stfl.c @@ -41,6 +41,9 @@ OQS_API const char *OQS_SIG_STFL_alg_identifier(size_t i) { OQS_SIG_STFL_alg_xmss_shake256_h10_192, OQS_SIG_STFL_alg_xmss_shake256_h16_192, OQS_SIG_STFL_alg_xmss_shake256_h20_192, + OQS_SIG_STFL_alg_xmss_shake256_h10_256, + OQS_SIG_STFL_alg_xmss_shake256_h16_256, + OQS_SIG_STFL_alg_xmss_shake256_h20_256, OQS_SIG_STFL_alg_xmssmt_sha256_h20_2, OQS_SIG_STFL_alg_xmssmt_sha256_h20_4, OQS_SIG_STFL_alg_xmssmt_sha256_h40_2, @@ -225,6 +228,24 @@ OQS_API int OQS_SIG_STFL_alg_is_enabled(const char *method_name) { return 1; #else return 0; +#endif + } else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h10_256)) { +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h10_256 + return 1; +#else + return 0; +#endif + } else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h16_256)) { +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h16_256 + return 1; +#else + return 0; +#endif + } else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h20_256)) { +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h20_256 + return 1; +#else + return 0; #endif } else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_sha256_h20_2)) { #ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h20_2 @@ -649,6 +670,24 @@ OQS_API OQS_SIG_STFL *OQS_SIG_STFL_new(const char *method_name) { return OQS_SIG_STFL_alg_xmss_shake256_h20_192_new(); #else return NULL; +#endif + } else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h10_256)) { +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h10_256 + return OQS_SIG_STFL_alg_xmss_shake256_h10_256_new(); +#else + return NULL; +#endif + } else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h16_256)) { +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h16_256 + return OQS_SIG_STFL_alg_xmss_shake256_h16_256_new(); +#else + return NULL; +#endif + } else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h20_256)) { +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h20_256 + return OQS_SIG_STFL_alg_xmss_shake256_h20_256_new(); +#else + return NULL; #endif } else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_sha256_h20_2)) { #ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h20_2 @@ -1146,6 +1185,24 @@ OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SIG_STFL_SECRET_KEY_new(const char *method_ return OQS_SECRET_KEY_XMSS_SHAKE256_H20_192_new(); #else return NULL; +#endif + } else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h10_256)) { +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h10_256 + return OQS_SECRET_KEY_XMSS_SHAKE256_H10_256_new(); +#else + return NULL; +#endif + } else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h16_256)) { +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h16_256 + return OQS_SECRET_KEY_XMSS_SHAKE256_H16_256_new(); +#else + return NULL; +#endif + } else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmss_shake256_h20_256)) { +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h20_256 + return OQS_SECRET_KEY_XMSS_SHAKE256_H20_256_new(); +#else + return NULL; #endif } else if (0 == strcasecmp(method_name, OQS_SIG_STFL_alg_xmssmt_sha256_h20_2)) { #ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h20_2 diff --git a/src/sig_stfl/sig_stfl.h b/src/sig_stfl/sig_stfl.h index 2fcd6ee1b..9901d9d21 100644 --- a/src/sig_stfl/sig_stfl.h +++ b/src/sig_stfl/sig_stfl.h @@ -62,6 +62,9 @@ extern "C" #define OQS_SIG_STFL_alg_xmss_shake256_h10_192 "XMSS-SHAKE256_10_192" #define OQS_SIG_STFL_alg_xmss_shake256_h16_192 "XMSS-SHAKE256_16_192" #define OQS_SIG_STFL_alg_xmss_shake256_h20_192 "XMSS-SHAKE256_20_192" +#define OQS_SIG_STFL_alg_xmss_shake256_h10_256 "XMSS-SHAKE256_10_256" +#define OQS_SIG_STFL_alg_xmss_shake256_h16_256 "XMSS-SHAKE256_16_256" +#define OQS_SIG_STFL_alg_xmss_shake256_h20_256 "XMSS-SHAKE256_20_256" #define OQS_SIG_STFL_alg_xmssmt_sha256_h20_2 "XMSSMT-SHA2_20/2_256" #define OQS_SIG_STFL_alg_xmssmt_sha256_h20_4 "XMSSMT-SHA2_20/4_256" @@ -129,7 +132,7 @@ extern "C" /* * Total number of stateful variants defined above, used to create the tracking array */ -#define OQS_SIG_STFL_algs_length 67 +#define OQS_SIG_STFL_algs_length 70 typedef struct OQS_SIG_STFL_SECRET_KEY OQS_SIG_STFL_SECRET_KEY; diff --git a/src/sig_stfl/xmss/CMakeLists.txt b/src/sig_stfl/xmss/CMakeLists.txt index 9eb82a97e..c0c7a91de 100644 --- a/src/sig_stfl/xmss/CMakeLists.txt +++ b/src/sig_stfl/xmss/CMakeLists.txt @@ -124,6 +124,24 @@ if (OQS_ENABLE_SIG_STFL_xmss_shake256_h20_192) set(_XMSS_OBJS ${_XMSS_OBJS} $) endif() +if (OQS_ENABLE_SIG_STFL_xmss_shake256_h10_256) + add_library(xmss_shake256_h10_256 OBJECT sig_stfl_xmss_shake256_h10_256.c sig_stfl_xmss_functions.c ${SRCS}) + target_compile_options(xmss_shake256_h10_256 PRIVATE -DXMSS_PARAMS_NAMESPACE=xmss_shake256_h10_256 -DHASH=5) + set(_XMSS_OBJS ${_XMSS_OBJS} $) +endif() + +if (OQS_ENABLE_SIG_STFL_xmss_shake256_h16_256) + add_library(xmss_shake256_h16_256 OBJECT sig_stfl_xmss_shake256_h16_256.c sig_stfl_xmss_functions.c ${SRCS}) + target_compile_options(xmss_shake256_h16_256 PRIVATE -DXMSS_PARAMS_NAMESPACE=xmss_shake256_h16_256 -DHASH=5) + set(_XMSS_OBJS ${_XMSS_OBJS} $) +endif() + +if (OQS_ENABLE_SIG_STFL_xmss_shake256_h20_256) + add_library(xmss_shake256_h20_256 OBJECT sig_stfl_xmss_shake256_h20_256.c sig_stfl_xmss_functions.c ${SRCS}) + target_compile_options(xmss_shake256_h20_256 PRIVATE -DXMSS_PARAMS_NAMESPACE=xmss_shake256_h20_256 -DHASH=5) + set(_XMSS_OBJS ${_XMSS_OBJS} $) +endif() + if (OQS_ENABLE_SIG_STFL_xmssmt_sha256_h20_2) add_library(xmssmt_sha256_h20_2 OBJECT sig_stfl_xmssmt_sha256_h20_2.c sig_stfl_xmssmt_functions.c ${SRCS}) target_compile_options(xmssmt_sha256_h20_2 PRIVATE -DXMSS_PARAMS_NAMESPACE=xmssmt_sha256_h20_2 -DHASH=3) diff --git a/src/sig_stfl/xmss/sig_stfl_xmss.h b/src/sig_stfl/xmss/sig_stfl_xmss.h index 5064546c6..148c9ffe8 100644 --- a/src/sig_stfl/xmss/sig_stfl_xmss.h +++ b/src/sig_stfl/xmss/sig_stfl_xmss.h @@ -35,6 +35,10 @@ * | XMSS-SHA2_16_192 | 0x0e | 1605 | 48 | 1636 | 24 | ❌ | ✅ | ✅ | * | XMSS-SHA2_20_192 | 0x0f | 1973 | 48 | 1732 | 24 | ❌ | ✅ | ✅ | * + * | XMSS-SHAKE256_10_256 | 0x10 | 1373 | 64 | 2500 | 32 | ❌ | ✅ | ✅ | + * | XMSS-SHAKE256_16_256 | 0x11 | 2093 | 64 | 2692 | 32 | ❌ | ✅ | ✅ | + * | XMSS-SHAKE256_20_256 | 0x12 | 2573 | 64 | 2820 | 32 | ❌ | ✅ | ✅ | + * * | XMSS-SHAKE256_10_192 | 0x13 | 1053 | 48 | 1492 | 24 | ❌ | ✅ | ✅ | * | XMSS-SHAKE256_16_192 | 0x14 | 1605 | 48 | 1636 | 24 | ❌ | ✅ | ✅ | * | XMSS-SHAKE256_20_192 | 0x15 | 1973 | 48 | 1732 | 24 | ❌ | ✅ | ✅ | @@ -364,6 +368,57 @@ OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h20_192_sigs_total(unsigned lo #endif +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h10_256 + +#define OQS_SIG_STFL_alg_xmss_shake256_h10_256_oid 0x10 +#define OQS_SIG_STFL_alg_xmss_shake256_h10_256_length_sk (1373 + XMSS_OID_LEN) +#define OQS_SIG_STFL_alg_xmss_shake256_h10_256_length_pk (64 + XMSS_OID_LEN) +#define OQS_SIG_STFL_alg_xmss_shake256_h10_256_length_signature 2500 + +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_xmss_shake256_h10_256_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_XMSS_SHAKE256_H10_256_new(void); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h10_256_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h10_256_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, OQS_SIG_STFL_SECRET_KEY *secret_key); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h10_256_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h10_256_sigs_remaining(unsigned long long *remain, const OQS_SIG_STFL_SECRET_KEY *secret_key); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h10_256_sigs_total(unsigned long long *total, const OQS_SIG_STFL_SECRET_KEY *secret_key); + +#endif + +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h16_256 + +#define OQS_SIG_STFL_alg_xmss_shake256_h16_256_oid 0x11 +#define OQS_SIG_STFL_alg_xmss_shake256_h16_256_length_sk (2093 + XMSS_OID_LEN) +#define OQS_SIG_STFL_alg_xmss_shake256_h16_256_length_pk (64 + XMSS_OID_LEN) +#define OQS_SIG_STFL_alg_xmss_shake256_h16_256_length_signature 2692 + +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_xmss_shake256_h16_256_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_XMSS_SHAKE256_H16_256_new(void); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h16_256_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h16_256_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, OQS_SIG_STFL_SECRET_KEY *secret_key); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h16_256_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h16_256_sigs_remaining(unsigned long long *remain, const OQS_SIG_STFL_SECRET_KEY *secret_key); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h16_256_sigs_total(unsigned long long *total, const OQS_SIG_STFL_SECRET_KEY *secret_key); + +#endif + +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h20_256 + +#define OQS_SIG_STFL_alg_xmss_shake256_h20_256_oid 0x12 +#define OQS_SIG_STFL_alg_xmss_shake256_h20_256_length_sk (2573 + XMSS_OID_LEN) +#define OQS_SIG_STFL_alg_xmss_shake256_h20_256_length_pk (64 + XMSS_OID_LEN) +#define OQS_SIG_STFL_alg_xmss_shake256_h20_256_length_signature 2820 + +OQS_API OQS_SIG_STFL *OQS_SIG_STFL_alg_xmss_shake256_h20_256_new(void); +OQS_API OQS_SIG_STFL_SECRET_KEY *OQS_SECRET_KEY_XMSS_SHAKE256_H20_256_new(void); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h20_256_keypair(uint8_t *public_key, OQS_SIG_STFL_SECRET_KEY *secret_key); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h20_256_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, OQS_SIG_STFL_SECRET_KEY *secret_key); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h20_256_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h20_256_sigs_remaining(unsigned long long *remain, const OQS_SIG_STFL_SECRET_KEY *secret_key); +OQS_API OQS_STATUS OQS_SIG_STFL_alg_xmss_shake256_h20_256_sigs_total(unsigned long long *total, const OQS_SIG_STFL_SECRET_KEY *secret_key); + +#endif + #ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h20_2 #define OQS_SIG_STFL_alg_xmssmt_sha256_h20_2_oid 0x01 diff --git a/src/sig_stfl/xmss/sig_stfl_xmss_shake256_h10_256.c b/src/sig_stfl/xmss/sig_stfl_xmss_shake256_h10_256.c new file mode 100644 index 000000000..a7e358459 --- /dev/null +++ b/src/sig_stfl/xmss/sig_stfl_xmss_shake256_h10_256.c @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: (Apache-2.0 OR MIT) AND CC0-1.0 + +#include "sig_stfl_xmss_xmssmt.c" + +// ======================== XMSS-SHAKE256_10_256 ======================== // + +XMSS_ALG(, _shake256_h10_256, _SHAKE256_H10_256) diff --git a/src/sig_stfl/xmss/sig_stfl_xmss_shake256_h16_256.c b/src/sig_stfl/xmss/sig_stfl_xmss_shake256_h16_256.c new file mode 100644 index 000000000..db5a3d86c --- /dev/null +++ b/src/sig_stfl/xmss/sig_stfl_xmss_shake256_h16_256.c @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: (Apache-2.0 OR MIT) AND CC0-1.0 + +#include "sig_stfl_xmss_xmssmt.c" + +// ======================== XMSS-SHAKE256_16_256 ======================== // + +XMSS_ALG(, _shake256_h16_256, _SHAKE256_H16_256) diff --git a/src/sig_stfl/xmss/sig_stfl_xmss_shake256_h20_256.c b/src/sig_stfl/xmss/sig_stfl_xmss_shake256_h20_256.c new file mode 100644 index 000000000..63d7fa6f5 --- /dev/null +++ b/src/sig_stfl/xmss/sig_stfl_xmss_shake256_h20_256.c @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: (Apache-2.0 OR MIT) AND CC0-1.0 + +#include "sig_stfl_xmss_xmssmt.c" + +// ======================== XMSS-SHAKE256_20_256 ======================== // + +XMSS_ALG(, _shake256_h20_256, _SHAKE256_H20_256) diff --git a/tests/KATs/sig_stfl/kats.json b/tests/KATs/sig_stfl/kats.json index 7e5174a9f..52b80504f 100644 --- a/tests/KATs/sig_stfl/kats.json +++ b/tests/KATs/sig_stfl/kats.json @@ -17,6 +17,9 @@ "XMSS-SHAKE256_10_192": "b62a1dbc2f8920df2f5a164ed175829ed95d5b3301269b0ab2452cd46b4261d6", "XMSS-SHAKE256_16_192": "935570c4bc7c61e4cdc0517182766dcee53ceec71f91b8dd969568a7f8b76db1", "XMSS-SHAKE256_20_192": "18067167a1eeee294bf1f0e3087e468b512f7c0c4cfad9c449dc425aab45336b", + "XMSS-SHAKE256_10_256": "7cbb582c6723cb86a9c775151865a67f3f9fa30140beab8f115cd4a7dc15eb2d", + "XMSS-SHAKE256_16_256": "ccc819bc17f78cdb4f2733b97350b7ef351e07d1456564a4185247db1a682fe3", + "XMSS-SHAKE256_20_256": "01ace5400a407030b0cb43ed0982c5f378a1d0c4108fdca2b70bc4ba78067c7f", "XMSSMT-SHA2_20/2_256": "9f117294999c886ac6b69d6f32c3fc152599343add210f4464aee5d1ca0ec34d", "XMSSMT-SHA2_20/4_256": "0c990e8ff8189140e8539b11ae3f85040544fc7d549f8db17d83392569647de9", "XMSSMT-SHA2_40/2_256": "91605c4b67afb4e17d57ed076e10d3c4287264deea4a46092e374199c041d489", diff --git a/tests/KATs/sig_stfl/xmss/XMSS-SHAKE256_10_256.rsp b/tests/KATs/sig_stfl/xmss/XMSS-SHAKE256_10_256.rsp new file mode 100644 index 000000000..2d496c23a --- /dev/null +++ b/tests/KATs/sig_stfl/xmss/XMSS-SHAKE256_10_256.rsp @@ -0,0 +1,12 @@ +pk = 0000001021EEFB96A7E288E57EDE182D6CE08F66E96079E6E32E0514E3F02F03D95C16976D3CE02B040B4B4CBBF43BB759203806370B573070BE1C53D0F9D174F6FB92F2 +sk = 00000010000000000D1F5A068B0FA9AB98100DCFD3E56EA65E53822BD35B41D40F43DEDF14AB24FA1851F7EDE90910A5BA0031962A3F56CDC07E0AC2E9D9507F5D8D46DE2E76183621EEFB96A7E288E57EDE182D6CE08F66E96079E6E32E0514E3F02F03D95C16976D3CE02B040B4B4CBBF43BB759203806370B573070BE1C53D0F9D174F6FB92F200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BB7650903A1529B19873A5F4DA0D16CA08661F2A542BDD3BF5B7A24CBDED5664EA4B04BD62BCF3F867B60131502F55815C18834C234D5DB86B1B45E5C65169834A8D4EF0278A940CE665301AE2DF7AB554FFC58F2FF02685A9F6EBABDCF308AC3FFE0A61B923AA8D6CD876230EDD6CC63A9B08D067D57646CBD9BA52864313BCA7F76CE1EA8C66EB61D6466776EC1A44990CC381C992CCB7CDADF6C9E84C137C079E91B573B37E32AAF7591E45971E015A8782C68543BB1BDE63AD7C0819868BBBD126F0A0F3F76D1E659B977690A08144A91B2FA9AF11598E0A7297E07EF779CE117008FB1F04DD661F2EE4056C28FF6C227EDAB8314CFD16A5ADFE01A87F2B57A6E76727B90DF64A24FC4ED369AF4D4156E40DF838740E33E1FCB2F98C81B7DF0C6A70737C157709894600C21CBCA79EC85C2CE40F4721A375E28526CB3728000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000102CB9CC1ED8300C6BA2066FD983A108460D989266457010CA9BCB7825F6354A501000000000001BD11D786FF802479FBB9A7B7D7E575F4B7E50F16953C069BB4E496B595EE9ABF02000000000001EB8FD85D5F6450CAE7E7A70686BF9B8C96B12F0CD694C38141A0DD498BDFCBB0030000000000012E10696FFF0FA6DC0662E88EF8BF7C240669A00A1E3A3D342479EFAA78BDB53504000000000001AA29D0E0E7DF34780786B53E9DC38CD11F801ECC56315676A8E726395BC5423B050000000000011D309F5A6BBD749D5EE0004C2D4FFF3429AF7DEAE0107548728BD7F0A5C1D51506000000000001E7940CCAF5728217A9055AABA14C5CD070325ED41C7BF4BED7D8488DADE1992207000000000001B09A1AA0234D909B2CA0595A91BBE5DD597EBA33714D25BF0041E2A669EADBFD08000000000001F4924E2EA8F184871F34032815B98C3837C8C068D22B2A72922677598674565409000000000001000000000000000000000000000000000000000000000000000000000000000000000000 + + +count = 0 +seed = 1840C60AD9F35C900372EF38D08671A74353C965C3C5DE0668C9C3E5CF3926304322530FD9681CF3A9C71FD633D60C66 +mlen = 33 +msg = B338DD755D5618C464AB331F14DE3DD4A358BBA00D28FB35236741E902F7B248CE +smlen = 2500 +sm = 0000000013616CAB98336DD083BF9DC3C7A576A5C1163ECB976628A2256008FC1FA8CE0FA89B33837FCE4DEDFDA975D093B78BF029D3071DCA013DBE61CE41479CD6D574FDBF75E68EFCA9B1D81575E8D226A7779FF72790EAE4231EA22D61922D74A4D3D8786376D8214CF4A9FE1FF0FAAD65386BAD115D5B21861A3EEBA099254898C4E5E4792504FEB58CA96DD968B805D5A621890CF9353B77AFB1BE89E720B15E58C52CAFA152166FF6399232050F29A9A572AB510CC95A93350617C630B9C6238514F0FDD37DB537B5422C0334AF9062E99465CF4980D36B7F93F5CEA739ACBBABB04B935C7EFB850EC31BED6CD79163E54C223947F580700D991D5F90F3F20C6C5C474F8F5ECA45C5433FA7EC7E2EFBCC2AB89D0AC530B73CAAC08C1E11B3A49E220175C79D4F8B9F0B262E18D9EF55B5BE147AF0B9B67A77CF869CEED955BE9D2C1CE8651362609CC6ADAE9F9B892ADCC84AEE5100B500EE75D0413C2922B98F47E013AF62A55A96BCA2538F8113B3CC40633E12E3E088A46B1A3152CFC93F7014E9D094EFB3BA2FDD46AFF7D36FC62E91258D21B7EF5BA2B3430CC1352FB80D6134E8051FC2C9035EC792E5F161125F11BDEFF382DD773C108C47C471E736B37592508B38CDA20B1AFF993A6E93410C9D94201D04D136128D7498E0D4D97A8605465D9700ED10A665C02C16C34E65D13F911F301D5E22C6E8C1A37060B5EE4435DAA884821D5554645AC0EE3CD5BBA522CDAB408E9ADA13B4652A8BA914CC649FA0E8257D63BFC9D676FA4A18EF9B1A029F72E15336A85C3193B6B2B39D2199F0ED7FC2EAC63F132F47BC625027DB44F374C192078FE174AE0FBDB86CE937733268B1ABE7027A148CD611737164796D9B6A6E69B21E05CCFBCF067E63AA6CA94436AEFCCD1A19C35499FFD628FBC3C218EEF8D83526515A7271879AE8C87F1C9997AA8184C4325353AC00D339D7FC66E540DA01E8CA05944032461A13A2552C5082DEA96861D0BFDEE48E36F700533DE8E87A0CB0F93524D57A09A4EEBD300C68A9975E0002403F2CB722EFB0454F50DB9311C0805906173F04606180E6E8A672AB4EDBE3A579348856DE28175BCEA08B1E5E39BB9263BE645024BD6F3EA26DE4861020E41BE83149AB5908A354463D01BA2B5539E046A66EAE94573CB8EA7A12FAFF6ADF344252BF4578CA6455015A2994DD660D307D78FECF6D72F1E3A6F7A6E22544AFFB8F5377CEFE86C651D62547F4A0F8DACE20B02DBB9154362D5F012E0DC6B5CDCAEBC32FD2294ED2DFF76B7BB00ED47251989FAB6D8F746A3D46DDEAB02EF3972C45163D43B5122DA563CED1C1E9928C436AD37B81EC4F7B7D3B296BE0D6100C680A08543925B16C433ADBD45A08C56E71D26852D2DAC5749DDE0F03F4B31DEC415D6958FB9463E2D3B94C659F5082D8294210D51253A274DD2E612204D5CCA844B71CC92A694CBBCACEBF9EC7F78A9B4E4520590C54DBCF0B1C700FA41F358ED316C0ABDA6CCCB7D1392AD35A6A15CFC751DEF69D03BE0C53F24694DB5621FDD5C534B641FC3BF9C0D8E0938974E5E0B61555F594FDDA49B5700B0E6B905DF5867E66FF6E427A17CD8EE6E343E7A66290A8EF2507D98219B05A5B15E51FBAEFB21B0F348C66C7AAE6AB39370CED295DDEF21E144B4FC1E053951B35A1B1A54C801E6B3EE8695F67A694D8DF4F7556614D18817EBC02B0C5D78F1DB5CDB8A82F6EE4B3A1E0FC0040082B536C0C6C38E4F1EFEA31BBC55BA13A344F610ACB13F64590836C56F21F8B8DB9C26135DC2D5BB703D5B89072BD5C6CC11B84776C153E02532DCFEAA8B25F641E1689F417FEA89EF72AA217E50BA4C1C83EBFA3C844F7877D162AD0E67C549F5827A3C9CFA72827D7E88B2F843152356C9CAFCDAB218FBDA01C772355D8F797F343CAEC74973F9EC45DF2687FD2C2932BA173FEFA0503793004F90703B17E6F1E284112F03146736EAD99C387BF39E6E61FE939C299C9BDF1FA95C36B4FCD327C4AA4DB2A3B3550C4BE82845B79CAA3BEE871717B2A687B1EAD60F22DC6BFA3B3378AB90107542BB955A1157346A49F0535D01C5C209A20EEC6002E52FFBAE945BD2ECCCED3FD73065A521E593D25ED83154C7A32DBD3A9EF01E5CE24FBFCA7D712FDF8A6F6F66CA135D0BF3B032F6AE2C47BC4D80AA6646082F541ED715446D5CFC2600A9E9561F1E031285EEBF9757478F7F1E2055D36469B6915DF7BC556478EE9A0814931756D308C922435EEA09785E45601586492B91C27FD34B9C4CA36C4CCFAFDECC56C6943B07FC316CB214A2E866A67F3E24F8B9779A7054B5517A368A05BCA37466749B3B32F0AF38B8F1D2CBC198E74066A8E59BE92CE3634B7F82EA89EBCDB33DA06BDBDE7433203620490206AE12FFA522BFF50A4E7931C24BEDC78E36CDF629C8D287FEBF519CB89D182A764156DA53466BC570856577D257D15A4033DE88824418C4693A9CD14DF8B0A5804CB221E550B1BBF54EEA78470B59EF9B67054D79ED9B0A24C0330F3B0579A2843E658189BF4EC18D089ADA09AA4EDF94ED1C6DEA63B19AA3C7D29A0E6D734A846F6CF88C646C0B0AE52BED10CC27D5F40C05A77B95922EE2F38409F8D8A3F5D4D491B7AB9FDD6B7762B2AA9333C9CA27988B5C1FFFA9E4C169FC9030D09668298EAE0E0B7D1D9624BF47AD302EBFB452FD34992B6FDFFFE4D5FEAD1E43BE519BF2A633313B0ABFCCEA65348878928266AE27E5B4368A9C09AAF5EEAFD7EA51A7A754903335C7264D68387612E4C44421B438777811B18F717C27E1720B4DDA81619419BCD575C264F1C86D37CDAC009E6655F386E9E65F5B5D4E25DCC291C050F99AB685D566D76E397F52B3977AECCB6E5C2AECF89D19E0DDF88CA9542B6F30313069282605A132B55FEA2607E0A3A42714A25363E11FF4FB51F20CDD291310726C23A8DFDD59796F74053D8AF6754AD98D47B4B3B5601B21B1D27D18B2CC16B15F7813F61674E09311A3965C0F75CF0D6C196BADB890D20C1ECAF8E438BE6260A963D20F05BC944AAF2E8A63D8D5E7A59AEE0BEEC95D5DD4D19B48F7574BB7650903A1529B19873A5F4DA0D16CA08661F2A542BDD3BF5B7A24CBDED5664EA4B04BD62BCF3F867B60131502F55815C18834C234D5DB86B1B45E5C65169834A8D4EF0278A940CE665301AE2DF7AB554FFC58F2FF02685A9F6EBABDCF308AC3FFE0A61B923AA8D6CD876230EDD6CC63A9B08D067D57646CBD9BA52864313BCA7F76CE1EA8C66EB61D6466776EC1A44990CC381C992CCB7CDADF6C9E84C137C079E91B573B37E32AAF7591E45971E015A8782C68543BB1BDE63AD7C0819868BBBD126F0A0F3F76D1E659B977690A08144A91B2FA9AF11598E0A7297E07EF779CE117008FB1F04DD661F2EE4056C28FF6C227EDAB8314CFD16A5ADFE01A87F2B57A6E76727B90DF64A24FC4ED369AF4D4156E40DF838740E33E1FCB2F98C81B7DF0C6A70737C157709894600C21CBCA79EC85C2CE40F4721A375E28526CB3728 +remain = 1022 +max = 1023 diff --git a/tests/KATs/sig_stfl/xmss/XMSS-SHAKE256_16_256.rsp b/tests/KATs/sig_stfl/xmss/XMSS-SHAKE256_16_256.rsp new file mode 100644 index 000000000..0e8ef4223 --- /dev/null +++ b/tests/KATs/sig_stfl/xmss/XMSS-SHAKE256_16_256.rsp @@ -0,0 +1,12 @@ +pk = 00000011537CD28DEEBBCAD7F2C6EE6DC16146D419F202BBB30AA01C9942C9CE4614970F6DC9D61CB62F1A3F8985A52D4269E95CCF0D9156B6F427F3948364DA0100765C +sk = 0000001100000000CEDACBC4D77026380156C116AF6BCF3B1810B4D16E8F4C9131A0A3F5F33912BA1858DDDD5FEE71D8C4A5C8D9E92D243F3340C88D0692D634673BCFEED47E228A537CD28DEEBBCAD7F2C6EE6DC16146D419F202BBB30AA01C9942C9CE4614970F6DC9D61CB62F1A3F8985A52D4269E95CCF0D9156B6F427F3948364DA0100765C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051E6D923FDE5C94FD1D8140B1C06A93F752351CBD2BC160B770F7CF338A7E37AE3D6C9AA5614926CF14E1251D5BB38B173CD5F17DF6D7823E8E3805293F247C80B1C2CAC348355F6D7E74FC6EAC0E78DD304D93A2F223F512821A2203C0143320B925CF6E045F9888A4BCB761AD51AE9CCBE46F2B58C2EA800DB98BB8432C7096E92BFE7EE7B88F904E7A30CA9196E4C8EA8991AD8F22DA962ECC6E4CAFE3F7992B0E8F8624396C02AF4EB7C2BEA12219B31046E46EB98085ED988D96CE07F6362E3EFB2AAEE4A0172B7F6FC1F8BAFC05E1A9B3C70A52FE7E94087FA91A1EBBDE12FB61E2450CD3D97C66D4CB6D56F0F1E436D2B9C2251CDCC714880FFA10E9200FA85598C09354FE36BDF232337F1E1E0FBF98EF7945C6B7217FB1B931D54C4CDFA8AE0C76CD6BA77FD5DDE68D86B4D31F32319AEB1812A64B5AE6A1ADA038A8D5003843833D4E1370416DC8EE1D26F4ABD8C0C5013781EA6E028B5D3BAAA68F88E8BE709555991EE086AF6E6350F0EC73786B5793F324084898112590C88E6BFABE6051407DA33022FCB0D75975FC41F837148CD19795353A6C69B10864D83A798FFECDEF200C0981F7F11990CD9CB976976C11A4F03FD565EF6B64EC2FF46E4C89F1453639BD5C48D71B307B2673051B175E3E7B7F5B364A0B030654E27489F3AC8065916D748E7AE59B44F59D30021BB35BCAFA0300D0DF1637C271268C50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001A38BD97192364AA4CA144B857F020236E05526AC3066EA670576D4853374D9D1010000000000018DF1028AE322DCC12FBF84DFA3032A7B989A8FC8634540CE6C32C0C71BC8B12C020000000000019382A8233D5CF84024661C9E625731926BB092807DA1C38A175D5216CFDBDDB70300000000000113DE699A9C6C61433C570BBC05280D5D99AA9F75AED26786B5547C451043357B04000000000001754E2A94371701F6AFC47C5E085579688DE3992300CC9E5BFFDE872196B83CB105000000000001B0B707D485DA91CBD0B561699C8B99C9ADF8931C3B5302ED3FBEAC0BB374EC5B06000000000001C3C5EA6BF57CE7B6BC6E295AE08DA015C71EF45B549608404BAEDD1C6ACEED520700000000000184D5033BA4EF0BA86F5ABFE1034AA3F5C43B9418907DDAA78A94B304781431DE080000000000012E0D46BFCE8F7A64560CC176DB3E8F92AC7B032495A257496A6A788725F547E509000000000001AB0DBC506A880184017EEB0E9F914312FDE67B3EA7A1338D902FC0E67E5D25AC0A0000000000015FB77AFC877DFDFAA57EC4793E89EF9F974AEF1DC308039BC360A513AB5030430B0000000000011574F92FC8B48F4457CB6DF8A33C605218E3681BA16A58F53F23BEDE77AA41AD0C00000000000146C8220389A4A3E2C7C9C93E613B6473FDBEB7AD85F8500F8705C56BBE3CE9950D000000000001534B9D643E4C209E6456A3BF4B5DB12FF2E64EC46DE278FB20BAEB85F54F41FE0E000000000001D902BFDD7458D45AA37B3384A3AA6C356EDFB69E63653AC5B71D17289F9783D00F000000000001000000000000000000000000000000000000000000000000000000000000000000000000 + + +count = 0 +seed = 1840C60AD9F35C900372EF38D08671A74353C965C3C5DE0668C9C3E5CF3926304322530FD9681CF3A9C71FD633D60C66 +mlen = 33 +msg = B338DD755D5618C464AB331F14DE3DD4A358BBA00D28FB35236741E902F7B248CE +smlen = 2692 +sm = 00000000B4C198E936088B03B7BD9D7635100A40143549ACDEBAA3A3F1DB9F7992A90BF07C39955F24ECF035F504842C0190C0281BDE30C82EE381B67FA40CF542EA3438B377E2654E501F3001F097600866FCF12C3C5BF3615513AB553D0EF3367FBC33C75507EE525A496FEA9F4358FE242552176FABB82752754FA053DA026D2AA36996584624CED72C94AA2B176430A686CE91E0715A233D9C4F9FFB01135088BC7488A7C89F18148306C17630C625DE5F3623B97E112BD40BD880ED453548F1F1B2F282317B68E597592926A8325AD3F79C4F3A6A1FC3E74D65D674861FA5B563BF3A9B4D343435CCD726AE560F40B3653CED6E64E2A909AEA7C975EFE348D204A369C4058D8FD8BE255E06B9866B822FE7FF9C4E7BBABE655E3E1E89C2A7333D12DE22D40527327B3B6AD79B4556E299C1A1FA6BD94B5C82F4925658A88E4F6AD0204F74626CC5C216026F0672185FB877B4BE986BC9D6241FAE1D266A276AF64B6436296CC6CDFE13259D1A12440015CD03EE1C259FF83AE7257CC672AE9CC9B9754EC5355BB10AC6B66B453540DC3C9A7617A8C694D098BCC074971540D7B02E000D08E908367340FCCD9D90077EE009F9A16E999EC0E24677ED02CB6F6CC90570890156AFA3EBF43C1E583033E4C5243DCDFCF863017E098B3A5645707B9766A06ADA5F7B1D0824887C104667CFB220271F9BEEDA2BB7C647F90C3D4254A35D3A0319F534355F791300FDD70EBB519CB674D2A5FA8A41EC6E84951D4F210B5DA4B15C2FA9585882BC8040B18F7AE0D230FBDF83CBBC09F9BA756D7F9690B2E12976D5A11A6359B2C55D3294DDDA58ACAD8704536DE747CF168E87F7B4FECEDB47423D2339B9D05F0F1776CA070CDAE1133F7890A297B2A3B46D8B5779439A9F88B0B54A815AF83766A5051F418D946FF3F4D8771984843B12B38C2381517FDDA987B2E993F4C97B0CB3EAD992F5234094527D007D8772C3D13765571ACD8554A3C6DC609EEB492859FFD34603D307361F506C9393116BD7756E820C94E788F54A06EBA7B79986EE03670869E7045ACEA4ACB88022079C6A8915C57B3885E1AFBECF324D35273D94D40F9B145E7A47332098E576D6549911D561659F6AD2299EB63F7F778BDFAB7D49EE8189F74F1BFF55365C80382A6695B5A5DC80685B156253D46B6837710ED56A9BD95833B288A929EA872D810A349DC987C1A625CAC85E258DC0CBE1365F947343C0A6376D3A5CE072AD0F7B0C76AC9A37330E27DED0D23F200006D668EA7DF09201C303B09C84AD48783C80337906C010820CE3B52F42A7B11847F836A880738D4CA35E97B457419AA99A5ABADC6180601AA093A39EEF8EB62FC0E83EF3FFC1A121C1E4795F0672D452B4253BB76381289F1DD7F220A712A049C30C5A00134E40E1FC7570AC8151DCB5C6E1F620FF48B2978025501CF3F804660C8CCFC4328B8A57E1A7F639DB8E3C49F91A606F97E5341B67EF895CA435A451FEFEC110520EF7A4B00506257A4CA6D3D7FBCAF6F5CF11D2D99DE01F8A32FBA0FAE0650431781B8348313AA0D4F2C54D8F12A197002DE4932489DCC0FC3C457E1358D1B88615B6ACF39E73A93058E537C3BE868FC326345A86D0737464D5706295A62932D28B74CD3592C7B71275F1831240C98135A4A6D2677F45F2309069D92D115DE6924BC011AB2272B53FF55FA7E913B1D21DC782EC40120524B689C2486CF1BAE7757945E823BCBC75CF336B1C958DB6799C71F21B66EBFEE055577F2F69B57DB94195FFFDBE1699A25B51941EB0AC41048ADDBCD6637C7282E3B7F0A8B52D7173AE7917C196CD819908F625129D1F43FC3382B3E55FBAD4A2BA56C92ABAF3D52D1C89A21A8F08956B8CCB710332CB0146DDECDDE557CA586A17CFBF05B66BBAE66449E93C96B311D538691F20A19B509D27B2B868CF37767F3FA84C22EDFD1F5711F0CAC0C877D92F2A26AB7FA0C657B5DF7FFB2750EA1AC5B5A8FF6FD39A7B6AB3C4E9512CDF7F296F77CB67D9965C7C0E442DD399F0E19CA1EE808EA90736100B04F6E41DEC4063063B932E7A1E943B025CE5E1E2280FB46D3C0FD4561E31E8C18B8B0A01F6605126B657737FE6B301A0F4515108F4424969B4476B97C7D4DCB76A94103EF7F55E6A758A3D9C953892FBD1318A3168B47F1E22CBA33AC205321716D58A94BFB7328D647EF3A0D0AC4721CE2C9D17EFD807EEB881BDD19AA531BBBF4765B5994B9E2FBF1ACA6C07A192194D7200E574EBC09A526D285ADD3C04C5AEEE60F4D95E9F14ED7FC4864D52D282FD34A75D6937B0009F962356C5CDEA2233E78B04B7786418973F8F9BE948A908EBDC87B9C259E9948F50F43E5B6B9C0B9FC371C534379BAB5A7858909AF458E064B19B5CAD25918F1359F727D2DC42F2315B7D355E32151AF8DEE261CCAB0689D5575BC6BF6BD764950F11E48C856993DCDE9E124424AEC6E9AFD85B19DF65554F6C27422F127AF27AFCF89A0291201E8427CCAD1C0AC41E3E2D5ED98002AE912C5F29D9C44756F2D2B1B1A56E582B83723BD9DE6E05A5893ED4B94376FF8320BCEF478010F7D22470981CE4D6CB6574711F2280D7162F8643B8850892942E6607C1473E2BA7893C23AC4A8636026AABF00C7D90CEA8A987590F906618225A597B38F8D3DAA0D67ABEF5D064B4EA3C8ECA2FCD0898493AC806D41D0C3F136241071E23BAC920D771AFE742E13A1C7B62AB876F35C07C9A59E6F74DCD07903B61A563EBA6E527FDC0E39CC505E39BDAEFA77D5E8FCCC6C523684E4766E66CDF9A32D231B66F9EB87A3DBBFD13FDFD7ABE0242F3191FE9EAC78B88E2641516E67990448D954866CEA97E2CAA985FEA70AACB3471980988B49B3CB44A9D9B3413A33A44DA9DF267E809C76DD305C0D4294BBA386370CA6A048DC99723C2FFA90F6D680A23C7B04813181DD08AC7A1A1E44A74D9660BE16197B1D0D379BAACF1707FF3D69C58D68172271561FAD20D28FB11B0666FA1E7D19087696905C3B7010E7F84D384A332F6144C625237AA959535DA34EAF1D67066479977346C046D00E3D870A76EEB04BEB53A51E6D923FDE5C94FD1D8140B1C06A93F752351CBD2BC160B770F7CF338A7E37AE3D6C9AA5614926CF14E1251D5BB38B173CD5F17DF6D7823E8E3805293F247C80B1C2CAC348355F6D7E74FC6EAC0E78DD304D93A2F223F512821A2203C0143320B925CF6E045F9888A4BCB761AD51AE9CCBE46F2B58C2EA800DB98BB8432C7096E92BFE7EE7B88F904E7A30CA9196E4C8EA8991AD8F22DA962ECC6E4CAFE3F7992B0E8F8624396C02AF4EB7C2BEA12219B31046E46EB98085ED988D96CE07F6362E3EFB2AAEE4A0172B7F6FC1F8BAFC05E1A9B3C70A52FE7E94087FA91A1EBBDE12FB61E2450CD3D97C66D4CB6D56F0F1E436D2B9C2251CDCC714880FFA10E9200FA85598C09354FE36BDF232337F1E1E0FBF98EF7945C6B7217FB1B931D54C4CDFA8AE0C76CD6BA77FD5DDE68D86B4D31F32319AEB1812A64B5AE6A1ADA038A8D5003843833D4E1370416DC8EE1D26F4ABD8C0C5013781EA6E028B5D3BAAA68F88E8BE709555991EE086AF6E6350F0EC73786B5793F324084898112590C88E6BFABE6051407DA33022FCB0D75975FC41F837148CD19795353A6C69B10864D83A798FFECDEF200C0981F7F11990CD9CB976976C11A4F03FD565EF6B64EC2FF46E4C89F1453639BD5C48D71B307B2673051B175E3E7B7F5B364A0B030654E27489F3AC8065916D748E7AE59B44F59D30021BB35BCAFA0300D0DF1637C271268C5 +remain = 65534 +max = 65535 diff --git a/tests/KATs/sig_stfl/xmss/XMSS-SHAKE256_20_256.rsp b/tests/KATs/sig_stfl/xmss/XMSS-SHAKE256_20_256.rsp new file mode 100644 index 000000000..b210f0b0f --- /dev/null +++ b/tests/KATs/sig_stfl/xmss/XMSS-SHAKE256_20_256.rsp @@ -0,0 +1,12 @@ +pk = 00000012D4BB8E72CFCF7627FEF07A0655AB33853AEDED203A05407E3ACDCFD388C7A5F4B113606EE1B28AE64B723A915113EFB1C51E9033BF13CEB0EC476B58FFE03B44 +sk = 0000001200000000107996CA22F1B1B3F549B849B6CFCC479DD5F03B42BF9479F4CCB50090F24D504DABE6973AF4650D0757856EEE95BB1162AC9AD34D1504E704971FA343F67F89D4BB8E72CFCF7627FEF07A0655AB33853AEDED203A05407E3ACDCFD388C7A5F4B113606EE1B28AE64B723A915113EFB1C51E9033BF13CEB0EC476B58FFE03B4400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000381A6B08D56572F415C05C223DAF40EDA9DBDAB1E8BB5F2E2AE6571A680A5490B2966761D4159C2F977B16391311BA0A56CA08921AFD2720D8D518FEEAD841CFECB28BDC6554E5A3BEFC11B0C33E38F42DFA428ECDA5F570BB887D264F90C54699789E97524A249DDF93E9802B926B26BB8BA5688FA4854AC7E495C0620ED3E60D2A165093D41F162BF956BE8CC3119065963E6F368E2CC615FD0A560269BF6353EFA2C034422B686EA082BB23389A3A5C43EC3E1382880A8446F62A6E1E1AEDC5C6312398CCDCF8370ACD00BFD28AFA0C95995F193623F0FD5566F622CD99228BB1EEF8B95B19ED70CC56EFEDF70806EFC3530BDD384A1865B0D04D1C0B81751100DC6A2697C1452FA95EC339C802C9AB67DDD2D34A1247C10CAACEED538DBAB14F2D4B51E0A605D60FF97965D40DB83EE606B4654D9B3670CDE3B1D6E50724966D214B2E4807874A27C015F47AB4BC29BD9AFEC33B30543B5FD7108EE12118C3F88DAD0FD94490CFD308D2865789E6E2F3AB6CA2744BE83324BC5EFB44B8195C443D960412057683ACBF658E1D4CF54B4B1839CF0923DA3CFADEA4461753A22EDA485A2A47EBCCDC11E487A59FF4021178CF2267377D6508DB582D417952BC4ABE847D6F783C8440C5B587A989071D5A969177E76136414699E7F5FE82A3ED5B818529FFD93F1402B44CE59E20A00E44974C7A5B46E14529CCF295B6AAE66C2A1D5342B3E1CD75838B764A2016B8F2AE8077C2A6E6A48726F56FF302FBD99822E959E09B410BE356131A9BDAABF95F64775E4A6DE1878966BE5E32D35ADDD89BB009BDFB5B347A5DB52C33D3A2CFF4864B62F5F771781C68FA16C0909FA21D6C113B9A4A570F4E43CC22EC0C28DAB3A83733379652A5AC3F62D14B4BBF704800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110E9776BE39BFEF88ECCBC3963B4B55A21AF008D72B8974D6271D5203C4D5B740100000000000194D6EA3098101B6C70DD01296BE810BF43378F9213E5706B92A510782DAD65D70200000000000153C114D33EA5F23EAA1F5152303206AED20AA39BAB9DF6EA22B9C87EE77E606903000000000001EE1A2D6FB82B3C9A07D72E6E961301B5C3282817EA39117A62B06B4A622EE48E0400000000000134684E7A2264D89D497C3A631C78A38F858FA5B957BAB41CEB2518B9251C2D6705000000000001C1C9F6C68CA88BBB315C835AADA45671C650B510E2DCD942F7A94E09846D15F5060000000000010E9BE6D2763C19FC114D1C762139C91C1797EC84F131F5DD4B41FA2C8D83D273070000000000018A9B9DF9D6FCF4723E296814F0662C71313D82137ED83916E22190C42975809C08000000000001CF9A4E9B4A3A2E19B7307C1A3BF3FE7C73B8E13EF28A4DF0731A89BDBC112EE009000000000001D0C6308D4186DFFD41D09BC55F927C468B52A6C2D1DCB1D89C8FDAED7E6C7D170A0000000000012206F9EC89B0EE77C8531BA27338A262DC75C81048426B62EACA6B1F77CBF7FC0B00000000000170B69D94C64064C60D34299B4053CC72EEE82C1B0E9BA684C712BE3D2FF246550C000000000001B0795612492C41DD8CBEE89132E733AD1A37359A9CEACAF8AA50BB0B86F228490D0000000000013853D015E6223A68888C73565ABEEBFC3BFCAE134D70FC38DB68E012FE72116C0E0000000000015CDCAC07EFD17631AC1982E4E57049C167AD4A20649FE9817868E4B9D16DED6A0F00000000000117769EE9A7E07B9AC164B2EFA46BF4106E38063A41C90610FB4590A058E8614B100000000000019E5A60B1DF4908E567F8520119F88EE81EE03CAE813DF3A0D58FD9A67F38237C11000000000001FD119FCA99062E6F7858475C9ECD97D15138CC8E6B47A554BE808255A4BF39E812000000000001CC027AB8A64C01F53D68AC90129F349080D156AFE9C73459D2B7831A048B0C0613000000000001000000000000000000000000000000000000000000000000000000000000000000000000 + + +count = 0 +seed = 1840C60AD9F35C900372EF38D08671A74353C965C3C5DE0668C9C3E5CF3926304322530FD9681CF3A9C71FD633D60C66 +mlen = 33 +msg = B338DD755D5618C464AB331F14DE3DD4A358BBA00D28FB35236741E902F7B248CE +smlen = 2820 +sm = 000000005B6C2E9DBD5E35AEED8D50E340F58ADE7C8A096E648D51A4D5F78EC9F4B6670072247B7B4015AF77A7A6562978EF3AE86391C50BD725D8FDDA7BDA54C4C6052269DC44AE006A80AC048C6E3B93E87092BF2E769DAB4139CE3F6316F092D7C3DCBD002FA8E842495605B7A4B6AF940AF328F6822E25DAB60A76E5FB229E80D71CF462AF9BB02F2DD3969BDA2978A5F009BBEAAD00D4E5F573FD8BC51110050E61D775BBCBB4933DDD795964C7CCF6F394A6CC96110ED05980BD620944FB4CD0B022DFB4CDA1E79377217CDCB978292C1519C8F2AB46D1C710880D4E8C48547F35BD381A1491D0365A39E01B422A1B7152BDE6237BEFCB7ABE7C8A26C90C010A97FB1256D226AFE264F16F20096F010007D3C5250D25F0E97FD106C4D6EA24136577CF8445314D2B2C006A0CCFA8AB53E74FEDF5983F1EB84005836EF326F4C115F1465350227654D95437EEFE13470F6449C5A1D1A707B6529A90AD0E2B1EF103E1C6885FA68FA7C21D3A38694E338B3F82B0B9241BE5CAD851B120E037434F5E00C9F49E9382B6BFD236D2926BD940390BBB61C77629B3BFB726103B0EC4A4E39C896A58E055ACFCF4C0529945F439C8A3AD34D748EB6B8D2E578E43E8172BE08D6DF9B3DAF722A1CEF02FB9EC52F5BADC82CD6E16B017205379A7C99206D970B1738058A653CA13476C15B6B53984A64342BA425637C89E67CEA14A3D35CB018C29844845F209F4E6225E65BAD714623313188DFAA384E398ADC67EE8AA2429B08091A676DD57DA86AABFA5D43FC2885EAFB9A8F74F4AC97B6AB4EB83EC79980DD57BFB6399E3D7A4E71FDA5DEE6A71482BFA6E2842F0D3F38387FDD9695C6BB6F9FD3D05172594F512A33FA7E05AE06C96EBA024C501B76436AEF7CD81AACE5EEB5D850CB7EC0E4B9AC3E9088F9ED81207591C232FF6824CB0460D0008E70FF6D0AB014446EB9B3604EA1A1670AE9534E2A9BB39A8A35060D242A25FD6842AD790231E66C11AD1D1A9C5085F4390C021CA564BE5A57819536EF34E747D0E9E8E600CB4C7C53BA393D7523CA2F42971BE913E33DA4ADA23CADC67FD4E47CB9408A4F2C0F4D9315E06A964E77F1A89A720DD70CED7752C4E6DF4FDCB81251B4B3E9816C8453178969B23E9E3FBB04B90BF1632EA1386123D787BF7F1D3166BEEF4C860FD68534EFC533E54DEC674B8D588AF228DF505566E1386ABFBDCAE60E5D428AC647E9B9466EE7243E137FDF375AADDE820E031E8E29300DAECC4116E87A7673E53562CC3740E494812C08F6289A46FF8468B2061A1D046322EC344455D5E5D45F468420ADD6831E37F5363C73484D77AE8B26F928DC50F298EA044BC9D0B77F506C6E6049C450FF62792100F2B5BFD383E6A01F8092CB8F7BED285D40766267011EE8ED5851B9A7858E02209DDACCFC3F6B1FA5897F840632A61A7E7BBEE8D7E1AE22E652CBD884DFFE69751274EEA48A02B7A180573DB3F5A6C752DA450A720450961C333C2D652BC38BD69292C6D763607B5488A7447F07B52F63CC4AC9B6E4FA85B8E024E299E647F1727E45258DC646899B02FCFCCE81B29554941D5D3CBEA7FC04DE4FDF7826B1480B49100190FCA1D8D7CDF270A0F984006DFFA87BEB304B76080C668C625C81379BA31C849077F395E54C99514877EFDD8C535D9CD79611F14425BDD29381E8484071022309F35843E726C18534AC75E9E8ED7EABB05B3480117B7022ACE41E3BC1325A7A4BF417EA033A1F3967AEA922E6896F7F7399DFD1344983006025DE653276DE0D36CB0DA56C13B450668654E505F93A60FF9387695522FEBEED407BEAB0CB40CA66D54CAA6177B1D9050621EE9E6E75E92C942C1C98ABD4DB95C0CB6D696C350591DC8F96CD6ECC2990B579D4AADF8D50383484151C105ED0E9FE0CCB803D7DCB65B42E57F4E89CC1BDB9CB634434A9DCE063A82EBEC4E934A98F774487F87B2B1C4DCD550E4C6E3ED508D6CC10D1D3253E31A88C0D1BF8C518D9FC96AE575ECA796AC329C923F8589C7B0F41C518FF15417776A44091CB13398E19D8968854C6B0F2661BA362B8324BFDCFEA3C52780188015968C5D72EE3B9C2D36D3052B4327414BD70E490A12DC725BFA27C5C34E3CD8B3D2562FE4396AD9E51FFB8C76F6A15EF16D8D78F3CE2DB6BA540DF7EBF3DD2D0C8FD98CD64591BDC005FC3012361AADEA13C1D20E6A7844BEC97C6B5AAE6474BCDA0FEFFC6A9E927764D6F38725530CB2F05815D06874C053C7FB012489D5FB393C908BC76DE32474C746552906B72C84F4725F8A039E6981A7CCF40B73499EDC7F3152916DFC89A8EF7BBB0291DC1B4899690B07DE10844A3883C9716460080015E0F38EC88344D84D4B179ECFFD25BBECED4F884D21664C74FA17EF14D7F21F36867E22554E67BEC88B979D82C8053042D7E85AB7EA265D079361F08E3A9C929DCB2FC20205530129550D811C2DD78D94657C3CDDD9B1DD47CC526FEEFF1E1F96D2FA7413497DD352D8FEAB1C94AB13F37990493C8858A43F7D928EA6EFDB52924559FA756E0F732019471CB7381F817E7F10FE227A3EB234196265F9823437390CBC0633FDA9F5288A6012C5AA0F055FD30E238472AA5BD5B0FCEBDF2BED16E3EE2EB629C79FEAB53A024DE79B3F420678641F6EDBCBF03AB67B5EBFF2E0E5FFF0787F5F39B2E9C356C154E73297958AA764513E9EC260211EB5C452E18C93567CF0156099247886EC56E8BE695D4483421A43B3F91AA3CCD028037EA31C7CDF047F05ABCDE160AABD038905FCCB388815F132E42DCA22F3A504F5FDC1F879AAED569A8D5A7077DA3FA81362CF775EF7E0DBA9506E29E72E11FC0AD9069A142B0EC2C56B170F462F0050617818F6F1B5B4B306DD84C915B900B80EA9B9EA549E77D1718344B026F014E1E07CB16E837F27C7546DD970DEA4ED5F4373AEEE360513A6E9AF838C7F61AEFAB574D9F4BCF23E1FD9408CC268752C5A282B654FD58864BDE2EE6742ADC1312A3095E3B0DB5EB2C380D312DF5DCBC776560565AC666F89AB54F126693A51197D919326193D958262F34807BFDEB9B9E807381A6B08D56572F415C05C223DAF40EDA9DBDAB1E8BB5F2E2AE6571A680A5490B2966761D4159C2F977B16391311BA0A56CA08921AFD2720D8D518FEEAD841CFECB28BDC6554E5A3BEFC11B0C33E38F42DFA428ECDA5F570BB887D264F90C54699789E97524A249DDF93E9802B926B26BB8BA5688FA4854AC7E495C0620ED3E60D2A165093D41F162BF956BE8CC3119065963E6F368E2CC615FD0A560269BF6353EFA2C034422B686EA082BB23389A3A5C43EC3E1382880A8446F62A6E1E1AEDC5C6312398CCDCF8370ACD00BFD28AFA0C95995F193623F0FD5566F622CD99228BB1EEF8B95B19ED70CC56EFEDF70806EFC3530BDD384A1865B0D04D1C0B81751100DC6A2697C1452FA95EC339C802C9AB67DDD2D34A1247C10CAACEED538DBAB14F2D4B51E0A605D60FF97965D40DB83EE606B4654D9B3670CDE3B1D6E50724966D214B2E4807874A27C015F47AB4BC29BD9AFEC33B30543B5FD7108EE12118C3F88DAD0FD94490CFD308D2865789E6E2F3AB6CA2744BE83324BC5EFB44B8195C443D960412057683ACBF658E1D4CF54B4B1839CF0923DA3CFADEA4461753A22EDA485A2A47EBCCDC11E487A59FF4021178CF2267377D6508DB582D417952BC4ABE847D6F783C8440C5B587A989071D5A969177E76136414699E7F5FE82A3ED5B818529FFD93F1402B44CE59E20A00E44974C7A5B46E14529CCF295B6AAE66C2A1D5342B3E1CD75838B764A2016B8F2AE8077C2A6E6A48726F56FF302FBD99822E959E09B410BE356131A9BDAABF95F64775E4A6DE1878966BE5E32D35ADDD89BB009BDFB5B347A5DB52C33D3A2CFF4864B62F5F771781C68FA16C0909FA21D6C113B9A4A570F4E43CC22EC0C28DAB3A83733379652A5AC3F62D14B4BBF7048 +remain = 1048574 +max = 1048575 diff --git a/tests/test_sig_stfl.c b/tests/test_sig_stfl.c index db3b150b4..bc015ce8f 100644 --- a/tests/test_sig_stfl.c +++ b/tests/test_sig_stfl.c @@ -319,6 +319,15 @@ OQS_STATUS sig_stfl_KATs_keygen(OQS_SIG_STFL *sig, uint8_t *public_key, OQS_SIG_ goto from_kats; #endif +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h16_256 + } else if (0 == strcasecmp(sig->method_name, OQS_SIG_STFL_alg_xmss_shake256_h16_256)) { + goto from_kats; +#endif +#ifdef OQS_ENABLE_SIG_STFL_xmss_shake256_h20_256 + } else if (0 == strcasecmp(sig->method_name, OQS_SIG_STFL_alg_xmss_shake256_h20_256)) { + goto from_kats; +#endif + #ifdef OQS_ENABLE_SIG_STFL_xmssmt_sha256_h40_2 } else if (0 == strcasecmp(sig->method_name, OQS_SIG_STFL_alg_xmssmt_sha256_h40_2)) { goto from_kats; @@ -610,7 +619,7 @@ static OQS_STATUS sig_stfl_test_secret_key(const char *method_name, const char * goto err; } - public_key = malloc(sig_obj->length_public_key * sizeof(uint8_t)); + public_key = malloc(sig_obj->length_public_key *sizeof(uint8_t)); printf("================================================================================\n"); printf("Create stateful Secret Key %s\n", method_name); @@ -916,7 +925,7 @@ static OQS_STATUS sig_stfl_test_secret_key_lock(const char *method_name, const c goto err; } - lock_test_public_key = malloc(lock_test_sig_obj->length_public_key * sizeof(uint8_t)); + lock_test_public_key = malloc(lock_test_sig_obj->length_public_key *sizeof(uint8_t)); printf("================================================================================\n"); printf("Create stateful Secret Key %s\n", method_name);