@@ -107,6 +107,14 @@ build() {
107107
108108 echo " Building spdm-responder-emu..."
109109 echo_command cargo build -p spdm-responder-emu
110+
111+ echo " Building spdm-requester-emu with PQC (spdm-aws-lc)..."
112+ echo_command export SPDM_CONFIG=" etc/pqc_config.json"
113+ echo_command cargo build -p spdm-requester-emu --no-default-features --features=" spdm-ring,hashed-transcript-data,async-executor,spdm-aws-lc"
114+
115+ echo " Building spdm-responder-emu with PQC (spdm-aws-lc)..."
116+ echo_command cargo build -p spdm-responder-emu --no-default-features --features=" spdm-ring,hashed-transcript-data,async-executor,spdm-aws-lc"
117+ echo_command unset SPDM_CONFIG
110118}
111119
112120RUN_REQUESTER_FEATURES=${RUN_REQUESTER_FEATURES:- spdm-ring,hashed-transcript-data,async-executor}
@@ -116,6 +124,8 @@ RUN_RESPONDER_MUTAUTH_FEATURES="${RUN_RESPONDER_FEATURES},mut-auth"
116124RUN_RESPONDER_MANDATORY_MUTAUTH_FEATURES=" ${RUN_RESPONDER_FEATURES} ,mandatory-mut-auth"
117125RUN_REQUESTER_CHUNK_CAP_FEATURES=" ${RUN_REQUESTER_FEATURES} ,chunk-cap"
118126RUN_RESPONDER_CHUNK_CAP_FEATURES=" ${RUN_RESPONDER_FEATURES} ,chunk-cap"
127+ RUN_REQUESTER_PQC_FEATURES=" ${RUN_REQUESTER_FEATURES} ,spdm-aws-lc,chunk-cap"
128+ RUN_RESPONDER_PQC_FEATURES=" ${RUN_RESPONDER_FEATURES} ,spdm-aws-lc,chunk-cap"
119129
120130
121131run_with_spdm_emu () {
@@ -239,6 +249,20 @@ run_rust_spdm_emu_raw_pub_key() {
239249 cleanup
240250}
241251
252+ run_rust_spdm_emu_pqc () {
253+ echo " Running requester and responder with PQC (ML-DSA + ML-KEM)..."
254+ echo_command export SPDM_CONFIG=" etc/pqc_config.json"
255+ export SPDMRS_USE_PQC=true
256+ export SPDMRS_USE_RAW_PUB_KEY=true
257+ echo_command cargo run -p spdm-responder-emu --no-default-features --features=" $RUN_RESPONDER_PQC_FEATURES " &
258+ sleep 20
259+ echo_command cargo run -p spdm-requester-emu --no-default-features --features=" $RUN_REQUESTER_PQC_FEATURES "
260+ unset SPDMRS_USE_PQC
261+ unset SPDMRS_USE_RAW_PUB_KEY
262+ echo_command unset SPDM_CONFIG
263+ cleanup
264+ }
265+
242266run_with_spdm_emu_raw_pub_key () {
243267 echo " Running cross test with spdm-emu raw public key..."
244268 pushd test_key
@@ -261,12 +285,41 @@ run_with_spdm_emu_raw_pub_key() {
261285 unset SPDMRS_USE_RAW_PUB_KEY
262286}
263287
288+ run_with_spdm_emu_pqc () {
289+ echo " Running cross test with spdm-emu PQC (ML-DSA + ML-KEM)..."
290+ echo_command export SPDM_CONFIG=" etc/pqc_config.json"
291+ pushd test_key
292+ chmod +x ./spdm_responder_emu
293+ echo_command ./spdm_responder_emu --trans PCI_DOE --cap CACHE,CHAL,MEAS_SIG,MEAS_FRESH,ENCRYPT,MAC,KEY_EX,ENCAP,HBEAT,KEY_UPD,HANDSHAKE_IN_CLEAR,PUB_KEY_ID,CHUNK --slot_id 0xFF --mut_auth NO --pqc_asym ML_DSA_87 --kem ML_KEM_1024 --pqc_first TRUE &
294+ popd
295+ sleep 5
296+ export SPDMRS_USE_PQC=true
297+ export SPDMRS_USE_RAW_PUB_KEY=true
298+ echo_command cargo run -p spdm-requester-emu --no-default-features --features=" $RUN_REQUESTER_PQC_FEATURES "
299+ unset SPDMRS_USE_PQC
300+ unset SPDMRS_USE_RAW_PUB_KEY
301+ cleanup
302+
303+ export SPDMRS_USE_PQC=true
304+ export SPDMRS_USE_RAW_PUB_KEY=true
305+ echo_command cargo run -p spdm-responder-emu --no-default-features --features=" $RUN_RESPONDER_PQC_FEATURES " &
306+ sleep 20
307+ pushd test_key
308+ chmod +x ./spdm_requester_emu
309+ echo_command ./spdm_requester_emu --trans PCI_DOE --cap CHAL,ENCRYPT,MAC,KEY_EX,ENCAP,HBEAT,KEY_UPD,PUB_KEY_ID,CHUNK --slot_id 0xFF --mut_auth NO --pqc_asym ML_DSA_87 --kem ML_KEM_1024 --pqc_first TRUE --exe_conn CHAL,MEAS --exe_session KEY_EX,KEY_UPDATE,HEARTBEAT,MEAS
310+ popd
311+ unset SPDMRS_USE_PQC
312+ unset SPDMRS_USE_RAW_PUB_KEY
313+ echo_command unset SPDM_CONFIG
314+ }
315+
264316run () {
265317 run_basic_test
266318 run_rust_spdm_emu
267319 run_rust_spdm_emu_raw_pub_key
268320 run_rust_spdm_emu_mut_auth
269321 run_rust_spdm_emu_mandatory_mut_auth
322+ run_rust_spdm_emu_pqc
270323}
271324
272325CHECK_OPTION=false
@@ -323,6 +376,7 @@ main() {
323376 run_with_spdm_emu_raw_pub_key
324377 run_with_spdm_emu_mut_auth
325378 run_with_spdm_emu_mandatory_mut_auth
379+ run_with_spdm_emu_pqc
326380 fi
327381 fi
328382}
0 commit comments