MDs created via EVP_MD_meth_new() are inherently legacy and therefore
need to go down the legacy route when they are used.
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/17255)
|| tmpimpl != NULL
# endif
#endif
- || (ctx->flags & EVP_MD_CTX_FLAG_NO_INIT) != 0) {
+ || (ctx->flags & EVP_MD_CTX_FLAG_NO_INIT) != 0
+ || type->origin == EVP_ORIG_METH) {
if (ctx->digest == ctx->fetched_digest)
ctx->digest = NULL;
EVP_MD_free(ctx->fetched_digest);