static int process(const char *uri, const UI_METHOD *uimeth, PW_CB_DATA *uidata,
int expected, int criterion, OSSL_STORE_SEARCH *search,
- int text, int noout, int recursive, int indent, BIO *out,
+ int text, int noout, int recursive, int indent, const char *outfile,
const char *prog, OSSL_LIB_CTX *libctx);
+static BIO *out = NULL;
+
typedef enum OPTION_choice {
OPT_COMMON,
OPT_ENGINE, OPT_OUT, OPT_PASSIN,
{
int ret = 1, noout = 0, text = 0, recursive = 0;
char *outfile = NULL, *passin = NULL, *passinarg = NULL;
- BIO *out = NULL;
ENGINE *e = NULL;
OPTION_CHOICE o;
char *prog;
pw_cb_data.password = passin;
pw_cb_data.prompt_info = argv[0];
- out = bio_open_default(outfile, 'w', FORMAT_TEXT);
- if (out == NULL)
- goto end;
-
ret = process(argv[0], get_ui_method(), &pw_cb_data,
expected, criterion, search,
- text, noout, recursive, 0, out, prog, libctx);
+ text, noout, recursive, 0, outfile, prog, libctx);
end:
EVP_MD_free(digest);
static int process(const char *uri, const UI_METHOD *uimeth, PW_CB_DATA *uidata,
int expected, int criterion, OSSL_STORE_SEARCH *search,
- int text, int noout, int recursive, int indent, BIO *out,
+ int text, int noout, int recursive, int indent, const char *outfile,
const char *prog, OSSL_LIB_CTX *libctx)
{
OSSL_STORE_CTX *store_ctx = NULL;
indent_printf(indent, bio_out, "%d: %s\n", items, infostr);
}
+ if (out == NULL) {
+ if ((out = bio_open_default(outfile, 'w', FORMAT_TEXT)) == NULL) {
+ ret++;
+ goto end2;
+ }
+ }
+
/*
* Unfortunately, PEM_X509_INFO_write_bio() is sorely lacking in
* functionality, so we must figure out how exactly to write things
const char *suburi = OSSL_STORE_INFO_get0_NAME(info);
ret += process(suburi, uimeth, uidata,
expected, criterion, search,
- text, noout, recursive, indent + 2, out, prog,
+ text, noout, recursive, indent + 2, outfile, prog,
libctx);
}
break;
my $test_name = "test_store";
setup($test_name);
+require(srctop_file("test", "recipes", "tconversion.pl")); # for test_file_contains()
+
my $use_md5 = !disabled("md5");
my $use_des = !(disabled("des") || disabled("legacy")); # also affects 3des and pkcs12 app
my $use_dsa = !disabled("dsa");
push @methods, [qw(-engine loader_attic)]
unless disabled('loadereng');
-my $n = 2 + scalar @methods
+my $n = 4 + scalar @methods
* ( (3 * scalar @noexist_files)
+ (6 * scalar @src_files)
+ (2 * scalar @data_files)
my $rehash = init_rehash();
+ ok(run(app(["openssl", "storeutl", "-out", "cacert.pem", "cacert.pem"])),
+ "identical infile and outfile");
+ test_file_contains("storeutl output on same input",
+ "cacert.pem", "Total found: 1");
+
foreach my $method (@methods) {
my @storeutl = ( qw(openssl storeutl), @$method );