Skip to content
This repository was archived by the owner on Jan 8, 2025. It is now read-only.

Commit a924d21

Browse files
authored
Added HQC variants. (#227)
1 parent 274fac6 commit a924d21

File tree

14 files changed

+272
-15
lines changed

14 files changed

+272
-15
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ The following quantum-safe algorithms from liboqs are supported (assuming they h
7777
- `oqs_kem_default` (see [here](https://github.com/open-quantum-safe/openssl/wiki/Using-liboqs-algorithms-that-are-not-in-the-forks#oqsdefault) for what this denotes)
7878
- **BIKE**: `bike1l1cpa`, `bike1l3cpa`, `bike1l1fo`, `bike1l3fo`
7979
- **FrodoKEM**: `frodo640aes`, `frodo640shake`, `frodo976aes`, `frodo976shake`, `frodo1344aes`, `frodo1344shake`
80+
- **HQC**: `hqc128_1_cca2`, `hqc192_1_cca2`, `hqc192_2_cca2`, `hqc256_1_cca2`† , `hqc256_2_cca2`†, `hqc256_3_cca2`
8081
- **Kyber**: `kyber512`, `kyber768`, `kyber1024`, `kyber90s512`, `kyber90s768`, `kyber90s1024`
8182
- **LEDA**: `ledacryptkemlt12`, `ledacryptkemlt32`, `ledacryptkemlt52`
8283
- **NewHope**: `newhope512cca`, `newhope1024cca`
@@ -93,6 +94,8 @@ If ``<KEX>`` is any of the algorithms listed above, the following hybrid algorit
9394

9495
For example, since `kyber768` claims L3 security, the hybrid `p384_kyber768` is available.
9596

97+
Note that algorithms marked with a dagger (†) have large stack usage and may cause failures when run on threads or in constrained environments.
98+
9699
#### Authentication
97100

98101
The following digital signature algorithms from liboqs are supported by the fork. **Note that not all variants of all algorithms are enabled by default; algorithms that are enabled by default are marked with an asterisk, and should you wish to enable additional variants, consult [the "Code Generation" section of the documentation in the wiki](https://github.com/open-quantum-safe/openssl/wiki/Using-liboqs-algorithms-not-in-the-fork#code-generation)**.

apps/s_cb.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,6 +515,12 @@ static const char* OQS_CURVE_ID_NAME_STR(int id) {
515515
case 0x022F: return "babybearephem";
516516
case 0x0230: return "mamabearephem";
517517
case 0x0231: return "papabearephem";
518+
case 0x0232: return "hqc128_1_cca2";
519+
case 0x0233: return "hqc192_1_cca2";
520+
case 0x0234: return "hqc192_2_cca2";
521+
case 0x0235: return "hqc256_1_cca2";
522+
case 0x0236: return "hqc256_2_cca2";
523+
case 0x0237: return "hqc256_3_cca2";
518524
///// OQS_TEMPLATE_FRAGMENT_OQS_CURVE_ID_NAME_STR_END
519525
case 0x2FFF: return "p256_oqs_kem_default hybrid";
520526
///// OQS_TEMPLATE_FRAGMENT_OQS_CURVE_ID_NAME_STR_HYBRID_START
@@ -557,6 +563,12 @@ static const char* OQS_CURVE_ID_NAME_STR(int id) {
557563
case 0x2F2F: return "p256_babybearephem hybrid";
558564
case 0x2F30: return "p384_mamabearephem hybrid";
559565
case 0x2F31: return "p521_papabearephem hybrid";
566+
case 0x2F32: return "p256_hqc128_1_cca2 hybrid";
567+
case 0x2F33: return "p384_hqc192_1_cca2 hybrid";
568+
case 0x2F34: return "p384_hqc192_2_cca2 hybrid";
569+
case 0x2F35: return "p521_hqc256_1_cca2 hybrid";
570+
case 0x2F36: return "p521_hqc256_2_cca2 hybrid";
571+
case 0x2F37: return "p521_hqc256_3_cca2 hybrid";
560572
///// OQS_TEMPLATE_FRAGMENT_OQS_CURVE_ID_NAME_STR_HYBRID_END
561573
default: return "";
562574
}

crypto/ec/oqs_meth.c

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,12 @@ int oqssl_kem_nids_list[] = {
157157
NID_babybearephem,
158158
NID_mamabearephem,
159159
NID_papabearephem,
160+
NID_hqc128_1_cca2,
161+
NID_hqc192_1_cca2,
162+
NID_hqc192_2_cca2,
163+
NID_hqc256_1_cca2,
164+
NID_hqc256_2_cca2,
165+
NID_hqc256_3_cca2,
160166
/////// OQS_TEMPLATE_FRAGMENT_LIST_KNOWN_KEM_NIDS_END
161167
};
162168

@@ -358,6 +364,24 @@ char* get_oqs_alg_name(int openssl_nid)
358364
case NID_papabearephem:
359365
case NID_p521_papabearephem:
360366
return OQS_KEM_alg_threebears_papabear_ephem;
367+
case NID_hqc128_1_cca2:
368+
case NID_p256_hqc128_1_cca2:
369+
return OQS_KEM_alg_hqc_128_1_cca2;
370+
case NID_hqc192_1_cca2:
371+
case NID_p384_hqc192_1_cca2:
372+
return OQS_KEM_alg_hqc_192_1_cca2;
373+
case NID_hqc192_2_cca2:
374+
case NID_p384_hqc192_2_cca2:
375+
return OQS_KEM_alg_hqc_192_2_cca2;
376+
case NID_hqc256_1_cca2:
377+
case NID_p521_hqc256_1_cca2:
378+
return OQS_KEM_alg_hqc_256_1_cca2;
379+
case NID_hqc256_2_cca2:
380+
case NID_p521_hqc256_2_cca2:
381+
return OQS_KEM_alg_hqc_256_2_cca2;
382+
case NID_hqc256_3_cca2:
383+
case NID_p521_hqc256_3_cca2:
384+
return OQS_KEM_alg_hqc_256_3_cca2;
361385
///// OQS_TEMPLATE_FRAGMENT_ASSIGN_SIG_ALG_END
362386
default:
363387
return NULL;

crypto/objects/obj_dat.h

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,7 +1116,7 @@ static const unsigned char so[8044] = {
11161116
0x2B,0xCE,0x0F,0x06,0x01,0x03, /* [ 8037] OBJ_rsa3072_sphincsharaka128frobust */
11171117
};
11181118

1119-
#define NUM_NID 1313
1119+
#define NUM_NID 1325
11201120
static const ASN1_OBJECT nid_objs[NUM_NID] = {
11211121
{"UNDEF", "undefined", NID_undef},
11221122
{"rsadsi", "RSA Data Security, Inc.", NID_rsadsi, 6, &so[0]},
@@ -2431,9 +2431,21 @@ static const ASN1_OBJECT nid_objs[NUM_NID] = {
24312431
{"p384_mamabearephem", "p384_mamabearephem", NID_p384_mamabearephem},
24322432
{"papabearephem", "papabearephem", NID_papabearephem},
24332433
{"p521_papabearephem", "p521_papabearephem", NID_p521_papabearephem},
2434+
{"hqc128_1_cca2", "hqc128_1_cca2", NID_hqc128_1_cca2},
2435+
{"p256_hqc128_1_cca2", "p256_hqc128_1_cca2", NID_p256_hqc128_1_cca2},
2436+
{"hqc192_1_cca2", "hqc192_1_cca2", NID_hqc192_1_cca2},
2437+
{"p384_hqc192_1_cca2", "p384_hqc192_1_cca2", NID_p384_hqc192_1_cca2},
2438+
{"hqc192_2_cca2", "hqc192_2_cca2", NID_hqc192_2_cca2},
2439+
{"p384_hqc192_2_cca2", "p384_hqc192_2_cca2", NID_p384_hqc192_2_cca2},
2440+
{"hqc256_1_cca2", "hqc256_1_cca2", NID_hqc256_1_cca2},
2441+
{"p521_hqc256_1_cca2", "p521_hqc256_1_cca2", NID_p521_hqc256_1_cca2},
2442+
{"hqc256_2_cca2", "hqc256_2_cca2", NID_hqc256_2_cca2},
2443+
{"p521_hqc256_2_cca2", "p521_hqc256_2_cca2", NID_p521_hqc256_2_cca2},
2444+
{"hqc256_3_cca2", "hqc256_3_cca2", NID_hqc256_3_cca2},
2445+
{"p521_hqc256_3_cca2", "p521_hqc256_3_cca2", NID_p521_hqc256_3_cca2},
24342446
};
24352447

2436-
#define NUM_SN 1304
2448+
#define NUM_SN 1316
24372449
static const unsigned int sn_objs[NUM_SN] = {
24382450
364, /* "AD_DVCS" */
24392451
419, /* "AES-128-CBC" */
@@ -2945,6 +2957,12 @@ static const unsigned int sn_objs[NUM_SN] = {
29452957
473, /* "homeTelephoneNumber" */
29462958
466, /* "host" */
29472959
889, /* "houseIdentifier" */
2960+
1313, /* "hqc128_1_cca2" */
2961+
1315, /* "hqc192_1_cca2" */
2962+
1317, /* "hqc192_2_cca2" */
2963+
1319, /* "hqc256_1_cca2" */
2964+
1321, /* "hqc256_2_cca2" */
2965+
1323, /* "hqc256_3_cca2" */
29482966
442, /* "iA5StringSyntax" */
29492967
783, /* "id-DHBasedMac" */
29502968
824, /* "id-Gost28147-89-CryptoPro-A-ParamSet" */
@@ -3352,6 +3370,7 @@ static const unsigned int sn_objs[NUM_SN] = {
33523370
1207, /* "p256_falcon512" */
33533371
1236, /* "p256_frodo640aes" */
33543372
1238, /* "p256_frodo640shake" */
3373+
1314, /* "p256_hqc128_1_cca2" */
33553374
1256, /* "p256_kyber512" */
33563375
1296, /* "p256_kyber90s512" */
33573376
1274, /* "p256_lightsaber" */
@@ -3374,6 +3393,8 @@ static const unsigned int sn_objs[NUM_SN] = {
33743393
1205, /* "p384_dilithium4" */
33753394
1240, /* "p384_frodo976aes" */
33763395
1242, /* "p384_frodo976shake" */
3396+
1316, /* "p384_hqc192_1_cca2" */
3397+
1318, /* "p384_hqc192_2_cca2" */
33773398
1258, /* "p384_kyber768" */
33783399
1298, /* "p384_kyber90s768" */
33793400
1304, /* "p384_mamabear" */
@@ -3388,6 +3409,9 @@ static const unsigned int sn_objs[NUM_SN] = {
33883409
1278, /* "p521_firesaber" */
33893410
1244, /* "p521_frodo1344aes" */
33903411
1246, /* "p521_frodo1344shake" */
3412+
1320, /* "p521_hqc256_1_cca2" */
3413+
1322, /* "p521_hqc256_2_cca2" */
3414+
1324, /* "p521_hqc256_3_cca2" */
33913415
1260, /* "p521_kyber1024" */
33923416
1300, /* "p521_kyber90s1024" */
33933417
1264, /* "p521_newhope1024cca" */
@@ -3741,7 +3765,7 @@ static const unsigned int sn_objs[NUM_SN] = {
37413765
1093, /* "x509ExtAdmission" */
37423766
};
37433767

3744-
#define NUM_LN 1304
3768+
#define NUM_LN 1316
37453769
static const unsigned int ln_objs[NUM_LN] = {
37463770
363, /* "AD Time Stamping" */
37473771
405, /* "ANSI X9.62" */
@@ -4285,6 +4309,12 @@ static const unsigned int ln_objs[NUM_LN] = {
42854309
473, /* "homeTelephoneNumber" */
42864310
466, /* "host" */
42874311
889, /* "houseIdentifier" */
4312+
1313, /* "hqc128_1_cca2" */
4313+
1315, /* "hqc192_1_cca2" */
4314+
1317, /* "hqc192_2_cca2" */
4315+
1319, /* "hqc256_1_cca2" */
4316+
1321, /* "hqc256_2_cca2" */
4317+
1323, /* "hqc256_3_cca2" */
42884318
442, /* "iA5StringSyntax" */
42894319
381, /* "iana" */
42904320
824, /* "id-Gost28147-89-CryptoPro-A-ParamSet" */
@@ -4633,6 +4663,7 @@ static const unsigned int ln_objs[NUM_LN] = {
46334663
1207, /* "p256_falcon512" */
46344664
1236, /* "p256_frodo640aes" */
46354665
1238, /* "p256_frodo640shake" */
4666+
1314, /* "p256_hqc128_1_cca2" */
46364667
1256, /* "p256_kyber512" */
46374668
1296, /* "p256_kyber90s512" */
46384669
1274, /* "p256_lightsaber" */
@@ -4655,6 +4686,8 @@ static const unsigned int ln_objs[NUM_LN] = {
46554686
1205, /* "p384_dilithium4" */
46564687
1240, /* "p384_frodo976aes" */
46574688
1242, /* "p384_frodo976shake" */
4689+
1316, /* "p384_hqc192_1_cca2" */
4690+
1318, /* "p384_hqc192_2_cca2" */
46584691
1258, /* "p384_kyber768" */
46594692
1298, /* "p384_kyber90s768" */
46604693
1304, /* "p384_mamabear" */
@@ -4669,6 +4702,9 @@ static const unsigned int ln_objs[NUM_LN] = {
46694702
1278, /* "p521_firesaber" */
46704703
1244, /* "p521_frodo1344aes" */
46714704
1246, /* "p521_frodo1344shake" */
4705+
1320, /* "p521_hqc256_1_cca2" */
4706+
1322, /* "p521_hqc256_2_cca2" */
4707+
1324, /* "p521_hqc256_3_cca2" */
46724708
1260, /* "p521_kyber1024" */
46734709
1300, /* "p521_kyber90s1024" */
46744710
1264, /* "p521_newhope1024cca" */

crypto/objects/obj_mac.num

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1310,3 +1310,15 @@ mamabearephem 1309
13101310
p384_mamabearephem 1310
13111311
papabearephem 1311
13121312
p521_papabearephem 1312
1313+
hqc128_1_cca2 1313
1314+
p256_hqc128_1_cca2 1314
1315+
hqc192_1_cca2 1315
1316+
p384_hqc192_1_cca2 1316
1317+
hqc192_2_cca2 1317
1318+
p384_hqc192_2_cca2 1318
1319+
hqc256_1_cca2 1319
1320+
p521_hqc256_1_cca2 1320
1321+
hqc256_2_cca2 1321
1322+
p521_hqc256_2_cca2 1322
1323+
hqc256_3_cca2 1323
1324+
p521_hqc256_3_cca2 1324

crypto/objects/objects.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1757,6 +1757,18 @@ dstu4145le 2 9 : uacurve9 : DSTU curve 9
17571757
: p384_mamabearephem : p384_mamabearephem
17581758
: papabearephem : papabearephem
17591759
: p521_papabearephem : p521_papabearephem
1760+
: hqc128_1_cca2 : hqc128_1_cca2
1761+
: p256_hqc128_1_cca2 : p256_hqc128_1_cca2
1762+
: hqc192_1_cca2 : hqc192_1_cca2
1763+
: p384_hqc192_1_cca2 : p384_hqc192_1_cca2
1764+
: hqc192_2_cca2 : hqc192_2_cca2
1765+
: p384_hqc192_2_cca2 : p384_hqc192_2_cca2
1766+
: hqc256_1_cca2 : hqc256_1_cca2
1767+
: p521_hqc256_1_cca2 : p521_hqc256_1_cca2
1768+
: hqc256_2_cca2 : hqc256_2_cca2
1769+
: p521_hqc256_2_cca2 : p521_hqc256_2_cca2
1770+
: hqc256_3_cca2 : hqc256_3_cca2
1771+
: p521_hqc256_3_cca2 : p521_hqc256_3_cca2
17601772
##### OQS_TEMPLATE_FRAGMENT_LIST_KEMS_END
17611773

17621774
##### OQS_TEMPLATE_FRAGMENT_ASSIGN_SIG_OIDS_START

include/openssl/evp.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@
103103
# define EVP_PKEY_P256_SPHINCSHARAKA128FROBUST NID_p256_sphincsharaka128frobust
104104
# define EVP_PKEY_RSA3072_SPHINCSHARAKA128FROBUST NID_rsa3072_sphincsharaka128frobust
105105
#define OQS_OPENSSL_SIG_algs_length 38
106-
#define OQS_OPENSSL_KEM_algs_length 39
107-
#define IS_OQS_OPENSSL_KEM_NID(a) ((a >= NID_oqs_kem_default) && (a <= NID_p521_papabearephem))
106+
#define OQS_OPENSSL_KEM_algs_length 45
107+
#define IS_OQS_OPENSSL_KEM_NID(a) ((a >= NID_oqs_kem_default) && (a <= NID_p521_hqc256_3_cca2))
108108
#define IS_OQS_OPENSSL_SIG_NID(a) ((a >= NID_oqs_sig_default) && (a <= NID_rsa3072_sphincsharaka128frobust))
109109
/////// OQS_TEMPLATE_FRAGMENT_DEFINE_EVP_PKEYS_END
110110
const char *OQSKEM_options(void);

include/openssl/obj_mac.h

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5517,6 +5517,54 @@
55175517
#define LN_p521_papabearephem "p521_papabearephem"
55185518
#define NID_p521_papabearephem 1312
55195519

5520+
#define SN_hqc128_1_cca2 "hqc128_1_cca2"
5521+
#define LN_hqc128_1_cca2 "hqc128_1_cca2"
5522+
#define NID_hqc128_1_cca2 1313
5523+
5524+
#define SN_p256_hqc128_1_cca2 "p256_hqc128_1_cca2"
5525+
#define LN_p256_hqc128_1_cca2 "p256_hqc128_1_cca2"
5526+
#define NID_p256_hqc128_1_cca2 1314
5527+
5528+
#define SN_hqc192_1_cca2 "hqc192_1_cca2"
5529+
#define LN_hqc192_1_cca2 "hqc192_1_cca2"
5530+
#define NID_hqc192_1_cca2 1315
5531+
5532+
#define SN_p384_hqc192_1_cca2 "p384_hqc192_1_cca2"
5533+
#define LN_p384_hqc192_1_cca2 "p384_hqc192_1_cca2"
5534+
#define NID_p384_hqc192_1_cca2 1316
5535+
5536+
#define SN_hqc192_2_cca2 "hqc192_2_cca2"
5537+
#define LN_hqc192_2_cca2 "hqc192_2_cca2"
5538+
#define NID_hqc192_2_cca2 1317
5539+
5540+
#define SN_p384_hqc192_2_cca2 "p384_hqc192_2_cca2"
5541+
#define LN_p384_hqc192_2_cca2 "p384_hqc192_2_cca2"
5542+
#define NID_p384_hqc192_2_cca2 1318
5543+
5544+
#define SN_hqc256_1_cca2 "hqc256_1_cca2"
5545+
#define LN_hqc256_1_cca2 "hqc256_1_cca2"
5546+
#define NID_hqc256_1_cca2 1319
5547+
5548+
#define SN_p521_hqc256_1_cca2 "p521_hqc256_1_cca2"
5549+
#define LN_p521_hqc256_1_cca2 "p521_hqc256_1_cca2"
5550+
#define NID_p521_hqc256_1_cca2 1320
5551+
5552+
#define SN_hqc256_2_cca2 "hqc256_2_cca2"
5553+
#define LN_hqc256_2_cca2 "hqc256_2_cca2"
5554+
#define NID_hqc256_2_cca2 1321
5555+
5556+
#define SN_p521_hqc256_2_cca2 "p521_hqc256_2_cca2"
5557+
#define LN_p521_hqc256_2_cca2 "p521_hqc256_2_cca2"
5558+
#define NID_p521_hqc256_2_cca2 1322
5559+
5560+
#define SN_hqc256_3_cca2 "hqc256_3_cca2"
5561+
#define LN_hqc256_3_cca2 "hqc256_3_cca2"
5562+
#define NID_hqc256_3_cca2 1323
5563+
5564+
#define SN_p521_hqc256_3_cca2 "p521_hqc256_3_cca2"
5565+
#define LN_p521_hqc256_3_cca2 "p521_hqc256_3_cca2"
5566+
#define NID_p521_hqc256_3_cca2 1324
5567+
55205568
#define SN_oqs_sig_default "oqs_sig_default"
55215569
#define LN_oqs_sig_default "oqs_sig_default"
55225570
#define NID_oqs_sig_default 1195

oqs-interop-test/ossl_algorithms.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
'oqs_kem_default', 'p256_oqs_kem_default',
33
##### OQS_TEMPLATE_FRAGMENT_KEX_ALGS_START
44
# post-quantum key exchanges
5-
'frodo640aes','frodo640shake','frodo976aes','frodo976shake','frodo1344aes','frodo1344shake','bike1l1cpa','bike1l3cpa','bike1l1fo','bike1l3fo','kyber512','kyber768','kyber1024','newhope512cca','newhope1024cca','ntru_hps2048509','ntru_hps2048677','ntru_hps4096821','ntru_hrss701','lightsaber','saber','firesaber','sidhp434','sidhp503','sidhp610','sidhp751','sikep434','sikep503','sikep610','sikep751','kyber90s512','kyber90s768','kyber90s1024','babybear','mamabear','papabear','babybearephem','mamabearephem','papabearephem',
5+
'frodo640aes','frodo640shake','frodo976aes','frodo976shake','frodo1344aes','frodo1344shake','bike1l1cpa','bike1l3cpa','bike1l1fo','bike1l3fo','kyber512','kyber768','kyber1024','newhope512cca','newhope1024cca','ntru_hps2048509','ntru_hps2048677','ntru_hps4096821','ntru_hrss701','lightsaber','saber','firesaber','sidhp434','sidhp503','sidhp610','sidhp751','sikep434','sikep503','sikep610','sikep751','kyber90s512','kyber90s768','kyber90s1024','babybear','mamabear','papabear','babybearephem','mamabearephem','papabearephem','hqc128_1_cca2','hqc192_1_cca2','hqc192_2_cca2','hqc256_1_cca2','hqc256_2_cca2','hqc256_3_cca2',
66
# post-quantum + classical key exchanges
7-
'p256_frodo640aes','p256_frodo640shake','p384_frodo976aes','p384_frodo976shake','p521_frodo1344aes','p521_frodo1344shake','p256_bike1l1cpa','p384_bike1l3cpa','p256_bike1l1fo','p384_bike1l3fo','p256_kyber512','p384_kyber768','p521_kyber1024','p256_newhope512cca','p521_newhope1024cca','p256_ntru_hps2048509','p384_ntru_hps2048677','p521_ntru_hps4096821','p384_ntru_hrss701','p256_lightsaber','p384_saber','p521_firesaber','p256_sidhp434','p256_sidhp503','p384_sidhp610','p521_sidhp751','p256_sikep434','p256_sikep503','p384_sikep610','p521_sikep751','p256_kyber90s512','p384_kyber90s768','p521_kyber90s1024','p256_babybear','p384_mamabear','p521_papabear','p256_babybearephem','p384_mamabearephem','p521_papabearephem',
7+
'p256_frodo640aes','p256_frodo640shake','p384_frodo976aes','p384_frodo976shake','p521_frodo1344aes','p521_frodo1344shake','p256_bike1l1cpa','p384_bike1l3cpa','p256_bike1l1fo','p384_bike1l3fo','p256_kyber512','p384_kyber768','p521_kyber1024','p256_newhope512cca','p521_newhope1024cca','p256_ntru_hps2048509','p384_ntru_hps2048677','p521_ntru_hps4096821','p384_ntru_hrss701','p256_lightsaber','p384_saber','p521_firesaber','p256_sidhp434','p256_sidhp503','p384_sidhp610','p521_sidhp751','p256_sikep434','p256_sikep503','p384_sikep610','p521_sikep751','p256_kyber90s512','p384_kyber90s768','p521_kyber90s1024','p256_babybear','p384_mamabear','p521_papabear','p256_babybearephem','p384_mamabearephem','p521_papabearephem','p256_hqc128_1_cca2','p384_hqc192_1_cca2','p384_hqc192_2_cca2','p521_hqc256_1_cca2','p521_hqc256_2_cca2','p521_hqc256_3_cca2',
88
##### OQS_TEMPLATE_FRAGMENT_KEX_ALGS_END
99
]
1010
signatures = [

oqs-template/generate.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,43 @@ kems:
235235
nid_hybrid: "0x2F31"
236236
oqs_alg: "OQS_KEM_alg_threebears_papabear_ephem"
237237
bit_security: 256
238+
-
239+
name_group: "hqc128_1_cca2"
240+
nid: "0x0232"
241+
nid_hybrid: "0x2F32"
242+
oqs_alg: 'OQS_KEM_alg_hqc_128_1_cca2'
243+
bit_security: 128
244+
-
245+
name_group: 'hqc192_1_cca2'
246+
nid: "0x0233"
247+
nid_hybrid: "0x2F33"
248+
oqs_alg: 'OQS_KEM_alg_hqc_192_1_cca2'
249+
bit_security: 192
250+
-
251+
name_group: 'hqc192_2_cca2'
252+
nid: "0x0234"
253+
nid_hybrid: "0x2F34"
254+
oqs_alg: 'OQS_KEM_alg_hqc_192_2_cca2'
255+
bit_security: 192
256+
-
257+
name_group: 'hqc256_1_cca2'
258+
nid: "0x0235"
259+
nid_hybrid: "0x2F35"
260+
oqs_alg: 'OQS_KEM_alg_hqc_256_1_cca2'
261+
bit_security: 256
262+
-
263+
name_group: 'hqc256_2_cca2'
264+
nid: "0x0236"
265+
nid_hybrid: "0x2F36"
266+
oqs_alg: 'OQS_KEM_alg_hqc_256_2_cca2'
267+
bit_security: 256
268+
-
269+
name_group: 'hqc256_3_cca2'
270+
nid: "0x0237"
271+
nid_hybrid: "0x2F37"
272+
oqs_alg: 'OQS_KEM_alg_hqc_256_3_cca2'
273+
bit_security: 256
274+
238275
kem_nid_end: "0x0250"
239276
kem_nid_hybrid_end: "0x2FFF"
240277
# need to edit ssl_local.h macros IS_OQS_KEM_CURVEID and IS_OQS_KEM_HYBRID_CURVEID with the above _end values

0 commit comments

Comments
 (0)