@@ -122,6 +122,8 @@ static const struct option crypt_algo_options[] = {
122
122
WOLFCLU_LOG (WOLFCLU_L0 , "For RSA sign/ver: wolfssl -rsa -help" );
123
123
WOLFCLU_LOG (WOLFCLU_L0 , "For ECC sign/ver: wolfssl -ecc -help" );
124
124
WOLFCLU_LOG (WOLFCLU_L0 , "For ED25519 sign/ver: wolfssl -ed25519 -help" );
125
+ WOLFCLU_LOG (WOLFCLU_L0 , "For XMSS sign/ver: wolfssl -xmss -help" );
126
+ WOLFCLU_LOG (WOLFCLU_L0 , "For XMSS^MT sign/ver: wolfssl -xmssmt -help" );
125
127
}
126
128
127
129
/*
@@ -455,6 +457,10 @@ void wolfCLU_genKeyHelp(void)
455
457
#endif
456
458
#ifdef HAVE_DILITHIUM
457
459
,"dilithium"
460
+ #endif
461
+ #ifdef WOLFSSL_HAVE_XMSS
462
+ ,"xmss"
463
+ ,"xmssmt"
458
464
#endif
459
465
};
460
466
@@ -472,6 +478,14 @@ void wolfCLU_genKeyHelp(void)
472
478
#ifdef HAVE_DILITHIUM
473
479
WOLFCLU_LOG (WOLFCLU_L0 , "wolfssl -genkey dilithium -level "
474
480
"[2|3|5] -out mykey -outform der -output KEYPAIR" );
481
+ #endif
482
+ #ifdef WOLFSSL_HAVE_XMSS
483
+ WOLFCLU_LOG (WOLFCLU_L0 , "wolfssl -genkey xmss -height [10|16|20] -out mykey -outform raw"
484
+ " -output KEYPAIR" );
485
+ WOLFCLU_LOG (WOLFCLU_L0 , "wolfssl -genkey xmssmt -height [20|40|60] -layer [2|4|8|3|6|12]"
486
+ " -out mykey -outform raw -output KEYPAIR" );
487
+ WOLFCLU_LOG (WOLFCLU_L0 , "XMSS key file name must be something like \"XMSS-SHA2_10_256\""
488
+ "\nXMSS/XMSS^MT parametaers are determined by file name when signing" );
475
489
#endif
476
490
WOLFCLU_LOG (WOLFCLU_L0 ,
477
491
"\n\nThe above command would output the files: mykey.priv "
@@ -494,6 +508,10 @@ void wolfCLU_signHelp(int keyType)
494
508
#ifdef HAVE_ECC
495
509
,"ecc"
496
510
#endif
511
+ #ifdef WOLFSSL_HAVE_XMSS
512
+ ,"xmss"
513
+ ,"xmssmt"
514
+ #endif
497
515
};
498
516
499
517
WOLFCLU_LOG (WOLFCLU_L0 , "\nAvailable keys with current configure settings:" );
@@ -523,6 +541,18 @@ void wolfCLU_signHelp(int keyType)
523
541
" -in <filename> -out <filename>\n" );
524
542
break ;
525
543
#endif
544
+ #ifdef WOLFSSL_HAVE_XMSS
545
+ case XMSS_SIG_VER :
546
+ WOLFCLU_LOG (WOLFCLU_L0 , "XMSS Sign Usage: \nwolfssl -xmss -sign -inkey <priv_key>"
547
+ " -in <filename> -out <filename>\n" );
548
+ WOLFCLU_LOG (WOLFCLU_L0 , "***************************************************************" );
549
+ break ;
550
+ case XMSSMT_SIG_VER :
551
+ WOLFCLU_LOG (WOLFCLU_L0 , "XMSS^MT Sign Usage: \nwolfssl -xmssmt -sign -inkey <priv_key>"
552
+ " -in <filename> -out <filename>\n" );
553
+ WOLFCLU_LOG (WOLFCLU_L0 , "***************************************************************" );
554
+ break ;
555
+ #endif
526
556
default :
527
557
WOLFCLU_LOG (WOLFCLU_L0 , "No valid key type defined.\n" );
528
558
}
@@ -541,6 +571,10 @@ void wolfCLU_verifyHelp(int keyType) {
541
571
#ifdef HAVE_ECC
542
572
,"ecc"
543
573
#endif
574
+ #ifdef WOLFSSL_HAVE_XMSS
575
+ ,"xmss"
576
+ ,"xmssmt"
577
+ #endif
544
578
};
545
579
546
580
WOLFCLU_LOG (WOLFCLU_L0 , "\nAvailable keys with current configure settings:" );
@@ -583,6 +617,20 @@ void wolfCLU_verifyHelp(int keyType) {
583
617
" -sigfile <signature> -in <original>\n" );
584
618
break ;
585
619
#endif
620
+ #ifdef WOLFSSL_HAVE_XMSS
621
+ case XMSS_SIG_VER :
622
+ WOLFCLU_LOG (WOLFCLU_L0 , "XMSS Verify with Public Key"
623
+ "wolfssl -xmss -verify -inkey <pub_key>"
624
+ " -sigfile <signature> -in <original>\n" );
625
+ WOLFCLU_LOG (WOLFCLU_L0 , "***************************************************************" );
626
+ break ;
627
+ case XMSSMT_SIG_VER :
628
+ WOLFCLU_LOG (WOLFCLU_L0 , "XMSS^MT Verify with Public Key"
629
+ "wolfssl -xmssmt -verify -inkey <pub_key>"
630
+ " -sigfile <signature> -in <original>\n" );
631
+ WOLFCLU_LOG (WOLFCLU_L0 , "***************************************************************" );
632
+ break ;
633
+ #endif
586
634
default :
587
635
WOLFCLU_LOG (WOLFCLU_L0 , "No valid key type defined.\n" );
588
636
}
0 commit comments