diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2020-02-20 18:05:35 +0000 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2020-02-21 08:38:48 +0000 |
commit | f5e4cb782478422e45ef35b3b74eaf942dbb5f53 (patch) | |
tree | a380c4751f7e64dd1662a0c718defb065d271749 | |
parent | 92092537b84709394faf650c8cbb5e4e9506349c (diff) | |
download | ruby-openssl-f5e4cb782478422e45ef35b3b74eaf942dbb5f53.tar.gz |
engine: fix guards for 'dynamic' and 'cryptodev' enginesky/engine-load-updates
Those two engines exist as builtin engines even if static engines are
disabled with OPENSSL_NO_STATIC_ENGINE. This is the default with recent
OpenSSL.
This has prevented Engine.load("dynamic") from working and required
the user to call OpenSSL::Engine.load with no arguments, which loads all
builtin engines including 'dynamic'.
Note that OpenSSL 1.1.0 and newer calls (the equivalent of)
ENGINE_load_builtin_engines() on its initialization. This includes
'dynamic' and 'cryptodev' engines (if available).
-rw-r--r-- | ext/openssl/ossl_engine.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/openssl/ossl_engine.c b/ext/openssl/ossl_engine.c index f92c34dd..90546934 100644 --- a/ext/openssl/ossl_engine.c +++ b/ext/openssl/ossl_engine.c @@ -101,10 +101,10 @@ ossl_engine_s_load(int argc, VALUE *argv, VALUE klass) return Qtrue; } StringValueCStr(name); -#ifndef OPENSSL_NO_STATIC_ENGINE #if HAVE_ENGINE_LOAD_DYNAMIC OSSL_ENGINE_LOAD_IF_MATCH(dynamic, DYNAMIC); #endif +#ifndef OPENSSL_NO_STATIC_ENGINE #if HAVE_ENGINE_LOAD_4758CCA OSSL_ENGINE_LOAD_IF_MATCH(4758cca, 4758CCA); #endif @@ -141,10 +141,10 @@ ossl_engine_s_load(int argc, VALUE *argv, VALUE klass) #if HAVE_ENGINE_LOAD_GOST OSSL_ENGINE_LOAD_IF_MATCH(gost, GOST); #endif +#endif #if HAVE_ENGINE_LOAD_CRYPTODEV OSSL_ENGINE_LOAD_IF_MATCH(cryptodev, CRYPTODEV); #endif -#endif OSSL_ENGINE_LOAD_IF_MATCH(openssl, OPENSSL); rb_warning("no such builtin loader for `%"PRIsVALUE"'", name); return Qnil; |