@@ -2651,7 +2651,6 @@ static ENGINE *setup_engine(const char *engine_id)
int main(int argc, char *argv[])
{
int err = 0, c, lind;
- ENGINE *eng = NULL;
unsigned long keyid;
char *eptr;
@@ -2772,8 +2771,8 @@ int main(int argc, char *argv[])
verify_list_sig = 1;
break;
case 139: /* --engine e */
- eng = setup_engine(optarg);
- if (!eng)
+ imaevm_params.eng = setup_engine(optarg);
+ if (!imaevm_params.eng)
goto error;
break;
case 140: /* --xattr-user */
@@ -2849,9 +2848,9 @@ int main(int argc, char *argv[])
}
error:
- if (eng) {
- ENGINE_finish(eng);
- ENGINE_free(eng);
+ if (imaevm_params.eng) {
+ ENGINE_finish(imaevm_params.eng);
+ ENGINE_free(imaevm_params.eng);
#if OPENSSL_API_COMPAT < 0x10100000L
ENGINE_cleanup();
#endif
@@ -48,6 +48,7 @@
#include <errno.h>
#include <sys/types.h>
#include <openssl/rsa.h>
+#include <openssl/engine.h>
#ifdef USE_FPRINTF
#define do_log(level, fmt, args...) \
@@ -197,6 +198,7 @@ struct libimaevm_params {
const char *keyfile;
const char *keypass;
uint32_t keyid; /* keyid overriding value, unless 0. (Host order.) */
+ ENGINE *eng;
};
struct RSA_ASN1_template {
Extend the global libimaevm_params structure with an ENGINE field 'eng' and use it in place of the local ENGINE variable in main(). Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> --- src/evmctl.c | 11 +++++------ src/imaevm.h | 2 ++ 2 files changed, 7 insertions(+), 6 deletions(-)