Import OpenSSL-1.0.1h.
[dragonfly.git] / crypto / openssl / crypto / cms / cms_smime.c
index 8c56e3a..1af9f3a 100644 (file)
@@ -611,7 +611,7 @@ int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert)
        STACK_OF(CMS_RecipientInfo) *ris;
        CMS_RecipientInfo *ri;
        int i, r;
-       int debug = 0;
+       int debug = 0, ri_match = 0;
        ris = CMS_get0_RecipientInfos(cms);
        if (ris)
                debug = cms->d.envelopedData->encryptedContentInfo->debug;
@@ -620,6 +620,7 @@ int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert)
                ri = sk_CMS_RecipientInfo_value(ris, i);
                if (CMS_RecipientInfo_type(ri) != CMS_RECIPINFO_TRANS)
                                continue;
+               ri_match = 1;
                /* If we have a cert try matching RecipientInfo
                 * otherwise try them all.
                 */
@@ -655,7 +656,7 @@ int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert)
                        }
                }
        /* If no cert and not debugging always return success */
-       if (!cert && !debug)
+       if (ri_match && !cert && !debug)
                {
                ERR_clear_error();
                return 1;