[#CMS_final]
= CMS&lowbar;final
:mrdocs:

Finalise a partially built CMS&lowbar;ContentInfo (for example digest computation and field fill&hyphen;in)&period;

== Synopsis

Declared in `&lt;openssl&sol;cms&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
int
CMS&lowbar;final(
    xref:CMS_ContentInfo.adoc[CMS&lowbar;ContentInfo]* cms,
    xref:BIO.adoc[BIO]* data,
    xref:BIO.adoc[BIO]* dcont,
    unsigned int flags);
----

== Description

Used when CMS&lowbar;PARTIAL is set and streaming I&sol;O is not performing finalisation internally&period;

== Return Value

1 on success, or 0 on failure&period;

== Parameters

[cols="1,4"]
|===
| Name| Description
| *cms*
| ContentInfo created with CMS&lowbar;PARTIAL that still needs finalisation&period;
| *data*
| BIO supplying content to process (for example for digesting)&period;
| *dcont*
| BIO that receives processed content for detached data, or usually NULL&period;
| *flags*
| CMS flags controlling finalisation behaviour&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
