Skip to content

Commit a739940

Browse files
committed
adapt to 8 nist/bp codepoints and assign experimental code range
1 parent eb71f75 commit a739940

20 files changed

+277
-272
lines changed

include/repgp/repgp_def.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -212,23 +212,23 @@ typedef enum : uint8_t {
212212

213213
PGP_PKA_SM2 = 99, /* SM2 encryption/signature schemes */
214214

215-
/* PQC-ECC composite */
215+
/* PQC(/T) Algorithms */
216216
#if defined(ENABLE_PQC)
217217
PGP_PKA_KYBER768_X25519 = 35,
218218
#endif
219219
#if defined(ENABLE_PQC) && defined(ENABLE_CRYPTO_REFRESH)
220220
PGP_PKA_KYBER1024_X448 = 36,
221-
PGP_PKA_KYBER768_P256 = 111,
222-
PGP_PKA_KYBER1024_P384 = 112,
223-
PGP_PKA_KYBER768_BP256 = 113,
224-
PGP_PKA_KYBER1024_BP384 = 114,
221+
PGP_PKA_KYBER768_P384 = 100,
222+
PGP_PKA_KYBER1024_P521 = 101,
223+
PGP_PKA_KYBER768_BP384 = 102,
224+
PGP_PKA_KYBER1024_BP512 = 103,
225225

226226
PGP_PKA_DILITHIUM3_ED25519 = 30,
227227
PGP_PKA_DILITHIUM5_ED448 = 31,
228-
PGP_PKA_DILITHIUM3_P256 = 132,
229-
PGP_PKA_DILITHIUM5_P384 = 116,
230-
PGP_PKA_DILITHIUM3_BP256 = 117,
231-
PGP_PKA_DILITHIUM5_BP384 = 118,
228+
PGP_PKA_DILITHIUM3_P384 = 104,
229+
PGP_PKA_DILITHIUM5_P521 = 105,
230+
PGP_PKA_DILITHIUM3_BP384 = 106,
231+
PGP_PKA_DILITHIUM5_BP512 = 107,
232232

233233
PGP_PKA_SPHINCSPLUS_SHAKE_128s = 32,
234234
PGP_PKA_SPHINCSPLUS_SHAKE_128f = 33,

include/rnp/rnp.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4092,16 +4092,16 @@ RNP_API const char *rnp_backend_version();
40924092
#if defined(RNP_EXPERIMENTAL_PQC)
40934093
#define RNP_ALGNAME_KYBER768_X25519 "ML-KEM-768+X25519"
40944094
#define RNP_ALGNAME_KYBER1024_X448 "ML-KEM-1024+X448"
4095-
#define RNP_ALGNAME_KYBER768_P256 "ML-KEM-768+ECDH-P256"
4096-
#define RNP_ALGNAME_KYBER1024_P384 "ML-KEM-1024+ECDH-P384"
4097-
#define RNP_ALGNAME_KYBER768_BP256 "ML-KEM-768+ECDH-BP256"
4098-
#define RNP_ALGNAME_KYBER1024_BP384 "ML-KEM-1024+ECDH-BP384"
4095+
#define RNP_ALGNAME_KYBER768_P384 "ML-KEM-768+ECDH-P384"
4096+
#define RNP_ALGNAME_KYBER1024_P521 "ML-KEM-1024+ECDH-P521"
4097+
#define RNP_ALGNAME_KYBER768_BP384 "ML-KEM-768+ECDH-BP384"
4098+
#define RNP_ALGNAME_KYBER1024_BP512 "ML-KEM-1024+ECDH-BP512"
40994099
#define RNP_ALGNAME_DILITHIUM3_ED25519 "ML-DSA-65+ED25519"
41004100
#define RNP_ALGNAME_DILITHIUM5_ED448 "ML-DSA-87+ED448"
4101-
#define RNP_ALGNAME_DILITHIUM3_P256 "ML-DSA-65+ECDSA-P256"
4102-
#define RNP_ALGNAME_DILITHIUM5_P384 "ML-DSA-87+ECDSA-P384"
4103-
#define RNP_ALGNAME_DILITHIUM3_BP256 "ML-DSA-65+ECDSA-BP256"
4104-
#define RNP_ALGNAME_DILITHIUM5_BP384 "ML-DSA-87+ECDSA-BP384"
4101+
#define RNP_ALGNAME_DILITHIUM3_P384 "ML-DSA-65+ECDSA-P384"
4102+
#define RNP_ALGNAME_DILITHIUM5_P521 "ML-DSA-87+ECDSA-P521"
4103+
#define RNP_ALGNAME_DILITHIUM3_BP384 "ML-DSA-65+ECDSA-BP384"
4104+
#define RNP_ALGNAME_DILITHIUM5_BP512 "ML-DSA-87+ECDSA-BP512"
41054105
#define RNP_ALGNAME_SPHINCSPLUS_SHAKE_128f "SLH-DSA-SHAKE-128f"
41064106
#define RNP_ALGNAME_SPHINCSPLUS_SHAKE_128s "SLH-DSA-SHAKE-128s"
41074107
#define RNP_ALGNAME_SPHINCSPLUS_SHAKE_256s "SLH-DSA-SHAKE-256s"

src/lib/crypto/dilithium_exdsa_composite.cpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,14 @@ pgp_dilithium_exdsa_composite_key_t::exdsa_curve_privkey_size(pgp_curve_t curve)
7676
return 32;
7777
case PGP_CURVE_ED448:
7878
return 57;
79-
case PGP_CURVE_NIST_P_256:
80-
return 32;
8179
case PGP_CURVE_NIST_P_384:
8280
return 48;
83-
case PGP_CURVE_BP256:
84-
return 32;
81+
case PGP_CURVE_NIST_P_521:
82+
return 66;
8583
case PGP_CURVE_BP384:
8684
return 48;
85+
case PGP_CURVE_BP512:
86+
return 64;
8787
default:
8888
RNP_LOG("invalid curve given");
8989
throw rnp::rnp_exception(RNP_ERROR_BAD_PARAMETERS);
@@ -98,14 +98,14 @@ pgp_dilithium_exdsa_composite_key_t::exdsa_curve_pubkey_size(pgp_curve_t curve)
9898
return 32;
9999
case PGP_CURVE_ED448:
100100
return 57;
101-
case PGP_CURVE_NIST_P_256:
102-
return 65;
103101
case PGP_CURVE_NIST_P_384:
104102
return 97;
105-
case PGP_CURVE_BP256:
106-
return 65;
103+
case PGP_CURVE_NIST_P_521:
104+
return 133;
107105
case PGP_CURVE_BP384:
108106
return 97;
107+
case PGP_CURVE_BP512:
108+
return 129;
109109
default:
110110
RNP_LOG("invalid curve given");
111111
throw rnp::rnp_exception(RNP_ERROR_BAD_PARAMETERS);
@@ -120,14 +120,14 @@ pgp_dilithium_exdsa_composite_key_t::exdsa_curve_signature_size(pgp_curve_t curv
120120
return 64;
121121
case PGP_CURVE_ED448:
122122
return 114;
123-
case PGP_CURVE_NIST_P_256:
124-
return 64;
125123
case PGP_CURVE_NIST_P_384:
126124
return 96;
127-
case PGP_CURVE_BP256:
128-
return 64;
125+
case PGP_CURVE_NIST_P_521:
126+
return 132;
129127
case PGP_CURVE_BP384:
130128
return 96;
129+
case PGP_CURVE_BP512:
130+
return 128;
131131
default:
132132
RNP_LOG("invalid curve given");
133133
throw rnp::rnp_exception(RNP_ERROR_BAD_PARAMETERS);
@@ -140,13 +140,13 @@ pgp_dilithium_exdsa_composite_key_t::pk_alg_to_dilithium_id(pgp_pubkey_alg_t pk_
140140
switch (pk_alg) {
141141
case PGP_PKA_DILITHIUM3_ED25519:
142142
FALLTHROUGH_STATEMENT;
143-
case PGP_PKA_DILITHIUM3_P256:
143+
case PGP_PKA_DILITHIUM3_P384:
144144
FALLTHROUGH_STATEMENT;
145-
case PGP_PKA_DILITHIUM3_BP256:
145+
case PGP_PKA_DILITHIUM3_BP384:
146146
return dilithium_L3;
147-
case PGP_PKA_DILITHIUM5_BP384:
147+
case PGP_PKA_DILITHIUM5_BP512:
148148
FALLTHROUGH_STATEMENT;
149-
case PGP_PKA_DILITHIUM5_P384:
149+
case PGP_PKA_DILITHIUM5_P521:
150150
FALLTHROUGH_STATEMENT;
151151
case PGP_PKA_DILITHIUM5_ED448:
152152
return dilithium_L5;
@@ -162,14 +162,14 @@ pgp_dilithium_exdsa_composite_key_t::pk_alg_to_curve_id(pgp_pubkey_alg_t pk_alg)
162162
switch (pk_alg) {
163163
case PGP_PKA_DILITHIUM3_ED25519:
164164
return PGP_CURVE_ED25519;
165-
case PGP_PKA_DILITHIUM3_P256:
166-
return PGP_CURVE_NIST_P_256;
167-
case PGP_PKA_DILITHIUM3_BP256:
168-
return PGP_CURVE_BP256;
169-
case PGP_PKA_DILITHIUM5_BP384:
170-
return PGP_CURVE_BP384;
171-
case PGP_PKA_DILITHIUM5_P384:
165+
case PGP_PKA_DILITHIUM3_P384:
172166
return PGP_CURVE_NIST_P_384;
167+
case PGP_PKA_DILITHIUM3_BP384:
168+
return PGP_CURVE_BP384;
169+
case PGP_PKA_DILITHIUM5_BP512:
170+
return PGP_CURVE_BP512;
171+
case PGP_PKA_DILITHIUM5_P521:
172+
return PGP_CURVE_NIST_P_521;
173173
case PGP_PKA_DILITHIUM5_ED448:
174174
return PGP_CURVE_ED448;
175175
default:

src/lib/crypto/kyber_ecdh_composite.cpp

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,14 @@ pgp_kyber_ecdh_composite_key_t::ecdh_curve_privkey_size(pgp_curve_t curve)
8383
case PGP_CURVE_448:
8484
return 56;
8585
#endif
86-
case PGP_CURVE_NIST_P_256:
87-
return 32;
8886
case PGP_CURVE_NIST_P_384:
8987
return 48;
90-
case PGP_CURVE_BP256:
91-
return 32;
88+
case PGP_CURVE_NIST_P_521:
89+
return 66;
9290
case PGP_CURVE_BP384:
9391
return 48;
92+
case PGP_CURVE_BP512:
93+
return 64;
9494
default:
9595
RNP_LOG("invalid curve given");
9696
throw rnp::rnp_exception(RNP_ERROR_BAD_PARAMETERS);
@@ -107,14 +107,14 @@ pgp_kyber_ecdh_composite_key_t::ecdh_curve_pubkey_size(pgp_curve_t curve)
107107
case PGP_CURVE_448:
108108
return 56;
109109
#endif
110-
case PGP_CURVE_NIST_P_256:
111-
return 65;
112110
case PGP_CURVE_NIST_P_384:
113111
return 97;
114-
case PGP_CURVE_BP256:
115-
return 65;
112+
case PGP_CURVE_NIST_P_521:
113+
return 133;
116114
case PGP_CURVE_BP384:
117115
return 97;
116+
case PGP_CURVE_BP512:
117+
return 129;
118118
default:
119119
RNP_LOG("invalid curve given");
120120
throw rnp::rnp_exception(RNP_ERROR_BAD_PARAMETERS);
@@ -131,14 +131,14 @@ pgp_kyber_ecdh_composite_key_t::ecdh_curve_ephemeral_size(pgp_curve_t curve)
131131
case PGP_CURVE_448:
132132
return 56;
133133
#endif
134-
case PGP_CURVE_NIST_P_256:
135-
return 65;
136134
case PGP_CURVE_NIST_P_384:
137135
return 97;
138-
case PGP_CURVE_BP256:
139-
return 65;
136+
case PGP_CURVE_NIST_P_521:
137+
return 133;
140138
case PGP_CURVE_BP384:
141139
return 97;
140+
case PGP_CURVE_BP512:
141+
return 129;
142142
default:
143143
RNP_LOG("invalid curve given");
144144
throw rnp::rnp_exception(RNP_ERROR_BAD_PARAMETERS);
@@ -155,14 +155,14 @@ pgp_kyber_ecdh_composite_key_t::ecdh_curve_keyshare_size(pgp_curve_t curve)
155155
case PGP_CURVE_448:
156156
return 56;
157157
#endif
158-
case PGP_CURVE_NIST_P_256:
159-
return 32;
160158
case PGP_CURVE_NIST_P_384:
161159
return 48;
162-
case PGP_CURVE_BP256:
163-
return 32;
160+
case PGP_CURVE_NIST_P_521:
161+
return 66;
164162
case PGP_CURVE_BP384:
165163
return 48;
164+
case PGP_CURVE_BP512:
165+
return 64;
166166
default:
167167
RNP_LOG("invalid curve given");
168168
throw rnp::rnp_exception(RNP_ERROR_BAD_PARAMETERS);
@@ -176,17 +176,17 @@ pgp_kyber_ecdh_composite_key_t::pk_alg_to_kyber_id(pgp_pubkey_alg_t pk_alg)
176176
case PGP_PKA_KYBER768_X25519:
177177
#if defined(ENABLE_CRYPTO_REFRESH)
178178
FALLTHROUGH_STATEMENT;
179-
case PGP_PKA_KYBER768_P256:
179+
case PGP_PKA_KYBER768_P384:
180180
FALLTHROUGH_STATEMENT;
181-
case PGP_PKA_KYBER768_BP256:
181+
case PGP_PKA_KYBER768_BP384:
182182
#endif
183183
return kyber_768;
184184
#if defined(ENABLE_CRYPTO_REFRESH)
185185
case PGP_PKA_KYBER1024_X448:
186186
FALLTHROUGH_STATEMENT;
187-
case PGP_PKA_KYBER1024_BP384:
187+
case PGP_PKA_KYBER1024_BP512:
188188
FALLTHROUGH_STATEMENT;
189-
case PGP_PKA_KYBER1024_P384:
189+
case PGP_PKA_KYBER1024_P521:
190190
return kyber_1024;
191191
#endif
192192
default:
@@ -202,14 +202,14 @@ pgp_kyber_ecdh_composite_key_t::pk_alg_to_curve_id(pgp_pubkey_alg_t pk_alg)
202202
case PGP_PKA_KYBER768_X25519:
203203
return PGP_CURVE_25519;
204204
#if defined(ENABLE_CRYPTO_REFRESH)
205-
case PGP_PKA_KYBER768_P256:
206-
return PGP_CURVE_NIST_P_256;
207-
case PGP_PKA_KYBER768_BP256:
208-
return PGP_CURVE_BP256;
209-
case PGP_PKA_KYBER1024_BP384:
210-
return PGP_CURVE_BP384;
211-
case PGP_PKA_KYBER1024_P384:
205+
case PGP_PKA_KYBER768_P384:
212206
return PGP_CURVE_NIST_P_384;
207+
case PGP_PKA_KYBER768_BP384:
208+
return PGP_CURVE_BP384;
209+
case PGP_PKA_KYBER1024_BP512:
210+
return PGP_CURVE_BP512;
211+
case PGP_PKA_KYBER1024_P521:
212+
return PGP_CURVE_NIST_P_521;
213213
case PGP_PKA_KYBER1024_X448:
214214
return PGP_CURVE_448;
215215
#endif

src/lib/enc_material.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ EncMaterial::create(pgp_pubkey_alg_t alg)
5454
FALLTHROUGH_STATEMENT;
5555
case PGP_PKA_KYBER1024_X448:
5656
FALLTHROUGH_STATEMENT;
57-
case PGP_PKA_KYBER768_P256:
57+
case PGP_PKA_KYBER768_P384:
5858
FALLTHROUGH_STATEMENT;
59-
case PGP_PKA_KYBER1024_P384:
59+
case PGP_PKA_KYBER1024_P521:
6060
FALLTHROUGH_STATEMENT;
61-
case PGP_PKA_KYBER768_BP256:
61+
case PGP_PKA_KYBER768_BP384:
6262
FALLTHROUGH_STATEMENT;
63-
case PGP_PKA_KYBER1024_BP384:
63+
case PGP_PKA_KYBER1024_BP512:
6464
#endif
6565
return std::unique_ptr<EncMaterial>(new MlkemEcdhEncMaterial(alg));
6666
#endif

src/lib/generate-key.cpp

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -244,13 +244,13 @@ get_numbits(const rnp_keygen_crypto_params_t *crypto)
244244
FALLTHROUGH_STATEMENT;
245245
case PGP_PKA_KYBER1024_X448:
246246
FALLTHROUGH_STATEMENT;
247-
case PGP_PKA_KYBER768_P256:
247+
case PGP_PKA_KYBER768_P384:
248248
FALLTHROUGH_STATEMENT;
249-
case PGP_PKA_KYBER1024_P384:
249+
case PGP_PKA_KYBER1024_P521:
250250
FALLTHROUGH_STATEMENT;
251-
case PGP_PKA_KYBER768_BP256:
251+
case PGP_PKA_KYBER768_BP384:
252252
FALLTHROUGH_STATEMENT;
253-
case PGP_PKA_KYBER1024_BP384:
253+
case PGP_PKA_KYBER1024_BP512:
254254
#endif
255255
return pgp_kyber_ecdh_composite_public_key_t::encoded_size(crypto->key_alg) * 8;
256256
#endif
@@ -259,13 +259,13 @@ get_numbits(const rnp_keygen_crypto_params_t *crypto)
259259
FALLTHROUGH_STATEMENT;
260260
case PGP_PKA_DILITHIUM5_ED448:
261261
FALLTHROUGH_STATEMENT;
262-
case PGP_PKA_DILITHIUM3_P256:
262+
case PGP_PKA_DILITHIUM3_P384:
263263
FALLTHROUGH_STATEMENT;
264-
case PGP_PKA_DILITHIUM5_P384:
264+
case PGP_PKA_DILITHIUM5_P521:
265265
FALLTHROUGH_STATEMENT;
266-
case PGP_PKA_DILITHIUM3_BP256:
266+
case PGP_PKA_DILITHIUM3_BP384:
267267
FALLTHROUGH_STATEMENT;
268-
case PGP_PKA_DILITHIUM5_BP384:
268+
case PGP_PKA_DILITHIUM5_BP512:
269269
return pgp_dilithium_exdsa_composite_public_key_t::encoded_size(crypto->key_alg) * 8;
270270
case PGP_PKA_SPHINCSPLUS_SHAKE_128f:
271271
FALLTHROUGH_STATEMENT;
@@ -334,15 +334,15 @@ keygen_primary_merge_defaults(rnp_keygen_primary_desc_t &desc)
334334
switch (desc.crypto.key_alg) {
335335
case PGP_PKA_DILITHIUM3_ED25519:
336336
FALLTHROUGH_STATEMENT;
337-
case PGP_PKA_DILITHIUM3_P256:
337+
case PGP_PKA_DILITHIUM3_P384:
338338
FALLTHROUGH_STATEMENT;
339-
case PGP_PKA_DILITHIUM3_BP256:
339+
case PGP_PKA_DILITHIUM3_BP384:
340340
FALLTHROUGH_STATEMENT;
341-
case PGP_PKA_DILITHIUM5_P384:
341+
case PGP_PKA_DILITHIUM5_P521:
342342
FALLTHROUGH_STATEMENT;
343343
case PGP_PKA_DILITHIUM5_Ed448:
344344
FALLTHROUGH_STATEMENT;
345-
case PGP_PKA_DILITHIUM5_BP384:
345+
case PGP_PKA_DILITHIUM5_BP512:
346346
FALLTHROUGH_STATEMENT;
347347
case PGP_PKA_SPHINCSPLUS_SHAKE_128f:
348348
FALLTHROUGH_STATEMENT;
@@ -448,25 +448,25 @@ validate_keygen_subkey(rnp_keygen_subkey_desc_t &desc)
448448
FALLTHROUGH_STATEMENT;
449449
case PGP_PKA_KYBER1024_X448:
450450
FALLTHROUGH_STATEMENT;
451-
case PGP_PKA_KYBER768_P256:
451+
case PGP_PKA_KYBER768_P384:
452452
FALLTHROUGH_STATEMENT;
453-
case PGP_PKA_KYBER1024_P384:
453+
case PGP_PKA_KYBER1024_P521:
454454
FALLTHROUGH_STATEMENT;
455-
case PGP_PKA_KYBER768_BP256:
455+
case PGP_PKA_KYBER768_BP384:
456456
FALLTHROUGH_STATEMENT;
457-
case PGP_PKA_KYBER1024_BP384:
457+
case PGP_PKA_KYBER1024_BP512:
458458
FALLTHROUGH_STATEMENT;
459459
case PGP_PKA_DILITHIUM3_ED25519:
460460
FALLTHROUGH_STATEMENT;
461461
case PGP_PKA_DILITHIUM5_ED448:
462462
FALLTHROUGH_STATEMENT;
463-
case PGP_PKA_DILITHIUM3_P256:
463+
case PGP_PKA_DILITHIUM3_P384:
464464
FALLTHROUGH_STATEMENT;
465-
case PGP_PKA_DILITHIUM5_P384:
465+
case PGP_PKA_DILITHIUM5_P521:
466466
FALLTHROUGH_STATEMENT;
467-
case PGP_PKA_DILITHIUM3_BP256:
467+
case PGP_PKA_DILITHIUM3_BP384:
468468
FALLTHROUGH_STATEMENT;
469-
case PGP_PKA_DILITHIUM5_BP384:
469+
case PGP_PKA_DILITHIUM5_BP512:
470470
FALLTHROUGH_STATEMENT;
471471
case PGP_PKA_SPHINCSPLUS_SHAKE_128f:
472472
FALLTHROUGH_STATEMENT;

0 commit comments

Comments
 (0)