173 lines
8.4 KiB
HTML
173 lines
8.4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8"/>
|
|
<style>
|
|
table.head, table.foot { width: 100%; }
|
|
td.head-rtitle, td.foot-os { text-align: right; }
|
|
td.head-vol { text-align: center; }
|
|
div.Pp { margin: 1ex 0ex; }
|
|
</style>
|
|
<link rel="stylesheet" href="style.css" type="text/css" media="all"/>
|
|
<title>CRYPTO_LOCK_INIT(3MONOCYPHER)</title>
|
|
</head>
|
|
<body>
|
|
<table class="head">
|
|
<tr>
|
|
<td class="head-ltitle">CRYPTO_LOCK_INIT(3MONOCYPHER)</td>
|
|
<td class="head-vol">3MONOCYPHER</td>
|
|
<td class="head-rtitle">CRYPTO_LOCK_INIT(3MONOCYPHER)</td>
|
|
</tr>
|
|
</table>
|
|
<div class="manual-text">
|
|
<h1 class="Sh" title="Sh" id="NAME"><a class="selflink" href="#NAME">NAME</a></h1>
|
|
<b class="Nm" title="Nm">crypto_lock_init</b>,
|
|
<b class="Nm" title="Nm">crypto_lock_auth_ad</b>,
|
|
<b class="Nm" title="Nm">crypto_lock_auth_message</b>,
|
|
<b class="Nm" title="Nm">crypto_lock_update</b>,
|
|
<b class="Nm" title="Nm">crypto_lock_final</b>,
|
|
<b class="Nm" title="Nm">crypto_unlock_init</b>,
|
|
<b class="Nm" title="Nm">crypto_unlock_auth_ad</b>,
|
|
<b class="Nm" title="Nm">crypto_unlock_auth_message</b>,
|
|
<b class="Nm" title="Nm">crypto_unlock_update</b>,
|
|
<b class="Nm" title="Nm">crypto_unlock_final</b> —
|
|
<span class="Nd" title="Nd">incremental authenticated encryption with
|
|
additional data</span>
|
|
<h1 class="Sh" title="Sh" id="SYNOPSIS"><a class="selflink" href="#SYNOPSIS">SYNOPSIS</a></h1>
|
|
<b class="In" title="In">#include
|
|
<<a class="In" title="In">monocypher.h</a>></b>
|
|
<div class="Pp"></div>
|
|
<var class="Ft" title="Ft">void</var>
|
|
<br/>
|
|
<b class="Fn" title="Fn">crypto_lock_init</b>(<var class="Fa" title="Fa">crypto_lock_ctx
|
|
*ctx</var>, <var class="Fa" title="Fa">const uint8_t key[32]</var>,
|
|
<var class="Fa" title="Fa">const uint8_t nonce[24]</var>);
|
|
<div class="Pp"></div>
|
|
<var class="Ft" title="Ft">void</var>
|
|
<br/>
|
|
<b class="Fn" title="Fn">crypto_lock_auth_ad</b>(<var class="Fa" title="Fa">crypto_lock_ctx
|
|
*ctx</var>, <var class="Fa" title="Fa">const uint8_t *ad</var>,
|
|
<var class="Fa" title="Fa">size_t ad_size</var>);
|
|
<div class="Pp"></div>
|
|
<var class="Ft" title="Ft">void</var>
|
|
<br/>
|
|
<b class="Fn" title="Fn">crypto_lock_auth_message</b>(<var class="Fa" title="Fa">crypto_lock_ctx
|
|
*ctx</var>, <var class="Fa" title="Fa">const uint8_t *plain_text</var>,
|
|
<var class="Fa" title="Fa">size_t text_size</var>);
|
|
<div class="Pp"></div>
|
|
<var class="Ft" title="Ft">void</var>
|
|
<br/>
|
|
<b class="Fn" title="Fn">crypto_lock_update</b>(<var class="Fa" title="Fa">crypto_lock_ctx
|
|
*ctx</var>, <var class="Fa" title="Fa">uint8_t *cipher_text</var>,
|
|
<var class="Fa" title="Fa">const uint8_t *plain_text</var>,
|
|
<var class="Fa" title="Fa">size_t text_size</var>);
|
|
<div class="Pp"></div>
|
|
<var class="Ft" title="Ft">void</var>
|
|
<br/>
|
|
<b class="Fn" title="Fn">crypto_lock_final</b>(<var class="Fa" title="Fa">crypto_lock_ctx
|
|
*ctx</var>, <var class="Fa" title="Fa">uint8_t mac[16]</var>);
|
|
<div class="Pp"></div>
|
|
<var class="Ft" title="Ft">void</var>
|
|
<br/>
|
|
<b class="Fn" title="Fn">crypto_unlock_init</b>(<var class="Fa" title="Fa">crypto_unlock_ctx
|
|
*ctx</var>, <var class="Fa" title="Fa">const uint8_t key[32]</var>,
|
|
<var class="Fa" title="Fa">const uint8_t nonce[24]</var>);
|
|
<div class="Pp"></div>
|
|
<var class="Ft" title="Ft">void</var>
|
|
<br/>
|
|
<b class="Fn" title="Fn">crypto_unlock_auth_ad</b>(<var class="Fa" title="Fa">crypto_unlock_ctx
|
|
*ctx</var>, <var class="Fa" title="Fa">const uint8_t *ad</var>,
|
|
<var class="Fa" title="Fa">size_t ad_size</var>);
|
|
<div class="Pp"></div>
|
|
<var class="Ft" title="Ft">void</var>
|
|
<br/>
|
|
<b class="Fn" title="Fn">crypto_unlock_auth_message</b>(<var class="Fa" title="Fa">crypto_unlock_ctx
|
|
*ctx</var>, <var class="Fa" title="Fa">const uint8_t *plain_text</var>,
|
|
<var class="Fa" title="Fa">size_t text_size</var>);
|
|
<div class="Pp"></div>
|
|
<var class="Ft" title="Ft">void</var>
|
|
<br/>
|
|
<b class="Fn" title="Fn">crypto_unlock_update</b>(<var class="Fa" title="Fa">crypto_unlock_ctx
|
|
*ctx</var>, <var class="Fa" title="Fa">uint8_t *plain_text</var>,
|
|
<var class="Fa" title="Fa">const uint8_t *cipher_text</var>,
|
|
<var class="Fa" title="Fa">size_t text_size</var>);
|
|
<div class="Pp"></div>
|
|
<var class="Ft" title="Ft">int</var>
|
|
<br/>
|
|
<b class="Fn" title="Fn">crypto_unlock_final</b>(<var class="Fa" title="Fa">crypto_unlock_ctx
|
|
*ctx</var>, <var class="Fa" title="Fa">const uint8_t mac[16]</var>);
|
|
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="selflink" href="#DESCRIPTION">DESCRIPTION</a></h1>
|
|
These functions were variants of
|
|
<a class="Xr" title="Xr" href="crypto_lock.html">crypto_lock(3monocypher)</a>,
|
|
<a class="Xr" title="Xr" href="crypto_unlock.html">crypto_unlock(3monocypher)</a>,
|
|
<a class="Xr" title="Xr" href="crypto_lock_aead.html">crypto_lock_aead(3monocypher)</a>
|
|
and
|
|
<a class="Xr" title="Xr" href="crypto_unlock_aead.html">crypto_unlock_aead(3monocypher)</a>.
|
|
They are deprecated in favor of those simpler functions.
|
|
<div class="Pp"></div>
|
|
Change your protocol so that it does not rely on the removed functions, namely
|
|
by splitting the data into chunks that you can individually use
|
|
<a class="Xr" title="Xr" href="crypto_lock.html">crypto_lock(3monocypher)</a>
|
|
and
|
|
<a class="Xr" title="Xr" href="crypto_unlock.html">crypto_unlock(3monocypher)</a>
|
|
on.
|
|
<div class="Pp"></div>
|
|
For files in particular, you may alternatively (and suboptimally) attempt to use
|
|
<b class="Fn" title="Fn">mmap</b>() (on *NIX) or
|
|
<b class="Fn" title="Fn">MapViewOfFile</b>() (on Windows) and pass the files
|
|
as mapped memory into
|
|
<a class="Xr" title="Xr" href="crypto_lock.html">crypto_lock(3monocypher)</a>
|
|
and
|
|
<a class="Xr" title="Xr" href="crypto_unlock.html">crypto_unlock(3monocypher)</a>
|
|
instead.
|
|
<h1 class="Sh" title="Sh" id="RETURN_VALUES"><a class="selflink" href="#RETURN_VALUES">RETURN
|
|
VALUES</a></h1>
|
|
<b class="Fn" title="Fn">crypto_lock_init</b>(),
|
|
<b class="Fn" title="Fn">crypto_unlock_init</b>(),
|
|
<b class="Fn" title="Fn">crypto_lock_auth_ad</b>(),
|
|
<b class="Fn" title="Fn">crypto_unlock_auth_ad</b>(),
|
|
<b class="Fn" title="Fn">crypto_lock_auth_message</b>(),
|
|
<b class="Fn" title="Fn">crypto_unlock_auth_message</b>(),
|
|
<b class="Fn" title="Fn">crypto_lock_update</b>(),
|
|
<b class="Fn" title="Fn">crypto_unlock_update</b>(), and
|
|
<b class="Fn" title="Fn">crypto_lock_final</b>() return nothing.
|
|
<div class="Pp"></div>
|
|
<b class="Fn" title="Fn">crypto_unlock_final</b>() returns 0 on success or -1 if
|
|
the message was corrupted. Corruption can be caused by transmission errors,
|
|
programmer error, or an attacker's interference.
|
|
<i class="Em" title="Em">Always check the return value</i>.
|
|
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="selflink" href="#SEE_ALSO">SEE
|
|
ALSO</a></h1>
|
|
<a class="Xr" title="Xr" href="crypto_key_exchange.html">crypto_key_exchange(3monocypher)</a>,
|
|
<a class="Xr" title="Xr" href="crypto_lock.html">crypto_lock(3monocypher)</a>,
|
|
<a class="Xr" title="Xr" href="crypto_lock_aead.html">crypto_lock_aead(3monocypher)</a>,
|
|
<a class="Xr" title="Xr" href="crypto_unlock.html">crypto_unlock(3monocypher)</a>,
|
|
<a class="Xr" title="Xr" href="crypto_unlock_aead.html">crypto_unlock_aead(3monocypher)</a>,
|
|
<a class="Xr" title="Xr" href="crypto_wipe.html">crypto_wipe(3monocypher)</a>,
|
|
<a class="Xr" title="Xr" href="intro.html">intro(3monocypher)</a>
|
|
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
|
|
The <b class="Fn" title="Fn">crypto_lock_init</b>(),
|
|
<b class="Fn" title="Fn">crypto_lock_auth_ad</b>(),
|
|
<b class="Fn" title="Fn">crypto_lock_auth_message</b>(),
|
|
<b class="Fn" title="Fn">crypto_lock_update</b>(),
|
|
<b class="Fn" title="Fn">crypto_lock_final</b>(),
|
|
<b class="Fn" title="Fn">crypto_unlock_init</b>(),
|
|
<b class="Fn" title="Fn">crypto_unlock_auth_ad</b>(),
|
|
<b class="Fn" title="Fn">crypto_unlock_auth_message</b>(),
|
|
<b class="Fn" title="Fn">crypto_unlock_update</b>(), and
|
|
<b class="Fn" title="Fn">crypto_unlock_final</b>() functions first appeared in
|
|
Monocypher 1.1.0. <b class="Fn" title="Fn">crypto_lock_aead_auth</b>() and
|
|
<b class="Fn" title="Fn">crypto_unlock_aead_auth</b>() were renamed to
|
|
<b class="Fn" title="Fn">crypto_lock_auth_ad</b>() and
|
|
<b class="Fn" title="Fn">crypto_unlock_auth_ad</b>() respectively in
|
|
Monocypher 2.0.0. They were deprecated in Monocypher 3.0.0 and will be removed
|
|
in Monocypher 4.0.0.</div>
|
|
<table class="foot">
|
|
<tr>
|
|
<td class="foot-date">December 12, 2019</td>
|
|
<td class="foot-os">Linux 4.15.0-106-generic</td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>
|