Commit 49e476a5 authored by Richard Levitte's avatar Richard Levitte
Browse files

apps/apps.c: initialize and de-initialize engine around key loading



Before loading a key from an engine, it may need to be initialized.
When done loading the key, we must de-initialize the engine.
(if the engine is already initialized somehow, only the reference
counter will be incremented then decremented)

Reviewed-by: default avatarStephen Henson <steve@openssl.org>
parent 56e36bda
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -700,7 +700,10 @@ EVP_PKEY *load_key(const char *file, int format, int maybe_stdin,
            BIO_printf(bio_err, "no engine specified\n");
        else {
#ifndef OPENSSL_NO_ENGINE
            if (ENGINE_init(e)) {
                pkey = ENGINE_load_private_key(e, file, ui_method, &cb_data);
                ENGINE_finish(e);
            }
            if (pkey == NULL) {
                BIO_printf(bio_err, "cannot load %s from engine\n", key_descrip);
                ERR_print_errors(bio_err);