]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
apps/: Remove engines
authorNorbert Pocs <norbertp@openssl.org>
Thu, 28 Aug 2025 14:11:10 +0000 (16:11 +0200)
committerNeil Horman <nhorman@openssl.org>
Fri, 3 Oct 2025 17:00:26 +0000 (13:00 -0400)
Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28384)

50 files changed:
apps/ca.c
apps/cmp.c
apps/cms.c
apps/crl.c
apps/dgst.c
apps/dhparam.c
apps/dsa.c
apps/dsaparam.c
apps/ec.c
apps/ecparam.c
apps/enc.c
apps/gendsa.c
apps/genpkey.c
apps/genrsa.c
apps/include/apps.h
apps/include/engine_loader.h [deleted file]
apps/include/opt.h
apps/info.c
apps/lib/apps.c
apps/lib/build.info
apps/lib/engine.c [deleted file]
apps/lib/engine_loader.c [deleted file]
apps/lib/s_cb.c
apps/list.c
apps/ocsp.c
apps/openssl-vms.cnf
apps/openssl.c
apps/openssl.cnf
apps/pkcs12.c
apps/pkcs7.c
apps/pkcs8.c
apps/pkey.c
apps/pkeyparam.c
apps/pkeyutl.c
apps/rand.c
apps/req.c
apps/rsa.c
apps/rsautl.c
apps/s_client.c
apps/s_server.c
apps/smime.c
apps/speed.c
apps/spkac.c
apps/srp.c
apps/storeutl.c
apps/ts.c
apps/verify.c
apps/version.c
apps/x509.c
test/build.info

index a356b53b725e8b789dae00cf48152717c8b5fafe..3447df1f60a312e0b3dc32241529889906995657 100644 (file)
--- a/apps/ca.c
+++ b/apps/ca.c
@@ -145,7 +145,7 @@ static int msie_hack = 0;
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_ENGINE, OPT_VERBOSE, OPT_CONFIG, OPT_NAME, OPT_SUBJ, OPT_UTF8,
+    OPT_VERBOSE, OPT_CONFIG, OPT_NAME, OPT_SUBJ, OPT_UTF8,
     OPT_CREATE_SERIAL, OPT_MULTIVALUE_RDN, OPT_STARTDATE, OPT_ENDDATE,
     OPT_DAYS, OPT_MD, OPT_POLICY, OPT_KEYFILE, OPT_KEYFORM, OPT_PASSIN,
     OPT_KEY, OPT_CERT, OPT_CERTFORM, OPT_SELFSIGN,
@@ -182,9 +182,6 @@ const OPTIONS ca_options[] = {
     {"ss_cert", OPT_SS_CERT, '<', "File contains a self signed cert to sign"},
     {"spkac", OPT_SPKAC, '<',
      "File contains DN and signed public key and challenge"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Configuration"),
     {"config", OPT_CONFIG, 's', "A config file"},
@@ -266,7 +263,6 @@ const OPTIONS ca_options[] = {
 int ca_main(int argc, char **argv)
 {
     CONF *conf = NULL;
-    ENGINE *e = NULL;
     BIGNUM *crlnumber = NULL, *serial = NULL;
     EVP_PKEY *pkey = NULL;
     BIO *in = NULL, *out = NULL, *Sout = NULL;
@@ -500,9 +496,6 @@ opthelp:
             rev_arg = opt_arg();
             rev_type = (o - OPT_CRL_REASON) + REV_CRL_REASON;
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         }
     }
 
@@ -591,7 +584,7 @@ end_of_options:
             goto end;
         }
     }
-    pkey = load_key(keyfile, keyformat, 0, passin, e, "CA private key");
+    pkey = load_key(keyfile, keyformat, 0, passin, "CA private key");
     cleanse(passin);
     if (pkey == NULL)
         /* load_key() has already printed an appropriate message */
@@ -1319,7 +1312,6 @@ end_of_options:
     X509_CRL_free(crl);
     NCONF_free(conf);
     NCONF_free(extfile_conf);
-    release_engine(e);
     return ret;
 }
 
index 6f2fea4f5569e96a422faa6f933dc4459cce3b80..8990c66019aeb37926e90f363c1f6e902d69b947 100644 (file)
@@ -160,7 +160,6 @@ static int opt_crlform = FORMAT_ASN1;
 static char *opt_keyform_s = NULL;
 static int opt_keyform = FORMAT_UNDEF;
 static char *opt_otherpass = NULL;
-static char *opt_engine = NULL;
 
 #if !defined(OPENSSL_NO_SOCK) && !defined(OPENSSL_NO_HTTP)
 /* TLS connection */
@@ -264,9 +263,6 @@ typedef enum OPTION_choice {
 
     OPT_CERTFORM, OPT_CRLFORM, OPT_KEYFORM,
     OPT_OTHERPASS,
-#ifndef OPENSSL_NO_ENGINE
-    OPT_ENGINE,
-#endif
     OPT_PROV_ENUM,
     OPT_R_ENUM,
 
@@ -500,12 +496,6 @@ const OPTIONS cmp_options[] = {
      "Format of the key input (ENGINE, other values ignored)"},
     {"otherpass", OPT_OTHERPASS, 's',
      "Pass phrase source potentially needed for loading certificates of others"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's',
-     "Use crypto engine with given identifier, possibly a hardware device."},
-    {OPT_MORE_STR, 0, 0,
-     "Engines may also be defined in OpenSSL config file engine section."},
-#endif
     OPT_PROV_OPTIONS,
     OPT_R_OPTIONS,
 
@@ -678,9 +668,6 @@ static varref cmp_vars[] = { /* must be in same order as enumerated above! */
 
     {&opt_certform_s}, {&opt_crlform_s}, {&opt_keyform_s},
     {&opt_otherpass},
-#ifndef OPENSSL_NO_ENGINE
-    {&opt_engine},
-#endif
 
 #if !defined(OPENSSL_NO_SOCK) && !defined(OPENSSL_NO_HTTP)
     {(char **)&opt_tls_used}, {&opt_tls_cert}, {&opt_tls_key},
@@ -768,10 +755,10 @@ static int set_verbosity(int level)
 }
 
 static EVP_PKEY *load_key_pwd(const char *uri, int format,
-                              const char *pass, ENGINE *eng, const char *desc)
+                              const char *pass, const char *desc)
 {
     char *pass_string = get_passwd(pass, desc);
-    EVP_PKEY *pkey = load_key(uri, format, 0, pass_string, eng, desc);
+    EVP_PKEY *pkey = load_key(uri, format, 0, pass_string, desc);
 
     clear_free(pass_string);
     return pkey;
@@ -1099,11 +1086,7 @@ static int transform_opts(void)
         return 0;
     }
 
-#ifndef OPENSSL_NO_ENGINE
-# define FORMAT_OPTIONS (OPT_FMT_PEMDER | OPT_FMT_PKCS12 | OPT_FMT_ENGINE)
-#else
-# define FORMAT_OPTIONS (OPT_FMT_PEMDER | OPT_FMT_PKCS12)
-#endif
+#define FORMAT_OPTIONS (OPT_FMT_PEMDER | OPT_FMT_PKCS12)
 
     if (opt_keyform_s != NULL
             && !opt_format(opt_keyform_s, FORMAT_OPTIONS, &opt_keyform)) {
@@ -1127,7 +1110,7 @@ static int transform_opts(void)
     return 1;
 }
 
