Skip to content

Commit 7003f08

Browse files
authored
Merge pull request wolfSSL#203 from miyazakh/f-636_RSAwrong_var
f-636: fix store-RSA-exp-wrong-var
2 parents 6c90915 + 7cd7a24 commit 7003f08

2 files changed

Lines changed: 14 additions & 6 deletions

File tree

src/genkey/clu_genkey_setup.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ int wolfCLU_genKeySetup(int argc, char** argv)
252252
else {
253253
for (cur = argv[ret+1]; *cur && isdigit(*cur); ++cur);
254254
if (*cur == '\0') {
255-
sizeArg = XATOI(argv[ret+1]);
255+
expArg = XATOI(argv[ret+1]);
256256
}
257257
else {
258258
WOLFCLU_LOG(WOLFCLU_L0, "Invalid -exponent (%s), using 65537",
@@ -453,7 +453,7 @@ int wolfCLU_genKeySetup(int argc, char** argv)
453453
ret = wolfCLU_checkForArg("-height", 7, argc, argv);
454454
if (ret > 0 || argv[ret+1] != NULL) {
455455
WOLFCLU_LOG(WOLFCLU_L0, "Height: %s", argv[ret+1]);
456-
456+
457457
if (XSTRNCMP(argv[ret+1], "20", 2) == 0
458458
|| XSTRNCMP(argv[ret+1], "40", 2) == 0
459459
|| XSTRNCMP(argv[ret+1], "60", 2) == 0) {
@@ -475,7 +475,7 @@ int wolfCLU_genKeySetup(int argc, char** argv)
475475
ret = wolfCLU_checkForArg("-layer", 6, argc, argv);
476476
if (ret > 0 || argv[ret+1] != NULL) {
477477
WOLFCLU_LOG(WOLFCLU_L0, "Layer: %s", argv[ret+1]);
478-
478+
479479
switch (height) {
480480
case 20:
481481
if (XSTRNCMP(argv[ret+1], "2", 1) == 0) {
@@ -549,7 +549,7 @@ int wolfCLU_genKeySetup(int argc, char** argv)
549549
}
550550

551551
xmssmtParam[XMSSMT_NAME_MAX_LEN] = '\0';
552-
552+
553553
/* check XMSS Param Length */
554554
WOLFCLU_LOG(WOLFCLU_L0, "XMSS^MT Param: %s", xmssmtParam);
555555
if (!(XSTRLEN(xmssmtParam) == XMSSMT_NAME_MIN_LEN
@@ -612,7 +612,7 @@ int wolfCLU_genKeySetup(int argc, char** argv)
612612
ret = wolfCLU_checkForArg("-height", 7, argc, argv);
613613
if (ret > 0 || argv[ret+1] != NULL) {
614614
WOLFCLU_LOG(WOLFCLU_L0, "Height: %s", argv[ret+1]);
615-
615+
616616
if (XSTRNCMP(argv[ret+1], "10", 2) == 0) {
617617
XMEMCPY(xmssParam + xmssHeadLen, "10_256", hLen);
618618
}
@@ -636,7 +636,7 @@ int wolfCLU_genKeySetup(int argc, char** argv)
636636
}
637637

638638
xmssParam[XMSS_NAME_LEN] = '\0';
639-
639+
640640
/* check XMSS Param Length */
641641
WOLFCLU_LOG(WOLFCLU_L0, "XMSS Param: %s", xmssParam);
642642
if (XSTRLEN(xmssParam) != XMSS_NAME_LEN) {

tests/genkey_sign_ver/genkey-sign-ver-test.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,14 @@ DERPEMRAW="der"
176176
VERIFYOUTNAME="rsa-sigout"
177177
gen_key_sign_ver_test ${ALGORITHM} ${KEYFILENAME} ${SIGOUTNAME} ${DERPEMRAW} ${VERIFYOUTNAME}
178178

179+
# Regression test: -exponent value must not overwrite -size (was stored in
180+
# sizeArg instead of expArg, corrupting the key size).
181+
./wolfssl -genkey rsa -size 2048 -exponent 65537 -out rsakey_exp \
182+
-outform der -output KEYPAIR
183+
RESULT=$?
184+
[ $RESULT -ne 0 ] && printf '%s\n' "Failed rsa genkey with explicit -exponent" && exit 99
185+
rm -f rsakey_exp.priv rsakey_exp.pub
186+
179187
ALGORITHM="ed25519"
180188
KEYFILENAME="edkey"
181189
SIGOUTNAME="ed-signed.sig"

0 commit comments

Comments
 (0)