summaryrefslogtreecommitdiffstats
path: root/apps/pkcs12.c
diff options
context:
space:
mode:
authorTomas Mraz <tomas@openssl.org>2021-03-05 18:19:12 +0100
committerPauli <ppzgs1@gmail.com>2021-03-09 11:12:07 +1000
commit889ad4ef8181093d5c088d5518c7b353ddb48455 (patch)
treeec7536defb174110348332ccded46b6e4c56dad6 /apps/pkcs12.c
parent5e9a8678c5e1442e618ae0abc7b314880ec3ba4e (diff)
apps/pkcs12: Allow continuing on absent mac
Just print a warning in that case. Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14445)
Diffstat (limited to 'apps/pkcs12.c')
-rw-r--r--apps/pkcs12.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/apps/pkcs12.c b/apps/pkcs12.c
index c729ab5d67..bd87fd4920 100644
--- a/apps/pkcs12.c
+++ b/apps/pkcs12.c
@@ -756,6 +756,14 @@ int pkcs12_main(int argc, char **argv)
*/
unsigned char *utmp;
int utmplen;
+ unsigned long err = ERR_peek_error();
+
+ if (ERR_GET_LIB(err) == ERR_LIB_PKCS12
+ && ERR_GET_REASON(err) == PKCS12_R_MAC_ABSENT) {
+ BIO_printf(bio_err, "Warning: MAC is absent!\n");
+ goto dump;
+ }
+
utmp = OPENSSL_asc2uni(mpass, -1, NULL, &utmplen);
if (utmp == NULL)
goto end;
@@ -773,6 +781,7 @@ int pkcs12_main(int argc, char **argv)
}
}
+ dump:
assert(private);
if (!dump_certs_keys_p12(out, p12, cpass, -1, options, passout, enc)) {
BIO_printf(bio_err, "Error outputting keys and certificates\n");