oqs: Upgraded Dilithium to NIST Round 3.1
This commit is contained in:
parent
118dfe0eb1
commit
4f5c2faa5c
|
@ -59,7 +59,7 @@ chunk_t asn1_algorithmIdentifier(int oid)
|
|||
case OID_ED448:
|
||||
case OID_DILITHIUM_2:
|
||||
case OID_DILITHIUM_3:
|
||||
case OID_DILITHIUM_4:
|
||||
case OID_DILITHIUM_5:
|
||||
case OID_FALCON_512:
|
||||
case OID_FALCON_1024:
|
||||
parameters = chunk_empty;
|
||||
|
|
|
@ -208,13 +208,13 @@
|
|||
0x02 "IBM"
|
||||
0x82 ""
|
||||
0x0B "QSC"
|
||||
0x06 "dilithium-raw"
|
||||
0x07 "dilithium-r3"
|
||||
0x04 "d2r"
|
||||
0x03 "dilithium2" OID_DILITHIUM_2
|
||||
0x05 "d3r"
|
||||
0x04 "dilithium3" OID_DILITHIUM_3
|
||||
0x06 "d4r"
|
||||
0x05 "dilithium4" OID_DILITHIUM_4
|
||||
0x04 "dilithium2" OID_DILITHIUM_2
|
||||
0x06 "d3r"
|
||||
0x05 "dilithium3" OID_DILITHIUM_3
|
||||
0x08 "d5r"
|
||||
0x07 "dilithium5" OID_DILITHIUM_5
|
||||
0x82 ""
|
||||
0x37 "Microsoft"
|
||||
0x0A ""
|
||||
|
|
|
@ -600,7 +600,7 @@ METHOD(auth_cfg_t, add_pubkey_constraints, void,
|
|||
{ "identity", SIGN_ED448, KEY_ED448, },
|
||||
{ "identity", SIGN_DILITHIUM_2, KEY_DILITHIUM_2, },
|
||||
{ "identity", SIGN_DILITHIUM_3, KEY_DILITHIUM_3, },
|
||||
{ "identity", SIGN_DILITHIUM_4, KEY_DILITHIUM_4, },
|
||||
{ "identity", SIGN_DILITHIUM_5, KEY_DILITHIUM_5, },
|
||||
{ "identity", SIGN_FALCON_512, KEY_FALCON_512, },
|
||||
{ "identity", SIGN_FALCON_1024, KEY_FALCON_1024, },
|
||||
};
|
||||
|
|
|
@ -29,7 +29,7 @@ ENUM(key_type_names, KEY_ANY, KEY_FALCON_1024,
|
|||
"ED448",
|
||||
"Dilithium2",
|
||||
"Dilithium3",
|
||||
"Dilithium4",
|
||||
"Dilithium5",
|
||||
"Falcon512",
|
||||
"Falcon1024",
|
||||
);
|
||||
|
@ -60,7 +60,7 @@ ENUM(signature_scheme_names, SIGN_UNKNOWN, SIGN_FALCON_1024,
|
|||
"ED448",
|
||||
"DILITHIUM_2",
|
||||
"DILITHIUM_3",
|
||||
"DILITHIUM_4",
|
||||
"DILITHIUM_5",
|
||||
"FALCON_512",
|
||||
"FALCON_1024",
|
||||
);
|
||||
|
@ -133,8 +133,8 @@ int key_type_to_oid(key_type_t type)
|
|||
return OID_DILITHIUM_2;
|
||||
case KEY_DILITHIUM_3:
|
||||
return OID_DILITHIUM_3;
|
||||
case KEY_DILITHIUM_4:
|
||||
return OID_DILITHIUM_4;
|
||||
case KEY_DILITHIUM_5:
|
||||
return OID_DILITHIUM_5;
|
||||
case KEY_FALCON_512:
|
||||
return OID_FALCON_512;
|
||||
case KEY_FALCON_1024:
|
||||
|
@ -159,8 +159,8 @@ key_type_t key_type_from_oid(int oid)
|
|||
return KEY_DILITHIUM_2;
|
||||
case OID_DILITHIUM_3:
|
||||
return KEY_DILITHIUM_3;
|
||||
case OID_DILITHIUM_4:
|
||||
return KEY_DILITHIUM_4;
|
||||
case OID_DILITHIUM_5:
|
||||
return KEY_DILITHIUM_5;
|
||||
case OID_FALCON_512:
|
||||
return KEY_FALCON_512;
|
||||
case OID_FALCON_1024:
|
||||
|
@ -222,8 +222,8 @@ signature_scheme_t signature_scheme_from_oid(int oid)
|
|||
return SIGN_DILITHIUM_2;
|
||||
case OID_DILITHIUM_3:
|
||||
return SIGN_DILITHIUM_3;
|
||||
case OID_DILITHIUM_4:
|
||||
return SIGN_DILITHIUM_4;
|
||||
case OID_DILITHIUM_5:
|
||||
return SIGN_DILITHIUM_5;
|
||||
case OID_FALCON_512:
|
||||
return SIGN_FALCON_512;
|
||||
case OID_FALCON_1024:
|
||||
|
@ -284,8 +284,8 @@ int signature_scheme_to_oid(signature_scheme_t scheme)
|
|||
return OID_DILITHIUM_2;
|
||||
case SIGN_DILITHIUM_3:
|
||||
return OID_DILITHIUM_3;
|
||||
case SIGN_DILITHIUM_4:
|
||||
return OID_DILITHIUM_4;
|
||||
case SIGN_DILITHIUM_5:
|
||||
return OID_DILITHIUM_5;
|
||||
case SIGN_FALCON_512:
|
||||
return OID_FALCON_512;
|
||||
case SIGN_FALCON_1024:
|
||||
|
@ -333,7 +333,7 @@ static struct {
|
|||
{ KEY_ED448, 0, { .scheme = SIGN_ED448 }},
|
||||
{ KEY_DILITHIUM_2, 0, { .scheme = SIGN_DILITHIUM_2}},
|
||||
{ KEY_DILITHIUM_3, 0, { .scheme = SIGN_DILITHIUM_3}},
|
||||
{ KEY_DILITHIUM_4, 0, { .scheme = SIGN_DILITHIUM_4}},
|
||||
{ KEY_DILITHIUM_5, 0, { .scheme = SIGN_DILITHIUM_5}},
|
||||
{ KEY_FALCON_512, 0, { .scheme = SIGN_FALCON_512}},
|
||||
{ KEY_FALCON_1024, 0, { .scheme = SIGN_FALCON_1024}},
|
||||
};
|
||||
|
@ -428,8 +428,8 @@ key_type_t key_type_from_signature_scheme(signature_scheme_t scheme)
|
|||
return KEY_DILITHIUM_2;
|
||||
case SIGN_DILITHIUM_3:
|
||||
return KEY_DILITHIUM_3;
|
||||
case SIGN_DILITHIUM_4:
|
||||
return KEY_DILITHIUM_4;
|
||||
case SIGN_DILITHIUM_5:
|
||||
return KEY_DILITHIUM_5;
|
||||
case SIGN_FALCON_512:
|
||||
return KEY_FALCON_512;
|
||||
case SIGN_FALCON_1024:
|
||||
|
|
|
@ -52,7 +52,7 @@ enum key_type_t {
|
|||
/** Dilithium3 NIST Round 3 Submission candidate */
|
||||
KEY_DILITHIUM_3 = 7,
|
||||
/** Dilithium4 NIST Round 3 Submission candidate */
|
||||
KEY_DILITHIUM_4 = 8,
|
||||
KEY_DILITHIUM_5 = 8,
|
||||
/** Falcon512 NIST Round 3 Submission candidate */
|
||||
KEY_FALCON_512 = 9,
|
||||
/** Falcon1024 NIST Round 3 Submission candidate */
|
||||
|
@ -123,7 +123,7 @@ enum signature_scheme_t {
|
|||
/** Dilithium3 NIST Round 3 Submission signature */
|
||||
SIGN_DILITHIUM_3,
|
||||
/** Dilithium4 NIST Round 3 Submission signature */
|
||||
SIGN_DILITHIUM_4,
|
||||
SIGN_DILITHIUM_5,
|
||||
/** Falcon512 NIST Round 3 Submission signature */
|
||||
SIGN_FALCON_512,
|
||||
/** Falcon1024 NIST Round 3 Submission signature */
|
||||
|
|
|
@ -157,7 +157,7 @@ hash_algorithm_t hasher_algorithm_from_oid(int oid)
|
|||
case OID_ED448:
|
||||
case OID_DILITHIUM_2:
|
||||
case OID_DILITHIUM_3:
|
||||
case OID_DILITHIUM_4:
|
||||
case OID_DILITHIUM_5:
|
||||
case OID_FALCON_512:
|
||||
case OID_FALCON_1024:
|
||||
return HASH_IDENTITY;
|
||||
|
@ -497,11 +497,11 @@ int hasher_signature_algorithm_to_oid(hash_algorithm_t alg, key_type_t key)
|
|||
default:
|
||||
return OID_UNKNOWN;
|
||||
}
|
||||
case KEY_DILITHIUM_4:
|
||||
case KEY_DILITHIUM_5:
|
||||
switch (alg)
|
||||
{
|
||||
case HASH_IDENTITY:
|
||||
return OID_DILITHIUM_4;
|
||||
return OID_DILITHIUM_5;
|
||||
default:
|
||||
return OID_UNKNOWN;
|
||||
}
|
||||
|
@ -549,7 +549,7 @@ hash_algorithm_t hasher_from_signature_scheme(signature_scheme_t scheme,
|
|||
case SIGN_ED448:
|
||||
case SIGN_DILITHIUM_2:
|
||||
case SIGN_DILITHIUM_3:
|
||||
case SIGN_DILITHIUM_4:
|
||||
case SIGN_DILITHIUM_5:
|
||||
case SIGN_FALCON_512:
|
||||
case SIGN_FALCON_1024:
|
||||
return HASH_IDENTITY;
|
||||
|
|
|
@ -74,32 +74,32 @@ METHOD(plugin_t, get_features, int,
|
|||
PLUGIN_REGISTER(PRIVKEY, oqs_private_key_load, TRUE),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_DILITHIUM_2),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_DILITHIUM_3),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_DILITHIUM_4),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_DILITHIUM_5),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_FALCON_512),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_FALCON_1024),
|
||||
PLUGIN_REGISTER(PRIVKEY_GEN, oqs_private_key_gen, FALSE),
|
||||
PLUGIN_PROVIDE(PRIVKEY_GEN, KEY_DILITHIUM_2),
|
||||
PLUGIN_PROVIDE(PRIVKEY_GEN, KEY_DILITHIUM_3),
|
||||
PLUGIN_PROVIDE(PRIVKEY_GEN, KEY_DILITHIUM_4),
|
||||
PLUGIN_PROVIDE(PRIVKEY_GEN, KEY_DILITHIUM_5),
|
||||
PLUGIN_PROVIDE(PRIVKEY_GEN, KEY_FALCON_512),
|
||||
PLUGIN_PROVIDE(PRIVKEY_GEN, KEY_FALCON_1024),
|
||||
PLUGIN_REGISTER(PUBKEY, oqs_public_key_load, TRUE),
|
||||
PLUGIN_PROVIDE(PUBKEY, KEY_DILITHIUM_2),
|
||||
PLUGIN_PROVIDE(PUBKEY, KEY_DILITHIUM_3),
|
||||
PLUGIN_PROVIDE(PUBKEY, KEY_DILITHIUM_4),
|
||||
PLUGIN_PROVIDE(PUBKEY, KEY_DILITHIUM_5),
|
||||
PLUGIN_PROVIDE(PUBKEY, KEY_FALCON_512),
|
||||
PLUGIN_PROVIDE(PUBKEY, KEY_FALCON_1024),
|
||||
PLUGIN_PROVIDE(PUBKEY, KEY_ANY),
|
||||
/* signature schemes, private */
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_DILITHIUM_2),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_DILITHIUM_3),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_DILITHIUM_4),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_DILITHIUM_5),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_FALCON_512),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_FALCON_1024),
|
||||
/* signature verification schemes */
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_DILITHIUM_2),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_DILITHIUM_3),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_DILITHIUM_4),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_DILITHIUM_5),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_FALCON_512),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_FALCON_1024),
|
||||
};
|
||||
|
|
|
@ -219,8 +219,8 @@ static private_oqs_private_key_t *oqs_private_key_create_empty(key_type_t type)
|
|||
case KEY_DILITHIUM_3:
|
||||
sig_alg = OQS_SIG_alg_dilithium_3;
|
||||
break;
|
||||
case KEY_DILITHIUM_4:
|
||||
sig_alg = OQS_SIG_alg_dilithium_4;
|
||||
case KEY_DILITHIUM_5:
|
||||
sig_alg = OQS_SIG_alg_dilithium_5;
|
||||
break;
|
||||
case KEY_FALCON_512:
|
||||
sig_alg = OQS_SIG_alg_falcon_512;
|
||||
|
|
|
@ -273,8 +273,8 @@ end:
|
|||
case KEY_DILITHIUM_3:
|
||||
sig_alg = OQS_SIG_alg_dilithium_3;
|
||||
break;
|
||||
case KEY_DILITHIUM_4:
|
||||
sig_alg = OQS_SIG_alg_dilithium_4;
|
||||
case KEY_DILITHIUM_5:
|
||||
sig_alg = OQS_SIG_alg_dilithium_5;
|
||||
break;
|
||||
case KEY_FALCON_512:
|
||||
sig_alg = OQS_SIG_alg_falcon_512;
|
||||
|
@ -307,7 +307,7 @@ bool oqs_supported(key_type_t type)
|
|||
{
|
||||
case KEY_DILITHIUM_2:
|
||||
case KEY_DILITHIUM_3:
|
||||
case KEY_DILITHIUM_4:
|
||||
case KEY_DILITHIUM_5:
|
||||
case KEY_FALCON_512:
|
||||
case KEY_FALCON_1024:
|
||||
return TRUE;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -71,8 +71,8 @@ METHOD(plugin_t, get_features, int,
|
|||
PLUGIN_DEPENDS(PRIVKEY, KEY_DILITHIUM_2),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_DILITHIUM_3),
|
||||
PLUGIN_DEPENDS(PRIVKEY, KEY_DILITHIUM_3),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_DILITHIUM_4),
|
||||
PLUGIN_DEPENDS(PRIVKEY, KEY_DILITHIUM_4),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_DILITHIUM_5),
|
||||
PLUGIN_DEPENDS(PRIVKEY, KEY_DILITHIUM_5),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_FALCON_512),
|
||||
PLUGIN_DEPENDS(PRIVKEY, KEY_FALCON_512),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_FALCON_1024),
|
||||
|
|
|
@ -96,8 +96,8 @@ static private_key_t *parse_private_key(chunk_t blob)
|
|||
type = KEY_DILITHIUM_3;
|
||||
part = BUILD_PRIV_ASN1_DER;
|
||||
break;
|
||||
case OID_DILITHIUM_4:
|
||||
type = KEY_DILITHIUM_4;
|
||||
case OID_DILITHIUM_5:
|
||||
type = KEY_DILITHIUM_5;
|
||||
part = BUILD_PRIV_ASN1_DER;
|
||||
break;
|
||||
case OID_FALCON_512:
|
||||
|
|
|
@ -50,7 +50,7 @@ METHOD(plugin_t, get_features, int,
|
|||
PLUGIN_PROVIDE(PRIVKEY, KEY_ED448),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_DILITHIUM_2),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_DILITHIUM_3),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_DILITHIUM_4),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_DILITHIUM_5),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_FALCON_512),
|
||||
PLUGIN_PROVIDE(PRIVKEY, KEY_FALCON_1024),
|
||||
};
|
||||
|
|
|
@ -63,7 +63,7 @@ static hasher_oid_t oids[] = {
|
|||
{ OID_UNKNOWN, HASH_UNKNOWN, KEY_ECDSA }, /* 32 */
|
||||
{ OID_DILITHIUM_2, HASH_IDENTITY, KEY_DILITHIUM_2}, /* 33 */
|
||||
{ OID_DILITHIUM_3, HASH_IDENTITY, KEY_DILITHIUM_3}, /* 34 */
|
||||
{ OID_DILITHIUM_4, HASH_IDENTITY, KEY_DILITHIUM_4}, /* 35 */
|
||||
{ OID_DILITHIUM_5, HASH_IDENTITY, KEY_DILITHIUM_5}, /* 35 */
|
||||
{ OID_FALCON_512, HASH_IDENTITY, KEY_FALCON_512}, /* 36 */
|
||||
{ OID_FALCON_1024, HASH_IDENTITY, KEY_FALCON_1024}, /* 37 */
|
||||
};
|
||||
|
@ -116,7 +116,7 @@ static struct {
|
|||
{ SIGN_ED448, HASH_IDENTITY },
|
||||
{ SIGN_DILITHIUM_2, HASH_IDENTITY },
|
||||
{ SIGN_DILITHIUM_3, HASH_IDENTITY },
|
||||
{ SIGN_DILITHIUM_4, HASH_IDENTITY },
|
||||
{ SIGN_DILITHIUM_5, HASH_IDENTITY },
|
||||
{ SIGN_FALCON_512, HASH_IDENTITY },
|
||||
{ SIGN_FALCON_1024, HASH_IDENTITY },
|
||||
{ 30, HASH_UNKNOWN },
|
||||
|
|
|
@ -60,9 +60,9 @@ static int gen()
|
|||
{
|
||||
type = KEY_DILITHIUM_3;
|
||||
}
|
||||
else if (streq(arg, "dilithium4"))
|
||||
else if (streq(arg, "dilithium5"))
|
||||
{
|
||||
type = KEY_DILITHIUM_4;
|
||||
type = KEY_DILITHIUM_5;
|
||||
}
|
||||
else if (streq(arg, "falcon512"))
|
||||
{
|
||||
|
@ -186,7 +186,7 @@ static void __attribute__ ((constructor))reg()
|
|||
{
|
||||
command_register((command_t) {
|
||||
gen, 'g', "gen", "generate a new private key",
|
||||
{"[--type rsa|ecdsa|ed25519|ed448|dilithium2|dilithium3|dilithium4|falcon512|falcon1024]",
|
||||
{"[--type rsa|ecdsa|ed25519|ed448|dilithium2|dilithium3|dilithium5|falcon512|falcon1024]",
|
||||
"[--size bits] [--safe-primes] [--shares n] [--threshold l]",
|
||||
"[--outform der|pem]"},
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue