OpenSSL: Initialise PKCS#11 engine even if found with ENGINE_by_id()
Recent versions of engine_pkcs11 are set up to be autoloaded on demand with ENGINE_by_id() because they don't need explicit configuration. But if we *do* want to explicitly configure them with a PKCS#11 module path, we should still do so. We can't tell whether it was already initialised, but it's harmless to repeat the MODULE_PATH command if it was. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Tested-by: Michael Schaller <misch@google.com>
This commit is contained in:
parent
fdc1188a85
commit
c3d7fb7e27
1 changed files with 9 additions and 3 deletions
|
@ -729,10 +729,16 @@ static int tls_engine_load_dynamic_generic(const char *pre[],
|
||||||
|
|
||||||
engine = ENGINE_by_id(id);
|
engine = ENGINE_by_id(id);
|
||||||
if (engine) {
|
if (engine) {
|
||||||
ENGINE_free(engine);
|
|
||||||
wpa_printf(MSG_DEBUG, "ENGINE: engine '%s' is already "
|
wpa_printf(MSG_DEBUG, "ENGINE: engine '%s' is already "
|
||||||
"available", id);
|
"available", id);
|
||||||
return 0;
|
/*
|
||||||
|
* If it was auto-loaded by ENGINE_by_id() we might still
|
||||||
|
* need to tell it which PKCS#11 module to use in legacy
|
||||||
|
* (non-p11-kit) environments. Do so now; even if it was
|
||||||
|
* properly initialised before, setting it again will be
|
||||||
|
* harmless.
|
||||||
|
*/
|
||||||
|
goto found;
|
||||||
}
|
}
|
||||||
ERR_clear_error();
|
ERR_clear_error();
|
||||||
|
|
||||||
|
@ -769,7 +775,7 @@ static int tls_engine_load_dynamic_generic(const char *pre[],
|
||||||
id, ERR_error_string(ERR_get_error(), NULL));
|
id, ERR_error_string(ERR_get_error(), NULL));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
found:
|
||||||
while (post && post[0]) {
|
while (post && post[0]) {
|
||||||
wpa_printf(MSG_DEBUG, "ENGINE: '%s' '%s'", post[0], post[1]);
|
wpa_printf(MSG_DEBUG, "ENGINE: '%s' '%s'", post[0], post[1]);
|
||||||
if (ENGINE_ctrl_cmd_string(engine, post[0], post[1], 0) == 0) {
|
if (ENGINE_ctrl_cmd_string(engine, post[0], post[1], 0) == 0) {
|
||||||
|
|
Loading…
Reference in a new issue