X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=apps%2Fspkac.c;h=07f36d370d60cc9ec27280afc081d1fdc3c5d169;hp=ee2e5969f01b01bd8c77ba328057653687dbfd45;hb=79356a83b78a2d936dcd022847465d9ebf6c67b1;hpb=7e1b7485706c2b11091b5fa897fe496a2faa56cc diff --git a/apps/spkac.c b/apps/spkac.c index ee2e5969f0..07f36d370d 100644 --- a/apps/spkac.c +++ b/apps/spkac.c @@ -95,12 +95,12 @@ OPTIONS spkac_options[] = { int spkac_main(int argc, char **argv) { - BIO *in = NULL, *out = NULL; + BIO *out = NULL; CONF *conf = NULL; ENGINE *e = NULL; EVP_PKEY *pkey = NULL; NETSCAPE_SPKI *spki = NULL; - char *challenge = NULL, *keyfile = NULL, *engine = NULL; + char *challenge = NULL, *keyfile = NULL; char *infile = NULL, *outfile = NULL, *passinarg = NULL, *passin = NULL; char *spkstr = NULL, *prog; const char *spkac = "SPKAC", *spksect = "default"; @@ -112,6 +112,7 @@ int spkac_main(int argc, char **argv) switch (o) { case OPT_EOF: case OPT_ERR: + opthelp: BIO_printf(bio_err, "%s: Use -help for summary.\n", prog); goto end; case OPT_HELP: @@ -149,21 +150,18 @@ int spkac_main(int argc, char **argv) spksect = opt_arg(); break; case OPT_ENGINE: - engine = opt_arg(); + e = setup_engine(opt_arg(), 0); break; - } } argc = opt_num_rest(); - argv = opt_rest(); + if (argc != 0) + goto opthelp; if (!app_passwd(passinarg, NULL, &passin, NULL)) { BIO_printf(bio_err, "Error getting password\n"); goto end; } -#ifndef OPENSSL_NO_ENGINE - e = setup_engine(engine, 0); -#endif if (keyfile) { pkey = load_key(strcmp(keyfile, "-") ? keyfile : NULL, @@ -179,7 +177,7 @@ int spkac_main(int argc, char **argv) NETSCAPE_SPKI_sign(spki, pkey, EVP_md5()); spkstr = NETSCAPE_SPKI_b64_encode(spki); - out = bio_open_default(outfile, "w"); + out = bio_open_default(outfile, 'w', FORMAT_TEXT); if (out == NULL) goto end; BIO_printf(out, "SPKAC=%s\n", spkstr); @@ -188,22 +186,12 @@ int spkac_main(int argc, char **argv) goto end; } - in = bio_open_default(infile, "r"); - if (in == NULL) - goto end; - - conf = NCONF_new(NULL); - i = NCONF_load_bio(conf, in, NULL); - - if (!i) { - BIO_printf(bio_err, "Error parsing config file\n"); - ERR_print_errors(bio_err); + if ((conf = app_load_config(infile)) == NULL) goto end; - } spkstr = NCONF_get_string(conf, spksect, spkac); - if (!spkstr) { + if (spkstr == NULL) { BIO_printf(bio_err, "Can't find SPKAC called \"%s\"\n", spkac); ERR_print_errors(bio_err); goto end; @@ -217,7 +205,7 @@ int spkac_main(int argc, char **argv) goto end; } - out = bio_open_default(outfile, "w"); + out = bio_open_default(outfile, 'w', FORMAT_TEXT); if (out == NULL) goto end; @@ -242,10 +230,8 @@ int spkac_main(int argc, char **argv) end: NCONF_free(conf); NETSCAPE_SPKI_free(spki); - BIO_free(in); BIO_free_all(out); EVP_PKEY_free(pkey); - if (passin) - OPENSSL_free(passin); + OPENSSL_free(passin); return (ret); }