}
if (!(flags & CMS_STREAM))
{
- if (!CMS_final(cms, in, flags))
+ if (!CMS_final(cms, in, NULL, flags))
goto end;
}
}
/* If not streaming or resigning finalize structure */
if ((operation == SMIME_SIGN) && !(flags & CMS_STREAM))
{
- if (!CMS_final(cms, in, flags))
+ if (!CMS_final(cms, in, NULL, flags))
goto end;
}
}
}
else if (operation == SMIME_UNCOMPRESS)
{
- if (!CMS_uncompress(cms, indata, out, flags))
+ if (!CMS_uncompress(cms, out, indata, flags))
goto end;
}
else if (operation == SMIME_DIGEST_VERIFY)
CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont);
int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags);
-int CMS_final(CMS_ContentInfo *cms, BIO *data, int flags);
+int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags);
CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs,
BIO *data, unsigned int flags);
int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri);
-int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,
+int CMS_uncompress(CMS_ContentInfo *cms, BIO *out, BIO *dcont,
unsigned int flags);
CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags);
if (!cms)
return NULL;
- if (CMS_final(cms, in, flags))
+ if (CMS_final(cms, in, NULL, flags))
return cms;
CMS_ContentInfo_free(cms);
CMS_set_detached(cms, 0);
}
- if ((flags & CMS_STREAM) || CMS_final(cms, in, flags))
+ if ((flags & CMS_STREAM) || CMS_final(cms, in, NULL, flags))
return cms;
CMS_ContentInfo_free(cms);
CMS_set_detached(cms, 0);
}
- if ((flags & (CMS_STREAM|CMS_PARTIAL)) || CMS_final(cms, in, flags))
+ if ((flags & (CMS_STREAM|CMS_PARTIAL))
+ || CMS_final(cms, in, NULL, flags))
return cms;
CMS_ContentInfo_free(cms);
CMS_set_detached(cms, 0);
}
- if ((flags & (CMS_STREAM|CMS_PARTIAL)) || CMS_final(cms, data, flags))
+ if ((flags & (CMS_STREAM|CMS_PARTIAL))
+ || CMS_final(cms, data, NULL, flags))
return cms;
else
goto err;
goto err;
/* Finalize structure */
- if (!CMS_final(cms, rct_cont, flags))
+ if (!CMS_final(cms, rct_cont, NULL, flags))
goto err;
/* Set embedded content */
CMS_set_detached(cms, 0);
}
- if ((flags & (CMS_STREAM|CMS_PARTIAL)) || CMS_final(cms, data, flags))
+ if ((flags & (CMS_STREAM|CMS_PARTIAL))
+ || CMS_final(cms, data, NULL, flags))
return cms;
else
goto err;
return r;
}
-int CMS_final(CMS_ContentInfo *cms, BIO *data, int flags)
+int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags)
{
BIO *cmsbio;
int ret = 0;
- if (!(cmsbio = CMS_dataInit(cms, NULL)))
+ if (!(cmsbio = CMS_dataInit(cms, dcont)))
{
CMSerr(CMS_F_CMS_FINAL,ERR_R_MALLOC_FAILURE);
return 0;
#ifdef ZLIB
-int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,
+int CMS_uncompress(CMS_ContentInfo *cms, BIO *out, BIO *dcont,
unsigned int flags)
{
BIO *cont;
CMS_set_detached(cms, 0);
}
- if (CMS_final(cms, in, flags))
+ if (CMS_final(cms, in, NULL, flags))
return cms;
CMS_ContentInfo_free(cms);