Skip to content

Commit d12e9fa

Browse files
committed
x509storeissuer: add an ability to skip loading default paths
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
1 parent fb4b56f commit d12e9fa

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

source/x509storeissuer.c

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ usage(char * const argv[])
545545
{
546546
fprintf(stderr,
547547
"Usage: %s [-t] [-v] [-q N] [-T time] [-n nonce_type:type_args]"
548-
" [-l max_certs] [-L max_cert_dirs] [-C threads]"
548+
" [-l max_certs] [-L max_cert_dirs] [-E] [-C threads]"
549549
" [-V] certsdir [certsdir...] threadcount\n"
550550
"\t-t\tTerse output\n"
551551
"\t-v\tVerbose output. Multiple usage increases verbosity.\n"
@@ -563,6 +563,7 @@ usage(char * const argv[])
563563
"\t\tDefault: " OPENSSL_MSTR(MAX_LOAD_CERTS) "\n"
564564
"\t-L\tLimit on the number of initially loaded certificate\n"
565565
"\t\tdirectories. Default: " OPENSSL_MSTR(MAX_LOAD_CERT_DIRS) "\n"
566+
"\t-E\tDo not call X509_STORE_set_default_paths()\n"
566567
"\t-C\tNumber of threads that share the same X.509\n"
567568
"\t\tstore context object. Default: "
568569
OPENSSL_MSTR(CTX_SHARE_THREADS) "\n"
@@ -635,11 +636,12 @@ main(int argc, char *argv[])
635636
size_t num_certs = 0;
636637
size_t max_load_certs = MAX_LOAD_CERTS;
637638
int max_load_cert_dirs = MAX_LOAD_CERT_DIRS;
639+
bool skip_default_paths = false;
638640
struct nonce_cfg nonce_cfg;
639641

640642
parse_nonce_cfg(NONCE_CFG, &nonce_cfg);
641643

642-
while ((opt = getopt(argc, argv, "tvq:T:n:l:L:C:V")) != -1) {
644+
while ((opt = getopt(argc, argv, "tvq:T:n:l:L:EC:V")) != -1) {
643645
switch (opt) {
644646
case 't': /* terse */
645647
verbosity = VERBOSITY_TERSE;
@@ -671,6 +673,9 @@ main(int argc, char *argv[])
671673
"maximum certificate directories"
672674
" load count");
673675
break;
676+
case 'E':
677+
skip_default_paths = true;
678+
break;
674679
case 'C': /* how many threads share X509_STORE_CTX */
675680
ctx_share_cnt = parse_int(optarg, 1, INT_MAX,
676681
"X509_STORE_CTX share degree");
@@ -717,8 +722,12 @@ main(int argc, char *argv[])
717722
}
718723

719724
store = X509_STORE_new();
720-
if (store == NULL || !X509_STORE_set_default_paths(store))
725+
if (store == NULL)
721726
errx(EXIT_FAILURE, "Failed to create X509_STORE");
727+
if (!skip_default_paths) {
728+
if (!X509_STORE_set_default_paths(store))
729+
errx(EXIT_FAILURE, "Failed to load certificates from default paths");
730+
}
722731

723732
num_certs += read_certsdirs(argv + dirs_start, max_load_certs,
724733
OSSL_MIN(argc - dirs_start - 1,

0 commit comments

Comments
 (0)