[#EVP_DigestFinal]
= EVP&lowbar;DigestFinal
:mrdocs:

Finalize a digest computation and write the message digest&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
int
EVP&lowbar;DigestFinal(
    xref:EVP_MD_CTX.adoc[EVP&lowbar;MD&lowbar;CTX]* ctx,
    unsigned char* md,
    unsigned int* s);
----

== Return Value

1 on success, or 0 on failure&period;

== Parameters

[cols="1,4"]
|===
| Name| Description
| *ctx*
| Digest context that has been updated with message data&period;
| *md*
| Output buffer of at least EVP&lowbar;MD&lowbar;size bytes receiving the digest&period;
| *s*
| Optional pointer receiving the digest length in bytes, or NULL&period;
|===


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