diff options
author | Richard Levitte <levitte@openssl.org> | 2016-09-28 21:28:00 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2016-09-28 21:45:17 +0200 |
commit | 49e476a5382602d0bad1139d6f1f66ddbc7959d6 (patch) | |
tree | 9932cc09652a45a5c51b7ead102089e1542de9fc /apps | |
parent | 56e36bdaef442536681bce2a1579385c0279bec8 (diff) | |
download | openssl-49e476a5382602d0bad1139d6f1f66ddbc7959d6.zip openssl-49e476a5382602d0bad1139d6f1f66ddbc7959d6.tar.gz openssl-49e476a5382602d0bad1139d6f1f66ddbc7959d6.tar.bz2 |
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: Stephen Henson <steve@openssl.org>
Diffstat (limited to 'apps')
-rw-r--r-- | apps/apps.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/apps/apps.c b/apps/apps.c index b287748..68f2f27 100644 --- a/apps/apps.c +++ b/apps/apps.c @@ -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 - pkey = ENGINE_load_private_key(e, file, ui_method, &cb_data); + 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); |