Commit 2712a2f6 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

tolerate broken CMS/PKCS7 implementations using signature OID instead of digest

parent 17ebc10f
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -406,7 +406,11 @@ int cms_DigestAlgorithm_find_ctx(EVP_MD_CTX *mctx, BIO *chain,
			return 0;
			}
		BIO_get_md_ctx(chain, &mtmp);
		if (EVP_MD_CTX_type(mtmp) == nid)
		if (EVP_MD_CTX_type(mtmp) == nid
		/* Workaround for broken implementations that use signature
		 * algorithm  OID instead of digest.
		 */
			|| EVP_MD_pkey_type(EVP_MD_CTX_md(mtmp)) == nid)
			return EVP_MD_CTX_copy_ex(mctx, mtmp);
		chain = BIO_next(chain);
		}