[#EVP_DigestFinal_ex] = EVP_DigestFinal_ex :mrdocs: Finalize a digest computation and write the message digest to `md` without resetting ownership of `ctx.` == Synopsis Declared in `<openssl/evp.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int EVP_DigestFinal_ex( xref:EVP_MD_CTX.adoc[EVP_MD_CTX]* ctx, unsigned char* md, unsigned int* s); ---- == Description Unlike EVP_DigestFinal(), the context may be reused after EVP_MD_CTX_reset() without freeing it. == Return Value 1 on success, or 0 on failure. == Parameters [cols="1,4"] |=== | Name| Description | *ctx* | Digest context that has absorbed input via EVP_DigestUpdate(). | *md* | Buffer that receives the digest; must be large enough for EVP_MD_CTX_get_size(`ctx)` bytes. | *s* | Optional destination for the digest length in bytes, or NULL. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#