]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
ML-DSA: Add TLS certificate test
authorslontis <shane.lontis@oracle.com>
Fri, 7 Feb 2025 06:51:37 +0000 (17:51 +1100)
committerTomas Mraz <tomas@openssl.org>
Fri, 14 Feb 2025 09:46:04 +0000 (10:46 +0100)
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26654)

test/certs/root-ml-dsa-44-cert.pem [new file with mode: 0644]
test/certs/root-ml-dsa-44-key.pem [new file with mode: 0644]
test/certs/server-ml-dsa-44-cert.pem [new file with mode: 0644]
test/certs/server-ml-dsa-44-key.pem [new file with mode: 0644]
test/ssl-tests/20-cert-select.cnf
test/ssl-tests/20-cert-select.cnf.in

diff --git a/test/certs/root-ml-dsa-44-cert.pem b/test/certs/root-ml-dsa-44-cert.pem
new file mode 100644 (file)
index 0000000..5689394
--- /dev/null
@@ -0,0 +1,85 @@
+-----BEGIN CERTIFICATE-----
+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
+AAAAAAAAAAAAAAAAAAAUHy88
+-----END CERTIFICATE-----
diff --git a/test/certs/root-ml-dsa-44-key.pem b/test/certs/root-ml-dsa-44-key.pem
new file mode 100644 (file)
index 0000000..958e66a
--- /dev/null
@@ -0,0 +1,56 @@
+-----BEGIN PRIVATE KEY-----
+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
+-----END PRIVATE KEY-----
diff --git a/test/certs/server-ml-dsa-44-cert.pem b/test/certs/server-ml-dsa-44-cert.pem
new file mode 100644 (file)
index 0000000..5b01474
--- /dev/null
@@ -0,0 +1,85 @@
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
diff --git a/test/certs/server-ml-dsa-44-key.pem b/test/certs/server-ml-dsa-44-key.pem
new file mode 100644 (file)
index 0000000..fd42a95
--- /dev/null
@@ -0,0 +1,56 @@
+-----BEGIN PRIVATE KEY-----
+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
+-----END PRIVATE KEY-----
index 546b9ce0911d4ebf43190de8ff665649ceae27ac..8acb205e751d27dea7dda742d7c0deda2a24f668 100644 (file)
@@ -1,6 +1,6 @@
 # Generated with generate_ssl_tests.pl
 
-num_tests = 57
+num_tests = 58
 
 test-0 = 0-ECDSA CipherString Selection
 test-1 = 1-ECDSA CipherString Selection
@@ -59,6 +59,7 @@ test-53 = 53-TLS 1.3 ECDSA with brainpool
 test-54 = 54-TLS 1.2 DSA Certificate Test
 test-55 = 55-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms
 test-56 = 56-TLS 1.3 DSA Certificate Test
+test-57 = 57-TLS 1.3 ML-DSA Certificate Test
 # ===========================================================
 
 [0-ECDSA CipherString Selection]
@@ -1840,3 +1841,32 @@ VerifyMode = Peer
 ExpectedResult = ServerFail
 
 
+# ===========================================================
+
+[57-TLS 1.3 ML-DSA Certificate Test]
+ssl_conf = 57-TLS 1.3 ML-DSA Certificate Test-ssl
+
+[57-TLS 1.3 ML-DSA Certificate Test-ssl]
+server = 57-TLS 1.3 ML-DSA Certificate Test-server
+client = 57-TLS 1.3 ML-DSA Certificate Test-client
+
+[57-TLS 1.3 ML-DSA Certificate Test-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/server-ml-dsa-44-cert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ml-dsa-44-key.pem
+SignatureAlgorithms = mldsa44
+
+[57-TLS 1.3 ML-DSA Certificate Test-client]
+CipherString = DEFAULT
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+SignatureAlgorithms = mldsa44
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-ml-dsa-44-cert.pem
+VerifyMode = Peer
+
+[test-57]
+ExpectedResult = Success
+
+
index 6c9db7a90774ca1d03ddb99b70fddaa6df3b9581..7e5656157846a2884efcdfac8428e9e20b1cb818 100644 (file)
@@ -994,3 +994,30 @@ if (!disabled("dsa")) {
     push @tests, @tests_dsa_tls_1_2 unless disabled("dh");
     push @tests, @tests_dsa_tls_1_3 unless disabled("tls1_3");
 }
+
+my @tests_mldsa_tls_1_3 = (
+    {
+        name => "TLS 1.3 ML-DSA Certificate Test",
+        server => {
+            "Certificate" => test_pem("server-ml-dsa-44-cert.pem"),
+            "PrivateKey" => test_pem("server-ml-dsa-44-key.pem"),
+            "MinProtocol" => "TLSv1.3",
+            "MaxProtocol" => "TLSv1.3",
+            "SignatureAlgorithms" => "mldsa44",
+        },
+        client => {
+            "MinProtocol" => "TLSv1.3",
+            "MaxProtocol" => "TLSv1.3",
+            "SignatureAlgorithms" => "mldsa44",
+            "VerifyCAFile" => test_pem("root-ml-dsa-44-cert.pem"),
+            "VerifyMode" => "Peer",
+        },
+        test   => {
+            "ExpectedResult" => "Success"
+        },
+    },
+);
+
+if (!disabled("ml-dsa")) {
+    push @tests, @tests_mldsa_tls_1_3 unless disabled("tls1_3");
+}