{
type = KEY_ED448;
}
+ else if (streq(arg, "mldsa44"))
+ {
+ type = KEY_ML_DSA_44;
+ }
+ else if (streq(arg, "mldsa65"))
+ {
+ type = KEY_ML_DSA_65;
+ }
+ else if (streq(arg, "mldsa87"))
+ {
+ type = KEY_ML_DSA_87;
+ }
else
{
return command_usage("invalid key type");
}
break;
}
- /* default key sizes */
+ /* default values for key types with variable key size */
if (!size)
{
switch (type)
case KEY_ECDSA:
size = 384;
break;
- case KEY_ED25519:
- size = 256;
- break;
- case KEY_ED448:
- size = 456;
- break;
default:
break;
}
{
command_register((command_t) {
gen, 'g', "gen", "generate a new private key",
- {"[--type rsa|ecdsa|ed25519|ed448] [--size bits] [--safe-primes]",
+ {"[--type rsa|ecdsa|ed25519|ed448|mldsa44|mldsa65|mldsa87] [--size bits] [--safe-primes]",
"[--shares n] [--threshold l] [--outform der|pem]"},
{
{"help", 'h', 0, "show usage information"},
.TP
.BI "\-t, \-\-type " type
Type of key to generate. Either \fIrsa\fR, \fIecdsa\fR, \fIed25519\fR,
-or \fIed448\fR, defaults to \fIrsa\fR.
+\fIed448\fR, \fImldsa44\fR, \fImldsa65\fR or \fImldsa87\fR, defaults to
+\fIrsa\fR.
.TP
.BI "\-s, \-\-size " bits
Key length in bits. Defaults to 2048 for \fIrsa\fR and 384 for \fIecdsa\fR.