1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>crypto_hash_final</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux Kernel Crypto API"><link rel="up" href="ch05s09.html" title="Synchronous Message Digest API"><link rel="prev" href="API-crypto-hash-update.html" title="crypto_hash_update"><link rel="next" href="API-crypto-hash-digest.html" title="crypto_hash_digest"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">crypto_hash_final</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-crypto-hash-update.html">Prev</a> </td><th width="60%" align="center">Synchronous Message Digest API</th><td width="20%" align="right"> <a accesskey="n" href="API-crypto-hash-digest.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-crypto-hash-final"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>crypto_hash_final — 2 calculate message digest 3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">crypto_hash_final </b>(</code></td><td>struct hash_desc * <var class="pdparam">desc</var>, </td></tr><tr><td> </td><td>u8 * <var class="pdparam">out</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idp1098022964"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>desc</code></em></span></dt><dd><p> 4 cipher request handle 5 </p></dd><dt><span class="term"><em class="parameter"><code>out</code></em></span></dt><dd><p> 6 message digest output buffer -- The caller must ensure that the out 7 buffer has a sufficient size (e.g. by using the crypto_hash_digestsize 8 function). 9 </p></dd></dl></div></div><div class="refsect1"><a name="idp1098025660"></a><h2>Description</h2><p> 10 Finalize the message digest operation and create the message digest 11 based on all data added to the cipher handle. The message digest is placed 12 into the output buffer. 13</p></div><div class="refsect1"><a name="idp1098026420"></a><h2>Return</h2><p> 14 0 if the message digest creation was successful; < 0 if an error 15 occurred 16</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-crypto-hash-update.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch05s09.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-crypto-hash-digest.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">crypto_hash_update</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">crypto_hash_digest</span></td></tr></table></div></body></html> 17