]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Make x509_req_test ANSI Compatible
authorerbsland-dev <github@erbsland.dev>
Wed, 19 Jun 2024 17:09:15 +0000 (19:09 +0200)
committerNeil Horman <nhorman@openssl.org>
Fri, 21 Jun 2024 19:40:45 +0000 (15:40 -0400)
Update the `x509_req_test` to ensure ANSI compatibility. The integrated certificate string was too long, so the PEM certificate has been moved to `certs/x509-req-detect-invalid-version.pem`. The test have been updated to load this certificate from the file on disk.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24677)

test/certs/x509-req-detect-invalid-version.pem [new file with mode: 0644]
test/recipes/60-test_x509_req.t
test/x509_req_test.c

diff --git a/test/certs/x509-req-detect-invalid-version.pem b/test/certs/x509-req-detect-invalid-version.pem
new file mode 100644 (file)
index 0000000..8d40c40
--- /dev/null
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIICoTCCAYkCAQUwXDELMAkGA1UEBhMCQ0gxDTALBgNVBAgMBEJlcm4xDTALBgNV
+BAcMBEJlcm4xFDASBgNVBAoMC0VyYnNsYW5kREVWMRkwFwYDVQQDDBB0ZXN0Lm9w
+ZW5zc2wub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgnKT31X7
+GG1doZXQ0cHY32OjExJT5z/AhZNHt44AdZmrGDwcANBa68mK1pJ4zbLStsa0ABfC
+clPnoq4jqPcoMqPu5SNGR29lBWSQr8AzzHFOalHfYmdsTwRxy2fM56WVfrmi/HY5
+8pZ0LgAuF7Kb8hjUkqBbWzAo0GJaYqWitkrDdproLMLz65GJYYlxXcPd79yt+SHk
+TdfRANcjinRK/EKgkWYVu5yE/lqWl9lwgxY9YAeDp6/WZ7K5wGueiMNYsKoud0MP
+al00AgaBgicIBMfVPdN19p8ZC4u2BuJlM1oq2eZbaP35rAlB1InbPtFIGL0c0h0o
+6prLD6FgYHd1PQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBADQIUWrf2wnUlKK4
+Q2kuK6EtC2CYblmUqV8kUx/sWkfaG2zD7ekyTVJg80IhnsrVJ3VQwOUtbWltgskF
+ZzrwXbIIVkHzeI51jrt/jUXzskCjyDkxjeRgCxSJ1bIlN+OkIeXf/jjDJ+ebyeJl
+oRgg/KtbaJVb9niFjbxdyMNEI5qZAmocFpE2t5S9GlosTEIPNbowZAe8+AeUXGJB
+7SPJZ3U+Rk7Yx6cW2Hc5litIDzJlIN8D86v26lgJ1VEoYGD81wPEhIjHTkRBWhp6
+kGV0EojP8ntSjDFHIH184MQAJYyr6YlEM3DcCYPwydLN/rkEHQVAxKKuSCrpcUMH
+hfcdPO4=
+-----END CERTIFICATE REQUEST-----
index 5f8b66494659878080364fc64861b20ac3904f6b..362a14845be0c5715d947375294001cf8c1e9740 100644 (file)
@@ -6,6 +6,13 @@
 # in the file LICENSE in the source distribution or at
 # https://www.openssl.org/source/license.html
 
-use OpenSSL::Test::Simple;
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_dir/;
 
-simple_test("test_x509_req_test", "x509_req_test", "x509_req");
+BEGIN {
+    setup("test_x509_req");
+}
+
+plan tests => 1;
+
+ok(run(test(["x509_req_test", srctop_dir("test", "certs")])), "running x509_req_test");
index 7a839d1e84ca210925a8f5e760b2df49beddc4eb..742b62836b968f818eadc1e3e46daeb4b00054ec 100644 (file)
 
 #include "testutil.h"
 
-static const char bad_csr_version_6[] =
-    "-----BEGIN CERTIFICATE REQUEST-----\n"
-    "MIICoTCCAYkCAQUwXDELMAkGA1UEBhMCQ0gxDTALBgNVBAgMBEJlcm4xDTALBgNV\n"
-    "BAcMBEJlcm4xFDASBgNVBAoMC0VyYnNsYW5kREVWMRkwFwYDVQQDDBB0ZXN0Lm9w\n"
-    "ZW5zc2wub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgnKT31X7\n"
-    "GG1doZXQ0cHY32OjExJT5z/AhZNHt44AdZmrGDwcANBa68mK1pJ4zbLStsa0ABfC\n"
-    "clPnoq4jqPcoMqPu5SNGR29lBWSQr8AzzHFOalHfYmdsTwRxy2fM56WVfrmi/HY5\n"
-    "8pZ0LgAuF7Kb8hjUkqBbWzAo0GJaYqWitkrDdproLMLz65GJYYlxXcPd79yt+SHk\n"
-    "TdfRANcjinRK/EKgkWYVu5yE/lqWl9lwgxY9YAeDp6/WZ7K5wGueiMNYsKoud0MP\n"
-    "al00AgaBgicIBMfVPdN19p8ZC4u2BuJlM1oq2eZbaP35rAlB1InbPtFIGL0c0h0o\n"
-    "6prLD6FgYHd1PQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBADQIUWrf2wnUlKK4\n"
-    "Q2kuK6EtC2CYblmUqV8kUx/sWkfaG2zD7ekyTVJg80IhnsrVJ3VQwOUtbWltgskF\n"
-    "ZzrwXbIIVkHzeI51jrt/jUXzskCjyDkxjeRgCxSJ1bIlN+OkIeXf/jjDJ+ebyeJl\n"
-    "oRgg/KtbaJVb9niFjbxdyMNEI5qZAmocFpE2t5S9GlosTEIPNbowZAe8+AeUXGJB\n"
-    "7SPJZ3U+Rk7Yx6cW2Hc5litIDzJlIN8D86v26lgJ1VEoYGD81wPEhIjHTkRBWhp6\n"
-    "kGV0EojP8ntSjDFHIH184MQAJYyr6YlEM3DcCYPwydLN/rkEHQVAxKKuSCrpcUMH\n"
-    "hfcdPO4=\n"
-    "-----END CERTIFICATE REQUEST-----";
+static char *certsDir = NULL;
+static char *certFilePath = NULL;
 
 /*
  * Test for the missing X509 version check discussed in issue #5738 and
@@ -45,7 +29,10 @@ static int test_x509_req_detect_invalid_version(void)
     X509_REQ *req = NULL;
     int ret = 0;
 
-    if (!TEST_ptr(bio = BIO_new_mem_buf(bad_csr_version_6, sizeof(bad_csr_version_6) - 1)))
+    certFilePath = test_mk_file_path(certsDir, "x509-req-detect-invalid-version.pem");
+    if (certFilePath == NULL)
+        goto err;
+    if (!TEST_ptr(bio = BIO_new_file(certFilePath, "r")))
         goto err;
     req = PEM_read_bio_X509_REQ(bio, NULL, 0, NULL);
     if (req == NULL) {
@@ -65,8 +52,17 @@ err:
     return ret;
 }
 
+OPT_TEST_DECLARE_USAGE("certdir\n")
+
 int setup_tests(void)
 {
+    if (!test_skip_common_options()) {
+        TEST_error("Error parsing test options\n");
+        return 0;
+    }
+    if (!TEST_ptr(certsDir = test_get_argument(0)))
+        return 0;
+
     ADD_TEST(test_x509_req_detect_invalid_version);
     return 1;
 }