From: Dr. David von Oheimb Date: Tue, 3 Aug 2021 12:40:08 +0000 (+0200) Subject: apps/pkeyutl.c: call ERR_print_errors() on all errors, including Signature Verificati... X-Git-Tag: openssl-3.0.0~163 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=421953effea12b1ce6e2953786a83acc426b2622;p=thirdparty%2Fopenssl.git apps/pkeyutl.c: call ERR_print_errors() on all errors, including Signature Verification Failure Reviewed-by: Tomas Mraz Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/16209) --- diff --git a/apps/pkeyutl.c b/apps/pkeyutl.c index bf9db2fa5a6..73012e30695 100644 --- a/apps/pkeyutl.c +++ b/apps/pkeyutl.c @@ -307,12 +307,10 @@ int pkeyutl_main(int argc, char **argv) mctx, digestname, libctx, app_get0_propq()); if (ctx == NULL) { BIO_printf(bio_err, "%s: Error initializing context\n", prog); - ERR_print_errors(bio_err); goto end; } if (peerkey != NULL && !setup_peer(ctx, peerform, peerkey, e)) { BIO_printf(bio_err, "%s: Error setting up peer key\n", prog); - ERR_print_errors(bio_err); goto end; } if (pkeyopts != NULL) { @@ -325,7 +323,6 @@ int pkeyutl_main(int argc, char **argv) if (pkey_ctrl_string(ctx, opt) <= 0) { BIO_printf(bio_err, "%s: Can't set parameter \"%s\":\n", prog, opt); - ERR_print_errors(bio_err); goto end; } } @@ -492,14 +489,13 @@ int pkeyutl_main(int argc, char **argv) } else { BIO_puts(bio_err, "Key derivation failed\n"); } - ERR_print_errors(bio_err); goto end; } ret = 0; if (asn1parse) { if (!ASN1_parse_dump(out, buf_out, buf_outlen, 1, -1)) - ERR_print_errors(bio_err); + ERR_print_errors(bio_err); /* but still return success */ } else if (hexdump) { BIO_dump(out, (char *)buf_out, buf_outlen); } else { @@ -507,6 +503,8 @@ int pkeyutl_main(int argc, char **argv) } end: + if (ret != 0) + ERR_print_errors(bio_err); EVP_MD_CTX_free(mctx); EVP_PKEY_CTX_free(ctx); EVP_MD_free(md); @@ -671,15 +669,12 @@ static int setup_peer(EVP_PKEY_CTX *ctx, int peerform, const char *file, peer = load_pubkey(file, peerform, 0, NULL, engine, "peer key"); if (peer == NULL) { BIO_printf(bio_err, "Error reading peer key %s\n", file); - ERR_print_errors(bio_err); return 0; } - ret = EVP_PKEY_derive_set_peer(ctx, peer); + ret = EVP_PKEY_derive_set_peer(ctx, peer) > 0; EVP_PKEY_free(peer); - if (ret <= 0) - ERR_print_errors(bio_err); return ret; }