@@ -26,7 +26,18 @@ is going to specify what is sent in the CertificateVerify message. BOTH is simpl
2626
2727## Post-Quantum
2828
29- Tested with these wolfSSL build options:
29+ Tested with these wolfSSL build options for MLDSA certificates:
30+
31+ ``` sh
32+ ./autogen.sh # If cloned from GitHub
33+ ./configure --enable-experimental --enable-dual-alg-certs --enable-dilithium --enable-debug
34+ make
35+ sudo make install
36+ sudo ldconfig # required on some targets
37+ ```
38+ NOTE: This DOES NOT require installation of liboqs.
39+
40+ Tested with these wolfSSL build options for Falcon certificates:
3041
3142``` sh
3243./autogen.sh # If cloned from GitHub
3546sudo make install
3647sudo ldconfig # required on some targets
3748```
49+ NOTE: This REQUIRES installation of liboqs for its Falcon implementation.
50+
51+
3852
3953In the directory where this README.md file is found, clean up previous build
4054products and certificates and then build the applications.
@@ -74,7 +88,7 @@ wolfSSL Leaving DoTls13CertificateVerify, return 0
7488
7589### ECDSA Demos
7690
77- #### P-256 and Dilithium Level 2 Demo
91+ #### P-256 and MLDSA44 Demo
7892Generate the various conventional keys; the post-quantum key are pre-generated:
7993
8094``` sh
@@ -86,31 +100,31 @@ openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 -out server-key.d
86100Generate the certificate chain:
87101
88102```
89- ./gen_ecdsa_dilithium_dual_keysig_root_cert 2
103+ ./gen_ecdsa_mldsa_dual_keysig_root_cert 2
90104
91- ./gen_ecdsa_dilithium_dual_keysig_server_cert 2
105+ ./gen_ecdsa_mldsa_dual_keysig_server_cert 2
92106```
93107
94108Convert the DER encoded resulting certificates and keys into PEM:
95109
96110```
97- openssl x509 -in ca-cert-pq.der -inform der -out ca-P256-dilithium2 -cert.pem -outform pem
111+ openssl x509 -in ca-cert-pq.der -inform der -out ca-P256-mldsa44 -cert.pem -outform pem
98112
99- openssl x509 -in server-cert-pq.der -inform der -out server-P256-dilithium2 -cert.pem -outform pem
113+ openssl x509 -in server-cert-pq.der -inform der -out server-P256-mldsa44 -cert.pem -outform pem
100114
101115openssl pkey -in server-key.der -inform der -out server-P256-key.pem -outform pem
102116
103- cp ../certs/dilithium_level2_server_key .pem server-dilithium2 -key-pq.pem
117+ cp ../certs/mldsa44_server_key .pem server-mldsa44 -key-pq.pem
104118```
105119Then in wolfssl's source directory:
106120
107121```
108- examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-P256-dilithium2 -cert.pem -k ../wolfssl-examples/X9.146/server-P256-key.pem --altPrivKey ../wolfssl-examples/X9.146/server-dilithium2 -key-pq.pem
122+ examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-P256-mldsa44 -cert.pem -k ../wolfssl-examples/X9.146/server-P256-key.pem --altPrivKey ../wolfssl-examples/X9.146/server-mldsa44 -key-pq.pem
109123
110- examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-P256-dilithium2 -cert.pem
124+ examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-P256-mldsa44 -cert.pem
111125```
112126
113- #### P-384 and Dilithium Level 3 Demo
127+ #### P-384 and MLDSA65 Demo
114128Generate the various conventional keys; the post-quantum key are pre-generated:
115129
116130``` sh
@@ -122,32 +136,32 @@ openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-384 -out server-key.d
122136Generate the certificate chain:
123137
124138```
125- ./gen_ecdsa_dilithium_dual_keysig_root_cert 3
139+ ./gen_ecdsa_mldsa_dual_keysig_root_cert 3
126140
127- ./gen_ecdsa_dilithium_dual_keysig_server_cert 3
141+ ./gen_ecdsa_mldsa_dual_keysig_server_cert 3
128142```
129143
130144Convert the DER encoded resulting certificates and keys into PEM:
131145
132146```
133- openssl x509 -in ca-cert-pq.der -inform der -out ca-P384-dilithium3 -cert.pem -outform pem
147+ openssl x509 -in ca-cert-pq.der -inform der -out ca-P384-mldsa65 -cert.pem -outform pem
134148
135- openssl x509 -in server-cert-pq.der -inform der -out server-P384-dilithium3 -cert.pem -outform pem
149+ openssl x509 -in server-cert-pq.der -inform der -out server-P384-mldsa65 -cert.pem -outform pem
136150
137151openssl pkey -in server-key.der -inform der -out server-P384-key.pem -outform pem
138152
139- cp ../certs/dilithium_level3_server_key .pem server-dilithium3 -key-pq.pem
153+ cp ../certs/mldsa65_server_key .pem server-mldsa65 -key-pq.pem
140154```
141155
142156Then in wolfssl's source directory:
143157
144158```
145- examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-P384-dilithium3 -cert.pem -k ../wolfssl-examples/X9.146/server-P384-key.pem --altPrivKey ../wolfssl-examples/X9.146/server-dilithium3 -key-pq.pem
159+ examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-P384-mldsa65 -cert.pem -k ../wolfssl-examples/X9.146/server-P384-key.pem --altPrivKey ../wolfssl-examples/X9.146/server-mldsa65 -key-pq.pem
146160
147- examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-P384-dilithium3 -cert.pem
161+ examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-P384-mldsa65 -cert.pem
148162```
149163
150- #### P-521 and Dilithium Level 5 Demo
164+ #### P-521 and MLDSA87 Demo
151165Generate the various conventional keys; the post-quantum key are pre-generated:
152166
153167``` sh
@@ -160,29 +174,29 @@ Generate the certificate chain:
160174
161175```
162176
163- ./gen_ecdsa_dilithium_dual_keysig_root_cert 5
177+ ./gen_ecdsa_mldsa_dual_keysig_root_cert 5
164178
165- ./gen_ecdsa_dilithium_dual_keysig_server_cert 5
179+ ./gen_ecdsa_mldsa_dual_keysig_server_cert 5
166180```
167181
168182Convert the DER encoded resulting certificates and keys into PEM:
169183
170184```
171- openssl x509 -in ca-cert-pq.der -inform der -out ca-P521-dilithium5 -cert.pem -outform pem
185+ openssl x509 -in ca-cert-pq.der -inform der -out ca-P521-mldsa87 -cert.pem -outform pem
172186
173- openssl x509 -in server-cert-pq.der -inform der -out server-P521-dilithium5 -cert.pem -outform pem
187+ openssl x509 -in server-cert-pq.der -inform der -out server-P521-mldsa87 -cert.pem -outform pem
174188
175189openssl pkey -in server-key.der -inform der -out server-P521-key.pem -outform pem
176190
177- cp ../certs/dilithium_level5_server_key .pem server-dilithium5 -key-pq.pem
191+ cp ../certs/mldsa87_server_key .pem server-mldsa87 -key-pq.pem
178192```
179193
180194Then in wolfssl's source directory:
181195
182196```
183- examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-P521-dilithium5 -cert.pem -k ../wolfssl-examples/X9.146/server-P521-key.pem --altPrivKey ../wolfssl-examples/X9.146/server-dilithium5 -key-pq.pem
197+ examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-P521-mldsa87 -cert.pem -k ../wolfssl-examples/X9.146/server-P521-key.pem --altPrivKey ../wolfssl-examples/X9.146/server-mldsa87 -key-pq.pem
184198
185- examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-P521-dilithium5 -cert.pem
199+ examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-P521-mldsa87 -cert.pem
186200```
187201
188202#### P-256 and Falcon Level 1 Demo
@@ -262,7 +276,7 @@ examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-P521-falcon5-cert.p
262276
263277### RSA Demos
264278
265- #### RSA-3072 and Dilithium Level 2 Demo
279+ #### RSA-3072 and MLDSA44 Demo
266280Generate the various conventional keys; the post-quantum key are pre-generated:
267281
268282``` sh
@@ -275,28 +289,28 @@ Generate the certificate chain:
275289
276290```
277291
278- ./gen_rsa_dilithium_dual_keysig_root_cert
292+ ./gen_rsa_mldsa_dual_keysig_root_cert
279293
280- ./gen_rsa_dilithium_dual_keysig_server_cert
294+ ./gen_rsa_mldsa_dual_keysig_server_cert
281295```
282296
283297Convert the DER encoded resulting certificates and keys into PEM:
284298
285299```
286- openssl x509 -in ca-cert-pq.der -inform der -out ca-rsa3072-dilithium2 -cert.pem -outform pem
300+ openssl x509 -in ca-cert-pq.der -inform der -out ca-rsa3072-mldsa44 -cert.pem -outform pem
287301
288- openssl x509 -in server-cert-pq.der -inform der -out server-rsa3072-dilithium2 -cert.pem -outform pem
302+ openssl x509 -in server-cert-pq.der -inform der -out server-rsa3072-mldsa44 -cert.pem -outform pem
289303
290304openssl pkey -in server-key.der -inform der -out server-rsa3072-key.pem -outform pem
291305
292- cp ../certs/dilithium_level2_server_key .pem server-dilithium2 -key-pq.pem
306+ cp ../certs/mldsa44_server_key .pem server-mldsa44 -key-pq.pem
293307```
294308Then in wolfssl's source directory:
295309
296310```
297- examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-rsa3072-dilithium2 -cert.pem -k ../wolfssl-examples/X9.146/server-rsa3072-key.pem --altPrivKey ../wolfssl-examples/X9.146/server-dilithium2 -key-pq.pem
311+ examples/server/server -d -v 4 -c ../wolfssl-examples/X9.146/server-rsa3072-mldsa44 -cert.pem -k ../wolfssl-examples/X9.146/server-rsa3072-key.pem --altPrivKey ../wolfssl-examples/X9.146/server-mldsa44 -key-pq.pem
298312
299- examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-rsa3072-dilithium2 -cert.pem
313+ examples/client/client -v 4 -A ../wolfssl-examples/X9.146/ca-rsa3072-mldsa44 -cert.pem
300314```
301315
302316#### RSA-3072 and Falcon Level 1 Demo
0 commit comments