Skip to content

Commit 5ab6616

Browse files
committed
keygen: removed compile-time parameters (lms, xmss)
1 parent d5e402e commit 5ab6616

File tree

2 files changed

+36
-9
lines changed

2 files changed

+36
-9
lines changed

Makefile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,14 @@ ifeq ($(TARGET),ti_hercules)
8686
endif
8787

8888
# Environment variables for sign tool
89-
SIGN_ENV=IMAGE_HEADER_SIZE=$(IMAGE_HEADER_SIZE) WOLFBOOT_SECTOR_SIZE=$(WOLFBOOT_SECTOR_SIZE) ML_DSA_LEVEL=$(ML_DSA_LEVEL) IMAGE_SIGNATURE_SIZE=$(IMAGE_SIGNATURE_SIZE)
89+
SIGN_ENV=IMAGE_HEADER_SIZE=$(IMAGE_HEADER_SIZE) \
90+
WOLFBOOT_SECTOR_SIZE=$(WOLFBOOT_SECTOR_SIZE) \
91+
ML_DSA_LEVEL=$(ML_DSA_LEVEL) \
92+
IMAGE_SIGNATURE_SIZE=$(IMAGE_SIGNATURE_SIZE) \
93+
LMS_LEVELS=$(LMS_LEVELS) \
94+
LMS_HEIGHT=$(LMS_HEIGHT) \
95+
LMS_WINTERNITZ=$(LMS_WINTERNITZ) \
96+
XMSS_PARAMS=$(XMSS_PARAMS)
9097

9198

9299
MAIN_TARGET=factory.bin

tools/keytools/keygen.c

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -778,23 +778,39 @@ static void keygen_lms(const char *priv_fname, uint32_t id_mask)
778778
int ret;
779779
byte lms_pub[HSS_MAX_PUBLIC_KEY_LEN];
780780
word32 pub_len = sizeof(lms_pub);
781+
int lms_levels, lms_height, lms_winternitz;
782+
char *env_lms_levels, *env_lms_height, *env_lms_winternitz;
783+
784+
lms_levels = LMS_LEVELS;
785+
lms_height = LMS_HEIGHT;
786+
lms_winternitz = LMS_WINTERNITZ;
787+
788+
env_lms_levels = getenv("LMS_LEVELS");
789+
env_lms_height = getenv("LMS_HEIGHT");
790+
env_lms_winternitz = getenv("LMS_WINTERNITZ");
791+
if (env_lms_levels != NULL)
792+
lms_levels = atoi(env_lms_levels);
793+
if (env_lms_height != NULL)
794+
lms_height = atoi(env_lms_height);
795+
if (env_lms_winternitz != NULL)
796+
lms_winternitz = atoi(env_lms_winternitz);
781797

782798
ret = wc_LmsKey_Init(&key, NULL, INVALID_DEVID);
783799
if (ret != 0) {
784800
fprintf(stderr, "error: wc_LmsKey_Init returned %d\n", ret);
785801
exit(1);
786802
}
787803

788-
ret = wc_LmsKey_SetParameters(&key, LMS_LEVELS, LMS_HEIGHT, LMS_WINTERNITZ);
804+
ret = wc_LmsKey_SetParameters(&key, lms_levels, lms_height, lms_winternitz);
789805
if (ret != 0) {
790806
fprintf(stderr, "error: wc_LmsKey_SetParameters(%d, %d, %d)" \
791-
" returned %d\n", LMS_LEVELS, LMS_HEIGHT,
792-
LMS_WINTERNITZ, ret);
807+
" returned %d\n", lms_levels, lms_height,
808+
lms_winternitz, ret);
793809
exit(1);
794810
}
795811

796-
printf("info: using LMS parameters: L%d-H%d-W%d\n", LMS_LEVELS,
797-
LMS_HEIGHT, LMS_WINTERNITZ);
812+
printf("info: using LMS parameters: L%d-H%d-W%d\n", lms_levels,
813+
lms_height, lms_winternitz);
798814

799815
ret = wc_LmsKey_SetWriteCb(&key, lms_write_key);
800816
if (ret != 0) {
@@ -865,6 +881,7 @@ static void keygen_xmss(const char *priv_fname, uint32_t id_mask)
865881
int ret;
866882
word32 priv_sz = 0;
867883
byte xmss_pub[XMSS_SHA256_PUBLEN];
884+
char *xmss_params = getenv("XMSS_PARAMS");
868885
word32 pub_len = sizeof(xmss_pub);
869886

870887
ret = wc_XmssKey_Init(&key, NULL, INVALID_DEVID);
@@ -873,14 +890,17 @@ static void keygen_xmss(const char *priv_fname, uint32_t id_mask)
873890
exit(1);
874891
}
875892

876-
ret = wc_XmssKey_SetParamStr(&key, WOLFBOOT_XMSS_PARAMS);
893+
if (xmss_params != NULL)
894+
xmss_params = WOLFBOOT_XMSS_PARAMS;
895+
896+
ret = wc_XmssKey_SetParamStr(&key, xmss_params);
877897
if (ret != 0) {
878898
fprintf(stderr, "error: wc_XmssKey_SetParamStr(%s)" \
879-
" returned %d\n", WOLFBOOT_XMSS_PARAMS, ret);
899+
" returned %d\n", xmss_params, ret);
880900
exit(1);
881901
}
882902

883-
printf("info: using XMSS parameters: %s\n", WOLFBOOT_XMSS_PARAMS);
903+
printf("info: using XMSS parameters: %s\n", xmss_params);
884904

885905
ret = wc_XmssKey_SetWriteCb(&key, xmss_write_key);
886906
if (ret != 0) {

0 commit comments

Comments
 (0)