crypto: fix setEngine() when OPENSSL_NO_ENGINE set
When OpenSSL is configured with OPENSSL_NO_ENGINE, setEngine() currently throws an internal error because the C++ binding does not export the relevant function, which causes _setEngine() to be undefined within JS. Instead, match the behavior of tls/secure-context.js and throw the existing error code ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED when OpenSSL has been configured with OPENSSL_NO_ENGINE. PR-URL: https://github.com/nodejs/node/pull/47977 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
This commit is contained in:
parent
7116bc08d7
commit
5b4c7bd78f
@ -44,6 +44,7 @@ const normalizeHashName = require('internal/crypto/hashnames');
|
||||
const {
|
||||
hideStackFrames,
|
||||
codes: {
|
||||
ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED,
|
||||
ERR_CRYPTO_ENGINE_UNKNOWN,
|
||||
ERR_INVALID_ARG_TYPE,
|
||||
ERR_INVALID_ARG_VALUE,
|
||||
@ -105,6 +106,8 @@ function setEngine(id, flags) {
|
||||
if (flags === 0)
|
||||
flags = ENGINE_METHOD_ALL;
|
||||
|
||||
if (typeof _setEngine !== 'function')
|
||||
throw new ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED();
|
||||
if (!_setEngine(id, flags))
|
||||
throw new ERR_CRYPTO_ENGINE_UNKNOWN(id);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user