@@ -49,6 +49,9 @@ TLS Scanner Host Scan Completes And Produces Artifacts
4949 ... Cleanup TLS Scanner Job
5050 ... Ensure Cluster Reader Role Deleted
5151
52+ Ingress Router TLS Curves supports ML-KEM Post Quantum Curves
53+ [Documentation] Verify TLS curve negotiation with openssl from inside the router pod.
54+ Verify ML-KEM Post Quantum Curve Negotiation
5255
5356*** Keywords ***
5457Check Required Scanner Variables
@@ -123,3 +126,19 @@ Cleanup TLS Scanner Job
123126 IF '${TLS_SCANNER_DIR } ' != ''
124127 Run Keyword And Ignore Error Remove Directory ${TLS_SCANNER_DIR } recursive=True
125128 END
129+
130+ Verify ML-KEM Post Quantum Curve Negotiation
131+ [Documentation] Verify X25519MLKEM768 post-quantum hybrid key exchange
132+ ... negotiates successfully via oc exec into the router pod, which
133+ ... has OpenSSL 3.5+ (the host OpenSSL may be too old for ML-KEM).
134+ ... Skipped on FIPS clusters where ML-KEM is not configured.
135+ ${router_ip } = Oc Get JsonPath svc openshift-ingress router-default
136+ ... .spec.clusterIP
137+ ${pod_name } = Oc Get JsonPath pod openshift-ingress ${EMPTY }
138+ ... .items[0].metadata.name
139+ ${output } = Oc Exec ${pod_name }
140+ ... echo Q | openssl s_client -connect ${router_ip } :443 -groups X25519MLKEM768 2>&1 || true
141+ ... ns=openshift-ingress
142+ Should Contain ${output } Negotiated TLS1.3 group: X25519MLKEM768
143+ ... msg=ML-KEM post-quantum curve X25519MLKEM768 negotiation failed
144+ Log Post-quantum ML-KEM negotiation verified: OK
0 commit comments