Skip to content

Commit

Permalink
Don't attempt to set provider params on an ENGINE based cipher
Browse files Browse the repository at this point in the history
If an ENGINE has been loaded after the SSL_CTX has been created then
the cipher we have cached might be provider based, but the cipher we
actually end up using might not be. Don't try to set provider params on
a cipher that is actually ENGINE based.
  • Loading branch information
mattcaswell committed Nov 29, 2023
1 parent a9c97da commit 1cfa998
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
6 changes: 5 additions & 1 deletion ssl/record/methods/ssl3_meth.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,11 @@ static int ssl3_set_crypto_state(OSSL_RECORD_LAYER *rl, int level,
return OSSL_RECORD_RETURN_FATAL;
}

if (EVP_CIPHER_get0_provider(ciph) != NULL
/*
* The cipher we actually ended up using in the EVP_CIPHER_CTX may be
* different to that in ciph if we have an ENGINE in use
*/
if (EVP_CIPHER_get0_provider(EVP_CIPHER_CTX_get0_cipher(ciph_ctx)) != NULL
&& !ossl_set_tls_provider_parameters(rl, ciph_ctx, ciph, md)) {
/* ERR_raise already called */
return OSSL_RECORD_RETURN_FATAL;
Expand Down
11 changes: 9 additions & 2 deletions ssl/record/methods/tls1_meth.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,16 @@ static int tls1_set_crypto_state(OSSL_RECORD_LAYER *rl, int level,
ERR_raise(ERR_LIB_SSL, ERR_R_INTERNAL_ERROR);
return OSSL_RECORD_RETURN_FATAL;
}
if (EVP_CIPHER_get0_provider(ciph) != NULL
&& !ossl_set_tls_provider_parameters(rl, ciph_ctx, ciph, md))

/*
* The cipher we actually ended up using in the EVP_CIPHER_CTX may be
* different to that in ciph if we have an ENGINE in use
*/
if (EVP_CIPHER_get0_provider(EVP_CIPHER_CTX_get0_cipher(ciph_ctx)) != NULL
&& !ossl_set_tls_provider_parameters(rl, ciph_ctx, ciph, md)) {
/* ERR_raise already called */
return OSSL_RECORD_RETURN_FATAL;
}

/* Calculate the explicit IV length */
if (RLAYER_USE_EXPLICIT_IV(rl)) {
Expand Down

0 comments on commit 1cfa998

Please sign in to comment.