Various S/MIME bug and compatibility fixes.
[openssl.git] / crypto / pkcs7 / pk7_doit.c
index 123671b43edd96ad70070542234ef0fde2590e4e..9382f47767b0d141fc8d76b69147c2eee7188bd4 100644 (file)
@@ -771,6 +771,11 @@ int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si,
                        }
                if (EVP_MD_CTX_type(mdc) == md_type)
                        break;
+               /* Workaround for some broken clients that put the signature
+                * OID instead of the digest OID in digest_alg->algorithm
+                */
+               if (EVP_MD_pkey_type(EVP_MD_CTX_md(mdc)) == md_type)
+                       break;
                btmp=BIO_next(btmp);
                }