From 70531c147c2d38b03f109312a270ccc0af6cf8d6 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Sat, 20 Dec 2008 17:04:40 +0000 Subject: [PATCH] Make no-engine work again. --- apps/dsa.c | 2 -- apps/engine.c | 2 +- apps/genpkey.c | 2 ++ apps/pkeyparam.c | 4 +++- apps/s_client.c | 3 ++- apps/s_server.c | 2 -- apps/ts.c | 3 ++- crypto/engine/enginetest.c | 2 +- crypto/ts/ts_conf.c | 6 ++++++ ssl/ssl_ciph.c | 26 +++++++++++++++++++++++--- 10 files changed, 40 insertions(+), 12 deletions(-) diff --git a/apps/dsa.c b/apps/dsa.c index 0ebba0862d..5911f11873 100644 --- a/apps/dsa.c +++ b/apps/dsa.c @@ -96,9 +96,7 @@ int MAIN(int, char **); int MAIN(int argc, char **argv) { -#ifndef OPENSSL_NO_ENGINE ENGINE *e = NULL; -#endif int ret=1; DSA *dsa=NULL; int i,badops=0; diff --git a/apps/engine.c b/apps/engine.c index b51244acc8..baee8243db 100644 --- a/apps/engine.c +++ b/apps/engine.c @@ -56,7 +56,6 @@ * */ -#ifndef OPENSSL_NO_ENGINE #include #include @@ -66,6 +65,7 @@ #endif #include "apps.h" #include +#ifndef OPENSSL_NO_ENGINE #include #include diff --git a/apps/genpkey.c b/apps/genpkey.c index dc69e743b2..6dfda08b9e 100644 --- a/apps/genpkey.c +++ b/apps/genpkey.c @@ -376,8 +376,10 @@ int init_gen_str(BIO *err, EVP_PKEY_CTX **pctx, ameth = EVP_PKEY_asn1_find_str(&tmpeng, algname, -1); +#ifndef OPENSSL_NO_ENGINE if (!ameth && e) ameth = ENGINE_get_pkey_asn1_meth_str(e, algname, -1); +#endif if (!ameth) { diff --git a/apps/pkeyparam.c b/apps/pkeyparam.c index 0b911af636..4319eb4de5 100644 --- a/apps/pkeyparam.c +++ b/apps/pkeyparam.c @@ -68,13 +68,13 @@ int MAIN(int, char **); int MAIN(int argc, char **argv) { - ENGINE *e = NULL; char **args, *infile = NULL, *outfile = NULL; BIO *in = NULL, *out = NULL; int text = 0, noout = 0; EVP_PKEY *pkey=NULL; int badarg = 0; #ifndef OPENSSL_NO_ENGINE + ENGINE *e = NULL; char *engine=NULL; #endif int ret = 1; @@ -125,7 +125,9 @@ int MAIN(int argc, char **argv) if (badarg) { +#ifndef OPENSSL_NO_ENGINE bad: +#endif BIO_printf(bio_err, "Usage pkeyparam [options]\n"); BIO_printf(bio_err, "where options are\n"); BIO_printf(bio_err, "-in file input file\n"); diff --git a/apps/s_client.c b/apps/s_client.c index f0783bcd58..dcc289b798 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -413,8 +413,9 @@ int MAIN(int argc, char **argv) #ifndef OPENSSL_NO_ENGINE char *engine_id=NULL; char *ssl_client_engine_id=NULL; - ENGINE *e=NULL, *ssl_client_engine=NULL; + ENGINE *ssl_client_engine=NULL; #endif + ENGINE *e=NULL; #if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_BEOS_R5) struct timeval tv; #if defined(OPENSSL_SYS_BEOS_R5) diff --git a/apps/s_server.c b/apps/s_server.c index 12d39c35bb..b6cc5eecb7 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -849,9 +849,7 @@ int MAIN(int argc, char *argv[]) int state=0; const SSL_METHOD *meth=NULL; int socket_type=SOCK_STREAM; -#ifndef OPENSSL_NO_ENGINE ENGINE *e=NULL; -#endif char *inrand=NULL; int s_cert_format = FORMAT_PEM, s_key_format = FORMAT_PEM; char *passarg = NULL, *pass = NULL; diff --git a/apps/ts.c b/apps/ts.c index edeab82318..08b8c4a9e1 100644 --- a/apps/ts.c +++ b/apps/ts.c @@ -813,9 +813,10 @@ static TS_RESP *create_response(CONF *conf, const char *section, char *engine, /* Setting serial number provider callback. */ if (!TS_CONF_set_serial(conf, section, serial_cb, resp_ctx)) goto end; - +#ifndef OPENSSL_NO_ENGINE /* Setting default OpenSSL engine. */ if (!TS_CONF_set_crypto_device(conf, section, engine)) goto end; +#endif /* Setting TSA signer certificate. */ if (!TS_CONF_set_signer_cert(conf, section, signer, resp_ctx)) goto end; diff --git a/crypto/engine/enginetest.c b/crypto/engine/enginetest.c index 3c1d2b4fbe..f4d70e7e0a 100644 --- a/crypto/engine/enginetest.c +++ b/crypto/engine/enginetest.c @@ -58,6 +58,7 @@ #include #include +#include #ifdef OPENSSL_NO_ENGINE int main(int argc, char *argv[]) @@ -66,7 +67,6 @@ int main(int argc, char *argv[]) return(0); } #else -#include #include #include #include diff --git a/crypto/ts/ts_conf.c b/crypto/ts/ts_conf.c index fbd294b4ba..c39be76f28 100644 --- a/crypto/ts/ts_conf.c +++ b/crypto/ts/ts_conf.c @@ -61,7 +61,9 @@ #include #include "cryptlib.h" #include +#ifndef OPENSSL_NO_ENGINE #include +#endif #include /* Macro definitions for the configuration file. */ @@ -185,6 +187,8 @@ int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb, return ret; } +#ifndef OPENSSL_NO_ENGINE + int TS_CONF_set_crypto_device(CONF *conf, const char *section, const char *device) { @@ -230,6 +234,8 @@ int TS_CONF_set_default_engine(const char *name) return ret; } +#endif + int TS_CONF_set_signer_cert(CONF *conf, const char *section, const char *cert, TS_RESP_CTX *ctx) { diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c index 1990fccf2f..02cf181aad 100644 --- a/ssl/ssl_ciph.c +++ b/ssl/ssl_ciph.c @@ -143,7 +143,9 @@ #include #include #include +#ifndef OPENSSL_NO_ENGINE #include +#endif #include "ssl_locl.h" #define SSL_ENC_DES_IDX 0 @@ -314,20 +316,38 @@ static const SSL_CIPHER cipher_aliases[]={ /* Search for public key algorithm with given name and * return its pkey_id if it is available. Otherwise return 0 */ +#ifdef OPENSSL_NO_ENGINE + static int get_optional_pkey_id(const char *pkey_name) { const EVP_PKEY_ASN1_METHOD *ameth; - ENGINE *tmpeng = NULL; int pkey_id=0; - ameth = EVP_PKEY_asn1_find_str(&tmpeng,pkey_name,-1); + ameth = EVP_PKEY_asn1_find_str(NULL,pkey_name,-1); if (ameth) { EVP_PKEY_asn1_get0_info(&pkey_id, NULL,NULL,NULL,NULL,ameth); } - if (tmpeng) ENGINE_finish(tmpeng); return pkey_id; } +#else + +static int get_optional_pkey_id(const char *pkey_name) + { + const EVP_PKEY_ASN1_METHOD *ameth; + ENGINE *tmpeng = NULL; + int pkey_id=0; + ameth = EVP_PKEY_asn1_find_str(&tmpeng,pkey_name,-1); + if (ameth) + { + EVP_PKEY_asn1_get0_info(&pkey_id, NULL,NULL,NULL,NULL,ameth); + } + if (tmpeng) ENGINE_finish(tmpeng); + return pkey_id; + } + +#endif + void ssl_load_ciphers(void) { ssl_cipher_methods[SSL_ENC_DES_IDX]= -- 2.25.1