Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

p384_mlkem1024 hybrid added #361

Merged
merged 2 commits into from
Mar 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions ALGORITHMS.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ As standardization for these algorithms within TLS is not done, all TLS code poi
| p256_mlkem768 | 0x2FB5 | Yes | OQS_CODEPOINT_P256_MLKEM768 |
| mlkem1024 | 0x0249 | Yes | OQS_CODEPOINT_MLKEM1024 |
| p521_mlkem1024 | 0x2F49 | Yes | OQS_CODEPOINT_P521_MLKEM1024 |
| p384_mlkem1024 | 0x2F4A | Yes | OQS_CODEPOINT_P384_MLKEM1024 |
| bikel1 | 0x0241 | Yes | OQS_CODEPOINT_BIKEL1 |
| p256_bikel1 | 0x2F41 | Yes | OQS_CODEPOINT_P256_BIKEL1 |
| x25519_bikel1 | 0x2FAE | Yes | OQS_CODEPOINT_X25519_BIKEL1 |
Expand Down Expand Up @@ -224,6 +225,7 @@ If [OQS_KEM_ENCODERS](CONFIGURE.md#OQS_KEM_ENCODERS) is enabled the following li
| p256_mlkem768 | 1.3.9999.99.58 | OQS_OID_P256_MLKEM768
| mlkem1024 | 1.3.6.1.4.1.22554.5.6.3 | OQS_OID_MLKEM1024
| p521_mlkem1024 | 1.3.9999.99.82 | OQS_OID_P521_MLKEM1024
| p384_mlkem1024 | 1.3.6.1.4.1.42235.6 | OQS_OID_P384_MLKEM1024
| bikel1 | 1.3.9999.99.84 | OQS_OID_BIKEL1
| p256_bikel1 | 1.3.9999.99.83 | OQS_OID_P256_BIKEL1
| x25519_bikel1 | 1.3.9999.99.59 | OQS_OID_X25519_BIKEL1
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ This implementation makes available the following quantum safe algorithms:
- **CRYSTALS-Kyber**: `kyber512`, `p256_kyber512`, `x25519_kyber512`, `kyber768`, `p384_kyber768`, `x448_kyber768`, `x25519_kyber768`, `p256_kyber768`, `kyber1024`, `p521_kyber1024`
- **FrodoKEM**: `frodo640aes`, `p256_frodo640aes`, `x25519_frodo640aes`, `frodo640shake`, `p256_frodo640shake`, `x25519_frodo640shake`, `frodo976aes`, `p384_frodo976aes`, `x448_frodo976aes`, `frodo976shake`, `p384_frodo976shake`, `x448_frodo976shake`, `frodo1344aes`, `p521_frodo1344aes`, `frodo1344shake`, `p521_frodo1344shake`
- **HQC**: `hqc128`, `p256_hqc128`, `x25519_hqc128`, `hqc192`, `p384_hqc192`, `x448_hqc192`, `hqc256`, `p521_hqc256`†
- **ML-KEM**: `mlkem512`, `p256_mlkem512`, `x25519_mlkem512`, `mlkem768`, `p384_mlkem768`, `x448_mlkem768`, `x25519_mlkem768`, `p256_mlkem768`, `mlkem1024`, `p521_mlkem1024`
- **ML-KEM**: `mlkem512`, `p256_mlkem512`, `x25519_mlkem512`, `mlkem768`, `p384_mlkem768`, `x448_mlkem768`, `x25519_mlkem768`, `p256_mlkem768`, `mlkem1024`, `p521_mlkem1024`, `p384_mlkem1024`

### Signature algorithms

Expand Down
10 changes: 9 additions & 1 deletion oqs-template/generate.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This is the master document for ID interoperability for KEM IDs, p-hybrid KEM IDs, SIG (O)IDs
# Next free plain KEM ID: 0x024A, p-hybrid: 0x2F4A, X-hybrid: 0x2FB6
# Next free plain KEM ID: 0x024A, p-hybrid: 0x2F4B, X-hybrid: 0x2FB6
kems:
-
family: 'FrodoKEM'
Expand Down Expand Up @@ -175,6 +175,14 @@ kems:
oid: '1.3.6.1.4.1.22554.5.6.3'
nid_hybrid: '0x2F49'
oqs_alg: 'OQS_KEM_alg_ml_kem_1024'
extra_nids:
current:
# p384_mlkem1024 hybrid doesn't appear in any standardization drafts
# this oid is proposed by Tresorit
# if the hybrid combination is standardized, feel free to change it
- hybrid_group: "p384"
hybrid_oid: '1.3.6.1.4.1.42235.6'
nid: '0x2F4A'
-
family: 'BIKE'
name_group: 'bike1l1fo'
Expand Down
1 change: 1 addition & 0 deletions oqs-template/oqs-kem-info.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@
| HQC | 2023-04-30 | hqc256 | 4 | 5 | 0x2F46 | secp521_r1 |
| ML-KEM | ML-KEM-ipd | mlkem1024 | ipd | 5 | 0x0249 | |
| ML-KEM | ML-KEM-ipd | mlkem1024 | ipd | 5 | 0x2F49 | secp521_r1 |
| ML-KEM | ML-KEM-ipd | mlkem1024 | ipd | 5 | 0x2F4A | p384 |
| ML-KEM | ML-KEM-ipd | mlkem512 | ipd | 1 | 0x0247 | |
| ML-KEM | ML-KEM-ipd | mlkem512 | ipd | 1 | 0x2F47 | secp256_r1 |
| ML-KEM | ML-KEM-ipd | mlkem512 | ipd | 1 | 0x2FB2 | x25519 |
Expand Down
3 changes: 3 additions & 0 deletions oqsprov/oqs_decode_der2key.c
Original file line number Diff line number Diff line change
Expand Up @@ -646,6 +646,9 @@ MAKE_DECODER(, "mlkem1024", mlkem1024, oqsx, SubjectPublicKeyInfo);
MAKE_DECODER(_ecp, "p521_mlkem1024", p521_mlkem1024, oqsx, PrivateKeyInfo);
MAKE_DECODER(_ecp, "p521_mlkem1024", p521_mlkem1024, oqsx,
SubjectPublicKeyInfo);
MAKE_DECODER(_ecp, "p384_mlkem1024", p384_mlkem1024, oqsx, PrivateKeyInfo);
MAKE_DECODER(_ecp, "p384_mlkem1024", p384_mlkem1024, oqsx,
SubjectPublicKeyInfo);
MAKE_DECODER(, "bikel1", bikel1, oqsx, PrivateKeyInfo);
MAKE_DECODER(, "bikel1", bikel1, oqsx, SubjectPublicKeyInfo);

Expand Down
10 changes: 10 additions & 0 deletions oqsprov/oqs_encode_key2any.c
Original file line number Diff line number Diff line change
Expand Up @@ -785,6 +785,9 @@ static int oqsx_pki_priv_to_der(const void *vxkey, unsigned char **pder)
#define p521_mlkem1024_evp_type 0
#define p521_mlkem1024_input_type "p521_mlkem1024"
#define p521_mlkem1024_pem_type "p521_mlkem1024"
#define p384_mlkem1024_evp_type 0
#define p384_mlkem1024_input_type "p384_mlkem1024"
#define p384_mlkem1024_pem_type "p384_mlkem1024"
#define bikel1_evp_type 0
#define bikel1_input_type "bikel1"
#define bikel1_pem_type "bikel1"
Expand Down Expand Up @@ -1770,6 +1773,13 @@ MAKE_ENCODER(_ecp, p521_mlkem1024, oqsx, PrivateKeyInfo, pem);
MAKE_ENCODER(_ecp, p521_mlkem1024, oqsx, SubjectPublicKeyInfo, der);
MAKE_ENCODER(_ecp, p521_mlkem1024, oqsx, SubjectPublicKeyInfo, pem);
MAKE_TEXT_ENCODER(_ecp, p521_mlkem1024);
MAKE_ENCODER(_ecp, p384_mlkem1024, oqsx, EncryptedPrivateKeyInfo, der);
MAKE_ENCODER(_ecp, p384_mlkem1024, oqsx, EncryptedPrivateKeyInfo, pem);
MAKE_ENCODER(_ecp, p384_mlkem1024, oqsx, PrivateKeyInfo, der);
MAKE_ENCODER(_ecp, p384_mlkem1024, oqsx, PrivateKeyInfo, pem);
MAKE_ENCODER(_ecp, p384_mlkem1024, oqsx, SubjectPublicKeyInfo, der);
MAKE_ENCODER(_ecp, p384_mlkem1024, oqsx, SubjectPublicKeyInfo, pem);
MAKE_TEXT_ENCODER(_ecp, p384_mlkem1024);
MAKE_ENCODER(, bikel1, oqsx, EncryptedPrivateKeyInfo, der);
MAKE_ENCODER(, bikel1, oqsx, EncryptedPrivateKeyInfo, pem);
MAKE_ENCODER(, bikel1, oqsx, PrivateKeyInfo, der);
Expand Down
1 change: 1 addition & 0 deletions oqsprov/oqs_kmgmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -1201,6 +1201,7 @@ MAKE_KEM_ECP_KEYMGMT_FUNCTIONS(p256_mlkem768, OQS_KEM_alg_ml_kem_768, 128)
MAKE_KEM_KEYMGMT_FUNCTIONS(mlkem1024, OQS_KEM_alg_ml_kem_1024, 256)

MAKE_KEM_ECP_KEYMGMT_FUNCTIONS(p521_mlkem1024, OQS_KEM_alg_ml_kem_1024, 256)
MAKE_KEM_ECP_KEYMGMT_FUNCTIONS(p384_mlkem1024, OQS_KEM_alg_ml_kem_1024, 192)
MAKE_KEM_KEYMGMT_FUNCTIONS(bikel1, OQS_KEM_alg_bike_l1, 128)

MAKE_KEM_ECP_KEYMGMT_FUNCTIONS(p256_bikel1, OQS_KEM_alg_bike_l1, 128)
Expand Down
18 changes: 18 additions & 0 deletions oqsprov/oqs_prov.h
Original file line number Diff line number Diff line change
Expand Up @@ -853,6 +853,23 @@ extern const OSSL_DISPATCH
oqs_PrivateKeyInfo_der_to_p521_mlkem1024_decoder_functions[];
extern const OSSL_DISPATCH
oqs_SubjectPublicKeyInfo_der_to_p521_mlkem1024_decoder_functions[];
extern const OSSL_DISPATCH
oqs_p384_mlkem1024_to_PrivateKeyInfo_der_encoder_functions[];
extern const OSSL_DISPATCH
oqs_p384_mlkem1024_to_PrivateKeyInfo_pem_encoder_functions[];
extern const OSSL_DISPATCH
oqs_p384_mlkem1024_to_EncryptedPrivateKeyInfo_der_encoder_functions[];
extern const OSSL_DISPATCH
oqs_p384_mlkem1024_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
extern const OSSL_DISPATCH
oqs_p384_mlkem1024_to_SubjectPublicKeyInfo_der_encoder_functions[];
extern const OSSL_DISPATCH
oqs_p384_mlkem1024_to_SubjectPublicKeyInfo_pem_encoder_functions[];
extern const OSSL_DISPATCH oqs_p384_mlkem1024_to_text_encoder_functions[];
extern const OSSL_DISPATCH
oqs_PrivateKeyInfo_der_to_p384_mlkem1024_decoder_functions[];
extern const OSSL_DISPATCH
oqs_SubjectPublicKeyInfo_der_to_p384_mlkem1024_decoder_functions[];
extern const OSSL_DISPATCH oqs_bikel1_to_PrivateKeyInfo_der_encoder_functions[];
extern const OSSL_DISPATCH oqs_bikel1_to_PrivateKeyInfo_pem_encoder_functions[];
extern const OSSL_DISPATCH
Expand Down Expand Up @@ -1762,6 +1779,7 @@ extern const OSSL_DISPATCH oqs_ecp_p256_mlkem768_keymgmt_functions[];
extern const OSSL_DISPATCH oqs_mlkem1024_keymgmt_functions[];

extern const OSSL_DISPATCH oqs_ecp_p521_mlkem1024_keymgmt_functions[];
extern const OSSL_DISPATCH oqs_ecp_p384_mlkem1024_keymgmt_functions[];
extern const OSSL_DISPATCH oqs_bikel1_keymgmt_functions[];

extern const OSSL_DISPATCH oqs_ecp_p256_bikel1_keymgmt_functions[];
Expand Down
3 changes: 3 additions & 0 deletions oqsprov/oqsdecoders.inc
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,9 @@ DECODER_w_structure("frodo640aes", der, PrivateKeyInfo, frodo640aes),
DECODER_w_structure("p521_mlkem1024", der, PrivateKeyInfo, p521_mlkem1024),
DECODER_w_structure("p521_mlkem1024", der, SubjectPublicKeyInfo,
p521_mlkem1024),
DECODER_w_structure("p384_mlkem1024", der, PrivateKeyInfo, p384_mlkem1024),
DECODER_w_structure("p384_mlkem1024", der, SubjectPublicKeyInfo,
p384_mlkem1024),
# endif
# ifdef OQS_ENABLE_KEM_bike_l1
DECODER_w_structure("bikel1", der, PrivateKeyInfo, bikel1),
Expand Down
11 changes: 11 additions & 0 deletions oqsprov/oqsencoders.inc
Original file line number Diff line number Diff line change
Expand Up @@ -500,6 +500,17 @@ ENCODER_w_structure("frodo640aes", frodo640aes, der, PrivateKeyInfo),
ENCODER_w_structure("p521_mlkem1024", p521_mlkem1024, pem,
SubjectPublicKeyInfo),
ENCODER_TEXT("p521_mlkem1024", p521_mlkem1024),
ENCODER_w_structure("p384_mlkem1024", p384_mlkem1024, der, PrivateKeyInfo),
ENCODER_w_structure("p384_mlkem1024", p384_mlkem1024, pem, PrivateKeyInfo),
ENCODER_w_structure("p384_mlkem1024", p384_mlkem1024, der,
EncryptedPrivateKeyInfo),
ENCODER_w_structure("p384_mlkem1024", p384_mlkem1024, pem,
EncryptedPrivateKeyInfo),
ENCODER_w_structure("p384_mlkem1024", p384_mlkem1024, der,
SubjectPublicKeyInfo),
ENCODER_w_structure("p384_mlkem1024", p384_mlkem1024, pem,
SubjectPublicKeyInfo),
ENCODER_TEXT("p384_mlkem1024", p384_mlkem1024),
# endif
# ifdef OQS_ENABLE_KEM_bike_l1
ENCODER_w_structure("bikel1", bikel1, der, PrivateKeyInfo),
Expand Down
42 changes: 24 additions & 18 deletions oqsprov/oqsprov.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ extern OSSL_FUNC_provider_get_capabilities_fn oqs_provider_get_capabilities;
///// OQS_TEMPLATE_FRAGMENT_ASSIGN_SIG_OIDS_START

#ifdef OQS_KEM_ENCODERS
# define OQS_OID_CNT 164
# define OQS_OID_CNT 166
#else
# define OQS_OID_CNT 60
#endif
Expand Down Expand Up @@ -129,6 +129,8 @@ const char *oqs_oid_alg_list[OQS_OID_CNT] = {
"mlkem1024",
"1.3.9999.99.35",
"p521_mlkem1024",
"1.3.6.1.4.1.42235.6",
"p384_mlkem1024",
"1.3.9999.99.37",
"bikel1",
"1.3.9999.99.36",
Expand Down Expand Up @@ -317,46 +319,48 @@ int oqs_patch_oids(void)

if (getenv("OQS_OID_P521_MLKEM1024"))
oqs_oid_alg_list[70] = getenv("OQS_OID_P521_MLKEM1024");
if (getenv("OQS_OID_P384_MLKEM1024"))
oqs_oid_alg_list[72] = getenv("OQS_OID_P384_MLKEM1024");
if (getenv("OQS_OID_BIKEL1"))
oqs_oid_alg_list[72] = getenv("OQS_OID_BIKEL1");
oqs_oid_alg_list[74] = getenv("OQS_OID_BIKEL1");

if (getenv("OQS_OID_P256_BIKEL1"))
oqs_oid_alg_list[74] = getenv("OQS_OID_P256_BIKEL1");
oqs_oid_alg_list[76] = getenv("OQS_OID_P256_BIKEL1");
if (getenv("OQS_OID_X25519_BIKEL1"))
oqs_oid_alg_list[76] = getenv("OQS_OID_X25519_BIKEL1");
oqs_oid_alg_list[78] = getenv("OQS_OID_X25519_BIKEL1");
if (getenv("OQS_OID_BIKEL3"))
oqs_oid_alg_list[78] = getenv("OQS_OID_BIKEL3");
oqs_oid_alg_list[80] = getenv("OQS_OID_BIKEL3");

if (getenv("OQS_OID_P384_BIKEL3"))
oqs_oid_alg_list[80] = getenv("OQS_OID_P384_BIKEL3");
oqs_oid_alg_list[82] = getenv("OQS_OID_P384_BIKEL3");
if (getenv("OQS_OID_X448_BIKEL3"))
oqs_oid_alg_list[82] = getenv("OQS_OID_X448_BIKEL3");
oqs_oid_alg_list[84] = getenv("OQS_OID_X448_BIKEL3");
if (getenv("OQS_OID_BIKEL5"))
oqs_oid_alg_list[84] = getenv("OQS_OID_BIKEL5");
oqs_oid_alg_list[86] = getenv("OQS_OID_BIKEL5");

if (getenv("OQS_OID_P521_BIKEL5"))
oqs_oid_alg_list[86] = getenv("OQS_OID_P521_BIKEL5");
oqs_oid_alg_list[88] = getenv("OQS_OID_P521_BIKEL5");
if (getenv("OQS_OID_HQC128"))
oqs_oid_alg_list[88] = getenv("OQS_OID_HQC128");
oqs_oid_alg_list[90] = getenv("OQS_OID_HQC128");

if (getenv("OQS_OID_P256_HQC128"))
oqs_oid_alg_list[90] = getenv("OQS_OID_P256_HQC128");
oqs_oid_alg_list[92] = getenv("OQS_OID_P256_HQC128");
if (getenv("OQS_OID_X25519_HQC128"))
oqs_oid_alg_list[92] = getenv("OQS_OID_X25519_HQC128");
oqs_oid_alg_list[94] = getenv("OQS_OID_X25519_HQC128");
if (getenv("OQS_OID_HQC192"))
oqs_oid_alg_list[94] = getenv("OQS_OID_HQC192");
oqs_oid_alg_list[96] = getenv("OQS_OID_HQC192");

if (getenv("OQS_OID_P384_HQC192"))
oqs_oid_alg_list[96] = getenv("OQS_OID_P384_HQC192");
oqs_oid_alg_list[98] = getenv("OQS_OID_P384_HQC192");
if (getenv("OQS_OID_X448_HQC192"))
oqs_oid_alg_list[98] = getenv("OQS_OID_X448_HQC192");
oqs_oid_alg_list[100] = getenv("OQS_OID_X448_HQC192");
if (getenv("OQS_OID_HQC256"))
oqs_oid_alg_list[100] = getenv("OQS_OID_HQC256");
oqs_oid_alg_list[102] = getenv("OQS_OID_HQC256");

if (getenv("OQS_OID_P521_HQC256"))
oqs_oid_alg_list[102] = getenv("OQS_OID_P521_HQC256");
oqs_oid_alg_list[104] = getenv("OQS_OID_P521_HQC256");

# define OQS_KEMOID_CNT 102 + 2
# define OQS_KEMOID_CNT 104 + 2
#else
# define OQS_KEMOID_CNT 0
#endif /* OQS_KEM_ENCODERS */
Expand Down Expand Up @@ -762,6 +766,7 @@ static const OSSL_ALGORITHM oqsprovider_asym_kems[] = {
#ifdef OQS_ENABLE_KEM_ml_kem_1024
KEMBASEALG(mlkem1024, 256)
KEMHYBALG(p521_mlkem1024, 256)
KEMHYBALG(p384_mlkem1024, 192)
#endif
#ifdef OQS_ENABLE_KEM_bike_l1
KEMBASEALG(bikel1, 128)
Expand Down Expand Up @@ -926,6 +931,7 @@ static const OSSL_ALGORITHM oqsprovider_keymgmt[]
KEMKMALG(mlkem1024, 256)

KEMKMHYBALG(p521_mlkem1024, 256, ecp)
KEMKMHYBALG(p384_mlkem1024, 192, ecp)
#endif
#ifdef OQS_ENABLE_KEM_bike_l1
KEMKMALG(bikel1, 128)
Expand Down
69 changes: 37 additions & 32 deletions oqsprov/oqsprov_capabilities.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ static OQS_GROUP_CONSTANTS oqs_group_list[] = {
{0x0249, 256, TLS1_3_VERSION, 0, -1, -1, 1},

{0x2F49, 256, TLS1_3_VERSION, 0, -1, -1, 1},
{0x2F4A, 256, TLS1_3_VERSION, 0, -1, -1, 1},
{0x0241, 128, TLS1_3_VERSION, 0, -1, -1, 1},

{0x2F41, 128, TLS1_3_VERSION, 0, -1, -1, 1},
Expand Down Expand Up @@ -215,40 +216,41 @@ static const OSSL_PARAM oqs_param_group_list[][11] = {
OQS_GROUP_ENTRY(mlkem1024, mlkem1024, mlkem1024, 34),

OQS_GROUP_ENTRY(p521_mlkem1024, p521_mlkem1024, p521_mlkem1024, 35),
OQS_GROUP_ENTRY(p384_mlkem1024, p384_mlkem1024, p384_mlkem1024, 36),
#endif
#ifdef OQS_ENABLE_KEM_bike_l1
OQS_GROUP_ENTRY(bikel1, bikel1, bikel1, 36),
OQS_GROUP_ENTRY(bikel1, bikel1, bikel1, 37),

OQS_GROUP_ENTRY(p256_bikel1, p256_bikel1, p256_bikel1, 37),
OQS_GROUP_ENTRY(x25519_bikel1, x25519_bikel1, x25519_bikel1, 38),
OQS_GROUP_ENTRY(p256_bikel1, p256_bikel1, p256_bikel1, 38),
OQS_GROUP_ENTRY(x25519_bikel1, x25519_bikel1, x25519_bikel1, 39),
#endif
#ifdef OQS_ENABLE_KEM_bike_l3
OQS_GROUP_ENTRY(bikel3, bikel3, bikel3, 39),
OQS_GROUP_ENTRY(bikel3, bikel3, bikel3, 40),

OQS_GROUP_ENTRY(p384_bikel3, p384_bikel3, p384_bikel3, 40),
OQS_GROUP_ENTRY(x448_bikel3, x448_bikel3, x448_bikel3, 41),
OQS_GROUP_ENTRY(p384_bikel3, p384_bikel3, p384_bikel3, 41),
OQS_GROUP_ENTRY(x448_bikel3, x448_bikel3, x448_bikel3, 42),
#endif
#ifdef OQS_ENABLE_KEM_bike_l5
OQS_GROUP_ENTRY(bikel5, bikel5, bikel5, 42),
OQS_GROUP_ENTRY(bikel5, bikel5, bikel5, 43),

OQS_GROUP_ENTRY(p521_bikel5, p521_bikel5, p521_bikel5, 43),
OQS_GROUP_ENTRY(p521_bikel5, p521_bikel5, p521_bikel5, 44),
#endif
#ifdef OQS_ENABLE_KEM_hqc_128
OQS_GROUP_ENTRY(hqc128, hqc128, hqc128, 44),
OQS_GROUP_ENTRY(hqc128, hqc128, hqc128, 45),

OQS_GROUP_ENTRY(p256_hqc128, p256_hqc128, p256_hqc128, 45),
OQS_GROUP_ENTRY(x25519_hqc128, x25519_hqc128, x25519_hqc128, 46),
OQS_GROUP_ENTRY(p256_hqc128, p256_hqc128, p256_hqc128, 46),
OQS_GROUP_ENTRY(x25519_hqc128, x25519_hqc128, x25519_hqc128, 47),
#endif
#ifdef OQS_ENABLE_KEM_hqc_192
OQS_GROUP_ENTRY(hqc192, hqc192, hqc192, 47),
OQS_GROUP_ENTRY(hqc192, hqc192, hqc192, 48),

OQS_GROUP_ENTRY(p384_hqc192, p384_hqc192, p384_hqc192, 48),
OQS_GROUP_ENTRY(x448_hqc192, x448_hqc192, x448_hqc192, 49),
OQS_GROUP_ENTRY(p384_hqc192, p384_hqc192, p384_hqc192, 49),
OQS_GROUP_ENTRY(x448_hqc192, x448_hqc192, x448_hqc192, 50),
#endif
#ifdef OQS_ENABLE_KEM_hqc_256
OQS_GROUP_ENTRY(hqc256, hqc256, hqc256, 50),
OQS_GROUP_ENTRY(hqc256, hqc256, hqc256, 51),

OQS_GROUP_ENTRY(p521_hqc256, p521_hqc256, p521_hqc256, 51),
OQS_GROUP_ENTRY(p521_hqc256, p521_hqc256, p521_hqc256, 52),
#endif
///// OQS_TEMPLATE_FRAGMENT_GROUP_NAMES_END
};
Expand Down Expand Up @@ -385,40 +387,43 @@ int oqs_patch_codepoints()
if (getenv("OQS_CODEPOINT_P521_MLKEM1024"))
oqs_group_list[35].group_id
= atoi(getenv("OQS_CODEPOINT_P521_MLKEM1024"));
if (getenv("OQS_CODEPOINT_P384_MLKEM1024"))
oqs_group_list[36].group_id
= atoi(getenv("OQS_CODEPOINT_P384_MLKEM1024"));
if (getenv("OQS_CODEPOINT_BIKEL1"))
oqs_group_list[36].group_id = atoi(getenv("OQS_CODEPOINT_BIKEL1"));
oqs_group_list[37].group_id = atoi(getenv("OQS_CODEPOINT_BIKEL1"));
if (getenv("OQS_CODEPOINT_P256_BIKEL1"))
oqs_group_list[37].group_id = atoi(getenv("OQS_CODEPOINT_P256_BIKEL1"));
oqs_group_list[38].group_id = atoi(getenv("OQS_CODEPOINT_P256_BIKEL1"));
if (getenv("OQS_CODEPOINT_X25519_BIKEL1"))
oqs_group_list[38].group_id
oqs_group_list[39].group_id
= atoi(getenv("OQS_CODEPOINT_X25519_BIKEL1"));
if (getenv("OQS_CODEPOINT_BIKEL3"))
oqs_group_list[39].group_id = atoi(getenv("OQS_CODEPOINT_BIKEL3"));
oqs_group_list[40].group_id = atoi(getenv("OQS_CODEPOINT_BIKEL3"));
if (getenv("OQS_CODEPOINT_P384_BIKEL3"))
oqs_group_list[40].group_id = atoi(getenv("OQS_CODEPOINT_P384_BIKEL3"));
oqs_group_list[41].group_id = atoi(getenv("OQS_CODEPOINT_P384_BIKEL3"));
if (getenv("OQS_CODEPOINT_X448_BIKEL3"))
oqs_group_list[41].group_id = atoi(getenv("OQS_CODEPOINT_X448_BIKEL3"));
oqs_group_list[42].group_id = atoi(getenv("OQS_CODEPOINT_X448_BIKEL3"));
if (getenv("OQS_CODEPOINT_BIKEL5"))
oqs_group_list[42].group_id = atoi(getenv("OQS_CODEPOINT_BIKEL5"));
oqs_group_list[43].group_id = atoi(getenv("OQS_CODEPOINT_BIKEL5"));
if (getenv("OQS_CODEPOINT_P521_BIKEL5"))
oqs_group_list[43].group_id = atoi(getenv("OQS_CODEPOINT_P521_BIKEL5"));
oqs_group_list[44].group_id = atoi(getenv("OQS_CODEPOINT_P521_BIKEL5"));
if (getenv("OQS_CODEPOINT_HQC128"))
oqs_group_list[44].group_id = atoi(getenv("OQS_CODEPOINT_HQC128"));
oqs_group_list[45].group_id = atoi(getenv("OQS_CODEPOINT_HQC128"));
if (getenv("OQS_CODEPOINT_P256_HQC128"))
oqs_group_list[45].group_id = atoi(getenv("OQS_CODEPOINT_P256_HQC128"));
oqs_group_list[46].group_id = atoi(getenv("OQS_CODEPOINT_P256_HQC128"));
if (getenv("OQS_CODEPOINT_X25519_HQC128"))
oqs_group_list[46].group_id
oqs_group_list[47].group_id
= atoi(getenv("OQS_CODEPOINT_X25519_HQC128"));
if (getenv("OQS_CODEPOINT_HQC192"))
oqs_group_list[47].group_id = atoi(getenv("OQS_CODEPOINT_HQC192"));
oqs_group_list[48].group_id = atoi(getenv("OQS_CODEPOINT_HQC192"));
if (getenv("OQS_CODEPOINT_P384_HQC192"))
oqs_group_list[48].group_id = atoi(getenv("OQS_CODEPOINT_P384_HQC192"));
oqs_group_list[49].group_id = atoi(getenv("OQS_CODEPOINT_P384_HQC192"));
if (getenv("OQS_CODEPOINT_X448_HQC192"))
oqs_group_list[49].group_id = atoi(getenv("OQS_CODEPOINT_X448_HQC192"));
oqs_group_list[50].group_id = atoi(getenv("OQS_CODEPOINT_X448_HQC192"));
if (getenv("OQS_CODEPOINT_HQC256"))
oqs_group_list[50].group_id = atoi(getenv("OQS_CODEPOINT_HQC256"));
oqs_group_list[51].group_id = atoi(getenv("OQS_CODEPOINT_HQC256"));
if (getenv("OQS_CODEPOINT_P521_HQC256"))
oqs_group_list[51].group_id = atoi(getenv("OQS_CODEPOINT_P521_HQC256"));
oqs_group_list[52].group_id = atoi(getenv("OQS_CODEPOINT_P521_HQC256"));

if (getenv("OQS_CODEPOINT_DILITHIUM2"))
oqs_sigalg_list[0].code_point
Expand Down
Loading
Loading