Skip to content

Commit 702d54c

Browse files
authored
Merge pull request wolfSSL#486 from anhu/pq_update
PQ update. Prepare for OQS deprecation.
2 parents 163395f + 358e4a2 commit 702d54c

File tree

59 files changed

+1936
-5537
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+1936
-5537
lines changed

X9.146/Makefile

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ CFLAGS+=$(DEBUG_FLAGS)
2727
#LIBS+=$(STATIC_LIB)
2828
LIBS+=$(DYN_LIB)
2929

30-
all: gen_dual_keysig_root_cert gen_dual_keysig_server_cert gen_rsa_mldsa_dual_keysig_root_cert gen_rsa_mldsa_dual_keysig_server_cert gen_rsa_falcon_dual_keysig_root_cert gen_rsa_falcon_dual_keysig_server_cert gen_ecdsa_mldsa_dual_keysig_root_cert gen_ecdsa_mldsa_dual_keysig_server_cert gen_ecdsa_falcon_dual_keysig_root_cert gen_ecdsa_falcon_dual_keysig_server_cert
30+
all: gen_dual_keysig_root_cert gen_dual_keysig_server_cert gen_rsa_mldsa_dual_keysig_root_cert gen_rsa_mldsa_dual_keysig_server_cert gen_ecdsa_mldsa_dual_keysig_root_cert gen_ecdsa_mldsa_dual_keysig_server_cert
3131

3232

3333
gen_dual_keysig_root_cert: gen_dual_keysig_cert.c
@@ -42,24 +42,12 @@ gen_rsa_mldsa_dual_keysig_root_cert: gen_rsa_mldsa_dual_keysig_cert.c
4242
gen_rsa_mldsa_dual_keysig_server_cert: gen_rsa_mldsa_dual_keysig_cert.c
4343
$(CC) -o $@ gen_rsa_mldsa_dual_keysig_cert.c $(CFLAGS) $(CPPFLAGS) $(LIBS) -DGEN_SERVER_CERT
4444

45-
gen_rsa_falcon_dual_keysig_root_cert: gen_rsa_falcon_dual_keysig_cert.c
46-
$(CC) -o $@ gen_rsa_falcon_dual_keysig_cert.c $(CFLAGS) $(CPPFLAGS) $(LIBS) -DGEN_ROOT_CERT
47-
48-
gen_rsa_falcon_dual_keysig_server_cert: gen_rsa_falcon_dual_keysig_cert.c
49-
$(CC) -o $@ gen_rsa_falcon_dual_keysig_cert.c $(CFLAGS) $(CPPFLAGS) $(LIBS) -DGEN_SERVER_CERT
50-
5145
gen_ecdsa_mldsa_dual_keysig_root_cert: gen_ecdsa_mldsa_dual_keysig_cert.c
5246
$(CC) -o $@ gen_ecdsa_mldsa_dual_keysig_cert.c $(CFLAGS) $(CPPFLAGS) $(LIBS) -DGEN_ROOT_CERT
5347

5448
gen_ecdsa_mldsa_dual_keysig_server_cert: gen_ecdsa_mldsa_dual_keysig_cert.c
5549
$(CC) -o $@ gen_ecdsa_mldsa_dual_keysig_cert.c $(CFLAGS) $(CPPFLAGS) $(LIBS) -DGEN_SERVER_CERT
5650

57-
gen_ecdsa_falcon_dual_keysig_root_cert: gen_ecdsa_falcon_dual_keysig_cert.c
58-
$(CC) -o $@ gen_ecdsa_falcon_dual_keysig_cert.c $(CFLAGS) $(CPPFLAGS) $(LIBS) -DGEN_ROOT_CERT
59-
60-
gen_ecdsa_falcon_dual_keysig_server_cert: gen_ecdsa_falcon_dual_keysig_cert.c
61-
$(CC) -o $@ gen_ecdsa_falcon_dual_keysig_cert.c $(CFLAGS) $(CPPFLAGS) $(LIBS) -DGEN_SERVER_CERT
62-
6351
.PHONY: clean all
6452

6553
clean:

X9.146/README.md

Lines changed: 2 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,6 @@ make
3535
sudo make install
3636
sudo ldconfig # required on some targets
3737
```
38-
NOTE: This DOES NOT require installation of liboqs.
39-
40-
Tested with these wolfSSL build options for Falcon certificates:
41-
42-
```sh
43-
./autogen.sh # If cloned from GitHub
44-
./configure --enable-experimental --enable-dual-alg-certs --with-liboqs --enable-debug
45-
make
46-
sudo make install
47-
sudo ldconfig # required on some targets
48-
```
49-
NOTE: This REQUIRES installation of liboqs for its Falcon implementation.
50-
51-
5238

5339
In the directory where this README.md file is found, clean up previous build
5440
products and certificates and then build the applications.
@@ -76,13 +62,13 @@ verification was also successful.
7662
On the client side, during the call to `DoTls13CertificateVerify()` look for
7763
messages that indicate both conventional and post-quantum verification:
7864

79-
For example, if you are doing ECDSA with Falcon, you will see the following:
65+
For example, if you are doing ECDSA with MLDSA, you will see the following:
8066

8167
```
8268
Doing ECC peer cert verify
8369
wolfSSL Entering EccVerify
8470
wolfSSL Leaving EccVerify, return 0
85-
Doing Falcon peer cert verify
71+
Doing MLDSA peer cert verify
8672
wolfSSL Leaving DoTls13CertificateVerify, return 0
8773
```
8874

@@ -199,81 +185,6 @@ examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-P521-mldsa87
199185
examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-P521-mldsa87-cert.pem
200186
```
201187

