diff options
| author | kenjiro <> | 2026-07-31 06:32:34 +0000 |
|---|---|---|
| committer | kenjiro <> | 2026-07-31 06:32:34 +0000 |
| commit | c7810630ba9823137bac2dbbb150d43088de37d6 (patch) | |
| tree | cdbb152e8c9f70bfc912dc26d8145bbd6e50562d /src | |
| parent | 49ff7c051c516a8d190b62787dc46f76275da66a (diff) | |
| download | openbsd-c7810630ba9823137bac2dbbb150d43088de37d6.tar.gz openbsd-c7810630ba9823137bac2dbbb150d43088de37d6.tar.bz2 openbsd-c7810630ba9823137bac2dbbb150d43088de37d6.zip | |
callbackfailures: allow specifying the root certificate file
Accept an optional roots file argument while retaining
/etc/ssl/cert.pem as the default. This allows portable regress users
to provide a CA bundle when the default path is unavailable.
ok tb
Diffstat (limited to 'src')
| -rw-r--r-- | src/regress/lib/libcrypto/x509/callbackfailures.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/regress/lib/libcrypto/x509/callbackfailures.c b/src/regress/lib/libcrypto/x509/callbackfailures.c index 9230122146..112f936fcb 100644 --- a/src/regress/lib/libcrypto/x509/callbackfailures.c +++ b/src/regress/lib/libcrypto/x509/callbackfailures.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: callbackfailures.c,v 1.3 2024/08/23 12:56:26 anton Exp $ */ | 1 | /* $OpenBSD: callbackfailures.c,v 1.4 2026/07/31 06:32:34 kenjiro Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2020 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2020 Joel Sing <jsing@openbsd.org> |
| 4 | * Copyright (c) 2020-2021 Bob Beck <beck@openbsd.org> | 4 | * Copyright (c) 2020-2021 Bob Beck <beck@openbsd.org> |
| @@ -214,9 +214,9 @@ struct verify_cert_test verify_cert_tests[] = { | |||
| 214 | (sizeof(verify_cert_tests) / sizeof(*verify_cert_tests)) | 214 | (sizeof(verify_cert_tests) / sizeof(*verify_cert_tests)) |
| 215 | 215 | ||
| 216 | static int | 216 | static int |
| 217 | verify_cert_test(const char *certs_path, int mode) | 217 | verify_cert_test(const char *certs_path, const char *roots_file, int mode) |
| 218 | { | 218 | { |
| 219 | char *roots_file, *bundle_file, *bundle_file2, *roots_dir; | 219 | char *bundle_file, *bundle_file2, *roots_dir; |
| 220 | struct verify_cert_test *vct; | 220 | struct verify_cert_test *vct; |
| 221 | int failed = 0; | 221 | int failed = 0; |
| 222 | int chains; | 222 | int chains; |
| @@ -225,8 +225,6 @@ verify_cert_test(const char *certs_path, int mode) | |||
| 225 | for (i = 0; i < N_VERIFY_CERT_TESTS; i++) { | 225 | for (i = 0; i < N_VERIFY_CERT_TESTS; i++) { |
| 226 | vct = &verify_cert_tests[i]; | 226 | vct = &verify_cert_tests[i]; |
| 227 | 227 | ||
| 228 | if (asprintf(&roots_file, "/etc/ssl/cert.pem") == -1) | ||
| 229 | errx(1, "asprintf"); | ||
| 230 | if (asprintf(&bundle_file, "%s/%s/bundle.pem", certs_path, | 228 | if (asprintf(&bundle_file, "%s/%s/bundle.pem", certs_path, |
| 231 | vct->id) == -1) | 229 | vct->id) == -1) |
| 232 | errx(1, "asprintf"); | 230 | errx(1, "asprintf"); |
| @@ -270,7 +268,6 @@ verify_cert_test(const char *certs_path, int mode) | |||
| 270 | } | 268 | } |
| 271 | fprintf(stderr, "\n"); | 269 | fprintf(stderr, "\n"); |
| 272 | 270 | ||
| 273 | free(roots_file); | ||
| 274 | free(bundle_file); | 271 | free(bundle_file); |
| 275 | free(bundle_file2); | 272 | free(bundle_file2); |
| 276 | free(roots_dir); | 273 | free(roots_dir); |
| @@ -282,17 +279,21 @@ verify_cert_test(const char *certs_path, int mode) | |||
| 282 | int | 279 | int |
| 283 | main(int argc, char **argv) | 280 | main(int argc, char **argv) |
| 284 | { | 281 | { |
| 282 | const char *roots_file = "/etc/ssl/cert.pem"; | ||
| 285 | int failed = 0; | 283 | int failed = 0; |
| 286 | 284 | ||
| 287 | if (argc != 2) { | 285 | if (argc < 2 || argc > 3) { |
| 288 | fprintf(stderr, "usage: %s <certs_path>\n", argv[0]); | 286 | fprintf(stderr, "usage: %s <certs_path> [roots_file]\n", |
| 287 | argv[0]); | ||
| 289 | exit(1); | 288 | exit(1); |
| 290 | } | 289 | } |
| 290 | if (argc == 3) | ||
| 291 | roots_file = argv[2]; | ||
| 291 | 292 | ||
| 292 | fprintf(stderr, "\n\nTesting legacy x509_vfy\n"); | 293 | fprintf(stderr, "\n\nTesting legacy x509_vfy\n"); |
| 293 | failed |= verify_cert_test(argv[1], MODE_LEGACY_VFY); | 294 | failed |= verify_cert_test(argv[1], roots_file, MODE_LEGACY_VFY); |
| 294 | fprintf(stderr, "\n\nTesting modern x509_vfy\n"); | 295 | fprintf(stderr, "\n\nTesting modern x509_vfy\n"); |
| 295 | failed |= verify_cert_test(argv[1], MODE_MODERN_VFY); | 296 | failed |= verify_cert_test(argv[1], roots_file, MODE_MODERN_VFY); |
| 296 | 297 | ||
| 297 | return (failed); | 298 | return (failed); |
| 298 | } | 299 | } |
