X-Git-Url: https://git.openssl.org/?a=blobdiff_plain;f=apps%2Fpkcs12.c;h=67d33a21ffa2bad62b1eaafea92f666153c7209e;hb=86885c289580066792415218754bd935b449f170;hp=a031c1ba25ee76154eea223134fb441f25bb8662;hpb=7e1b7485706c2b11091b5fa897fe496a2faa56cc;p=openssl.git diff --git a/apps/pkcs12.c b/apps/pkcs12.c index a031c1ba25..67d33a21ff 100644 --- a/apps/pkcs12.c +++ b/apps/pkcs12.c @@ -86,7 +86,7 @@ int dump_certs_pkeys_bag(BIO *out, PKCS12_SAFEBAG *bags, char *pass, int print_attribs(BIO *out, STACK_OF(X509_ATTRIBUTE) *attrlst, const char *name); void hex_prin(BIO *out, unsigned char *buf, int len); -int alg_print(BIO *x, X509_ALGOR *alg); +static int alg_print(X509_ALGOR *alg); int cert_load(BIO *in, STACK_OF(X509) *sk); static int set_pbe(int *ppbe, const char *str); @@ -173,7 +173,7 @@ int pkcs12_main(int argc, char **argv) char *passinarg = NULL, *passoutarg = NULL, *passarg = NULL; char *passin = NULL, *passout = NULL, *inrand = NULL, *macalg = NULL; char *cpass = NULL, *mpass = NULL, *CApath = NULL, *CAfile = NULL; - char *engine = NULL, *prog; + char *prog; ENGINE *e = NULL; BIO *in = NULL, *out = NULL; PKCS12 *p12 = NULL; @@ -308,17 +308,13 @@ int pkcs12_main(int argc, char **argv) CAfile = opt_arg(); break; case OPT_ENGINE: - engine = opt_arg(); + e = setup_engine(opt_arg(), 0); break; } } argc = opt_num_rest(); argv = opt_rest(); -# ifndef OPENSSL_NO_ENGINE - e = setup_engine(engine, 0); -# endif - if (passarg) { if (export_cert) passoutarg = passarg; @@ -508,10 +504,8 @@ int pkcs12_main(int argc, char **argv) export_end: EVP_PKEY_free(key); - if (certs) - sk_X509_pop_free(certs, X509_free); - if (ucert) - X509_free(ucert); + sk_X509_pop_free(certs, X509_free); + X509_free(ucert); goto end; @@ -560,12 +554,9 @@ int pkcs12_main(int argc, char **argv) app_RAND_write_file(NULL); BIO_free(in); BIO_free_all(out); - if (canames) - sk_OPENSSL_STRING_free(canames); - if (passin) - OPENSSL_free(passin); - if (passout) - OPENSSL_free(passout); + sk_OPENSSL_STRING_free(canames); + OPENSSL_free(passin); + OPENSSL_free(passout); return (ret); } @@ -591,7 +582,7 @@ int dump_certs_keys_p12(BIO *out, PKCS12 *p12, char *pass, } else if (bagnid == NID_pkcs7_encrypted) { if (options & INFO) { BIO_printf(bio_err, "PKCS7 Encrypted data: "); - alg_print(bio_err, p7->d.encrypted->enc_data->algorithm); + alg_print(p7->d.encrypted->enc_data->algorithm); } bags = PKCS12_unpack_p7encdata(p7, pass, passlen); } else @@ -653,7 +644,7 @@ int dump_certs_pkeys_bag(BIO *out, PKCS12_SAFEBAG *bag, char *pass, case NID_pkcs8ShroudedKeyBag: if (options & INFO) { BIO_printf(bio_err, "Shrouded Keybag: "); - alg_print(bio_err, bag->value.shkeybag->algor); + alg_print(bag->value.shkeybag->algor); } if (options & NOKEYS) return 1; @@ -741,11 +732,11 @@ int get_cert_chain(X509 *cert, X509_STORE *store, STACK_OF(X509) **chain) return i; } -int alg_print(BIO *x, X509_ALGOR *alg) +static int alg_print(X509_ALGOR *alg) { PBEPARAM *pbe; - const unsigned char *p; - p = alg->parameter->value.sequence->data; + const unsigned char *p = alg->parameter->value.sequence->data; + pbe = d2i_PBEPARAM(NULL, &p, alg->parameter->value.sequence->length); if (!pbe) return 1; @@ -845,7 +836,7 @@ static int set_pbe(int *ppbe, const char *str) { if (!str) return 0; - if (!strcmp(str, "NONE")) { + if (strcmp(str, "NONE") == 0) { *ppbe = -1; return 1; }