202-
#### P-256 and Falcon Level 1 Demo
203-
204-
Generate the various conventional keys; the post-quantum key are pre-generated:
205-
206-
```sh
207-
openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 -out ca-key.der -outform der
208-
209-
openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 -out server-key.der -outform der
210-
```
211-
212-
Generate the certificate chain:
213-
214-
```
215-
./gen_ecdsa_falcon_dual_keysig_root_cert 1
216-
217-
./gen_ecdsa_falcon_dual_keysig_server_cert 1
218-
```
219-
220-
Convert the DER encoded resulting certificates and keys into PEM:
221-
222-
```
223-
openssl x509 -in ca-cert-pq.der -inform der -out ca-P256-falcon1-cert.pem -outform pem
224-
225-
openssl x509 -in server-cert-pq.der -inform der -out server-P256-falcon1-cert.pem -outform pem
226-
227-
openssl pkey -in server-key.der -inform der -out server-P256-key.pem -outform pem
228-
229-
cp ../certs/falcon_level1_server_key.pem server-falcon1-key-pq.pem
230-
```
231-
Then in wolfssl's source directory:
232-
233-
```
234-
examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-P256-falcon1-cert.pem -k ../wolfssl-examples/X9.146/server-P256-key.pem --altPrivKey ../wolfssl-examples/X9.146/server-falcon1-key-pq.pem
235-
236-
examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-P256-falcon1-cert.pem
237-
```
238-
239-
#### P-521 and Falcon Level 5 Demo
240-
241-
Generate the various conventional keys; the post-quantum key are pre-generated:
242-
243-
```sh
244-
openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-521 -out ca-key.der -outform der
245-
246-
openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-521 -out server-key.der -outform der
247-
```
248-
249-
Generate the certificate chain:
250-
251-
```
252-
253-
./gen_ecdsa_falcon_dual_keysig_root_cert 5
254-
255-
./gen_ecdsa_falcon_dual_keysig_server_cert 5
256-
```
257-
258-
Convert the DER encoded resulting certificates and keys into PEM:
259-
260-
```
261-
openssl x509 -in ca-cert-pq.der -inform der -out ca-P521-falcon5-cert.pem -outform pem
262-
263-
openssl x509 -in server-cert-pq.der -inform der -out server-P521-falcon5-cert.pem -outform pem
264-
265-
openssl pkey -in server-key.der -inform der -out server-P521-key.pem -outform pem
266-
267-
cp ../certs/falcon_level5_server_key.pem server-falcon5-key-pq.pem
268-
```
269-
Then in wolfssl's source directory:
270-
271-
```
272-
examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-P521-falcon5-cert.pem -k ../wolfssl-examples/X9.146/server-P521-key.pem --altPrivKey ../wolfssl-examples/X9.146/server-falcon5-key-pq.pem
273-
274-
examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-P521-falcon5-cert.pem
275-
```
276-
277188
### RSA Demos
278189

279190
#### RSA-3072 and MLDSA44 Demo
@@ -313,43 +224,6 @@ examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-rsa3072-mlds
313224
examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-rsa3072-mldsa44-cert.pem
314225
```
315226

316-
#### RSA-3072 and Falcon Level 1 Demo
317-
318-
Generate the various conventional keys; the post-quantum key are pre-generated:
319-
320-
```sh
321-
openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:3072 -out ca-key.der -outform der
322-
323-
openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:3072 -out server-key.der -outform der
324-
```
325-
326-
Generate the certificate chain:
327-
328-
```
329-
./gen_rsa_falcon_dual_keysig_root_cert
330-
331-
./gen_rsa_falcon_dual_keysig_server_cert
332-
```
333-
334-
Convert the DER encoded resulting certificates and keys into PEM:
335-
336-
```
337-
openssl x509 -in ca-cert-pq.der -inform der -out ca-rsa3072-falcon1-cert.pem -outform pem
338-
339-
openssl x509 -in server-cert-pq.der -inform der -out server-rsa3072-falcon1-cert.pem -outform pem
340-
341-
openssl pkey -in server-key.der -inform der -out server-rsa3072-key.pem -outform pem
342-
343-
cp ../certs/falcon_level1_server_key.pem server-falcon1-key-pq.pem
344-
```
345-
Then in wolfssl's source directory:
346-
347-
```
348-
examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-rsa3072-falcon1-cert.pem -k ../wolfssl-examples/X9.146/server-rsa3072-key.pem --altPrivKey ../wolfssl-examples/X9.146/server-falcon1-key-pq.pem
349-
350-
examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-rsa3072-falcon1-cert.pem
351-
```
352-
353227
## Generating a Certificate Chain and Adding Alternative keys and Signatures
354228

355229
In the directory where this README.md file is found, build the applications:

0 commit comments

Comments
 (0)