-static OSSL_CMP_SRV_CTX *setup_srv_ctx(ENGINE *engine)
+static OSSL_CMP_SRV_CTX *setup_srv_ctx(void)
 {
     OSSL_CMP_CTX *ctx; /* extra CMP (client) ctx partly used by server */
     OSSL_CMP_SRV_CTX *srv_ctx = ossl_cmp_mock_srv_new(app_get0_libctx(),
@@ -1180,7 +1163,7 @@ static OSSL_CMP_SRV_CTX *setup_srv_ctx(ENGINE *engine)
     if (opt_srv_key != NULL) {
         EVP_PKEY *pkey = load_key_pwd(opt_srv_key, opt_keyform,
                                       opt_srv_keypass,
-                                      engine, "private key for mock server cert");
+                                      "private key for mock server cert");
 
         if (pkey == NULL || !OSSL_CMP_CTX_set1_pkey(ctx, pkey)) {
             EVP_PKEY_free(pkey);
@@ -1220,7 +1203,7 @@ static OSSL_CMP_SRV_CTX *setup_srv_ctx(ENGINE *engine)
     }
     if (opt_rsp_key != NULL) {
         EVP_PKEY *pkey = load_key_pwd(opt_rsp_key, opt_keyform,
-                                      opt_rsp_keypass, engine,
+                                      opt_rsp_keypass,
                                       "private key for enrollment cert");
 
         if (pkey == NULL
@@ -1370,8 +1353,7 @@ static int setup_verification_ctx(OSSL_CMP_CTX *ctx)
  * set up ssl_ctx for the OSSL_CMP_CTX based on options from config file/CLI.
  * Returns pointer on success, NULL on error
  */
-static SSL_CTX *setup_ssl_ctx(OSSL_CMP_CTX *ctx, const char *host,
-                              ENGINE *engine)
+static SSL_CTX *setup_ssl_ctx(OSSL_CMP_CTX *ctx, const char *host)
 {
     STACK_OF(X509) *untrusted = OSSL_CMP_CTX_get0_untrusted(ctx);
     EVP_PKEY *pkey = NULL;
@@ -1477,7 +1459,7 @@ static SSL_CTX *setup_ssl_ctx(OSSL_CMP_CTX *ctx, const char *host,
         }
 
         pkey = load_key_pwd(opt_tls_key, opt_keyform, opt_tls_keypass,
-                            engine, "TLS client private key");
+                            "TLS client private key");
         cleanse(opt_tls_keypass);
         if (pkey == NULL)
             goto err;
@@ -1526,7 +1508,7 @@ static SSL_CTX *setup_ssl_ctx(OSSL_CMP_CTX *ctx, const char *host,
  * file/CLI while parsing options and checking their consistency.
  * Returns 1 on success, 0 on error
  */
-static int setup_protection_ctx(OSSL_CMP_CTX *ctx, ENGINE *engine)
+static int setup_protection_ctx(OSSL_CMP_CTX *ctx)
 {
     if (!opt_unprotected_requests && opt_secret == NULL && opt_key == NULL) {
         CMP_err("must give -key or -secret unless -unprotected_requests is used");
@@ -1564,7 +1546,7 @@ static int setup_protection_ctx(OSSL_CMP_CTX *ctx, ENGINE *engine)
         return 0;
 
     if (opt_key != NULL) {
-        EVP_PKEY *pkey = load_key_pwd(opt_key, opt_keyform, opt_keypass, engine,
+        EVP_PKEY *pkey = load_key_pwd(opt_key, opt_keyform, opt_keypass,
                                       "private key for CMP client certificate");
 
         if (pkey == NULL || !OSSL_CMP_CTX_set1_pkey(ctx, pkey)) {
@@ -1688,7 +1670,7 @@ static int set_fallback_pubkey(OSSL_CMP_CTX *ctx)
  * based on options from CLI and/or config file.
  * Returns 1 on success, 0 on error
  */
-static int setup_request_ctx(OSSL_CMP_CTX *ctx, ENGINE *engine)
+static int setup_request_ctx(OSSL_CMP_CTX *ctx)
 {
     X509_REQ *csr = NULL;
     X509_EXTENSIONS *exts = NULL;
@@ -1870,14 +1852,14 @@ static int setup_request_ctx(OSSL_CMP_CTX *ctx, ENGINE *engine)
         BIO *bio_bak = bio_err;
 
         bio_err = NULL; /* suppress diagnostics on first try loading key */
-        pkey = load_key_pwd(file, format, pass, engine, desc);
+        pkey = load_key_pwd(file, format, pass, desc);
         bio_err = bio_bak;
         if (pkey == NULL) {
             ERR_clear_error();
             desc = opt_csr == NULL
                 ? "fallback public key for cert to be enrolled"
                 : "public key for checking cert resulting from p10cr";
-            pkey = load_pubkey(file, format, 0, pass, engine, desc);
+            pkey = load_pubkey(file, format, 0, pass, desc);
             priv = 0;
         }
 
@@ -2140,7 +2122,7 @@ static int handle_opt_geninfo(OSSL_CMP_CTX *ctx)
  * Prints reason for error to bio_err.
  * Returns 1 on success, 0 on error
  */
-static int setup_client_ctx(OSSL_CMP_CTX *ctx, ENGINE *engine)
+static int setup_client_ctx(OSSL_CMP_CTX *ctx)
 {
     int ret = 0;
     char *host = NULL, *port = NULL, *path = NULL, *used_path = opt_path;
@@ -2299,7 +2281,7 @@ static int setup_client_ctx(OSSL_CMP_CTX *ctx, ENGINE *engine)
             goto err;
         APP_HTTP_TLS_INFO_free(OSSL_CMP_CTX_get_http_cb_arg(ctx));
         (void)OSSL_CMP_CTX_set_http_cb_arg(ctx, info);
-        info->ssl_ctx = setup_ssl_ctx(ctx, host, engine);
+        info->ssl_ctx = setup_ssl_ctx(ctx, host);
         info->server = host;
         host = NULL; /* prevent deallocation */
         if ((info->port = OPENSSL_strdup(server_port)) == NULL)
@@ -2314,10 +2296,10 @@ static int setup_client_ctx(OSSL_CMP_CTX *ctx, ENGINE *engine)
     }
 #endif
 
-    if (!setup_protection_ctx(ctx, engine))
+    if (!setup_protection_ctx(ctx))
         goto err;
 
-    if (!setup_request_ctx(ctx, engine))
+    if (!setup_request_ctx(ctx))
         goto err;
 
     if (!set_name(opt_recipient, OSSL_CMP_CTX_set1_recipient, ctx, "recipient")
@@ -3069,11 +3051,6 @@ static int get_opts(int argc, char **argv)
         case OPT_OTHERPASS:
             opt_otherpass = opt_str();
             break;
-#ifndef OPENSSL_NO_ENGINE
-        case OPT_ENGINE:
-            opt_engine = opt_str();
-            break;
-#endif
         case OPT_PROV_CASES:
             if (!opt_provider(o))
                 goto opthelp;
@@ -3606,7 +3583,6 @@ int cmp_main(int argc, char **argv)
     char *configfile = NULL;
     int i;
     X509 *newcert = NULL;
-    ENGINE *engine = NULL;
     OSSL_CMP_CTX *srv_cmp_ctx = NULL;
     int ret = 0; /* default: failure */
 
@@ -3673,15 +3649,6 @@ int cmp_main(int argc, char **argv)
     if (opt_batch)
         set_base_ui_method(UI_null());
 
-    if (opt_engine != NULL) {
-        engine = setup_engine_methods(opt_engine,
-                                      0 /* not: ENGINE_METHOD_ALL */, 0);
-        if (engine == NULL) {
-            CMP_err1("cannot load engine %s", opt_engine);
-            goto err;
-        }
-    }
-
     OSSL_CMP_CTX_set_log_verbosity(cmp_ctx, opt_verbosity);
     if (!OSSL_CMP_CTX_set_log_cb(cmp_ctx, print_to_bio_out)) {
         CMP_err1("cannot set up error reporting and logging for %s", prog);
@@ -3734,7 +3701,7 @@ int cmp_main(int argc, char **argv)
                                     )) {
         OSSL_CMP_SRV_CTX *srv_ctx;
 
-        if ((srv_ctx = setup_srv_ctx(engine)) == NULL)
+        if ((srv_ctx = setup_srv_ctx()) == NULL)
             goto err;
         srv_cmp_ctx = OSSL_CMP_SRV_CTX_get0_cmp_ctx(srv_ctx);
         OSSL_CMP_CTX_set_transfer_cb_arg(cmp_ctx, srv_ctx);
@@ -3783,7 +3750,7 @@ int cmp_main(int argc, char **argv)
     }
 #endif
 
-    if (!setup_client_ctx(cmp_ctx, engine)) {
+    if (!setup_client_ctx(cmp_ctx)) {
         CMP_err("cannot set up CMP context");
         goto err;
     }
@@ -3927,7 +3894,6 @@ int cmp_main(int argc, char **argv)
 #endif
     }
     X509_VERIFY_PARAM_free(vpm);
-    release_engine(engine);
 
     NCONF_free(conf); /* must not do as long as opt_... variables are used */
     OSSL_CMP_log_close();
index 7e2d6ba32a59e5b180b182f625629c1e1e405e1c..00349f0db1064819213d022284f6ca86a4f55f6d 100644 (file)
@@ -89,7 +89,7 @@ typedef enum OPTION_choice {
     OPT_PASSIN, OPT_TO, OPT_FROM, OPT_SUBJECT, OPT_SIGNER, OPT_RECIP,
     OPT_CERTSOUT, OPT_MD, OPT_INKEY, OPT_KEYFORM, OPT_KEYOPT, OPT_RR_FROM,
     OPT_RR_TO, OPT_AES128_WRAP, OPT_AES192_WRAP, OPT_AES256_WRAP,
-    OPT_3DES_WRAP, OPT_WRAP, OPT_ENGINE,
+    OPT_3DES_WRAP, OPT_WRAP,
     OPT_R_ENUM,
     OPT_PROV_ENUM, OPT_CONFIG,
     OPT_V_ENUM,
@@ -161,9 +161,6 @@ const OPTIONS cms_options[] = {
     {"keyopt", OPT_KEYOPT, 's', "Set public key parameters as n:v pairs"},
     {"keyform", OPT_KEYFORM, 'f',
      "Input private key format (ENGINE, other values ignored)"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine e, possibly a hardware device"},
-#endif
     OPT_PROV_OPTIONS,
     OPT_R_OPTIONS,
 
@@ -313,7 +310,6 @@ int cms_main(int argc, char **argv)
     BIO *in = NULL, *out = NULL, *indata = NULL, *rctin = NULL;
     CMS_ContentInfo *cms = NULL, *rcms = NULL;
     CMS_ReceiptRequest *rr = NULL;
-    ENGINE *e = NULL;
     EVP_PKEY *key = NULL;
     EVP_CIPHER *cipher = NULL, *wrap_cipher = NULL, *kekcipher = NULL;
     EVP_MD *sign_md = NULL;
@@ -599,9 +595,6 @@ int cms_main(int argc, char **argv)
                 goto opthelp;
             }
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_PASSIN:
             passinarg = opt_arg();
             break;
@@ -962,7 +955,7 @@ int cms_main(int argc, char **argv)
     }
 
     if (keyfile != NULL) {
-        key = load_key(keyfile, keyform, 0, passin, e, "signing key");
+        key = load_key(keyfile, keyform, 0, passin, "signing key");
         if (key == NULL)
             goto end;
     }
@@ -1220,7 +1213,7 @@ int cms_main(int argc, char **argv)
                 ret = 2;
                 goto end;
             }
-            key = load_key(keyfile, keyform, 0, passin, e, "signing key");
+            key = load_key(keyfile, keyform, 0, passin, "signing key");
             if (key == NULL) {
                 ret = 2;
                 goto end;
@@ -1439,7 +1432,6 @@ int cms_main(int argc, char **argv)
     EVP_MD_free(sign_md);
     CMS_ContentInfo_free(cms);
     CMS_ContentInfo_free(rcms);
-    release_engine(e);
     BIO_free(rctin);
     BIO_free(in);
     BIO_free(indata);
index 5f9c62965680e88026ee67c513b10ce6c98c5d13..e0218334d1b37ce4555d4218770dfaebce7802c6 100644 (file)
@@ -265,7 +265,7 @@ int crl_main(int argc, char **argv)
         newcrl = load_crl(crldiff, informat, 0, "other CRL");
         if (!newcrl)
             goto end;
-        pkey = load_key(keyfile, keyformat, 0, NULL, NULL, "CRL signing key");
+        pkey = load_key(keyfile, keyformat, 0, NULL, "CRL signing key");
         if (pkey == NULL) {
             X509_CRL_free(newcrl);
             goto end;
index 07fa5fe26d2af0e8a69d8c92d1d0b9744d104f4b..782ff6f81615cfa4a8395e5c75a42f841b863595 100644 (file)
@@ -42,7 +42,7 @@ typedef enum OPTION_choice {
     OPT_COMMON,
     OPT_LIST,
     OPT_C, OPT_R, OPT_OUT, OPT_SIGN, OPT_PASSIN, OPT_VERIFY,
-    OPT_PRVERIFY, OPT_SIGNATURE, OPT_KEYFORM, OPT_ENGINE, OPT_ENGINE_IMPL,
+    OPT_PRVERIFY, OPT_SIGNATURE, OPT_KEYFORM,
     OPT_HEX, OPT_BINARY, OPT_DEBUG, OPT_FIPS_FINGERPRINT,
     OPT_HMAC, OPT_HMAC_ENV, OPT_HMAC_STDIN, OPT_MAC, OPT_SIGOPT, OPT_MACOPT, OPT_XOFLEN,
     OPT_DIGEST,
@@ -55,11 +55,6 @@ const OPTIONS dgst_options[] = {
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
     {"list", OPT_LIST, '-', "List digests"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine e, possibly a hardware device"},
-    {"engine_impl", OPT_ENGINE_IMPL, '-',
-     "Also use engine given by -engine for digest operations"},
-#endif
     {"passin", OPT_PASSIN, 's', "Input file pass phrase source"},
 
     OPT_SECTION("Output"),
@@ -99,7 +94,6 @@ const OPTIONS dgst_options[] = {
 int dgst_main(int argc, char **argv)
 {
     BIO *in = NULL, *inp = NULL, *bmd = NULL, *out = NULL;
-    ENGINE *e = NULL, *impl = NULL;
     EVP_PKEY *sigkey = NULL;
     STACK_OF(OPENSSL_STRING) *sigopts = NULL, *macopts = NULL;
     char *hmac_key = NULL;
@@ -117,7 +111,6 @@ int dgst_main(int argc, char **argv)
     int i, ret = EXIT_FAILURE, out_bin = -1, want_pub = 0, do_verify = 0;
     int xoflen = 0;
     unsigned char *buf = NULL, *sigbuf = NULL;
-    int engine_impl = 0;
     struct doall_dgst_digests dec;
     EVP_MD_CTX *signctx = NULL;
     int oneshot_sign = 0;
@@ -183,12 +176,6 @@ int dgst_main(int argc, char **argv)
             if (!opt_format(opt_arg(), OPT_FMT_ANY, &keyform))
                 goto opthelp;
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
-        case OPT_ENGINE_IMPL:
-            engine_impl = 1;
-            break;
         case OPT_HEX:
             out_bin = 0;
             break;
@@ -282,8 +269,6 @@ int dgst_main(int argc, char **argv)
                    "No signature to verify: use the -signature option\n");
         goto end;
     }
-    if (engine_impl)
-        impl = e;
 
     in = BIO_new(BIO_s_file());
     bmd = BIO_new(BIO_f_md());
@@ -319,9 +304,9 @@ int dgst_main(int argc, char **argv)
 
     if (keyfile != NULL) {
         if (want_pub)
-            sigkey = load_pubkey(keyfile, keyform, 0, NULL, e, "public key");
+            sigkey = load_pubkey(keyfile, keyform, 0, NULL, "public key");
         else
-            sigkey = load_key(keyfile, keyform, 0, passin, e, "private key");
+            sigkey = load_key(keyfile, keyform, 0, passin, "private key");
         if (sigkey == NULL) {
             /*
              * load_[pub]key() has already printed an appropriate message
@@ -344,7 +329,7 @@ int dgst_main(int argc, char **argv)
     if (mac_name != NULL) {
         EVP_PKEY_CTX *mac_ctx = NULL;
 
-        if (!init_gen_str(&mac_ctx, mac_name, impl, 0, NULL, NULL))
+        if (!init_gen_str(&mac_ctx, mac_name, 0, NULL, NULL))
             goto end;
         if (macopts != NULL) {
             for (i = 0; i < sk_OPENSSL_STRING_num(macopts); i++) {
@@ -359,7 +344,6 @@ int dgst_main(int argc, char **argv)
         }
 
         sigkey = app_keygen(mac_ctx, mac_name, 0, 0 /* not verbose */);
-        /* Verbose output would make external-tests gost-engine fail */
         EVP_PKEY_CTX_free(mac_ctx);
         if (sigkey == NULL)
             goto end;
@@ -370,7 +354,7 @@ int dgst_main(int argc, char **argv)
             md = (EVP_MD *)EVP_sha256();
             digestname = SN_sha256;
         }
-        sigkey = EVP_PKEY_new_raw_private_key(EVP_PKEY_HMAC, impl,
+        sigkey = EVP_PKEY_new_raw_private_key(EVP_PKEY_HMAC, NULL,
                                               (unsigned char *)hmac_key,
                                               strlen(hmac_key));
         if (sigkey == NULL)
@@ -389,19 +373,13 @@ int dgst_main(int argc, char **argv)
             goto end;
         }
         if (do_verify)
-            if (impl == NULL)
-                res = EVP_DigestVerifyInit_ex(mctx, &pctx, digestname,
-                                              app_get0_libctx(),
-                                              app_get0_propq(), sigkey, NULL);
-            else
-                res = EVP_DigestVerifyInit(mctx, &pctx, md, impl, sigkey);
+            res = EVP_DigestVerifyInit_ex(mctx, &pctx, digestname,
+                                          app_get0_libctx(),
+                                          app_get0_propq(), sigkey, NULL);
         else
-            if (impl == NULL)
-                res = EVP_DigestSignInit_ex(mctx, &pctx, digestname,
-                                            app_get0_libctx(),
-                                            app_get0_propq(), sigkey, NULL);
-            else
-                res = EVP_DigestSignInit(mctx, &pctx, md, impl, sigkey);
+            res = EVP_DigestSignInit_ex(mctx, &pctx, digestname,
+                                        app_get0_libctx(),
+                                        app_get0_propq(), sigkey, NULL);
         if (res == 0) {
             BIO_printf(bio_err, "Error setting context\n");
             goto end;
@@ -432,7 +410,7 @@ int dgst_main(int argc, char **argv)
         }
         if (md == NULL)
             md = (EVP_MD *)EVP_sha256();
-        if (!EVP_DigestInit_ex(mctx, md, impl)) {
+        if (!EVP_DigestInit_ex(mctx, md, NULL)) {
             BIO_printf(bio_err, "Error setting digest\n");
             goto end;
         }
@@ -534,7 +512,6 @@ int dgst_main(int argc, char **argv)
     sk_OPENSSL_STRING_pop_free(macopts, clear_free);
     OPENSSL_free(sigbuf);
     BIO_free(bmd);
-    release_engine(e);
     return ret;
 }
 
index 600b7ed2b5bc3427eb88089f3c3a32247e6effc3..72fa6f0d9ab1af2f1d9d789c0757865db51ed8ea 100644 (file)
@@ -37,7 +37,7 @@ static int verbose = 1;
 typedef enum OPTION_choice {
     OPT_COMMON,
     OPT_INFORM, OPT_OUTFORM, OPT_IN, OPT_OUT,
-    OPT_ENGINE, OPT_CHECK, OPT_TEXT, OPT_NOOUT,
+    OPT_CHECK, OPT_TEXT, OPT_NOOUT,
     OPT_DSAPARAM, OPT_2, OPT_3, OPT_5, OPT_VERBOSE, OPT_QUIET,
     OPT_R_ENUM, OPT_PROV_ENUM
 } OPTION_CHOICE;
@@ -52,9 +52,6 @@ const OPTIONS dhparam_options[] = {
     {"dsaparam", OPT_DSAPARAM, '-',
      "Read or generate DSA parameters, convert to DH"},
 #endif
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine e, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Input"),
     {"in", OPT_IN, '<', "Input file"},
@@ -85,7 +82,6 @@ int dhparam_main(int argc, char **argv)
     EVP_PKEY *pkey = NULL, *tmppkey = NULL;
     EVP_PKEY_CTX *ctx = NULL;
     char *infile = NULL, *outfile = NULL, *prog;
-    ENGINE *e = NULL;
     int dsaparam = 0;
     int text = 0, ret = 1, num = 0, g = 0;
     int informat = FORMAT_PEM, outformat = FORMAT_PEM, check = 0, noout = 0;
@@ -117,9 +113,6 @@ int dhparam_main(int argc, char **argv)
         case OPT_OUT:
             outfile = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_CHECK:
             check = 1;
             break;
@@ -362,7 +355,6 @@ int dhparam_main(int argc, char **argv)
     EVP_PKEY_free(pkey);
     EVP_PKEY_free(tmppkey);
     EVP_PKEY_CTX_free(ctx);
-    release_engine(e);
     return ret;
 }
 
index 9ba8c252dafe6885b2b094503dedba6d920cabfc..7ba3634d6d82429c674da9c4d942e94346596b88 100644 (file)
@@ -34,7 +34,7 @@
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_INFORM, OPT_OUTFORM, OPT_IN, OPT_OUT, OPT_ENGINE,
+    OPT_INFORM, OPT_OUTFORM, OPT_IN, OPT_OUT,
     /* Do not change the order here; see case statements below */
     OPT_PVK_NONE, OPT_PVK_WEAK, OPT_PVK_STRONG,
     OPT_NOOUT, OPT_TEXT, OPT_MODULUS, OPT_PUBIN,
@@ -51,9 +51,6 @@ const OPTIONS dsa_options[] = {
     {"pvk-weak", OPT_PVK_WEAK, '-', "Enable 'Weak' PVK encoding level"},
     {"pvk-none", OPT_PVK_NONE, '-', "Don't enforce PVK encoding"},
 #endif
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine e, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Input"),
     {"in", OPT_IN, 's', "Input key"},
@@ -77,7 +74,6 @@ const OPTIONS dsa_options[] = {
 int dsa_main(int argc, char **argv)
 {
     BIO *out = NULL;
-    ENGINE *e = NULL;
     EVP_PKEY *pkey = NULL;
     EVP_CIPHER *enc = NULL;
     char *infile = NULL, *outfile = NULL, *prog;
@@ -120,9 +116,6 @@ int dsa_main(int argc, char **argv)
         case OPT_OUT:
             outfile = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_PASSIN:
             passinarg = opt_arg();
             break;
@@ -176,9 +169,9 @@ int dsa_main(int argc, char **argv)
 
     BIO_printf(bio_err, "read DSA key\n");
     if (pubin)
-        pkey = load_pubkey(infile, informat, 1, passin, e, "public key");
+        pkey = load_pubkey(infile, informat, 1, passin, "public key");
     else
-        pkey = load_key(infile, informat, 1, passin, e, "private key");
+        pkey = load_key(infile, informat, 1, passin, "private key");
 
     if (pkey == NULL) {
         BIO_printf(bio_err, "unable to load Key\n");
@@ -300,7 +293,6 @@ int dsa_main(int argc, char **argv)
     BIO_free_all(out);
     EVP_PKEY_free(pkey);
     EVP_CIPHER_free(enc);
-    release_engine(e);
     OPENSSL_free(passin);
     OPENSSL_free(passout);
     return ret;
index 99fc3ee7b8046172dc581d525d1c89d21bd2d8da..65f3ae262a6b15d9b3bcb23363a35a174d006202 100644 (file)
@@ -27,7 +27,7 @@ static int verbose = 0;
 typedef enum OPTION_choice {
     OPT_COMMON,
     OPT_INFORM, OPT_OUTFORM, OPT_IN, OPT_OUT, OPT_TEXT,
-    OPT_NOOUT, OPT_GENKEY, OPT_ENGINE, OPT_VERBOSE, OPT_QUIET,
+    OPT_NOOUT, OPT_GENKEY, OPT_VERBOSE, OPT_QUIET,
     OPT_R_ENUM, OPT_PROV_ENUM
 } OPTION_CHOICE;
 
@@ -36,9 +36,6 @@ const OPTIONS dsaparam_options[] = {
 
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine e, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Input"),
     {"in", OPT_IN, '<', "Input file"},
@@ -64,7 +61,6 @@ const OPTIONS dsaparam_options[] = {
 
 int dsaparam_main(int argc, char **argv)
 {
-    ENGINE *e = NULL;
     BIO *out = NULL;
     EVP_PKEY *params = NULL, *pkey = NULL;
     EVP_PKEY_CTX *ctx = NULL;
@@ -100,9 +96,6 @@ int dsaparam_main(int argc, char **argv)
         case OPT_OUT:
             outfile = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_TEXT:
             text = 1;
             break;
@@ -248,6 +241,5 @@ int dsaparam_main(int argc, char **argv)
     EVP_PKEY_CTX_free(ctx);
     EVP_PKEY_free(pkey);
     EVP_PKEY_free(params);
-    release_engine(e);
     return ret;
 }
index 9f4d5fadea652273d9112d31eb267a17efced6e9..0d0cddfb29ec326f85f31401a094044a56f1dcf7 100644 (file)
--- a/apps/ec.c
+++ b/apps/ec.c
@@ -23,7 +23,7 @@
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_INFORM, OPT_OUTFORM, OPT_ENGINE, OPT_IN, OPT_OUT,
+    OPT_INFORM, OPT_OUTFORM, OPT_IN, OPT_OUT,
     OPT_NOOUT, OPT_TEXT, OPT_PARAM_OUT, OPT_PUBIN, OPT_PUBOUT,
     OPT_PASSIN, OPT_PASSOUT, OPT_PARAM_ENC, OPT_CONV_FORM, OPT_CIPHER,
     OPT_NO_PUBLIC, OPT_CHECK, OPT_PROV_ENUM
@@ -32,13 +32,10 @@ typedef enum OPTION_choice {
 const OPTIONS ec_options[] = {
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Input"),
     {"in", OPT_IN, 's', "Input file"},
-    {"inform", OPT_INFORM, 'f', "Input format (DER/PEM/P12/ENGINE)"},
+    {"inform", OPT_INFORM, 'f', "Input format (DER/PEM/P12)"},
     {"pubin", OPT_PUBIN, '-', "Expect a public key in input file"},
     {"passin", OPT_PASSIN, 's', "Input file pass phrase source"},
     {"check", OPT_CHECK, '-', "check key consistency"},
@@ -68,7 +65,6 @@ int ec_main(int argc, char **argv)
     EVP_PKEY_CTX *pctx = NULL;
     EVP_PKEY *eckey = NULL;
     BIO *out = NULL;
-    ENGINE *e = NULL;
     EVP_CIPHER *enc = NULL;
     char *infile = NULL, *outfile = NULL, *ciphername = NULL, *prog;
     char *passin = NULL, *passout = NULL, *passinarg = NULL, *passoutarg = NULL;
@@ -128,9 +124,6 @@ int ec_main(int argc, char **argv)
         case OPT_PASSOUT:
             passoutarg = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_CIPHER:
             ciphername = opt_unknown();
             break;
@@ -171,9 +164,9 @@ int ec_main(int argc, char **argv)
     }
 
     if (pubin)
-        eckey = load_pubkey(infile, informat, 1, passin, e, "public key");
+        eckey = load_pubkey(infile, informat, 1, passin, "public key");
     else
-        eckey = load_key(infile, informat, 1, passin, e, "private key");
+        eckey = load_key(infile, informat, 1, passin, "private key");
 
     if (eckey == NULL) {
         BIO_printf(bio_err, "unable to load Key\n");
@@ -278,7 +271,6 @@ end:
     OSSL_ENCODER_CTX_free(ectx);
     OSSL_DECODER_CTX_free(dctx);
     EVP_PKEY_CTX_free(pctx);
-    release_engine(e);
     if (passin != NULL)
         OPENSSL_clear_free(passin, strlen(passin));
     if (passout != NULL)
index b025e9bc75029fd51e083b0157124f5264a38423..f326105ec569fefe162bd256dee0eccaca557f1d 100644 (file)
@@ -25,7 +25,7 @@ typedef enum OPTION_choice {
     OPT_COMMON,
     OPT_INFORM, OPT_OUTFORM, OPT_IN, OPT_OUT, OPT_TEXT,
     OPT_CHECK, OPT_LIST_CURVES, OPT_NO_SEED, OPT_NOOUT, OPT_NAME,
-    OPT_CONV_FORM, OPT_PARAM_ENC, OPT_GENKEY, OPT_ENGINE, OPT_CHECK_NAMED,
+    OPT_CONV_FORM, OPT_PARAM_ENC, OPT_GENKEY, OPT_CHECK_NAMED,
     OPT_R_ENUM, OPT_PROV_ENUM
 } OPTION_CHOICE;
 
@@ -34,9 +34,6 @@ const OPTIONS ecparam_options[] = {
     {"help", OPT_HELP, '-', "Display this summary"},
     {"list_curves", OPT_LIST_CURVES, '-',
      "Prints a list of all curve 'short names'"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     {"genkey", OPT_GENKEY, '-', "Generate ec key"},
     {"in", OPT_IN, '<', "Input file  - default stdin"},
@@ -95,7 +92,6 @@ int ecparam_main(int argc, char **argv)
     EVP_PKEY *params_key = NULL, *key = NULL;
     OSSL_ENCODER_CTX *ectx_key = NULL, *ectx_params = NULL;
     OSSL_DECODER_CTX *dctx_params = NULL;
-    ENGINE *e = NULL;
     BIO *out = NULL;
     char *curve_name = NULL;
     char *asn1_encoding = NULL;
@@ -175,9 +171,6 @@ int ecparam_main(int argc, char **argv)
             if (!opt_provider(o))
                 goto end;
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         }
     }
 
@@ -345,7 +338,6 @@ int ecparam_main(int argc, char **argv)
 end:
     if (ret != 0)
         ERR_print_errors(bio_err);
-    release_engine(e);
     EVP_PKEY_free(params_key);
     EVP_PKEY_free(key);
     EVP_PKEY_CTX_free(pctx);
index 8f5044fbb3b0089ae4279c5cf545459c0a438d41..59e758c378339ee6bac00f53f47b42288c623741 100644 (file)
@@ -45,7 +45,7 @@ struct doall_enc_ciphers {
 typedef enum OPTION_choice {
     OPT_COMMON,
     OPT_LIST,
-    OPT_E, OPT_IN, OPT_OUT, OPT_PASS, OPT_ENGINE, OPT_D, OPT_P, OPT_V,
+    OPT_E, OPT_IN, OPT_OUT, OPT_PASS, OPT_D, OPT_P, OPT_V,
     OPT_NOPAD, OPT_SALT, OPT_NOSALT, OPT_DEBUG, OPT_UPPER_P, OPT_UPPER_A,
     OPT_A, OPT_Z, OPT_BUFSIZE, OPT_K, OPT_KFILE, OPT_UPPER_K, OPT_NONE,
     OPT_UPPER_S, OPT_IV, OPT_MD, OPT_ITER, OPT_PBKDF2, OPT_CIPHER,
@@ -64,9 +64,6 @@ const OPTIONS enc_options[] = {
     {"d", OPT_D, '-', "Decrypt"},
     {"p", OPT_P, '-', "Print the iv/key"},
     {"P", OPT_UPPER_P, '-', "Print the iv/key and exit"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Input"),
     {"in", OPT_IN, '<', "Input file"},
@@ -119,7 +116,6 @@ int enc_main(int argc, char **argv)
 {
     static char buf[128];
     static const char magic[] = "Salted__";
-    ENGINE *e = NULL;
     BIO *in = NULL, *out = NULL, *b64 = NULL, *benc = NULL, *rbio =
         NULL, *wbio = NULL;
     EVP_CIPHER_CTX *ctx = NULL;
@@ -211,9 +207,6 @@ int enc_main(int argc, char **argv)
         case OPT_PASS:
             passarg = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_D:
             enc = 0;
             break;
@@ -667,7 +660,7 @@ int enc_main(int argc, char **argv)
             EVP_CIPHER_CTX_set_flags(ctx, EVP_CIPHER_CTX_FLAG_WRAP_ALLOW);
 
         if (rawkey_set) {
-            if (!EVP_CipherInit_ex(ctx, cipher, e, key,
+            if (!EVP_CipherInit_ex(ctx, cipher, NULL, key,
                                    (hiv == NULL && wrap == 1 ? NULL : iv), enc)) {
                 BIO_printf(bio_err, "Error setting cipher %s\n",
                            EVP_CIPHER_get0_name(cipher));
@@ -792,7 +785,6 @@ int enc_main(int argc, char **argv)
 #endif
     BIO_free(bbrot);
     BIO_free(bzstd);
-    release_engine(e);
     OPENSSL_free(pass);
     return ret;
 }
index a655c6ea02b2cb7458a2e0079e4d1dd96e53c630..fd9de9ecb6192cf308f77523f2811b6138891458 100644 (file)
@@ -24,7 +24,7 @@
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_OUT, OPT_PASSOUT, OPT_ENGINE, OPT_CIPHER, OPT_VERBOSE, OPT_QUIET,
+    OPT_OUT, OPT_PASSOUT, OPT_CIPHER, OPT_VERBOSE, OPT_QUIET,
     OPT_R_ENUM, OPT_PROV_ENUM
 } OPTION_CHOICE;
 
@@ -33,9 +33,6 @@ const OPTIONS gendsa_options[] = {
 
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Output"),
     {"out", OPT_OUT, '>', "Output the key to the specified file"},
@@ -53,7 +50,6 @@ const OPTIONS gendsa_options[] = {
 
 int gendsa_main(int argc, char **argv)
 {
-    ENGINE *e = NULL;
     BIO *out = NULL, *in = NULL;
     EVP_PKEY *pkey = NULL;
     EVP_PKEY_CTX *ctx = NULL;
@@ -82,9 +78,6 @@ int gendsa_main(int argc, char **argv)
         case OPT_PASSOUT:
             passoutarg = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_R_CASES:
             if (!opt_rand(o))
                 goto end;
@@ -166,7 +159,6 @@ int gendsa_main(int argc, char **argv)
     EVP_PKEY_free(pkey);
     EVP_PKEY_CTX_free(ctx);
     EVP_CIPHER_free(enc);
-    release_engine(e);
     OPENSSL_free(passout);
     return ret;
 }
index bd44c5871fd4d6e1c03803776bc6fa90956aa659..1f3d3f511a13c8226090c4fa987baa928aac0bc6 100644 (file)
 
 static int verbose = 1;
 
-static int init_keygen_file(EVP_PKEY_CTX **pctx, const char *file, ENGINE *e,
+static int init_keygen_file(EVP_PKEY_CTX **pctx, const char *file,
                             OSSL_LIB_CTX *libctx, const char *propq);
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_ENGINE, OPT_OUTFORM, OPT_OUT, OPT_PASS, OPT_PARAMFILE,
+    OPT_OUTFORM, OPT_OUT, OPT_PASS, OPT_PARAMFILE,
     OPT_ALGORITHM, OPT_PKEYOPT, OPT_GENPARAM, OPT_TEXT, OPT_CIPHER,
     OPT_VERBOSE, OPT_QUIET, OPT_CONFIG, OPT_OUTPUBKEY,
     OPT_PROV_ENUM, OPT_R_ENUM
@@ -30,9 +30,6 @@ typedef enum OPTION_choice {
 const OPTIONS genpkey_options[] = {
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
     {"paramfile", OPT_PARAMFILE, '<', "Parameters file"},
     {"algorithm", OPT_ALGORITHM, 's', "The public key algorithm"},
     {"verbose", OPT_VERBOSE, '-', "Output status while generating keys"},
@@ -107,7 +104,6 @@ int genpkey_main(int argc, char **argv)
 {
     CONF *conf = NULL;
     BIO *mem_out = NULL, *mem_outpubkey = NULL;
-    ENGINE *e = NULL;
     EVP_PKEY *pkey = NULL;
     EVP_PKEY_CTX *ctx = NULL;
     char *outfile = NULL, *passarg = NULL, *pass = NULL, *prog, *p;
@@ -150,9 +146,6 @@ int genpkey_main(int argc, char **argv)
         case OPT_PASS:
             passarg = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_PARAMFILE:
             if (do_param == 1)
                 goto opthelp;
@@ -205,11 +198,11 @@ int genpkey_main(int argc, char **argv)
 
     /* Fetch cipher, etc. */
     if (paramfile != NULL) {
-        if (!init_keygen_file(&ctx, paramfile, e, libctx, app_get0_propq()))
+        if (!init_keygen_file(&ctx, paramfile, libctx, app_get0_propq()))
             goto end;
     }
     if (algname != NULL) {
-        if (!init_gen_str(&ctx, algname, e, do_param, libctx, app_get0_propq()))
+        if (!init_gen_str(&ctx, algname, do_param, libctx, app_get0_propq()))
             goto end;
     }
     if (ctx == NULL)
@@ -317,13 +310,12 @@ int genpkey_main(int argc, char **argv)
     EVP_CIPHER_free(cipher);
     BIO_free_all(mem_out);
     BIO_free_all(mem_outpubkey);
-    release_engine(e);
     OPENSSL_free(pass);
     NCONF_free(conf);
     return ret;
 }
 
-static int init_keygen_file(EVP_PKEY_CTX **pctx, const char *file, ENGINE *e,
+static int init_keygen_file(EVP_PKEY_CTX **pctx, const char *file,
                             OSSL_LIB_CTX *libctx, const char *propq)
 {
     BIO *pbio;
@@ -348,10 +340,7 @@ static int init_keygen_file(EVP_PKEY_CTX **pctx, const char *file, ENGINE *e,
         return 0;
     }
 
-    if (e != NULL)
-        ctx = EVP_PKEY_CTX_new(pkey, e);
-    else
-        ctx = EVP_PKEY_CTX_new_from_pkey(libctx, pkey, propq);
+    ctx = EVP_PKEY_CTX_new_from_pkey(libctx, pkey, propq);
     if (ctx == NULL)
         goto err;
     if (EVP_PKEY_keygen_init(ctx) <= 0)
@@ -370,26 +359,17 @@ static int init_keygen_file(EVP_PKEY_CTX **pctx, const char *file, ENGINE *e,
 }
 
 int init_gen_str(EVP_PKEY_CTX **pctx,
-                 const char *algname, ENGINE *e, int do_param,
+                 const char *algname, int do_param,
                  OSSL_LIB_CTX *libctx, const char *propq)
 {
     EVP_PKEY_CTX *ctx = NULL;
-#ifndef OPENSSL_NO_DEPRECATED_3_6
-    int pkey_id;
-#endif
 
     if (*pctx) {
         BIO_puts(bio_err, "Algorithm already set!\n");
         return 0;
     }
 
-#ifndef OPENSSL_NO_DEPRECATED_3_6
-    pkey_id = get_legacy_pkey_id(libctx, algname, e);
-    if (pkey_id != NID_undef)
-        ctx = EVP_PKEY_CTX_new_id(pkey_id, e);
-    else
-#endif
-        ctx = EVP_PKEY_CTX_new_from_name(libctx, algname, propq);
+    ctx = EVP_PKEY_CTX_new_from_name(libctx, algname, propq);
 
     if (ctx == NULL)
         goto err;
index 54d025e24c2cd7b3d89916e4244b94f54fe562ce..5b022fd3a2e05d6853c88d695a0008f0a835ee1a 100644 (file)
@@ -34,7 +34,7 @@ typedef enum OPTION_choice {
 #ifndef OPENSSL_NO_DEPRECATED_3_0
     OPT_3,
 #endif
-    OPT_F4, OPT_ENGINE,
+    OPT_F4,
     OPT_OUT, OPT_PASSOUT, OPT_CIPHER, OPT_PRIMES, OPT_VERBOSE, OPT_QUIET,
     OPT_R_ENUM, OPT_PROV_ENUM, OPT_TRADITIONAL
 } OPTION_CHOICE;
@@ -44,9 +44,6 @@ const OPTIONS genrsa_options[] = {
 
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Input"),
 #ifndef OPENSSL_NO_DEPRECATED_3_0
@@ -76,7 +73,6 @@ const OPTIONS genrsa_options[] = {
 int genrsa_main(int argc, char **argv)
 {
     BN_GENCB *cb = BN_GENCB_new();
-    ENGINE *eng = NULL;
     BIGNUM *bn = BN_new();
     BIO *out = NULL;
     EVP_PKEY *pkey = NULL;
@@ -116,9 +112,6 @@ opthelp:
         case OPT_OUT:
             outfile = opt_arg();
             break;
-        case OPT_ENGINE:
-            eng = setup_engine(opt_arg(), 0);
-            break;
         case OPT_R_CASES:
             if (!opt_rand(o))
                 goto end;
@@ -179,7 +172,7 @@ opthelp:
     if (out == NULL)
         goto end;
 
-    if (!init_gen_str(&ctx, "RSA", eng, 0, app_get0_libctx(),
+    if (!init_gen_str(&ctx, "RSA", 0, app_get0_libctx(),
                       app_get0_propq()))
         goto end;
 
@@ -242,7 +235,6 @@ opthelp:
     EVP_PKEY_free(pkey);
     EVP_CIPHER_free(enc);
     BIO_free_all(out);
-    release_engine(eng);
     OPENSSL_free(passout);
     if (ret != 0)
         ERR_print_errors(bio_err);
index 58e9210236298e92515ff637c41def1a797429bb..236f3ea998089908642aa576ee9f6237360d02fd 100644 (file)
@@ -35,7 +35,6 @@
 # include "opt.h"
 # include "fmt.h"
 # include "platform.h"
-# include "engine_loader.h"
 # include "app_libctx.h"
 
 /*
@@ -129,10 +128,10 @@ X509_CRL *load_crl(const char *uri, int format, int maybe_stdin,
 void cleanse(char *str);
 void clear_free(char *str);
 EVP_PKEY *load_key(const char *uri, int format, int maybe_stdin,
-                   const char *pass, ENGINE *e, const char *desc);
+                   const char *pass, const char *desc);
 /* first try reading public key, on failure resort to loading private key */
 EVP_PKEY *load_pubkey(const char *uri, int format, int maybe_stdin,
-                      const char *pass, ENGINE *e, const char *desc);
+                      const char *pass, const char *desc);
 EVP_PKEY *load_keyparams(const char *uri, int format, int maybe_stdin,
                          const char *keytype, const char *desc);
 EVP_PKEY *load_keyparams_suppress(const char *uri, int format, int maybe_stdin,
@@ -178,18 +177,9 @@ __owur int ctx_set_ctlog_list_file(SSL_CTX *ctx, const char *path);
 
 # endif
 
-ENGINE *setup_engine_methods(const char *id, unsigned int methods, int debug);
-# define setup_engine(e, debug) setup_engine_methods(e, (unsigned int)-1, debug)
-void release_engine(ENGINE *e);
-int init_engine(ENGINE *e);
-int finish_engine(ENGINE *e);
-char *make_engine_uri(ENGINE *e, const char *key_id, const char *desc);
-
 # ifndef OPENSSL_NO_DEPRECATED_3_6
 int get_legacy_pkey_id(OSSL_LIB_CTX *libctx, const char *algname, ENGINE *e);
 # endif
-const EVP_MD *get_digest_from_engine(const char *name);
-const EVP_CIPHER *get_cipher_from_engine(const char *name);
 
 # ifndef OPENSSL_NO_OCSP
 OCSP_RESPONSE *process_responder(OCSP_REQUEST *req, const char *host,
@@ -281,7 +271,7 @@ int pkey_ctrl_string(EVP_PKEY_CTX *ctx, const char *value);
 int x509_ctrl_string(X509 *x, const char *value);
 int x509_req_ctrl_string(X509_REQ *x, const char *value);
 int init_gen_str(EVP_PKEY_CTX **pctx,
-                 const char *algname, ENGINE *e, int do_param,
+                 const char *algname, int do_param,
                  OSSL_LIB_CTX *libctx, const char *propq);
 int cert_matches_key(const X509 *cert, const EVP_PKEY *pkey);
 int do_X509_sign(X509 *x, int force_v1, EVP_PKEY *pkey, const char *md,
diff --git a/apps/include/engine_loader.h b/apps/include/engine_loader.h
deleted file mode 100644 (file)
index 30fdb9e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright 2018-2022 The OpenSSL Project Authors. All Rights Reserved.
- *
- * Licensed under the Apache License 2.0 (the "License").  You may not use
- * this file except in compliance with the License.  You can obtain a copy
- * in the file LICENSE in the source distribution or at
- * https://www.openssl.org/source/license.html
- */
-#ifndef HEADER_ENGINE_LOADER_H
-# define HEADER_ENGINE_LOADER_H
-
-# include <openssl/store.h>
-
-/* this is a private URI scheme */
-# define ENGINE_SCHEME          "org.openssl.engine"
-# define ENGINE_SCHEME_COLON    ENGINE_SCHEME ":"
-
-int setup_engine_loader(void);
-void destroy_engine_loader(void);
-
-#endif
index d8d75182802d782316c9a2a610993fe547e234b6..bca6072dd5a1afb65ef3f531913351515d082ad6 100644 (file)
@@ -383,11 +383,10 @@ typedef struct string_int_pair_st {
 # define OPT_FMT_ASN1    (OPT_FMT_PEM | OPT_FMT_DER | OPT_FMT_B64)
 # define OPT_FMT_PDE     (OPT_FMT_PEMDER | OPT_FMT_ENGINE)
 # define OPT_FMT_PDS     (OPT_FMT_PEMDER | OPT_FMT_SMIME)
-# define OPT_FMT_ANY     ( \
-        OPT_FMT_PEM | OPT_FMT_DER | OPT_FMT_B64 | \
-        OPT_FMT_PKCS12 | OPT_FMT_SMIME |                     \
-        OPT_FMT_ENGINE | OPT_FMT_MSBLOB | OPT_FMT_NSS | \
-        OPT_FMT_TEXT | OPT_FMT_HTTP | OPT_FMT_PVK)
+# define OPT_FMT_ANY     (OPT_FMT_PEM | OPT_FMT_DER | OPT_FMT_B64 | \
+                         OPT_FMT_PKCS12 | OPT_FMT_SMIME | \
+                         OPT_FMT_MSBLOB | OPT_FMT_NSS | \
+                         OPT_FMT_TEXT | OPT_FMT_HTTP | OPT_FMT_PVK)
 
 /* Divide options into sections when displaying usage */
 #define OPT_SECTION(sec) { OPT_SECTION_STR, 1, '-', sec " options:\n" }
index 5a469eed9695dc3bc6e9ced7b06a1c25d0031a72..b3115d11d9d4f372b8e56ec0b7944017807d8fd4 100644 (file)
@@ -13,7 +13,7 @@
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_CONFIGDIR, OPT_ENGINESDIR, OPT_MODULESDIR, OPT_DSOEXT, OPT_DIRNAMESEP,
+    OPT_CONFIGDIR, OPT_MODULESDIR, OPT_DSOEXT, OPT_DIRNAMESEP,
     OPT_LISTSEP, OPT_SEEDS, OPT_CPUSETTINGS, OPT_WINDOWSCONTEXT
 } OPTION_CHOICE;
 
@@ -24,7 +24,6 @@ const OPTIONS info_options[] = {
 
     OPT_SECTION("Output"),
     {"configdir", OPT_CONFIGDIR, '-', "Default configuration file directory"},
-    {"enginesdir", OPT_ENGINESDIR, '-', "Default engine module directory"},
     {"modulesdir", OPT_MODULESDIR, '-',
      "Default module directory (other than engine modules)"},
     {"dsoext", OPT_DSOEXT, '-', "Configured extension for modules"},
@@ -58,10 +57,6 @@ opthelp:
             type = OPENSSL_INFO_CONFIG_DIR;
             dirty++;
             break;
-        case OPT_ENGINESDIR:
-            type = OPENSSL_INFO_ENGINES_DIR;
-            dirty++;
-            break;
         case OPT_MODULESDIR:
             type = OPENSSL_INFO_MODULES_DIR;
             dirty++;
index ffb5a07af63cfe9e2aa15ec52e3ab4e0b2a26154..6f1dd5eec7fe77fe79a5ede70c8a653ee19d1d02 100644 (file)
 # define _POSIX_C_SOURCE 2
 #endif
 
-#ifndef OPENSSL_NO_ENGINE
-/* We need to use some deprecated APIs */
-# define OPENSSL_SUPPRESS_DEPRECATED
-# include <openssl/engine.h>
-#endif
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -558,41 +552,33 @@ void clear_free(char *str)
 }
 
 EVP_PKEY *load_key(const char *uri, int format, int may_stdin,
-                   const char *pass, ENGINE *e, const char *desc)
+                   const char *pass, const char *desc)
 {
     EVP_PKEY *pkey = NULL;
-    char *allocated_uri = NULL;
 
     if (desc == NULL)
         desc = "private key";
 
-    if (format == FORMAT_ENGINE)
-        uri = allocated_uri = make_engine_uri(e, uri, desc);
     (void)load_key_certs_crls(uri, format, may_stdin, pass, desc, 0,
                               &pkey, NULL, NULL, NULL, NULL, NULL, NULL);
 
-    OPENSSL_free(allocated_uri);
     return pkey;
 }
 
 /* first try reading public key, on failure resort to loading private key */
 EVP_PKEY *load_pubkey(const char *uri, int format, int maybe_stdin,
-                      const char *pass, ENGINE *e, const char *desc)
+                      const char *pass, const char *desc)
 {
     EVP_PKEY *pkey = NULL;
-    char *allocated_uri = NULL;
 
     if (desc == NULL)
         desc = "public key";
 
-    if (format == FORMAT_ENGINE)
-        uri = allocated_uri = make_engine_uri(e, uri, desc);
     (void)load_key_certs_crls(uri, format, maybe_stdin, pass, desc, 1,
                               NULL, &pkey, NULL, NULL, NULL, NULL, NULL);
     if (pkey == NULL)
         (void)load_key_certs_crls(uri, format, maybe_stdin, pass, desc, 0,
                                   &pkey, NULL, NULL, NULL, NULL, NULL, NULL);
-    OPENSSL_free(allocated_uri);
     return pkey;
 }
 
index f0df60873401ff05524daaf01d7102b27c65bf0a..a781117264e8b4da9f3a49905b6d92db569b4848 100644 (file)
@@ -10,7 +10,7 @@ ENDIF
 # Source for libapps
 $LIBAPPSSRC=apps.c apps_ui.c log.c opt.c fmt.c s_cb.c s_socket.c app_rand.c \
         columns.c app_params.c names.c app_provider.c app_x509.c http_server.c \
-        engine.c engine_loader.c app_libctx.c apps_opt_printf.c
+        app_libctx.c apps_opt_printf.c
 
 IF[{- !$disabled{apps} -}]
   LIBS{noinst}=../libapps.a
diff --git a/apps/lib/engine.c b/apps/lib/engine.c
deleted file mode 100644 (file)
index 5d9b408..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright 2020-2025 The OpenSSL Project Authors. All Rights Reserved.
- *
- * Licensed under the Apache License 2.0 (the "License").  You may not use
- * this file except in compliance with the License.  You can obtain a copy
- * in the file LICENSE in the source distribution or at
- * https://www.openssl.org/source/license.html
- */
-
-/*
- * Here is a set of wrappers for the ENGINE API, which are no-ops when the
- * ENGINE API is disabled / removed.
- * We need to suppress deprecation warnings to make this work.
- */
-#define OPENSSL_SUPPRESS_DEPRECATED
-
-#include <string.h> /* strcmp */
-
-#include <openssl/types.h> /* Ensure we have the ENGINE type, regardless */
-#include <openssl/err.h>
-#ifndef OPENSSL_NO_ENGINE
-# include <openssl/engine.h>
-#endif
-#include "apps.h"
-
-#ifndef OPENSSL_NO_ENGINE
-/* Try to load an engine in a shareable library */
-static ENGINE *try_load_engine(const char *engine)
-{
-    ENGINE *e = NULL;
-
-    if ((e = ENGINE_by_id("dynamic")) != NULL) {
-        if (!ENGINE_ctrl_cmd_string(e, "SO_PATH", engine, 0)
-            || !ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0)) {
-            ENGINE_free(e);
-            e = NULL;
-        }
-    }
-    return e;
-}
-#endif
-
-ENGINE *setup_engine_methods(const char *id, unsigned int methods, int debug)
-{
-    ENGINE *e = NULL;
-
-#ifndef OPENSSL_NO_ENGINE
-    if (id != NULL) {
-        if (strcmp(id, "auto") == 0) {
-            BIO_printf(bio_err, "Enabling auto ENGINE support\n");
-            ENGINE_register_all_complete();
-            return NULL;
-        }
-        if ((e = ENGINE_by_id(id)) == NULL
-            && (e = try_load_engine(id)) == NULL) {
-            BIO_printf(bio_err, "Invalid engine \"%s\"\n", id);
-            ERR_print_errors(bio_err);
-            return NULL;
-        }
-        if (debug)
-            (void)ENGINE_ctrl(e, ENGINE_CTRL_SET_LOGSTREAM, 0, bio_err, 0);
-        if (!ENGINE_ctrl_cmd(e, "SET_USER_INTERFACE", 0,
-                             (void *)get_ui_method(), 0, 1)
-                || !ENGINE_set_default(e, methods)) {
-            BIO_printf(bio_err, "Cannot use engine \"%s\"\n", ENGINE_get_id(e));
-            ERR_print_errors(bio_err);
-            ENGINE_free(e);
-            return NULL;
-        }
-
-        BIO_printf(bio_err, "Engine \"%s\" set.\n", ENGINE_get_id(e));
-    }
-#endif
-    return e;
-}
-
-void release_engine(ENGINE *e)
-{
-#ifndef OPENSSL_NO_ENGINE
-    /* Free our "structural" reference. */
-    ENGINE_free(e);
-#endif
-}
-
-int init_engine(ENGINE *e)
-{
-    int rv = 1;
-
-#ifndef OPENSSL_NO_ENGINE
-    rv = ENGINE_init(e);
-#endif
-    return rv;
-}
-
-int finish_engine(ENGINE *e)
-{
-    int rv = 1;
-
-#ifndef OPENSSL_NO_ENGINE
-    rv = ENGINE_finish(e);
-#endif
-    return rv;
-}
-
-char *make_engine_uri(ENGINE *e, const char *key_id, const char *desc)
-{
-    char *new_uri = NULL;
-
-#ifndef OPENSSL_NO_ENGINE
-    if (e == NULL) {
-        BIO_printf(bio_err, "No engine specified for loading %s\n", desc);
-    } else if (key_id == NULL) {
-        BIO_printf(bio_err, "No engine key id specified for loading %s\n", desc);
-    } else {
-        const char *engineid = ENGINE_get_id(e);
-        size_t uri_sz =
-            sizeof(ENGINE_SCHEME_COLON) - 1
-            + strlen(engineid)
-            + 1 /* : */
-            + strlen(key_id)
-            + 1 /* \0 */
-            ;
-
-        new_uri = OPENSSL_malloc(uri_sz);
-        if (new_uri != NULL) {
-            OPENSSL_strlcpy(new_uri, ENGINE_SCHEME_COLON, uri_sz);
-            OPENSSL_strlcat(new_uri, engineid, uri_sz);
-            OPENSSL_strlcat(new_uri, ":", uri_sz);
-            OPENSSL_strlcat(new_uri, key_id, uri_sz);
-        }
-    }
-#else
-    BIO_printf(bio_err, "Engines not supported for loading %s\n", desc);
-#endif
-    return new_uri;
-}
-
-#ifndef OPENSSL_NO_DEPRECATED_3_6
-int get_legacy_pkey_id(OSSL_LIB_CTX *libctx, const char *algname, ENGINE *e)
-{
-    const EVP_PKEY_ASN1_METHOD *ameth;
-    ENGINE *tmpeng = NULL;
-    int pkey_id = NID_undef;
-
-    ERR_set_mark();
-    ameth = EVP_PKEY_asn1_find_str(&tmpeng, algname, -1);
-
-#if !defined(OPENSSL_NO_ENGINE)
-    ENGINE_finish(tmpeng);
-
-    if (ameth == NULL && e != NULL)
-        ameth = ENGINE_get_pkey_asn1_meth_str(e, algname, -1);
-    else
-#endif
-    /* We're only interested if it comes from an ENGINE */
-    if (tmpeng == NULL)
-        ameth = NULL;
-
-    ERR_pop_to_mark();
-    if (ameth == NULL)
-        return NID_undef;
-
-    EVP_PKEY_asn1_get0_info(&pkey_id, NULL, NULL, NULL, NULL, ameth);
-
-    return pkey_id;
-}
-#endif
-
-const EVP_MD *get_digest_from_engine(const char *name)
-{
-#ifndef OPENSSL_NO_ENGINE
-    ENGINE *eng;
-
-    eng = ENGINE_get_digest_engine(OBJ_sn2nid(name));
-    if (eng != NULL) {
-        ENGINE_finish(eng);
-        return EVP_get_digestbyname(name);
-    }
-#endif
-    return NULL;
-}
-
-const EVP_CIPHER *get_cipher_from_engine(const char *name)
-{
-#ifndef OPENSSL_NO_ENGINE
-    ENGINE *eng;
-
-    eng = ENGINE_get_cipher_engine(OBJ_sn2nid(name));
-    if (eng != NULL) {
-        ENGINE_finish(eng);
-        return EVP_get_cipherbyname(name);
-    }
-#endif
-    return NULL;
-}
diff --git a/apps/lib/engine_loader.c b/apps/lib/engine_loader.c
deleted file mode 100644 (file)
index e0f26f6..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright 2018-2022 The OpenSSL Project Authors. All Rights Reserved.
- *
- * Licensed under the Apache License 2.0 (the "License").  You may not use
- * this file except in compliance with the License.  You can obtain a copy
- * in the file LICENSE in the source distribution or at
- * https://www.openssl.org/source/license.html
- */
-
-/*
- * Here is an STORE loader for ENGINE backed keys.  It relies on deprecated
- * functions, and therefore need to have deprecation warnings suppressed.
- * This file is not compiled at all in a '--api=3 no-deprecated' configuration.
- */
-#define OPENSSL_SUPPRESS_DEPRECATED
-
-#include "internal/e_os.h"
-#include "apps.h"
-
-#ifndef OPENSSL_NO_ENGINE
-
-# include <stdarg.h>
-# include <string.h>
-# include <openssl/engine.h>
-# include <openssl/store.h>
-
-/*
- * Support for legacy private engine keys via the 'org.openssl.engine:' scheme
- *
- * org.openssl.engine:{engineid}:{keyid}
- *
- * Note: we ONLY support ENGINE_load_private_key() and ENGINE_load_public_key()
- * Note 2: This scheme has a precedent in code in PKIX-SSH. for exactly
- * this sort of purpose.
- */
-
-/* Local definition of OSSL_STORE_LOADER_CTX */
-struct ossl_store_loader_ctx_st {
-    ENGINE *e;                   /* Structural reference */
-    char *keyid;
-    int expected;
-    int loaded;                  /* 0 = key not loaded yet, 1 = key loaded */
-};
-
-static OSSL_STORE_LOADER_CTX *OSSL_STORE_LOADER_CTX_new(ENGINE *e, char *keyid)
-{
-    OSSL_STORE_LOADER_CTX *ctx = OPENSSL_zalloc(sizeof(*ctx));
-
-    if (ctx != NULL) {
-        ctx->e = e;
-        ctx->keyid = keyid;
-    }
-    return ctx;
-}
-
-static void OSSL_STORE_LOADER_CTX_free(OSSL_STORE_LOADER_CTX *ctx)
-{
-    if (ctx != NULL) {
-        ENGINE_free(ctx->e);
-        OPENSSL_free(ctx->keyid);
-        OPENSSL_free(ctx);
-    }
-}
-
-static OSSL_STORE_LOADER_CTX *engine_open(const OSSL_STORE_LOADER *loader,
-                                          const char *uri,
-                                          const UI_METHOD *ui_method,
-                                          void *ui_data)
-{
-    const char *p = uri, *q;
-    ENGINE *e = NULL;
-    char *keyid = NULL;
-    OSSL_STORE_LOADER_CTX *ctx = NULL;
-
-    if (!CHECK_AND_SKIP_CASE_PREFIX(p, ENGINE_SCHEME_COLON))
-        return NULL;
-
-    /* Look for engine ID */
-    q = strchr(p, ':');
-    if (q != NULL                /* There is both an engine ID and a key ID */
-        && p[0] != ':'           /* The engine ID is at least one character */
-        && q[1] != '\0') {       /* The key ID is at least one character */
-        char engineid[256];
-        size_t engineid_l = q - p;
-
-        strncpy(engineid, p, engineid_l);
-        engineid[engineid_l] = '\0';
-        e = ENGINE_by_id(engineid);
-
-        keyid = OPENSSL_strdup(q + 1);
-    }
-
-    if (e != NULL && keyid != NULL)
-        ctx = OSSL_STORE_LOADER_CTX_new(e, keyid);
-
-    if (ctx == NULL) {
-        OPENSSL_free(keyid);
-        ENGINE_free(e);
-    }
-
-    return ctx;
-}
-
-static int engine_expect(OSSL_STORE_LOADER_CTX *ctx, int expected)
-{
-    if (expected == 0
-        || expected == OSSL_STORE_INFO_PUBKEY
-        || expected == OSSL_STORE_INFO_PKEY) {
-        ctx->expected = expected;
-        return 1;
-    }
-    return 0;
-}
-
-static OSSL_STORE_INFO *engine_load(OSSL_STORE_LOADER_CTX *ctx,
-                                    const UI_METHOD *ui_method, void *ui_data)
-{
-    EVP_PKEY *pkey = NULL, *pubkey = NULL;
-    OSSL_STORE_INFO *info = NULL;
-
-    if (ctx->loaded == 0) {
-        if (ENGINE_init(ctx->e)) {
-            if (ctx->expected == 0
-                || ctx->expected == OSSL_STORE_INFO_PKEY)
-                pkey =
-                    ENGINE_load_private_key(ctx->e, ctx->keyid,
-                                            (UI_METHOD *)ui_method, ui_data);
-            if ((pkey == NULL && ctx->expected == 0)
-                || ctx->expected == OSSL_STORE_INFO_PUBKEY)
-                pubkey =
-                    ENGINE_load_public_key(ctx->e, ctx->keyid,
-                                           (UI_METHOD *)ui_method, ui_data);
-            ENGINE_finish(ctx->e);
-        }
-    }
-
-    ctx->loaded = 1;
-
-    if (pubkey != NULL)
-        info = OSSL_STORE_INFO_new_PUBKEY(pubkey);
-    else if (pkey != NULL)
-        info = OSSL_STORE_INFO_new_PKEY(pkey);
-    if (info == NULL) {
-        EVP_PKEY_free(pkey);
-        EVP_PKEY_free(pubkey);
-    }
-    return info;
-}
-
-static int engine_eof(OSSL_STORE_LOADER_CTX *ctx)
-{
-    return ctx->loaded != 0;
-}
-
-static int engine_error(OSSL_STORE_LOADER_CTX *ctx)
-{
-    return 0;
-}
-
-static int engine_close(OSSL_STORE_LOADER_CTX *ctx)
-{
-    OSSL_STORE_LOADER_CTX_free(ctx);
-    return 1;
-}
-
-int setup_engine_loader(void)
-{
-    OSSL_STORE_LOADER *loader = NULL;
-
-    if ((loader = OSSL_STORE_LOADER_new(NULL, ENGINE_SCHEME)) == NULL
-        || !OSSL_STORE_LOADER_set_open(loader, engine_open)
-        || !OSSL_STORE_LOADER_set_expect(loader, engine_expect)
-        || !OSSL_STORE_LOADER_set_load(loader, engine_load)
-        || !OSSL_STORE_LOADER_set_eof(loader, engine_eof)
-        || !OSSL_STORE_LOADER_set_error(loader, engine_error)
-        || !OSSL_STORE_LOADER_set_close(loader, engine_close)
-        || !OSSL_STORE_register_loader(loader)) {
-        OSSL_STORE_LOADER_free(loader);
-        loader = NULL;
-    }
-
-    return loader != NULL;
-}
-
-void destroy_engine_loader(void)
-{
-    OSSL_STORE_LOADER *loader = OSSL_STORE_unregister_loader(ENGINE_SCHEME);
-    OSSL_STORE_LOADER_free(loader);
-}
-
-#else  /* !OPENSSL_NO_ENGINE */
-
-int setup_engine_loader(void)
-{
-    return 0;
-}
-
-void destroy_engine_loader(void)
-{
-}
-
-#endif
index 496cb3c6f1684f78f4eb4debf8884c31a679c752..5518419e9f6913f95e404b993e423f8176dbebd0 100644 (file)
@@ -1125,10 +1125,10 @@ int load_excert(SSL_EXCERT **pexc)
             return 0;
         if (exc->keyfile != NULL) {
             exc->key = load_key(exc->keyfile, exc->keyform,
-                                0, NULL, NULL, "server key");
+                                0, NULL, "server key");
         } else {
             exc->key = load_key(exc->certfile, exc->certform,
-                                0, NULL, NULL, "server key");
+                                0, NULL, "server key");
         }
         if (exc->key == NULL)
             return 0;
index 2aeedbbda8959c9f2fe4558ed72ef91c3613d214..9e3e65e77d41cd925c2942ece62e1cafae5615d9 100644 (file)
@@ -1181,7 +1181,7 @@ static int is_md_available(const char *name)
         return 1;
     }
 
-    return propq != NULL || get_digest_from_engine(name) == NULL ? 0 : 1;
+    return 0;
 }
 
 static int is_cipher_available(const char *name)
@@ -1198,7 +1198,7 @@ static int is_cipher_available(const char *name)
         return 1;
     }
 
-    return propq != NULL || get_cipher_from_engine(name) == NULL ? 0 : 1;
+    return 0;
 }
 
 static void list_type(FUNC_TYPE ft, int one)
@@ -1443,24 +1443,6 @@ static void list_provider_info(void)
     sk_OSSL_PROVIDER_free(providers);
 }
 
-#ifndef OPENSSL_NO_DEPRECATED_3_0
-static void list_engines(void)
-{
-# ifndef OPENSSL_NO_ENGINE
-    ENGINE *e;
-
-    BIO_puts(bio_out, "Engines:\n");
-    e = ENGINE_get_first();
-    while (e) {
-        BIO_printf(bio_out, "%s\n", ENGINE_get_id(e));
-        e = ENGINE_get_next(e);
-    }
-# else
-    BIO_puts(bio_out, "Engine support is disabled.\n");
-# endif
-}
-#endif
-
 static void list_disabled(void)
 {
     BIO_puts(bio_out, "Disabled algorithms:\n");
@@ -1521,9 +1503,6 @@ static void list_disabled(void)
 #ifdef OPENSSL_NO_EC2M
     BIO_puts(bio_out, "EC2M\n");
 #endif
-#if defined(OPENSSL_NO_ENGINE) && !defined(OPENSSL_NO_DEPRECATED_3_0)
-    BIO_puts(bio_out, "ENGINE\n");
-#endif
 #ifdef OPENSSL_NO_GOST
     BIO_puts(bio_out, "GOST\n");
 #endif
@@ -1639,9 +1618,6 @@ typedef enum HELPLIST_CHOICE {
 # if !defined(OPENSSL_NO_TLS1_3)
     OPT_TLS1_3,
 # endif
-#endif
-#ifndef OPENSSL_NO_DEPRECATED_3_0
-    OPT_ENGINES,
 #endif
     OPT_PROV_ENUM
 } HELPLIST_CHOICE;
@@ -1714,10 +1690,6 @@ const OPTIONS list_options[] = {
 #endif
     {"providers", OPT_PROVIDER_INFO, '-',
      "List of provider information"},
-#ifndef OPENSSL_NO_DEPRECATED_3_0
-    {"engines", OPT_ENGINES, '-',
-     "List of loaded engines"},
-#endif
     {"disabled", OPT_DISABLED, '-', "List of disabled features"},
     {"options", OPT_OPTIONS, 's',
      "List options for specified command"},
@@ -1767,9 +1739,6 @@ int list_main(int argc, char **argv)
         unsigned int pk_method:1;
         unsigned int store_loaders:1;
         unsigned int provider_info:1;
-#ifndef OPENSSL_NO_DEPRECATED_3_0
-        unsigned int engines:1;
-#endif
         unsigned int disabled:1;
         unsigned int objects:1;
         unsigned int options:1;
@@ -1879,11 +1848,6 @@ opthelp:
         case OPT_PROVIDER_INFO:
             todo.provider_info = 1;
             break;
-#ifndef OPENSSL_NO_DEPRECATED_3_0
-        case OPT_ENGINES:
-            todo.engines = 1;
-            break;
-#endif
         case OPT_DISABLED:
             todo.disabled = 1;
             break;
@@ -1997,10 +1961,6 @@ opthelp:
         MAYBE_ADD_NL(list_store_loaders());
     if (todo.provider_info)
         MAYBE_ADD_NL(list_provider_info());
-#ifndef OPENSSL_NO_DEPRECATED_3_0
-    if (todo.engines)
-        MAYBE_ADD_NL(list_engines());
-#endif
     if (todo.disabled)
         MAYBE_ADD_NL(list_disabled());
     if (todo.objects)
index 95a95f56cb99aa317c0118fb844d0ca78799dd07..d1a936c7eb4b15c70eac6afe9fe5049669869fc7 100644 (file)
@@ -598,7 +598,7 @@ int ocsp_main(int argc, char **argv)
             BIO_printf(bio_err, "Error getting password\n");
             goto end;
         }
-        rkey = load_key(rkeyfile, FORMAT_UNDEF, 0, passin, NULL,
+        rkey = load_key(rkeyfile, FORMAT_UNDEF, 0, passin,
                         "responder private key");
         if (rkey == NULL)
             goto end;
@@ -694,7 +694,7 @@ redo_accept:
                             "signer certificates"))
                 goto end;
         }
-        key = load_key(keyfile, FORMAT_UNDEF, 0, NULL, NULL,
+        key = load_key(keyfile, FORMAT_UNDEF, 0, NULL,
                        "signer private key");
         if (key == NULL)
             goto end;
index 768291e4ee874345024b21a77160800fc97efb78..9c02c1c7ec366a57fbe9e16094024e073a0e225a 100644 (file)
@@ -311,7 +311,6 @@ default_tsa = tsa_config1   # the default TSA section
 # These are used by the TSA reply generation only.
 dir            = sys\$disk:[.demoCA            # TSA root directory
 serial         = $dir]tsaserial.       # The current serial number (mandatory)
-crypto_device  = builtin               # OpenSSL engine to use for signing
 signer_cert    = $dir/tsacert.pem      # The TSA signing certificate
                                        # (optional)
 certs          = $dir.cacert.pem]      # Certificate chain to include in reply
index cc9932ca4306d8becdbb2d06935a02961489a100..b7f2f9982a2c445d8aecba44967e61ab7ad01f73 100644 (file)
@@ -20,9 +20,6 @@
 #include <openssl/x509.h>
 #include <openssl/pem.h>
 #include <openssl/ssl.h>
-#ifndef OPENSSL_NO_ENGINE
-# include <openssl/engine.h>
-#endif
 #include <openssl/err.h>
 /* Needed to get the other O_xxx flags. */
 #ifdef OPENSSL_SYS_VMS
@@ -65,12 +62,10 @@ static int apps_startup(void)
 #endif
 
     /* Set non-default library initialisation settings */
-    if (!OPENSSL_init_ssl(OPENSSL_INIT_ENGINE_ALL_BUILTIN
-                          | OPENSSL_INIT_LOAD_CONFIG, NULL))
+    if (!OPENSSL_init_ssl(OPENSSL_INIT_LOAD_CONFIG, NULL))
         return 0;
 
     (void)setup_ui_method();
-    (void)setup_engine_loader();
 
     /*
      * NOTE: This is an undocumented feature required for testing only.
@@ -92,7 +87,6 @@ static void apps_shutdown(void)
 {
     app_providers_cleanup();
     OSSL_LIB_CTX_free(app_get0_libctx());
-    destroy_engine_loader();
     destroy_ui_method();
 }
 
index abace0ea7f1c6aa2a8fa628c3672fc044c0c7b35..4db6a549b1fa644c77c3a9a398ed1b270c27aee7 100644 (file)
@@ -311,7 +311,6 @@ default_tsa = tsa_config1   # the default TSA section
 # These are used by the TSA reply generation only.
 dir            = ./demoCA              # TSA root directory
 serial         = $dir/tsaserial        # The current serial number (mandatory)
-crypto_device  = builtin               # OpenSSL engine to use for signing
 signer_cert    = $dir/tsacert.pem      # The TSA signing certificate
                                        # (optional)
 certs          = $dir/cacert.pem       # Certificate chain to include in reply
index 9964faf21aae647a51944e11535482deeff07082..7620edd69abf200c529346ab35fa32aa4fc01178 100644 (file)
@@ -69,7 +69,7 @@ typedef enum OPTION_choice {
     OPT_INKEY, OPT_CERTFILE, OPT_UNTRUSTED, OPT_PASSCERTS,
     OPT_NAME, OPT_CSP, OPT_CANAME,
     OPT_IN, OPT_OUT, OPT_PASSIN, OPT_PASSOUT, OPT_PASSWORD, OPT_CAPATH,
-    OPT_CAFILE, OPT_CASTORE, OPT_NOCAPATH, OPT_NOCAFILE, OPT_NOCASTORE, OPT_ENGINE,
+    OPT_CAFILE, OPT_CASTORE, OPT_NOCAPATH, OPT_NOCAFILE, OPT_NOCASTORE,
     OPT_R_ENUM, OPT_PROV_ENUM, OPT_JDKTRUST, OPT_PBMAC1_PBKDF2, OPT_PBMAC1_PBKDF2_MD,
 #ifndef OPENSSL_NO_DES
     OPT_LEGACY_ALG
@@ -96,9 +96,6 @@ const OPTIONS pkcs12_options[] = {
      "Use legacy encryption: 3DES_CBC for keys, RC2_CBC for certs"
 # endif
     },
-#endif
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
 #endif
     OPT_PROV_OPTIONS,
     OPT_R_OPTIONS,
@@ -183,7 +180,6 @@ int pkcs12_main(int argc, char **argv)
     char *cpass = NULL, *mpass = NULL, *badpass = NULL;
     const char *CApath = NULL, *CAfile = NULL, *CAstore = NULL, *prog;
     int noCApath = 0, noCAfile = 0, noCAstore = 0;
-    ENGINE *e = NULL;
     BIO *in = NULL, *out = NULL;
     PKCS12 *p12 = NULL;
     STACK_OF(OPENSSL_STRING) *canames = NULL;
@@ -364,9 +360,6 @@ int pkcs12_main(int argc, char **argv)
         case OPT_NOCAFILE:
             noCAfile = 1;
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
 #ifndef OPENSSL_NO_DES
         case OPT_LEGACY_ALG:
             use_legacy = 1;
@@ -557,7 +550,7 @@ int pkcs12_main(int argc, char **argv)
 
         if (!(options & NOKEYS)) {
             key = load_key(keyname ? keyname : infile,
-                           FORMAT_PEM, 1, passin, e,
+                           FORMAT_PEM, 1, passin,
                            keyname ?
                            "private key from -inkey file" :
                            "private key from -in file");
@@ -904,7 +897,6 @@ int pkcs12_main(int argc, char **argv)
     ret = 0;
  end:
     PKCS12_free(p12);
-    release_engine(e);
     BIO_free(in);
     BIO_free_all(out);
     sk_OPENSSL_STRING_free(canames);
index 57cb517b178f8386b8568c4e7ab2dffef303480d..90659334b8365f3f1f575dfcdb9b63d0fa7710ee 100644 (file)
@@ -24,15 +24,12 @@ typedef enum OPTION_choice {
     OPT_COMMON,
     OPT_INFORM, OPT_OUTFORM, OPT_IN, OPT_OUT, OPT_NOOUT,
     OPT_TEXT, OPT_PRINT, OPT_PRINT_CERTS, OPT_QUIET,
-    OPT_ENGINE, OPT_PROV_ENUM
+    OPT_PROV_ENUM
 } OPTION_CHOICE;
 
 const OPTIONS pkcs7_options[] = {
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Input"),
     {"in", OPT_IN, '<', "Input file"},
@@ -55,7 +52,6 @@ const OPTIONS pkcs7_options[] = {
 
 int pkcs7_main(int argc, char **argv)
 {
-    ENGINE *e = NULL;
     PKCS7 *p7 = NULL, *p7i;
     BIO *in = NULL, *out = NULL;
     int informat = FORMAT_PEM, outformat = FORMAT_PEM;
@@ -105,9 +101,6 @@ int pkcs7_main(int argc, char **argv)
         case OPT_QUIET:
             quiet = 1;
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_PROV_CASES:
             if (!opt_provider(o))
                 goto end;
@@ -217,7 +210,6 @@ int pkcs7_main(int argc, char **argv)
     ret = 0;
  end:
     PKCS7_free(p7);
-    release_engine(e);
     BIO_free(in);
     BIO_free_all(out);
     return ret;
index 4ba81fe08b839295ca3cd8de306fb1829e9c3689..4876ce502a81972661fde89bfb92073c8b12cc30 100644 (file)
@@ -22,7 +22,7 @@
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_INFORM, OPT_OUTFORM, OPT_ENGINE, OPT_IN, OPT_OUT,
+    OPT_INFORM, OPT_OUTFORM, OPT_IN, OPT_OUT,
     OPT_TOPK8, OPT_NOITER, OPT_NOCRYPT,
 #ifndef OPENSSL_NO_SCRYPT
     OPT_SCRYPT, OPT_SCRYPT_N, OPT_SCRYPT_R, OPT_SCRYPT_P,
@@ -36,9 +36,6 @@ typedef enum OPTION_choice {
 const OPTIONS pkcs8_options[] = {
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
     {"v1", OPT_V1, 's', "Use PKCS#5 v1.5 and cipher"},
     {"v2", OPT_V2, 's', "Use PKCS#5 v2.0 and cipher"},
     {"v2prf", OPT_V2PRF, 's', "Set the PRF algorithm to use with PKCS#5 v2.0"},
@@ -75,7 +72,6 @@ const OPTIONS pkcs8_options[] = {
 int pkcs8_main(int argc, char **argv)
 {
     BIO *in = NULL, *out = NULL;
-    ENGINE *e = NULL;
     EVP_PKEY *pkey = NULL;
     PKCS8_PRIV_KEY_INFO *p8inf = NULL;
     X509_SIG *p8 = NULL;
@@ -171,9 +167,6 @@ int pkcs8_main(int argc, char **argv)
         case OPT_PASSOUT:
             passoutarg = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
 #ifndef OPENSSL_NO_SCRYPT
         case OPT_SCRYPT:
             scrypt_N = 16384;
@@ -229,7 +222,7 @@ int pkcs8_main(int argc, char **argv)
         goto end;
 
     if (topk8) {
-        pkey = load_key(infile, informat, 1, passin, e, "key");
+        pkey = load_key(infile, informat, 1, passin, "key");
         if (pkey == NULL)
             goto end;
         if ((p8inf = EVP_PKEY2PKCS8(pkey)) == NULL) {
@@ -382,7 +375,6 @@ int pkcs8_main(int argc, char **argv)
     PKCS8_PRIV_KEY_INFO_free(p8inf);
     EVP_PKEY_free(pkey);
     EVP_CIPHER_free(cipher);
-    release_engine(e);
     BIO_free_all(out);
     BIO_free(in);
     OPENSSL_free(passin);
index a876326e2b73f303f40a0ec8c08497cf7024ffbf..58a59c4600a2c8bf4c849482ea0c1a10e3b945bb 100644 (file)
@@ -19,7 +19,7 @@
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_INFORM, OPT_OUTFORM, OPT_PASSIN, OPT_PASSOUT, OPT_ENGINE,
+    OPT_INFORM, OPT_OUTFORM, OPT_PASSIN, OPT_PASSOUT,
     OPT_IN, OPT_OUT, OPT_PUBIN, OPT_PUBOUT, OPT_TEXT_PUB,
     OPT_TEXT, OPT_NOOUT, OPT_CIPHER, OPT_TRADITIONAL, OPT_CHECK, OPT_PUB_CHECK,
     OPT_EC_PARAM_ENC, OPT_EC_CONV_FORM,
@@ -29,9 +29,6 @@ typedef enum OPTION_choice {
 const OPTIONS pkey_options[] = {
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
     OPT_PROV_OPTIONS,
 
     {"check", OPT_CHECK, '-', "Check key consistency"},
@@ -68,7 +65,6 @@ const OPTIONS pkey_options[] = {
 int pkey_main(int argc, char **argv)
 {
     BIO *out = NULL;
-    ENGINE *e = NULL;
     EVP_PKEY *pkey = NULL;
     EVP_PKEY_CTX *ctx = NULL;
     EVP_CIPHER *cipher = NULL;
@@ -110,9 +106,6 @@ int pkey_main(int argc, char **argv)
         case OPT_PASSOUT:
             passoutarg = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_IN:
             infile = opt_arg();
             break;
@@ -209,9 +202,9 @@ int pkey_main(int argc, char **argv)
     }
 
     if (pubin)
-        pkey = load_pubkey(infile, informat, 1, passin, e, "Public Key");
+        pkey = load_pubkey(infile, informat, 1, passin, "Public Key");
     else
-        pkey = load_key(infile, informat, 1, passin, e, "key");
+        pkey = load_key(infile, informat, 1, passin, "key");
     if (pkey == NULL)
         goto end;
 
@@ -242,7 +235,7 @@ int pkey_main(int argc, char **argv)
     if (check || pub_check) {
         int r;
 
-        ctx = EVP_PKEY_CTX_new(pkey, e);
+        ctx = EVP_PKEY_CTX_new(pkey, NULL);
         if (ctx == NULL) {
             ERR_print_errors(bio_err);
             goto end;
@@ -327,7 +320,6 @@ int pkey_main(int argc, char **argv)
     EVP_PKEY_CTX_free(ctx);
     EVP_PKEY_free(pkey);
     EVP_CIPHER_free(cipher);
-    release_engine(e);
     BIO_free_all(out);
     OPENSSL_free(passin);
     OPENSSL_free(passout);
index fd8de0e02fe91b28bbcf82ce86af79fbc7aa5725..a35ad3e3b3e8f20ecdac2e23dbef4685527da204 100644 (file)
 typedef enum OPTION_choice {
     OPT_COMMON,
     OPT_IN, OPT_OUT, OPT_TEXT, OPT_NOOUT,
-    OPT_ENGINE, OPT_CHECK,
+    OPT_CHECK,
     OPT_PROV_ENUM
 } OPTION_CHOICE;
 
 const OPTIONS pkeyparam_options[] = {
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
     {"check", OPT_CHECK, '-', "Check key param consistency"},
 
     OPT_SECTION("Input"),
@@ -45,7 +42,6 @@ const OPTIONS pkeyparam_options[] = {
 
 int pkeyparam_main(int argc, char **argv)
 {
-    ENGINE *e = NULL;
     BIO *in = NULL, *out = NULL;
     EVP_PKEY *pkey = NULL;
     EVP_PKEY_CTX *ctx = NULL;
@@ -71,9 +67,6 @@ int pkeyparam_main(int argc, char **argv)
         case OPT_OUT:
             outfile = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_TEXT:
             text = 1;
             break;
@@ -109,11 +102,8 @@ int pkeyparam_main(int argc, char **argv)
         goto end;
 
     if (check) {
-        if (e == NULL)
-            ctx = EVP_PKEY_CTX_new_from_pkey(app_get0_libctx(), pkey,
-                                             app_get0_propq());
-        else
-            ctx = EVP_PKEY_CTX_new(pkey, e);
+        ctx = EVP_PKEY_CTX_new_from_pkey(app_get0_libctx(), pkey,
+                                         app_get0_propq());
         if (ctx == NULL) {
             ERR_print_errors(bio_err);
             goto end;
@@ -145,7 +135,6 @@ int pkeyparam_main(int argc, char **argv)
  end:
     EVP_PKEY_CTX_free(ctx);
     EVP_PKEY_free(pkey);
-    release_engine(e);
     BIO_free_all(out);
     BIO_free(in);
 
index 900af11c38b5de49be3bd563986fb25c3334603b..7a5f9987bc77d7309c57709fcdf789f3008a6648 100644 (file)
 
 static EVP_PKEY *get_pkey(const char *kdfalg,
                           const char *keyfile, int keyform, int key_type,
-                          char *passinarg, int pkey_op, ENGINE *e);
+                          char *passinarg, int pkey_op);
 static EVP_PKEY_CTX *init_ctx(const char *kdfalg, int *pkeysize,
-                              int pkey_op, ENGINE *e,
-                              const int engine_impl, int rawin,
+                              int pkey_op, int rawin,
                               EVP_PKEY *pkey /* ownership is passed to ctx */,
                               EVP_MD_CTX *mctx, const char *digestname,
                               const char *kemop, OSSL_LIB_CTX *libctx, const char *propq);
 
-static int setup_peer(EVP_PKEY_CTX *ctx, int peerform, const char *file,
-                      ENGINE *e);
+static int setup_peer(EVP_PKEY_CTX *ctx, int peerform, const char *file);
 
 static int do_keyop(EVP_PKEY_CTX *ctx, int pkey_op,
                     unsigned char *out, size_t *poutlen,
@@ -56,7 +54,7 @@ static int only_nomd(EVP_PKEY *pkey)
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_ENGINE, OPT_ENGINE_IMPL, OPT_IN, OPT_OUT,
+    OPT_IN, OPT_OUT,
     OPT_PUBIN, OPT_CERTIN, OPT_ASN1PARSE, OPT_HEXDUMP, OPT_SIGN,
     OPT_VERIFY, OPT_VERIFYRECOVER, OPT_REV, OPT_ENCRYPT, OPT_DECRYPT,
     OPT_DERIVE, OPT_SIGFILE, OPT_INKEY, OPT_PEERKEY, OPT_PASSIN,
@@ -70,11 +68,6 @@ typedef enum OPTION_choice {
 const OPTIONS pkeyutl_options[] = {
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-    {"engine_impl", OPT_ENGINE_IMPL, '-',
-     "Also use engine given by -engine for crypto operations"},
-#endif
     {"sign", OPT_SIGN, '-', "Sign input data with private key"},
     {"verify", OPT_VERIFY, '-', "Verify with public key"},
     {"encrypt", OPT_ENCRYPT, '-', "Encrypt input data with public key"},
@@ -90,7 +83,7 @@ const OPTIONS pkeyutl_options[] = {
     {"pubin", OPT_PUBIN, '-', "Input key is a public key"},
     {"passin", OPT_PASSIN, 's', "Input file pass phrase source"},
     {"peerkey", OPT_PEERKEY, 's', "Peer key file used in key derivation"},
-    {"peerform", OPT_PEERFORM, 'E', "Peer key format (DER/PEM/P12/ENGINE)"},
+    {"peerform", OPT_PEERFORM, 'E', "Peer key format (DER/PEM/P12)"},
     {"certin", OPT_CERTIN, '-', "Input is a cert with a public key"},
     {"rev", OPT_REV, '-', "Reverse the order of the input buffer"},
     {"sigfile", OPT_SIGFILE, '<', "Signature file (verify operation only)"},
@@ -126,7 +119,6 @@ int pkeyutl_main(int argc, char **argv)
 {
     CONF *conf = NULL;
     BIO *in = NULL, *out = NULL, *secout = NULL;
-    ENGINE *e = NULL;
     EVP_PKEY_CTX *ctx = NULL;
     EVP_PKEY *pkey = NULL;
     char *infile = NULL, *outfile = NULL, *secoutfile = NULL, *sigfile = NULL, *passinarg = NULL;
@@ -136,7 +128,6 @@ int pkeyutl_main(int argc, char **argv)
     int buf_inlen = 0, siglen = -1;
     int keyform = FORMAT_UNDEF, peerform = FORMAT_UNDEF;
     int keysize = -1, pkey_op = EVP_PKEY_OP_SIGN, key_type = KEY_PRIVKEY;
-    int engine_impl = 0;
     int ret = 1, rv = -1;
     size_t buf_outlen = 0, secretlen = 0;
     const char *inkey = NULL;
@@ -175,9 +166,6 @@ int pkeyutl_main(int argc, char **argv)
         case OPT_SIGFILE:
             sigfile = opt_arg();
             break;
-        case OPT_ENGINE_IMPL:
-            engine_impl = 1;
-            break;
         case OPT_INKEY:
             inkey = opt_arg();
             break;
@@ -208,9 +196,6 @@ int pkeyutl_main(int argc, char **argv)
             if (!opt_provider(o))
                 goto end;
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_PUBIN:
             key_type = KEY_PUBKEY;
             break;
@@ -317,7 +302,7 @@ int pkeyutl_main(int argc, char **argv)
         goto opthelp;
     }
 
-    pkey = get_pkey(kdfalg, inkey, keyform, key_type, passinarg, pkey_op, e);
+    pkey = get_pkey(kdfalg, inkey, keyform, key_type, passinarg, pkey_op);
     if (key_type != KEY_NONE && pkey == NULL) {
         BIO_printf(bio_err, "%s: Error loading key\n", prog);
         goto end;
@@ -357,13 +342,13 @@ int pkeyutl_main(int argc, char **argv)
             goto end;
         }
     }
-    ctx = init_ctx(kdfalg, &keysize, pkey_op, e, engine_impl, rawin, pkey,
+    ctx = init_ctx(kdfalg, &keysize, pkey_op, rawin, pkey,
                    mctx, digestname, kemop, libctx, app_get0_propq());
     if (ctx == NULL) {
         BIO_printf(bio_err, "%s: Error initializing context\n", prog);
         goto end;
     }
-    if (peerkey != NULL && !setup_peer(ctx, peerform, peerkey, e)) {
+    if (peerkey != NULL && !setup_peer(ctx, peerform, peerkey)) {
         BIO_printf(bio_err, "%s: Error setting up peer key\n", prog);
         goto end;
     }
@@ -601,7 +586,6 @@ int pkeyutl_main(int argc, char **argv)
     EVP_PKEY_CTX_free(ctx);
     EVP_PKEY_free(pkey);
     EVP_MD_free(md);
-    release_engine(e);
     BIO_free(in);
     BIO_free_all(out);
     BIO_free_all(secout);
@@ -617,7 +601,7 @@ int pkeyutl_main(int argc, char **argv)
 
 static EVP_PKEY *get_pkey(const char *kdfalg,
                           const char *keyfile, int keyform, int key_type,
-                          char *passinarg, int pkey_op, ENGINE *e)
+                          char *passinarg, int pkey_op)
 {
     EVP_PKEY *pkey = NULL;
     char *passin = NULL;
@@ -635,11 +619,11 @@ static EVP_PKEY *get_pkey(const char *kdfalg,
     }
     switch (key_type) {
     case KEY_PRIVKEY:
-        pkey = load_key(keyfile, keyform, 0, passin, e, "private key");
+        pkey = load_key(keyfile, keyform, 0, passin, "private key");
         break;
 
     case KEY_PUBKEY:
-        pkey = load_pubkey(keyfile, keyform, 0, NULL, e, "public key");
+        pkey = load_pubkey(keyfile, keyform, 0, NULL, "public key");
         break;
 
     case KEY_CERT:
@@ -659,21 +643,14 @@ static EVP_PKEY *get_pkey(const char *kdfalg,
 }
 
 static EVP_PKEY_CTX *init_ctx(const char *kdfalg, int *pkeysize,
-                              int pkey_op, ENGINE *e,
-                              const int engine_impl, int rawin,
+                              int pkey_op, int rawin,
                               EVP_PKEY *pkey /* ownership is passed to ctx */,
                               EVP_MD_CTX *mctx, const char *digestname,
                               const char *kemop, OSSL_LIB_CTX *libctx, const char *propq)
 {
     EVP_PKEY_CTX *ctx = NULL;
-    ENGINE *impl = NULL;
     int rv = -1;
 
-#ifndef OPENSSL_NO_ENGINE
-    if (engine_impl)
-        impl = e;
-#endif
-
     if (kdfalg != NULL) {
         int kdfnid = OBJ_sn2nid(kdfalg);
 
@@ -685,19 +662,13 @@ static EVP_PKEY_CTX *init_ctx(const char *kdfalg, int *pkeysize,
                 return NULL;
             }
         }
-        if (impl != NULL)
-            ctx = EVP_PKEY_CTX_new_id(kdfnid, impl);
-        else
-            ctx = EVP_PKEY_CTX_new_from_name(libctx, kdfalg, propq);
+        ctx = EVP_PKEY_CTX_new_from_name(libctx, kdfalg, propq);
     } else {
         if (pkey == NULL)
             return NULL;
 
         *pkeysize = EVP_PKEY_get_size(pkey);
-        if (impl != NULL)
-            ctx = EVP_PKEY_CTX_new(pkey, impl);
-        else
-            ctx = EVP_PKEY_CTX_new_from_pkey(libctx, pkey, propq);
+        ctx = EVP_PKEY_CTX_new_from_pkey(libctx, pkey, propq);
     }
 
     if (ctx == NULL)
@@ -766,17 +737,13 @@ static EVP_PKEY_CTX *init_ctx(const char *kdfalg, int *pkeysize,
     return ctx;
 }
 
-static int setup_peer(EVP_PKEY_CTX *ctx, int peerform, const char *file,
-                      ENGINE *e)
+static int setup_peer(EVP_PKEY_CTX *ctx, int peerform, const char *file)
 {
     EVP_PKEY *pkey = EVP_PKEY_CTX_get0_pkey(ctx);
     EVP_PKEY *peer = NULL;
-    ENGINE *engine = NULL;
     int ret = 1;
 
-    if (peerform == FORMAT_ENGINE)
-        engine = e;
-    peer = load_pubkey(file, peerform, 0, NULL, engine, "peer key");
+    peer = load_pubkey(file, peerform, 0, NULL, "peer key");
     if (peer == NULL) {
         BIO_printf(bio_err, "Error reading peer key %s\n", file);
         return 0;
index da747c1783e47bde01a7e67f04e8c41da8a47fd3..d57ed74f6e681d89152f899b74753db5eb3fcc57 100644 (file)
@@ -20,7 +20,7 @@
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_OUT, OPT_ENGINE, OPT_BASE64, OPT_HEX,
+    OPT_OUT, OPT_BASE64, OPT_HEX,
     OPT_R_ENUM, OPT_PROV_ENUM
 } OPTION_CHOICE;
 
@@ -29,9 +29,6 @@ const OPTIONS rand_options[] = {
 
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Output"),
     {"out", OPT_OUT, '>', "Output file"},
@@ -48,7 +45,6 @@ const OPTIONS rand_options[] = {
 
 int rand_main(int argc, char **argv)
 {
-    ENGINE *e = NULL;
     BIO *out = NULL;
     char *outfile = NULL, *prog;
     OPTION_CHOICE o;
@@ -73,9 +69,6 @@ int rand_main(int argc, char **argv)
         case OPT_OUT:
             outfile = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_R_CASES:
             if (!opt_rand(o))
                 goto end;
@@ -223,7 +216,6 @@ int rand_main(int argc, char **argv)
     if (ret != 0)
         ERR_print_errors(bio_err);
     OPENSSL_free(buf);
-    release_engine(e);
     BIO_free_all(out);
     return ret;
 }
index 1e877c23174a369919c676b725b3c842dccf3c72..2842dff993b5f49d7406369ed790d547a5e755b5 100644 (file)
@@ -71,8 +71,7 @@ static int check_end(const char *str, const char *end);
 static int join(char buf[], size_t buf_size, const char *name,
                 const char *tail, const char *desc);
 static EVP_PKEY_CTX *set_keygen_ctx(const char *gstr,
-                                    char **pkeytype, long *pkeylen,
-                                    ENGINE *keygen_engine);
+                                    char **pkeytype, long *pkeylen);
 
 static const char *section = "req";
 static CONF *req_conf = NULL;
@@ -82,7 +81,7 @@ static int batch = 0;
 typedef enum OPTION_choice {
     OPT_COMMON,
     OPT_CIPHER,
-    OPT_INFORM, OPT_OUTFORM, OPT_ENGINE, OPT_KEYGEN_ENGINE, OPT_KEY,
+    OPT_INFORM, OPT_OUTFORM, OPT_KEY,
     OPT_PUBKEY, OPT_NEW, OPT_CONFIG, OPT_KEYFORM, OPT_IN, OPT_OUT,
     OPT_KEYOUT, OPT_PASSIN, OPT_PASSOUT, OPT_NEWKEY,
     OPT_PKEYOPT, OPT_SIGOPT, OPT_VFYOPT, OPT_BATCH, OPT_NEWHDR, OPT_MODULUS,
@@ -100,11 +99,6 @@ const OPTIONS req_options[] = {
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
     {"cipher", OPT_CIPHER, 's', "Specify the cipher for private key encryption"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-    {"keygen_engine", OPT_KEYGEN_ENGINE, 's',
-     "Specify engine to be used for key generation operations"},
-#endif
     {"in", OPT_IN, '<', "X.509 request input file (default stdin)"},
     {"inform", OPT_INFORM, 'F',
      "CSR input format to use (PEM or DER; by default try PEM first)"},
@@ -245,7 +239,6 @@ int req_main(int argc, char **argv)
 {
     ASN1_INTEGER *serial = NULL;
     BIO *out = NULL;
-    ENGINE *e = NULL, *gen_eng = NULL;
     EVP_PKEY *pkey = NULL, *CAkey = NULL;
     EVP_PKEY_CTX *genctx = NULL;
     STACK_OF(OPENSSL_STRING) *pkeyopts = NULL, *sigopts = NULL, *vfyopts = NULL;
@@ -298,18 +291,6 @@ int req_main(int argc, char **argv)
             if (!opt_format(opt_arg(), OPT_FMT_PEMDER, &outformat))
                 goto opthelp;
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
-        case OPT_KEYGEN_ENGINE:
-#ifndef OPENSSL_NO_ENGINE
-            gen_eng = setup_engine(opt_arg(), 0);
-            if (gen_eng == NULL) {
-                BIO_printf(bio_err, "Can't find keygen engine %s\n", *argv);
-                goto opthelp;
-            }
-#endif
-            break;
         case OPT_KEY:
             keyfile = opt_arg();
             break;
@@ -624,7 +605,7 @@ int req_main(int argc, char **argv)
     }
 
     if (keyfile != NULL) {
-        pkey = load_key(keyfile, keyform, 0, passin, e, "private key");
+        pkey = load_key(keyfile, keyform, 0, passin, "private key");
         if (pkey == NULL)
             goto end;
         app_RAND_load_conf(req_conf, section);
@@ -640,7 +621,7 @@ int req_main(int argc, char **argv)
         if (!app_conf_try_number(req_conf, section, BITS, &newkey_len))
             newkey_len = DEFAULT_KEY_LENGTH;
 
-        genctx = set_keygen_ctx(keyalg, &keyalgstr, &newkey_len, gen_eng);
+        genctx = set_keygen_ctx(keyalg, &keyalgstr, &newkey_len);
         if (genctx == NULL)
             goto end;
 
@@ -762,7 +743,7 @@ int req_main(int argc, char **argv)
                        "Warning: Ignoring -CAkey option since no -CA option is given\n");
         } else {
             if ((CAkey = load_key(CAkeyfile, FORMAT_UNDEF,
-                                  0, passin, e,
+                                  0, passin,
                                   CAkeyfile != CAfile
                                   ? "issuer private key from -CAkey arg"
                                   : "issuer private key from -CA arg")) == NULL)
@@ -1056,9 +1037,6 @@ int req_main(int argc, char **argv)
     sk_OPENSSL_STRING_free(vfyopts);
     lh_OPENSSL_STRING_doall(addexts, exts_cleanup);
     lh_OPENSSL_STRING_free(addexts);
-#ifndef OPENSSL_NO_ENGINE
-    release_engine(gen_eng);
-#endif
     OPENSSL_free(keyalgstr);
     X509_REQ_free(req);
     X509_NAME_free(fsubj);
@@ -1066,7 +1044,6 @@ int req_main(int argc, char **argv)
     X509_free(CAcert);
     EVP_PKEY_free(CAkey);
     ASN1_INTEGER_free(serial);
-    release_engine(e);
     if (passin != nofree_passin)
         OPENSSL_free(passin);
     if (passout != nofree_passout)
@@ -1484,8 +1461,7 @@ static int join(char buf[], size_t buf_size, const char *name,
 }
 
 static EVP_PKEY_CTX *set_keygen_ctx(const char *gstr,
-                                    char **pkeytype, long *pkeylen,
-                                    ENGINE *keygen_engine)
+                                    char **pkeytype, long *pkeylen)
 {
     EVP_PKEY_CTX *gctx = NULL;
     EVP_PKEY *param = NULL;
@@ -1601,28 +1577,13 @@ static EVP_PKEY_CTX *set_keygen_ctx(const char *gstr,
             return NULL;
         }
 
-        if (keygen_engine != NULL)
-            gctx = EVP_PKEY_CTX_new(param, keygen_engine);
-        else
-            gctx = EVP_PKEY_CTX_new_from_pkey(app_get0_libctx(),
-                                              param, app_get0_propq());
+        gctx = EVP_PKEY_CTX_new_from_pkey(app_get0_libctx(),
+                                          param, app_get0_propq());
         *pkeylen = EVP_PKEY_get_bits(param);
         EVP_PKEY_free(param);
     } else {
-#ifndef OPENSSL_NO_DEPRECATED_3_6
-        if (keygen_engine != NULL) {
-            int pkey_id = get_legacy_pkey_id(app_get0_libctx(), *pkeytype,
-                                             keygen_engine);
-
-            if (pkey_id != NID_undef)
-                gctx = EVP_PKEY_CTX_new_id(pkey_id, keygen_engine);
-        } else {
-#endif
-            gctx = EVP_PKEY_CTX_new_from_name(app_get0_libctx(),
-                                              *pkeytype, app_get0_propq());
-#ifndef OPENSSL_NO_DEPRECATED_3_6
-        }
-#endif
+        gctx = EVP_PKEY_CTX_new_from_name(app_get0_libctx(),
+                                          *pkeytype, app_get0_propq());
     }
 
     if (gctx == NULL) {
index 9a4d16cbb01c8c0ce5440d98a20db2bfa1be6180..8aa3295f8e2d56929380d9029e5fdbbe08621dcd 100644 (file)
@@ -41,7 +41,7 @@
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_INFORM, OPT_OUTFORM, OPT_ENGINE, OPT_IN, OPT_OUT,
+    OPT_INFORM, OPT_OUTFORM, OPT_IN, OPT_OUT,
     OPT_PUBIN, OPT_PUBOUT, OPT_PASSOUT, OPT_PASSIN,
     OPT_RSAPUBKEY_IN, OPT_RSAPUBKEY_OUT,
     /* Do not change the order here; see case statements below */
@@ -55,13 +55,10 @@ const OPTIONS rsa_options[] = {
     {"help", OPT_HELP, '-', "Display this summary"},
     {"check", OPT_CHECK, '-', "Verify key consistency"},
     {"", OPT_CIPHER, '-', "Any supported cipher"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Input"),
     {"in", OPT_IN, 's', "Input file"},
-    {"inform", OPT_INFORM, 'f', "Input format (DER/PEM/P12/ENGINE)"},
+    {"inform", OPT_INFORM, 'f', "Input format (DER/PEM/P12)"},
     {"pubin", OPT_PUBIN, '-', "Expect a public key in input file"},
     {"RSAPublicKey_in", OPT_RSAPUBKEY_IN, '-', "Input is an RSAPublicKey"},
     {"passin", OPT_PASSIN, 's', "Input file pass phrase source"},
@@ -121,7 +118,6 @@ static int try_legacy_encoding(EVP_PKEY *pkey, int outformat, int pubout,
 
 int rsa_main(int argc, char **argv)
 {
-    ENGINE *e = NULL;
     BIO *out = NULL;
     EVP_PKEY *pkey = NULL;
     EVP_PKEY_CTX *pctx;
@@ -172,9 +168,6 @@ int rsa_main(int argc, char **argv)
         case OPT_PASSOUT:
             passoutarg = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_PUBIN:
             pubin = 1;
             break;
@@ -246,9 +239,9 @@ int rsa_main(int argc, char **argv)
             tmpformat = informat;
         }
 
-        pkey = load_pubkey(infile, tmpformat, 1, passin, e, "public key");
+        pkey = load_pubkey(infile, tmpformat, 1, passin, "public key");
     } else {
-        pkey = load_key(infile, informat, 1, passin, e, "private key");
+        pkey = load_key(infile, informat, 1, passin, "private key");
     }
 
     if (pkey == NULL) {
@@ -403,7 +396,6 @@ int rsa_main(int argc, char **argv)
     ret = 0;
  end:
     OSSL_ENCODER_CTX_free(ectx);
-    release_engine(e);
     BIO_free_all(out);
     EVP_PKEY_free(pkey);
     EVP_CIPHER_free(enc);
index db11e3498f3a87b870b6a056e10ad7cf11ada5d3..ae0e30a4d9329b5a47a4220a0489c466ca56434d 100644 (file)
@@ -27,7 +27,7 @@
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_ENGINE, OPT_IN, OPT_OUT, OPT_ASN1PARSE, OPT_HEXDUMP,
+    OPT_IN, OPT_OUT, OPT_ASN1PARSE, OPT_HEXDUMP,
     OPT_RSA_RAW, OPT_OAEP, OPT_PKCS, OPT_X931,
     OPT_SIGN, OPT_VERIFY, OPT_REV, OPT_ENCRYPT, OPT_DECRYPT,
     OPT_PUBIN, OPT_CERTIN, OPT_INKEY, OPT_PASSIN, OPT_KEYFORM,
@@ -41,9 +41,6 @@ const OPTIONS rsautl_options[] = {
     {"verify", OPT_VERIFY, '-', "Verify with public key"},
     {"encrypt", OPT_ENCRYPT, '-', "Encrypt with public key"},
     {"decrypt", OPT_DECRYPT, '-', "Decrypt with private key"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Input"),
     {"in", OPT_IN, '<', "Input file"},
@@ -72,7 +69,6 @@ const OPTIONS rsautl_options[] = {
 int rsautl_main(int argc, char **argv)
 {
     BIO *in = NULL, *out = NULL;
-    ENGINE *e = NULL;
     EVP_PKEY *pkey = NULL;
     EVP_PKEY_CTX *ctx = NULL;
     X509 *x;
@@ -107,9 +103,6 @@ int rsautl_main(int argc, char **argv)
         case OPT_OUT:
             outfile = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_ASN1PARSE:
             asn1parse = 1;
             break;
@@ -187,11 +180,11 @@ int rsautl_main(int argc, char **argv)
 
     switch (key_type) {
     case KEY_PRIVKEY:
-        pkey = load_key(keyfile, keyformat, 0, passin, e, "private key");
+        pkey = load_key(keyfile, keyformat, 0, passin, "private key");
         break;
 
     case KEY_PUBKEY:
-        pkey = load_pubkey(keyfile, keyformat, 0, NULL, e, "public key");
+        pkey = load_pubkey(keyfile, keyformat, 0, NULL, "public key");
         break;
 
     case KEY_CERT:
@@ -282,7 +275,6 @@ int rsautl_main(int argc, char **argv)
  end:
     EVP_PKEY_CTX_free(ctx);
     EVP_PKEY_free(pkey);
-    release_engine(e);
     BIO_free(in);
     BIO_free_all(out);
     OPENSSL_free(rsa_in);
index 836c6b8122259e1036465fa0cc39954c884f4c9b..5107e01af5759e280e3b606ac11963ba7fe30bfa 100644 (file)
@@ -483,12 +483,11 @@ typedef enum OPTION_choice {
     OPT_CERT, OPT_CRL, OPT_CRL_DOWNLOAD, OPT_SESS_OUT, OPT_SESS_IN,
     OPT_CERTFORM, OPT_CRLFORM, OPT_VERIFY_RET_ERROR, OPT_VERIFY_QUIET,
     OPT_BRIEF, OPT_PREXIT, OPT_NO_INTERACTIVE, OPT_CRLF, OPT_QUIET, OPT_NBIO,
-    OPT_SSL_CLIENT_ENGINE, OPT_IGN_EOF, OPT_NO_IGN_EOF,
-    OPT_DEBUG, OPT_TLSEXTDEBUG, OPT_WDEBUG,
+    OPT_IGN_EOF, OPT_NO_IGN_EOF, OPT_DEBUG, OPT_TLSEXTDEBUG, OPT_WDEBUG,
 # ifndef OPENSSL_NO_OCSP
     OPT_STATUS, OPT_STATUS_OCSP_CHECK_LEAF, OPT_STATUS_OCSP_CHECK_ALL,
 # endif
-    OPT_MSG, OPT_MSGFILE, OPT_ENGINE, OPT_TRACE, OPT_SECURITY_DEBUG,
+    OPT_MSG, OPT_MSGFILE, OPT_TRACE, OPT_SECURITY_DEBUG,
     OPT_SECURITY_DEBUG_VERBOSE, OPT_SHOWCERTS, OPT_NBIO_TEST, OPT_STATE,
     OPT_PSK_IDENTITY, OPT_PSK, OPT_PSK_SESS,
 #ifndef OPENSSL_NO_SRP
@@ -530,11 +529,6 @@ const OPTIONS s_client_options[] = {
 
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-    {"ssl_client_engine", OPT_SSL_CLIENT_ENGINE, 's',
-     "Specify engine to be used for client certificate operations"},
-#endif
     {"ssl_config", OPT_SSL_CONFIG, 's', "Use specified section for SSL_CTX configuration"},
 #ifndef OPENSSL_NO_CT
     {"ct", OPT_CT, '-', "Request and parse SCTs (also enables OCSP stapling)"},
@@ -913,10 +907,6 @@ int s_client_main(int argc, char **argv)
     int enable_timeouts = 0;
     long socket_mtu = 0;
 #endif
-#ifndef OPENSSL_NO_ENGINE
-    ENGINE *ssl_client_engine = NULL;
-#endif
-    ENGINE *e = NULL;
 #if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
     struct timeval tv;
 #endif
@@ -1175,18 +1165,6 @@ int s_client_main(int argc, char **argv)
         case OPT_ADV:
             cmdmode = USER_DATA_MODE_ADVANCED;
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 1);
-            break;
-        case OPT_SSL_CLIENT_ENGINE:
-#ifndef OPENSSL_NO_ENGINE
-            ssl_client_engine = setup_engine(opt_arg(), 0);
-            if (ssl_client_engine == NULL) {
-                BIO_printf(bio_err, "Error getting client auth engine\n");
-                goto opthelp;
-            }
-#endif
-            break;
         case OPT_R_CASES:
             if (!opt_rand(o))
                 goto end;
@@ -1771,7 +1749,7 @@ int s_client_main(int argc, char **argv)
         key_file = cert_file;
 
     if (key_file != NULL) {
-        key = load_key(key_file, key_format, 0, pass, e,
+        key = load_key(key_file, key_format, 0, pass,
                        "client certificate private key");
         if (key == NULL)
             goto end;
@@ -1929,16 +1907,6 @@ int s_client_main(int argc, char **argv)
         }
         SSL_CTX_set0_CA_list(ctx, nm);
     }
-#ifndef OPENSSL_NO_ENGINE
-    if (ssl_client_engine) {
-        if (!SSL_CTX_set_client_cert_engine(ctx, ssl_client_engine)) {
-            BIO_puts(bio_err, "Error setting client auth engine\n");
-            release_engine(ssl_client_engine);
-            goto end;
-        }
-        release_engine(ssl_client_engine);
-    }
-#endif
 
 #ifndef OPENSSL_NO_PSK
     if (psk_key != NULL) {
@@ -3353,7 +3321,6 @@ int s_client_main(int argc, char **argv)
     OPENSSL_clear_free(sbuf, BUFSIZZ);
     OPENSSL_clear_free(mbuf, BUFSIZZ);
     clear_free(proxypass);
-    release_engine(e);
     BIO_free(bio_c_out);
     bio_c_out = NULL;
     BIO_free(bio_c_msg);
index 94f225f4426c36a76c1f0e917eabdd74c43c17f4..28ff72030decc5cbaf3968c256481ada846812ac 100644 (file)
@@ -927,7 +927,6 @@ static int not_resumable_sess_cb(SSL *s, int is_forward_secure)
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_ENGINE,
     OPT_4, OPT_6, OPT_ACCEPT, OPT_PORT, OPT_UNIX, OPT_UNLINK, OPT_NACCEPT,
     OPT_VERIFY, OPT_NAMEOPT, OPT_UPPER_V_VERIFY, OPT_CONTEXT, OPT_CERT, OPT_CRL,
     OPT_CRL_DOWNLOAD, OPT_SERVERINFO, OPT_CERTFORM, OPT_KEY, OPT_KEYFORM,
@@ -975,9 +974,6 @@ const OPTIONS s_server_options[] = {
 #ifndef OPENSSL_NO_SSL_TRACE
     {"trace", OPT_TRACE, '-', "trace protocol messages"},
 #endif
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Network"),
     {"port", OPT_PORT, 'p',
@@ -1230,7 +1226,6 @@ const OPTIONS s_server_options[] = {
 
 int s_server_main(int argc, char *argv[])
 {
-    ENGINE *engine = NULL;
     EVP_PKEY *s_key = NULL, *s_dkey = NULL;
     SSL_CONF_CTX *cctx = NULL;
     const SSL_METHOD *meth = TLS_server_method();
@@ -1820,11 +1815,6 @@ int s_server_main(int argc, char *argv[])
         case OPT_ID_PREFIX:
             session_id_prefix = opt_arg();
             break;
-        case OPT_ENGINE:
-#ifndef OPENSSL_NO_ENGINE
-            engine = setup_engine(opt_arg(), s_debug);
-#endif
-            break;
         case OPT_R_CASES:
             if (!opt_rand(o))
                 goto end;
@@ -2036,7 +2026,7 @@ int s_server_main(int argc, char *argv[])
         goto end;
 
     if (nocert == 0) {
-        s_key = load_key(s_key_file, s_key_format, 0, pass, engine,
+        s_key = load_key(s_key_file, s_key_format, 0, pass,
                          "server certificate private key");
         if (s_key == NULL)
             goto end;
@@ -2053,7 +2043,7 @@ int s_server_main(int argc, char *argv[])
         }
 
         if (tlsextcbp.servername != NULL) {
-            s_key2 = load_key(s_key_file2, s_key_format, 0, pass, engine,
+            s_key2 = load_key(s_key_file2, s_key_format, 0, pass,
                               "second server certificate private key");
             if (s_key2 == NULL)
                 goto end;
@@ -2099,7 +2089,7 @@ int s_server_main(int argc, char *argv[])
             s_dkey_file = s_dcert_file;
 
         s_dkey = load_key(s_dkey_file, s_dkey_format,
-                          0, dpass, engine, "second certificate private key");
+                          0, dpass, "second certificate private key");
         if (s_dkey == NULL)
             goto end;
 
@@ -2600,7 +2590,6 @@ int s_server_main(int argc, char *argv[])
     ssl_excert_free(exc);
     sk_OPENSSL_STRING_free(ssl_args);
     SSL_CONF_CTX_free(cctx);
-    release_engine(engine);
     BIO_free(bio_s_out);
     bio_s_out = NULL;
     BIO_free(bio_s_msg);
index 211ddce4ab3784065ff6e0122e871a9a77cbdccf..c87189e381753d99755b37eb7e087f45236ec7c7 100644 (file)
@@ -38,7 +38,7 @@ typedef enum OPTION_choice {
     OPT_PK7OUT, OPT_TEXT, OPT_NOINTERN, OPT_NOVERIFY, OPT_NOCHAIN,
     OPT_NOCERTS, OPT_NOATTR, OPT_NODETACH, OPT_NOSMIMECAP,
     OPT_BINARY, OPT_NOSIGS, OPT_STREAM, OPT_INDEF, OPT_NOINDEF,
-    OPT_CRLFEOL, OPT_ENGINE, OPT_PASSIN,
+    OPT_CRLFEOL, OPT_PASSIN,
     OPT_TO, OPT_FROM, OPT_SUBJECT, OPT_SIGNER, OPT_RECIP, OPT_MD,
     OPT_CIPHER, OPT_INKEY, OPT_KEYFORM, OPT_CERTFILE, OPT_CAFILE,
     OPT_CAPATH, OPT_CASTORE, OPT_NOCAFILE, OPT_NOCAPATH, OPT_NOCASTORE,
@@ -61,9 +61,6 @@ const OPTIONS smime_options[] = {
     {"inkey", OPT_INKEY, 's',
      "Input private key (if not signer or recipient)"},
     {"keyform", OPT_KEYFORM, 'f', "Input private key format (ENGINE, other values ignored)"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
     {"stream", OPT_STREAM, '-', "Enable CMS streaming" },
     {"indef", OPT_INDEF, '-', "Same as -stream" },
     {"noindef", OPT_NOINDEF, '-', "Disable CMS streaming"},
@@ -182,7 +179,6 @@ int smime_main(int argc, char **argv)
     int informat = FORMAT_SMIME, outformat = FORMAT_SMIME, keyform =
         FORMAT_UNDEF;
     int vpmtouched = 0, rv = 0;
-    ENGINE *e = NULL;
     const char *mime_eol = "\n";
     OSSL_LIB_CTX *libctx = app_get0_libctx();
 
@@ -294,9 +290,6 @@ int smime_main(int argc, char **argv)
             if (conf == NULL)
                 goto end;
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_PASSIN:
             passinarg = opt_arg();
             break;
@@ -520,7 +513,7 @@ int smime_main(int argc, char **argv)
     }
 
     if (keyfile != NULL) {
-        key = load_key(keyfile, keyform, 0, passin, e, "signing key");
+        key = load_key(keyfile, keyform, 0, passin, "signing key");
         if (key == NULL)
             goto end;
     }
@@ -612,7 +605,7 @@ int smime_main(int argc, char **argv)
             signer = load_cert(signerfile, FORMAT_UNDEF, "signer certificate");
             if (signer == NULL)
                 goto end;
-            key = load_key(keyfile, keyform, 0, passin, e, "signing key");
+            key = load_key(keyfile, keyform, 0, passin, "signing key");
             if (key == NULL)
                 goto end;
 
@@ -701,7 +694,6 @@ int smime_main(int argc, char **argv)
     EVP_MD_free(sign_md);
     EVP_CIPHER_free(cipher);
     PKCS7_free(p7);
-    release_engine(e);
     BIO_free(in);
     BIO_free(indata);
     BIO_free_all(out);
index cafd4c4880749300836f02863fdda25529ec4c8e..4467385746d8ed172db8700830233effdb09c1ed 100644 (file)
@@ -233,7 +233,7 @@ static int opt_found(const char *name, unsigned int *result,
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_ELAPSED, OPT_EVP, OPT_HMAC, OPT_DECRYPT, OPT_ENGINE, OPT_MULTI,
+    OPT_ELAPSED, OPT_EVP, OPT_HMAC, OPT_DECRYPT, OPT_MULTI,
     OPT_MR, OPT_MB, OPT_MISALIGN, OPT_ASYNCJOBS, OPT_R_ENUM, OPT_PROV_ENUM,
     OPT_CONFIG, OPT_PRIMES, OPT_SECONDS, OPT_BYTES, OPT_AEAD, OPT_CMAC,
     OPT_MLOCK, OPT_TESTMODE, OPT_KEM, OPT_SIG
@@ -257,9 +257,6 @@ const OPTIONS speed_options[] = {
 #ifndef OPENSSL_NO_ASYNC
     {"async_jobs", OPT_ASYNCJOBS, 'p',
      "Enable async mode and start specified number of jobs"},
-#endif
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
 #endif
     {"primes", OPT_PRIMES, 'p', "Specify number of primes (for RSA only)"},
     {"mlock", OPT_MLOCK, '-', "Lock memory for better result determinism"},
@@ -1879,10 +1876,8 @@ static int get_max(const uint8_t doit[], size_t algs_len) {
 int speed_main(int argc, char **argv)
 {
     CONF *conf = NULL;
-    ENGINE *e = NULL;
     loopargs_t *loopargs = NULL;
     const char *prog;
-    const char *engine_id = NULL;
     EVP_CIPHER *evp_cipher = NULL;
     EVP_MAC *mac = NULL;
     double d = 0.0;
@@ -2096,14 +2091,6 @@ int speed_main(int argc, char **argv)
         case OPT_DECRYPT:
             decrypt = 1;
             break;
-        case OPT_ENGINE:
-            /*
-             * In a forked execution, an engine might need to be
-             * initialised by each child process, not by the parent.
-             * So store the name here and run setup_engine() later on.
-             */
-            engine_id = opt_arg();
-            break;
         case OPT_MULTI:
 #ifndef NO_FORK
             multi = opt_int_arg();
@@ -2554,9 +2541,6 @@ int speed_main(int argc, char **argv)
         memset(loopargs[i].buf2_malloc, 0, buflen);
     }
 
-    /* Initialize the engine after the fork */
-    e = setup_engine(engine_id, 0);
-
     /* No parameters; turn on everything. */
     if (argc == 0 && !doit[D_EVP] && !doit[D_HMAC]
         && !doit[D_EVP_CMAC] && !do_kems && !do_sigs) {
@@ -3231,7 +3215,7 @@ int speed_main(int argc, char **argv)
             bn = BN_new();
             st = bn != NULL
                 && BN_set_word(bn, RSA_F4)
-                && init_gen_str(&genctx, "RSA", NULL, 0, NULL, NULL)
+                && init_gen_str(&genctx, "RSA", 0, NULL, NULL)
                 && EVP_PKEY_CTX_set_rsa_keygen_bits(genctx, rsa_keys[testnum].bits) > 0
                 && EVP_PKEY_CTX_set1_rsa_keygen_pubexp(genctx, bn) > 0
                 && EVP_PKEY_CTX_set_rsa_keygen_primes(genctx, primes) > 0
@@ -4784,7 +4768,6 @@ int speed_main(int argc, char **argv)
         ASYNC_cleanup_thread();
     }
     OPENSSL_free(loopargs);
-    release_engine(e);
     EVP_CIPHER_free(evp_cipher);
     EVP_MAC_free(mac);
     NCONF_free(conf);
index 5a129a7fa775a81c68e1e1ed264347111129a46f..73b126ffbb60d1d3dd2ceed2f1b32fcd8d30b687 100644 (file)
@@ -23,7 +23,7 @@
 typedef enum OPTION_choice {
     OPT_COMMON,
     OPT_NOOUT, OPT_PUBKEY, OPT_VERIFY, OPT_IN, OPT_OUT,
-    OPT_ENGINE, OPT_KEY, OPT_CHALLENGE, OPT_PASSIN, OPT_SPKAC,
+    OPT_KEY, OPT_CHALLENGE, OPT_PASSIN, OPT_SPKAC,
     OPT_SPKSECT, OPT_KEYFORM, OPT_DIGEST,
     OPT_PROV_ENUM
 } OPTION_CHOICE;
@@ -33,9 +33,6 @@ const OPTIONS spkac_options[] = {
     {"help", OPT_HELP, '-', "Display this summary"},
     {"spksect", OPT_SPKSECT, 's',
      "Specify the name of an SPKAC-dedicated section of configuration"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Input"),
     {"in", OPT_IN, '<', "Input file"},
@@ -60,7 +57,6 @@ int spkac_main(int argc, char **argv)
 {
     BIO *out = NULL;
     CONF *conf = NULL;
-    ENGINE *e = NULL;
     EVP_PKEY *pkey = NULL;
     NETSCAPE_SPKI *spki = NULL;
     char *challenge = NULL, *keyfile = NULL;
@@ -122,9 +118,6 @@ int spkac_main(int argc, char **argv)
         case OPT_DIGEST:
             digest = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_PROV_CASES:
             if (!opt_provider(o))
                 goto end;
@@ -146,7 +139,7 @@ int spkac_main(int argc, char **argv)
             goto end;
 
         pkey = load_key(strcmp(keyfile, "-") ? keyfile : NULL,
-                        keyformat, 1, passin, e, "private key");
+                        keyformat, 1, passin, "private key");
         if (pkey == NULL)
             goto end;
         spki = NETSCAPE_SPKI_new();
@@ -227,7 +220,6 @@ int spkac_main(int argc, char **argv)
     NETSCAPE_SPKI_free(spki);
     BIO_free_all(out);
     EVP_PKEY_free(pkey);
-    release_engine(e);
     OPENSSL_free(passin);
     return ret;
 }
index 4e8f226503809a971cc85e4a91e07b7748a6fa7f..f35fe128cb4474b72e8f52b4dcb17ef3dacfd0e0 100644 (file)
@@ -193,7 +193,7 @@ typedef enum OPTION_choice {
     OPT_COMMON,
     OPT_VERBOSE, OPT_CONFIG, OPT_NAME, OPT_SRPVFILE, OPT_ADD,
     OPT_DELETE, OPT_MODIFY, OPT_LIST, OPT_GN, OPT_USERINFO,
-    OPT_PASSIN, OPT_PASSOUT, OPT_ENGINE, OPT_R_ENUM, OPT_PROV_ENUM
+    OPT_PASSIN, OPT_PASSOUT, OPT_R_ENUM, OPT_PROV_ENUM
 } OPTION_CHOICE;
 
 const OPTIONS srp_options[] = {
@@ -204,9 +204,6 @@ const OPTIONS srp_options[] = {
     {"verbose", OPT_VERBOSE, '-', "Talk a lot while doing things"},
     {"config", OPT_CONFIG, '<', "A config file"},
     {"name", OPT_NAME, 's', "The particular srp definition to use"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Action"),
     {"add", OPT_ADD, '-', "Add a user and SRP verifier"},
@@ -231,7 +228,6 @@ const OPTIONS srp_options[] = {
 
 int srp_main(int argc, char **argv)
 {
-    ENGINE *e = NULL;
     CA_DB *db = NULL;
     CONF *conf = NULL;
     int gNindex = -1, maxgN = -1, ret = 1, errors = 0, verbose = 0, i;
@@ -291,9 +287,6 @@ int srp_main(int argc, char **argv)
         case OPT_PASSOUT:
             passoutarg = opt_arg();
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_R_CASES:
             if (!opt_rand(o))
                 goto end;
@@ -626,6 +619,5 @@ int srp_main(int argc, char **argv)
         ERR_print_errors(bio_err);
     NCONF_free(conf);
     free_index(db);
-    release_engine(e);
     return ret;
 }
index bb489d6d9bd16b0df1ceed3912cc76c33b293942..fe809d421ca45110a302a04da01cebef2de77a05 100644 (file)
@@ -25,7 +25,7 @@ static BIO *out = NULL;
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_ENGINE, OPT_OUT, OPT_PASSIN,
+    OPT_OUT, OPT_PASSIN,
     OPT_NOOUT, OPT_TEXT, OPT_RECURSIVE,
     OPT_SEARCHFOR_CERTS, OPT_SEARCHFOR_KEYS, OPT_SEARCHFOR_CRLS,
     OPT_CRITERION_SUBJECT, OPT_CRITERION_ISSUER, OPT_CRITERION_SERIAL,
@@ -39,9 +39,6 @@ const OPTIONS storeutl_options[] = {
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
     {"", OPT_MD, '-', "Any supported digest"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
 
     OPT_SECTION("Search"),
     {"certs", OPT_SEARCHFOR_CERTS, '-', "Search for certificates only"},
@@ -73,7 +70,6 @@ int storeutl_main(int argc, char *argv[])
 {
     int ret = 1, noout = 0, text = 0, recursive = 0;
     char *outfile = NULL, *passin = NULL, *passinarg = NULL;
-    ENGINE *e = NULL;
     OPTION_CHOICE o;
     char *prog;
     PW_CB_DATA pw_cb_data;
@@ -243,9 +239,6 @@ int storeutl_main(int argc, char *argv[])
                 goto end;
             }
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_MD:
             digestname = opt_unknown();
             break;
@@ -324,7 +317,6 @@ int storeutl_main(int argc, char *argv[])
     OSSL_STORE_SEARCH_free(search);
     BIO_free_all(out);
     OPENSSL_free(passin);
-    release_engine(e);
     return ret;
 }
 
index e59bc3b4b4a22cbb4663f4c0233fd52a1778469d..3bb9032d8f8a2cf3dea1ebdf330184aa15adb28e 100644 (file)
--- a/apps/ts.c
+++ b/apps/ts.c
@@ -46,13 +46,13 @@ static int create_digest(BIO *input, const char *digest,
 static ASN1_INTEGER *create_nonce(int bits);
 
 /* Reply related functions. */
-static int reply_command(CONF *conf, const char *section, const char *engine,
+static int reply_command(CONF *conf, const char *section,
                          const char *queryfile, const char *passin, const char *inkey,
                          const EVP_MD *md, const char *signer, const char *chain,
                          const char *policy, const char *in, int token_in,
                          const char *out, int token_out, int text);
 static TS_RESP *read_PKCS7(BIO *in_bio);
-static TS_RESP *create_response(CONF *conf, const char *section, const char *engine,
+static TS_RESP *create_response(CONF *conf, const char *section,
                                 const char *queryfile, const char *passin,
                                 const char *inkey, const EVP_MD *md, const char *signer,
                                 const char *chain, const char *policy);
@@ -78,7 +78,7 @@ static int verify_cb(int ok, X509_STORE_CTX *ctx);
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_ENGINE, OPT_CONFIG, OPT_SECTION, OPT_QUERY, OPT_DATA,
+    OPT_CONFIG, OPT_SECTION, OPT_QUERY, OPT_DATA,
     OPT_DIGEST, OPT_TSPOLICY, OPT_NO_NONCE, OPT_CERT,
     OPT_IN, OPT_TOKEN_IN, OPT_OUT, OPT_TOKEN_OUT, OPT_TEXT,
     OPT_REPLY, OPT_QUERYFILE, OPT_PASSIN, OPT_INKEY, OPT_SIGNER,
@@ -91,9 +91,6 @@ const OPTIONS ts_options[] = {
     {"help", OPT_HELP, '-', "Display this summary"},
     {"config", OPT_CONFIG, '<', "Configuration file"},
     {"section", OPT_SECTION, 's', "Section to use within config file"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
     {"inkey", OPT_INKEY, 's', "File with private key for reply"},
     {"signer", OPT_SIGNER, 's', "Signer certificate file"},
     {"chain", OPT_CHAIN, '<', "File with signer CA chain"},
@@ -143,11 +140,7 @@ static char* opt_helplist[] = {
     "    [-signer tsa_cert.pem] [-inkey private_key.pem]",
     "    [-chain certs_file.pem] [-tspolicy oid]",
     "    [-in file] [-token_in] [-out file] [-token_out]",
-#ifndef OPENSSL_NO_ENGINE
-    "    [-text] [-engine id]",
-#else
     "    [-text]",
-#endif
     "",
     " openssl ts -verify -CApath dir -CAfile root-cert.pem -CAstore uri",
     "   -untrusted extra-certs.pem [-data file] [-digest hexstring]",
@@ -160,7 +153,7 @@ int ts_main(int argc, char **argv)
     CONF *conf = NULL;
     const char *CAfile = NULL, *prog;
     char *untrusted = NULL;
-    const char *configfile = default_config_file, *engine = NULL;
+    const char *configfile = default_config_file;
     const char *section = NULL, *digestname = NULL;
     char **helpp;
     char *password = NULL;
@@ -276,9 +269,6 @@ int ts_main(int argc, char **argv)
         case OPT_UNTRUSTED:
             untrusted = opt_arg();
             break;
-        case OPT_ENGINE:
-            engine = opt_arg();
-            break;
         case OPT_MD:
             digestname = opt_unknown();
             break;
@@ -331,7 +321,7 @@ int ts_main(int argc, char **argv)
             if ((conf == NULL) || (token_in != 0))
                 goto opthelp;
         }
-        ret = !reply_command(conf, section, engine, queryfile,
+        ret = !reply_command(conf, section, queryfile,
                              password, inkey, md, signer, chain, policy,
                              in, token_in, out, token_out, text);
 
@@ -587,7 +577,7 @@ static ASN1_INTEGER *create_nonce(int bits)
  * Reply-related method definitions.
  */
 
-static int reply_command(CONF *conf, const char *section, const char *engine,
+static int reply_command(CONF *conf, const char *section,
                          const char *queryfile, const char *passin, const char *inkey,
                          const EVP_MD *md, const char *signer, const char *chain,
                          const char *policy, const char *in, int token_in,
@@ -610,7 +600,7 @@ static int reply_command(CONF *conf, const char *section, const char *engine,
             response = d2i_TS_RESP_bio(in_bio, NULL);
         }
     } else {
-        response = create_response(conf, section, engine, queryfile,
+        response = create_response(conf, section, queryfile,
                                    passin, inkey, md, signer, chain, policy);
         if (response != NULL)
             BIO_printf(bio_err, "Response has been generated.\n");
@@ -695,7 +685,7 @@ static TS_RESP *read_PKCS7(BIO *in_bio)
     return resp;
 }
 
-static TS_RESP *create_response(CONF *conf, const char *section, const char *engine,
+static TS_RESP *create_response(CONF *conf, const char *section,
                                 const char *queryfile, const char *passin,
                                 const char *inkey, const EVP_MD *md, const char *signer,
                                 const char *chain, const char *policy)
@@ -713,10 +703,6 @@ static TS_RESP *create_response(CONF *conf, const char *section, const char *eng
         goto end;
     if (!TS_CONF_set_serial(conf, section, serial_cb, resp_ctx))
         goto end;
-#ifndef OPENSSL_NO_ENGINE
-    if (!TS_CONF_set_crypto_device(conf, section, engine))
-        goto end;
-#endif
     if (!TS_CONF_set_signer_cert(conf, section, signer, resp_ctx))
         goto end;
     if (!TS_CONF_set_certs(conf, section, chain, resp_ctx))
index 93b214281ea58820c54fc1fa57db3991fc54efd5..ac2382b924ccd8420f1aea05df71ad9677ab8ec8 100644 (file)
@@ -27,7 +27,7 @@ static int v_verbose = 0, vflags = 0;
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_ENGINE, OPT_CAPATH, OPT_CAFILE, OPT_CASTORE,
+    OPT_CAPATH, OPT_CAFILE, OPT_CASTORE,
     OPT_NOCAPATH, OPT_NOCAFILE, OPT_NOCASTORE,
     OPT_UNTRUSTED, OPT_TRUSTED, OPT_CRLFILE, OPT_CRL_DOWNLOAD, OPT_SHOW_CHAIN,
     OPT_V_ENUM, OPT_NAMEOPT, OPT_VFYOPT,
@@ -40,9 +40,6 @@ const OPTIONS verify_options[] = {
 
     OPT_SECTION("General"),
     {"help", OPT_HELP, '-', "Display this summary"},
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
     {"verbose", OPT_VERBOSE, '-',
         "Print extra information about the operations being performed."},
     {"nameopt", OPT_NAMEOPT, 's', "Certificate subject/issuer name printing options"},
@@ -78,7 +75,6 @@ const OPTIONS verify_options[] = {
 
 int verify_main(int argc, char **argv)
 {
-    ENGINE *e = NULL;
     STACK_OF(X509) *untrusted = NULL, *trusted = NULL;
     STACK_OF(X509_CRL) *crls = NULL;
     STACK_OF(OPENSSL_STRING) *vfyopts = NULL;
@@ -165,12 +161,6 @@ int verify_main(int argc, char **argv)
         case OPT_CRL_DOWNLOAD:
             crl_download = 1;
             break;
-        case OPT_ENGINE:
-            if ((e = setup_engine(opt_arg(), 0)) == NULL) {
-                /* Failure message already displayed */
-                goto end;
-            }
-            break;
         case OPT_SHOW_CHAIN:
             show_chain = 1;
             break;
@@ -238,7 +228,6 @@ int verify_main(int argc, char **argv)
     OSSL_STACK_OF_X509_free(trusted);
     sk_X509_CRL_pop_free(crls, X509_CRL_free);
     sk_OPENSSL_STRING_free(vfyopts);
-    release_engine(e);
     return (ret < 0 ? 2 : ret);
 }
 
index 89fb64b70a4d0ad6a3b2bf4898045fb60f6ccb7d..370ded637577e92af503c65987497f5b5f864633 100644 (file)
@@ -18,7 +18,7 @@
 
 typedef enum OPTION_choice {
     OPT_COMMON,
-    OPT_B, OPT_D, OPT_E, OPT_M, OPT_F, OPT_O, OPT_P, OPT_V, OPT_A, OPT_R, OPT_C
+    OPT_B, OPT_D, OPT_M, OPT_F, OPT_O, OPT_P, OPT_V, OPT_A, OPT_R, OPT_C
 #if defined(_WIN32)
     ,OPT_W
 #endif
@@ -32,7 +32,6 @@ const OPTIONS version_options[] = {
     {"a", OPT_A, '-', "Show all data"},
     {"b", OPT_B, '-', "Show build date"},
     {"d", OPT_D, '-', "Show configuration directory"},
-    {"e", OPT_E, '-', "Show engines directory"},
     {"m", OPT_M, '-', "Show modules directory"},
     {"f", OPT_F, '-', "Show compiler flags used"},
     {"o", OPT_O, '-', "Show some internal datatype options"},
@@ -50,7 +49,7 @@ int version_main(int argc, char **argv)
 {
     int ret = 1, dirty = 0, seed = 0;
     int cflags = 0, version = 0, date = 0, options = 0, platform = 0, dir = 0;
-    int engdir = 0, moddir = 0, cpuinfo = 0;
+    int moddir = 0, cpuinfo = 0;
 #if defined(_WIN32)
     int windows = 0;
 #endif
@@ -75,9 +74,6 @@ opthelp:
         case OPT_D:
             dirty = dir = 1;
             break;
-        case OPT_E:
-            dirty = engdir = 1;
-            break;
         case OPT_M:
             dirty = moddir = 1;
             break;
@@ -106,7 +102,7 @@ opthelp:
 #endif
         case OPT_A:
             seed = options = cflags = version = date = platform
-                = dir = engdir = moddir = cpuinfo
+                = dir = moddir = cpuinfo
                 = 1;
             break;
         }
@@ -135,8 +131,6 @@ opthelp:
         printf("%s\n", OpenSSL_version(OPENSSL_CFLAGS));
     if (dir)
         printf("%s\n", OpenSSL_version(OPENSSL_DIR));
-    if (engdir)
-        printf("%s\n", OpenSSL_version(OPENSSL_ENGINES_DIR));
     if (moddir)
         printf("%s\n", OpenSSL_version(OPENSSL_MODULES_DIR));
     if (seed) {
index c9d26f8b203f90acac3485f78bf5ef38b586e2b5..ec01cbcff112ca638b220353d666c5ae771d2b45 100644 (file)
@@ -53,7 +53,7 @@ typedef enum OPTION_choice {
     OPT_CHECKEMAIL, OPT_CHECKIP, OPT_NOOUT, OPT_TRUSTOUT, OPT_CLRTRUST,
     OPT_CLRREJECT, OPT_ALIAS, OPT_CACREATESERIAL, OPT_CLREXT, OPT_OCSPID,
     OPT_SUBJECT_HASH_OLD, OPT_ISSUER_HASH_OLD, OPT_COPY_EXTENSIONS,
-    OPT_BADSIG, OPT_MD, OPT_ENGINE, OPT_NOCERT, OPT_PRESERVE_DATES,
+    OPT_BADSIG, OPT_MD, OPT_NOCERT, OPT_PRESERVE_DATES,
     OPT_NOT_BEFORE, OPT_NOT_AFTER,
     OPT_R_ENUM, OPT_PROV_ENUM, OPT_EXT
 } OPTION_CHOICE;
@@ -183,9 +183,6 @@ const OPTIONS x509_options[] = {
      "Reject certificate for a given purpose"},
 
     OPT_R_OPTIONS,
-#ifndef OPENSSL_NO_ENGINE
-    {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
     OPT_PROV_OPTIONS,
     {NULL}
 };
@@ -303,7 +300,6 @@ int x509_main(int argc, char **argv)
     unsigned long certflag = 0;
     int preserve_dates = 0;
     OPTION_CHOICE o;
-    ENGINE *e = NULL;
 #ifndef OPENSSL_NO_MD5
     int subject_hash_old = 0, issuer_hash_old = 0;
 #endif
@@ -483,9 +479,6 @@ int x509_main(int argc, char **argv)
             if (!set_nameopt(opt_arg()))
                 goto opthelp;
             break;
-        case OPT_ENGINE:
-            e = setup_engine(opt_arg(), 0);
-            break;
         case OPT_EMAIL:
             email = ++num;
             break;
@@ -663,12 +656,12 @@ int x509_main(int argc, char **argv)
         goto err;
     }
     if (privkeyfile != NULL) {
-        privkey = load_key(privkeyfile, keyformat, 0, passin, e, "private key");
+        privkey = load_key(privkeyfile, keyformat, 0, passin, "private key");
         if (privkey == NULL)
             goto err;
     }
     if (pubkeyfile != NULL) {
-        if ((pubkey = load_pubkey(pubkeyfile, keyformat, 0, NULL, e,
+        if ((pubkey = load_pubkey(pubkeyfile, keyformat, 0, NULL,
                                   "explicitly set public key")) == NULL)
             goto err;
     }
@@ -956,7 +949,7 @@ int x509_main(int argc, char **argv)
         noout = 1;
     } else if (CAfile != NULL) {
         if ((CAkey = load_key(CAkeyfile, CAkeyformat,
-                              0, passin, e, "CA private key")) == NULL)
+                              0, passin, "CA private key")) == NULL)
             goto err;
         if (!X509_check_private_key(xca, CAkey)) {
             BIO_printf(bio_err,
@@ -1163,7 +1156,6 @@ int x509_main(int argc, char **argv)
     ASN1_INTEGER_free(sno);
     sk_ASN1_OBJECT_pop_free(trust, ASN1_OBJECT_free);
     sk_ASN1_OBJECT_pop_free(reject, ASN1_OBJECT_free);
-    release_engine(e);
     clear_free(passin);
     return ret;
 }
index 78e0a4e91ecbf91861f579adc643e4f574f19578..4ef639cbab74d1dea44ace02b1fa60172bdab154 100644 (file)
@@ -814,7 +814,7 @@ IF[{- !$disabled{tests} -}]
   DEPEND[cmp_client_test]=../libcrypto.a libtestutil.a
 
   SOURCE[ca_internals_test]=ca_internals_test.c ../apps/ca.c ../apps/lib/apps.c \
-                            ../apps/lib/app_rand.c ../apps/lib/engine.c ../apps/lib/app_provider.c \
+                            ../apps/lib/app_rand.c ../apps/lib/app_provider.c \
                             ../apps/lib/app_libctx.c ../apps/lib/fmt.c ../apps/lib/apps_ui.c \
                             ../apps/lib/app_x509.c ../crypto/asn1/a_time.c ../crypto/ctype.c
   INCLUDE[ca_internals_test]=.. ../include ../apps/include