Make ciphers and digests obtain an ENGINE functional reference
if impl is explicitly supplied.
This commit is contained in:
parent
0c372b94f7
commit
bf6a9e66d6
@ -152,7 +152,15 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
|
||||
* ENGINE and EVP_MD could be used). */
|
||||
if(ctx->engine)
|
||||
ENGINE_finish(ctx->engine);
|
||||
if(!impl)
|
||||
if(impl)
|
||||
{
|
||||
if (!ENGINE_init(impl))
|
||||
{
|
||||
EVPerr(EVP_F_EVP_DIGESTINIT, EVP_R_INITIALIZATION_ERROR);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
/* Ask if an ENGINE is reserved for this job */
|
||||
impl = ENGINE_get_digest_engine(type->type);
|
||||
if(impl)
|
||||
|
@ -100,7 +100,15 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, ENGINE *imp
|
||||
* ENGINE and EVP_CIPHER could be used). */
|
||||
if(ctx->engine)
|
||||
ENGINE_finish(ctx->engine);
|
||||
if(!impl)
|
||||
if(impl)
|
||||
{
|
||||
if (!ENGINE_init(impl))
|
||||
{
|
||||
EVPerr(EVP_F_EVP_CIPHERINIT, EVP_R_INITIALIZATION_ERROR);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
/* Ask if an ENGINE is reserved for this job */
|
||||
impl = ENGINE_get_cipher_engine(cipher->nid);
|
||||
if(impl)
|
||||
|
Loading…
Reference in New Issue
Block a user