summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Mraz <tomas@openssl.org>2022-01-10 17:26:33 +0100
committerPauli <pauli@openssl.org>2022-01-12 12:18:04 +1100
commit3755dc294d2e24b741e235550d063850464467cb (patch)
tree6558f8bdf687fb2dd3f95ed6e11c06ec3da274b7
parentb64b8e39cfb5e89c0af8b9127a414cf529192846 (diff)
pkeyutl: Fix regression with -kdflen option
Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17461) (cherry picked from commit b82fd89d8bae1445c89ec90d1a6145fe3216d2d7)
-rw-r--r--apps/pkeyutl.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/apps/pkeyutl.c b/apps/pkeyutl.c
index 73012e3069..891f2280e3 100644
--- a/apps/pkeyutl.c
+++ b/apps/pkeyutl.c
@@ -464,23 +464,23 @@ int pkeyutl_main(int argc, char **argv)
}
goto end;
}
- if (kdflen != 0) {
- buf_outlen = kdflen;
- rv = 1;
+ if (rawin) {
+ /* rawin allocates the buffer in do_raw_keyop() */
+ rv = do_raw_keyop(pkey_op, mctx, pkey, in, filesize, NULL, 0,
+ &buf_out, (size_t *)&buf_outlen);
} else {
- if (rawin) {
- /* rawin allocates the buffer in do_raw_keyop() */
- rv = do_raw_keyop(pkey_op, mctx, pkey, in, filesize, NULL, 0,
- &buf_out, (size_t *)&buf_outlen);
+ if (kdflen != 0) {
+ buf_outlen = kdflen;
+ rv = 1;
} else {
rv = do_keyop(ctx, pkey_op, NULL, (size_t *)&buf_outlen,
buf_in, (size_t)buf_inlen);
- if (rv > 0 && buf_outlen != 0) {
- buf_out = app_malloc(buf_outlen, "buffer output");
- rv = do_keyop(ctx, pkey_op,
- buf_out, (size_t *)&buf_outlen,
- buf_in, (size_t)buf_inlen);
- }
+ }
+ if (rv > 0 && buf_outlen != 0) {
+ buf_out = app_malloc(buf_outlen, "buffer output");
+ rv = do_keyop(ctx, pkey_op,
+ buf_out, (size_t *)&buf_outlen,
+ buf_in, (size_t)buf_inlen);
}
}
if (rv <= 0) {