Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-release > by-pkgid > 0a67b807a02637f2cae68649d519a89d > files > 2452

libcryptopp-devel-7.0.0-1.mga7.armv7hl.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crypto++: naclite.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Crypto++
   &#160;<span id="projectnumber">7.0</span>
   </div>
   <div id="projectbrief">Free&nbsp;C&#43;&#43;&nbsp;class&nbsp;library&nbsp;of&nbsp;cryptographic&nbsp;schemes</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">naclite.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Crypto++ interface to TweetNaCl library (20140917)  
<a href="#details">More...</a></p>

<p><a href="naclite_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a9901282f0662fae3ddc74986f8d7408c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a9901282f0662fae3ddc74986f8d7408c">crypto_box</a> (byte *c, const byte *m, word64 d, const byte *n, const byte *y, const byte *x)</td></tr>
<tr class="memdesc:a9901282f0662fae3ddc74986f8d7408c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encrypt and authenticate a message.  <a href="#a9901282f0662fae3ddc74986f8d7408c">More...</a><br /></td></tr>
<tr class="separator:a9901282f0662fae3ddc74986f8d7408c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42858b56b012c429f152a8795a294b7f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a42858b56b012c429f152a8795a294b7f">crypto_box_open</a> (byte *m, const byte *c, word64 d, const byte *n, const byte *y, const byte *x)</td></tr>
<tr class="memdesc:a42858b56b012c429f152a8795a294b7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify and decrypt a message.  <a href="#a42858b56b012c429f152a8795a294b7f">More...</a><br /></td></tr>
<tr class="separator:a42858b56b012c429f152a8795a294b7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6b434452ee18da0bbdbd238e7f1000c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#ac6b434452ee18da0bbdbd238e7f1000c">crypto_box_keypair</a> (byte *y, byte *x)</td></tr>
<tr class="memdesc:ac6b434452ee18da0bbdbd238e7f1000c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a keypair for encryption.  <a href="#ac6b434452ee18da0bbdbd238e7f1000c">More...</a><br /></td></tr>
<tr class="separator:ac6b434452ee18da0bbdbd238e7f1000c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09a1c4b3c26592ef93892feb67767113"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a09a1c4b3c26592ef93892feb67767113">crypto_box_beforenm</a> (byte *k, const byte *y, const byte *x)</td></tr>
<tr class="memdesc:a09a1c4b3c26592ef93892feb67767113"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encrypt and authenticate a message.  <a href="#a09a1c4b3c26592ef93892feb67767113">More...</a><br /></td></tr>
<tr class="separator:a09a1c4b3c26592ef93892feb67767113"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d52a5464986fc0bbbce3bc114aa04ef"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a1d52a5464986fc0bbbce3bc114aa04ef">crypto_box_afternm</a> (byte *c, const byte *m, word64 d, const byte *n, const byte *k)</td></tr>
<tr class="memdesc:a1d52a5464986fc0bbbce3bc114aa04ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encrypt and authenticate a message.  <a href="#a1d52a5464986fc0bbbce3bc114aa04ef">More...</a><br /></td></tr>
<tr class="separator:a1d52a5464986fc0bbbce3bc114aa04ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa99c97521c76b846df8ee4c591b55af2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#aa99c97521c76b846df8ee4c591b55af2">crypto_box_open_afternm</a> (byte *m, const byte *c, word64 d, const byte *n, const byte *k)</td></tr>
<tr class="memdesc:aa99c97521c76b846df8ee4c591b55af2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify and decrypt a message.  <a href="#aa99c97521c76b846df8ee4c591b55af2">More...</a><br /></td></tr>
<tr class="separator:aa99c97521c76b846df8ee4c591b55af2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a470bad08d0811609c811491b97e3efd9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a470bad08d0811609c811491b97e3efd9">crypto_box_unchecked</a> (byte *c, const byte *m, word64 d, const byte *n, const byte *y, const byte *x)</td></tr>
<tr class="memdesc:a470bad08d0811609c811491b97e3efd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encrypt and authenticate a message.  <a href="#a470bad08d0811609c811491b97e3efd9">More...</a><br /></td></tr>
<tr class="separator:a470bad08d0811609c811491b97e3efd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ef82c04c61482332e4b5dca5818fbf4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a5ef82c04c61482332e4b5dca5818fbf4">crypto_box_open_unchecked</a> (byte *m, const byte *c, word64 d, const byte *n, const byte *y, const byte *x)</td></tr>
<tr class="memdesc:a5ef82c04c61482332e4b5dca5818fbf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify and decrypt a message.  <a href="#a5ef82c04c61482332e4b5dca5818fbf4">More...</a><br /></td></tr>
<tr class="separator:a5ef82c04c61482332e4b5dca5818fbf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3550ab7369eb2693c5bbc1f555ad6370"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a3550ab7369eb2693c5bbc1f555ad6370">crypto_box_beforenm_unchecked</a> (byte *k, const byte *y, const byte *x)</td></tr>
<tr class="memdesc:a3550ab7369eb2693c5bbc1f555ad6370"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encrypt and authenticate a message.  <a href="#a3550ab7369eb2693c5bbc1f555ad6370">More...</a><br /></td></tr>
<tr class="separator:a3550ab7369eb2693c5bbc1f555ad6370"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27fe78f07af893b38b8deaaa2c63f190"><td class="memItemLeft" align="right" valign="top"><a id="a27fe78f07af893b38b8deaaa2c63f190"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a27fe78f07af893b38b8deaaa2c63f190">crypto_core_salsa20</a> (byte *out, const byte *in, const byte *k, const byte *c)</td></tr>
<tr class="memdesc:a27fe78f07af893b38b8deaaa2c63f190"><td class="mdescLeft">&#160;</td><td class="mdescRight">TODO. <br /></td></tr>
<tr class="separator:a27fe78f07af893b38b8deaaa2c63f190"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3faa0eb09577f9f094fe05c5e7c0d505"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a3faa0eb09577f9f094fe05c5e7c0d505">crypto_core_hsalsa20</a> (byte *out, const byte *in, const byte *k, const byte *c)</td></tr>
<tr class="memdesc:a3faa0eb09577f9f094fe05c5e7c0d505"><td class="mdescLeft">&#160;</td><td class="mdescRight">TODO.  <a href="#a3faa0eb09577f9f094fe05c5e7c0d505">More...</a><br /></td></tr>
<tr class="separator:a3faa0eb09577f9f094fe05c5e7c0d505"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dcfce19212ff730c854e733e13655e5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a5dcfce19212ff730c854e733e13655e5">crypto_hashblocks</a> (byte *x, const byte *m, word64 n)</td></tr>
<tr class="memdesc:a5dcfce19212ff730c854e733e13655e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hash multiple blocks.  <a href="#a5dcfce19212ff730c854e733e13655e5">More...</a><br /></td></tr>
<tr class="separator:a5dcfce19212ff730c854e733e13655e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a0d992ad3768945d2b8f4f04e40b23a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a8a0d992ad3768945d2b8f4f04e40b23a">crypto_hash</a> (byte *out, const byte *m, word64 n)</td></tr>
<tr class="memdesc:a8a0d992ad3768945d2b8f4f04e40b23a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hash a message.  <a href="#a8a0d992ad3768945d2b8f4f04e40b23a">More...</a><br /></td></tr>
<tr class="separator:a8a0d992ad3768945d2b8f4f04e40b23a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42ae4588274ec80232448abb212de4c1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a42ae4588274ec80232448abb212de4c1">crypto_onetimeauth</a> (byte *out, const byte *m, word64 n, const byte *k)</td></tr>
<tr class="memdesc:a42ae4588274ec80232448abb212de4c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an authentication tag for a message.  <a href="#a42ae4588274ec80232448abb212de4c1">More...</a><br /></td></tr>
<tr class="separator:a42ae4588274ec80232448abb212de4c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa296b9fdb62ddce1fe87043e626fd574"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#aa296b9fdb62ddce1fe87043e626fd574">crypto_onetimeauth_verify</a> (const byte *h, const byte *m, word64 n, const byte *k)</td></tr>
<tr class="memdesc:aa296b9fdb62ddce1fe87043e626fd574"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify an authentication tag on a message.  <a href="#aa296b9fdb62ddce1fe87043e626fd574">More...</a><br /></td></tr>
<tr class="separator:aa296b9fdb62ddce1fe87043e626fd574"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c18d7ce2ad9a14a7dd5e2a2eade80a9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a6c18d7ce2ad9a14a7dd5e2a2eade80a9">crypto_scalarmult</a> (byte *q, const byte *n, const byte *p)</td></tr>
<tr class="memdesc:a6c18d7ce2ad9a14a7dd5e2a2eade80a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scalar multiplication of a point.  <a href="#a6c18d7ce2ad9a14a7dd5e2a2eade80a9">More...</a><br /></td></tr>
<tr class="separator:a6c18d7ce2ad9a14a7dd5e2a2eade80a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c724dc954ad94ef544ea52ee52ccd55"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a5c724dc954ad94ef544ea52ee52ccd55">crypto_scalarmult_base</a> (byte *q, const byte *n)</td></tr>
<tr class="memdesc:a5c724dc954ad94ef544ea52ee52ccd55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scalar multiplication of base point.  <a href="#a5c724dc954ad94ef544ea52ee52ccd55">More...</a><br /></td></tr>
<tr class="separator:a5c724dc954ad94ef544ea52ee52ccd55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceecda08cbfd5aa60ef23e608687f641"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#aceecda08cbfd5aa60ef23e608687f641">crypto_secretbox</a> (byte *c, const byte *m, word64 d, const byte *n, const byte *k)</td></tr>
<tr class="memdesc:aceecda08cbfd5aa60ef23e608687f641"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encrypt and authenticate a message.  <a href="#aceecda08cbfd5aa60ef23e608687f641">More...</a><br /></td></tr>
<tr class="separator:aceecda08cbfd5aa60ef23e608687f641"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d943e9c5b6be5956c6af8256ffddaf5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a1d943e9c5b6be5956c6af8256ffddaf5">crypto_secretbox_open</a> (byte *m, const byte *c, word64 d, const byte *n, const byte *k)</td></tr>
<tr class="memdesc:a1d943e9c5b6be5956c6af8256ffddaf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify and decrypt a message.  <a href="#a1d943e9c5b6be5956c6af8256ffddaf5">More...</a><br /></td></tr>
<tr class="separator:a1d943e9c5b6be5956c6af8256ffddaf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb36330ea01be7980c6fcce191710a77"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#afb36330ea01be7980c6fcce191710a77">crypto_sign</a> (byte *sm, word64 *smlen, const byte *m, word64 n, const byte *sk)</td></tr>
<tr class="memdesc:afb36330ea01be7980c6fcce191710a77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sign a message.  <a href="#afb36330ea01be7980c6fcce191710a77">More...</a><br /></td></tr>
<tr class="separator:afb36330ea01be7980c6fcce191710a77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b48b4f3787739f06245d76b09662854"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a4b48b4f3787739f06245d76b09662854">crypto_sign_open</a> (byte *m, word64 *mlen, const byte *sm, word64 n, const byte *pk)</td></tr>
<tr class="memdesc:a4b48b4f3787739f06245d76b09662854"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify a message.  <a href="#a4b48b4f3787739f06245d76b09662854">More...</a><br /></td></tr>
<tr class="separator:a4b48b4f3787739f06245d76b09662854"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf6198b5db146b4924d20835b9f0c61d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#adf6198b5db146b4924d20835b9f0c61d">crypto_sign_keypair</a> (byte *pk, byte *sk)</td></tr>
<tr class="memdesc:adf6198b5db146b4924d20835b9f0c61d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a keypair for signing.  <a href="#adf6198b5db146b4924d20835b9f0c61d">More...</a><br /></td></tr>
<tr class="separator:adf6198b5db146b4924d20835b9f0c61d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00e45fd4091b32bba7fc1041b2b4e689"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a00e45fd4091b32bba7fc1041b2b4e689">crypto_stream</a> (byte *c, word64 d, const byte *n, const byte *k)</td></tr>
<tr class="memdesc:a00e45fd4091b32bba7fc1041b2b4e689"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produce a keystream using <a class="el" href="struct_x_salsa20.html" title="XSalsa20 stream cipher. ">XSalsa20</a>.  <a href="#a00e45fd4091b32bba7fc1041b2b4e689">More...</a><br /></td></tr>
<tr class="separator:a00e45fd4091b32bba7fc1041b2b4e689"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e5da87ad72613d0a6546c18623ec8da"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a3e5da87ad72613d0a6546c18623ec8da">crypto_stream_xor</a> (byte *c, const byte *m, word64 d, const byte *n, const byte *k)</td></tr>
<tr class="memdesc:a3e5da87ad72613d0a6546c18623ec8da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encrypt a message using <a class="el" href="struct_x_salsa20.html" title="XSalsa20 stream cipher. ">XSalsa20</a>.  <a href="#a3e5da87ad72613d0a6546c18623ec8da">More...</a><br /></td></tr>
<tr class="separator:a3e5da87ad72613d0a6546c18623ec8da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5eaee390489d2a7b9998efa1ac46db37"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a5eaee390489d2a7b9998efa1ac46db37">crypto_stream_salsa20</a> (byte *c, word64 d, const byte *n, const byte *k)</td></tr>
<tr class="memdesc:a5eaee390489d2a7b9998efa1ac46db37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produce a keystream using <a class="el" href="struct_salsa20.html" title="Salsa20 stream cipher. ">Salsa20</a>.  <a href="#a5eaee390489d2a7b9998efa1ac46db37">More...</a><br /></td></tr>
<tr class="separator:a5eaee390489d2a7b9998efa1ac46db37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a025ced94bf40601aaca557f88e263520"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a025ced94bf40601aaca557f88e263520">crypto_stream_salsa20_xor</a> (byte *c, const byte *m, word64 b, const byte *n, const byte *k)</td></tr>
<tr class="memdesc:a025ced94bf40601aaca557f88e263520"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encrypt a message using <a class="el" href="struct_salsa20.html" title="Salsa20 stream cipher. ">Salsa20</a>.  <a href="#a025ced94bf40601aaca557f88e263520">More...</a><br /></td></tr>
<tr class="separator:a025ced94bf40601aaca557f88e263520"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec57f288b468ee38492c45557f736ca8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#aec57f288b468ee38492c45557f736ca8">crypto_verify_16</a> (const byte *x, const byte *y)</td></tr>
<tr class="memdesc:aec57f288b468ee38492c45557f736ca8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare 16-byte buffers.  <a href="#aec57f288b468ee38492c45557f736ca8">More...</a><br /></td></tr>
<tr class="separator:aec57f288b468ee38492c45557f736ca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33256907cbe2f0a1788e13fa58c31eec"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="naclite_8h.html#a33256907cbe2f0a1788e13fa58c31eec">crypto_verify_32</a> (const byte *x, const byte *y)</td></tr>
<tr class="memdesc:a33256907cbe2f0a1788e13fa58c31eec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare 32-byte buffers.  <a href="#a33256907cbe2f0a1788e13fa58c31eec">More...</a><br /></td></tr>
<tr class="separator:a33256907cbe2f0a1788e13fa58c31eec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Crypto++ interface to TweetNaCl library (20140917) </p>
<p>TweetNaCl is a compact reimplementation of the <a class="el" href="namespace_na_cl.html" title="Namespace containing NaCl library functions. ">NaCl</a> library by Daniel J. Bernstein, Bernard van Gastel, Wesley Janssen, Tanja Lange, Peter Schwabe and Sjaak Smetsers. The library is less than 20 KB in size and provides 25 of the <a class="el" href="namespace_na_cl.html" title="Namespace containing NaCl library functions. ">NaCl</a> library functions.</p>
<p>The compact library uses curve25519, <a class="el" href="struct_x_salsa20.html" title="XSalsa20 stream cipher. ">XSalsa20</a>, <a class="el" href="class_poly1305.html" title="Poly1305 message authentication code. ">Poly1305</a> and SHA-512 as default primitives, and includes both x25519 key exchange and ed25519 signatures. The complete list of functions can be found in <a href="https://tweetnacl.cr.yp.to/tweetnacl-20140917.pdf">TweetNaCl: A crypto library in 100 tweets</a> (20140917), Table 1, page 5.</p>
<p>Crypto++ rejects small order elements using libsodium's blacklist. The TweetNaCl library allowed them but the library predated the attack. If you wish to allow small elements then use the "unchecked" versions of crypto_box_unchecked, crypto_box_open_unchecked and crypto_box_beforenm_unchecked.</p>
<p>TweetNaCl is well written but not well optimzed. It runs 2x to 3x slower than optimized routines from libsodium. However, the library is still 2x to 4x faster than the algorithms <a class="el" href="namespace_na_cl.html" title="Namespace containing NaCl library functions. ">NaCl</a> was designed to replace.</p>
<p>The Crypto++ wrapper for TweetNaCl requires OS features. That is, <code>NO_OS_DEPENDENCE</code> cannot be defined. It is due to TweetNaCl's internal function <code>randombytes</code>. Crypto++ used <code><a class="el" href="class_default_auto_seeded_r_n_g.html" title="A typedef providing a default generator. ">DefaultAutoSeededRNG</a></code> within <code>randombytes</code>, so OS integration must be enabled. You can use another generator like <code><a class="el" href="class_r_d_r_a_n_d.html" title="Hardware generated random numbers using RDRAND instruction. ">RDRAND</a></code> to avoid the restriction. </p><dl class="section see"><dt>See also</dt><dd><a href="https://cr.yp.to/highspeed/coolnacl-20120725.pdf">The security impact of a new cryptographic library</a>, <a href="https://tweetnacl.cr.yp.to/tweetnacl-20140917.pdf">TweetNaCl: A crypto library in 100 tweets</a> (20140917), <a href="https://eprint.iacr.org/2017/806.pdf">May the Fourth Be With You: A Microarchitectural Side Channel Attack on Several Real-World Applications of Curve25519</a>, <a href="https://github.com/jedisct1/libsodium/commit/afabd7e7386e1194">libsodium commit afabd7e7386e1194</a> and <a href="https://tools.ietf.org/html/rfc7748">RFC 7748, Elliptic Curves for Security</a>, Section 6. </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition in file <a class="el" href="naclite_8h_source.html">naclite.h</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a9901282f0662fae3ddc74986f8d7408c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9901282f0662fae3ddc74986f8d7408c">&#9670;&nbsp;</a></span>crypto_box()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_box </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encrypt and authenticate a message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>output byte buffer </td></tr>
    <tr><td class="paramname">m</td><td>input byte buffer </td></tr>
    <tr><td class="paramname">d</td><td>size of the input byte buffer </td></tr>
    <tr><td class="paramname">n</td><td>nonce byte buffer </td></tr>
    <tr><td class="paramname">y</td><td>other's public key </td></tr>
    <tr><td class="paramname">x</td><td>private key</td></tr>
  </table>
  </dd>
</dl>
<p><a class="el" href="naclite_8h.html#a9901282f0662fae3ddc74986f8d7408c" title="Encrypt and authenticate a message. ">crypto_box()</a> uses crypto_box_curve25519xsalsa20poly1305 </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/box.html">NaCl crypto_box documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00542">542</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a42858b56b012c429f152a8795a294b7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42858b56b012c429f152a8795a294b7f">&#9670;&nbsp;</a></span>crypto_box_open()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_box_open </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Verify and decrypt a message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">m</td><td>output byte buffer </td></tr>
    <tr><td class="paramname">c</td><td>input byte buffer </td></tr>
    <tr><td class="paramname">d</td><td>size of the input byte buffer </td></tr>
    <tr><td class="paramname">n</td><td>nonce byte buffer </td></tr>
    <tr><td class="paramname">y</td><td>other's public key </td></tr>
    <tr><td class="paramname">x</td><td>private key</td></tr>
  </table>
  </dd>
</dl>
<p><a class="el" href="naclite_8h.html#a42858b56b012c429f152a8795a294b7f" title="Verify and decrypt a message. ">crypto_box_open()</a> uses crypto_box_curve25519xsalsa20poly1305 </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/box.html">NaCl crypto_box documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00556">556</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="ac6b434452ee18da0bbdbd238e7f1000c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6b434452ee18da0bbdbd238e7f1000c">&#9670;&nbsp;</a></span>crypto_box_keypair()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_box_keypair </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Generate a keypair for encryption. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">y</td><td>public key byte buffer </td></tr>
    <tr><td class="paramname">x</td><td>private key byte buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/box.html">NaCl crypto_box documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00508">508</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a09a1c4b3c26592ef93892feb67767113"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09a1c4b3c26592ef93892feb67767113">&#9670;&nbsp;</a></span>crypto_box_beforenm()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_box_beforenm </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encrypt and authenticate a message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">k</td><td>shared secret byte buffer </td></tr>
    <tr><td class="paramname">y</td><td>other's public key </td></tr>
    <tr><td class="paramname">x</td><td>private key</td></tr>
  </table>
  </dd>
</dl>
<p><a class="el" href="naclite_8h.html#a09a1c4b3c26592ef93892feb67767113" title="Encrypt and authenticate a message. ">crypto_box_beforenm()</a> performs message-independent precomputation to derive the key. Once the key is derived multiple calls to <a class="el" href="naclite_8h.html#a1d52a5464986fc0bbbce3bc114aa04ef" title="Encrypt and authenticate a message. ">crypto_box_afternm()</a> can be made to process the message. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/box.html">NaCl crypto_box documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00516">516</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a1d52a5464986fc0bbbce3bc114aa04ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d52a5464986fc0bbbce3bc114aa04ef">&#9670;&nbsp;</a></span>crypto_box_afternm()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_box_afternm </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encrypt and authenticate a message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">m</td><td>output byte buffer </td></tr>
    <tr><td class="paramname">c</td><td>input byte buffer </td></tr>
    <tr><td class="paramname">d</td><td>size of the input byte buffer </td></tr>
    <tr><td class="paramname">n</td><td>nonce byte buffer </td></tr>
    <tr><td class="paramname">k</td><td>shared secret byte buffer</td></tr>
  </table>
  </dd>
</dl>
<p><a class="el" href="naclite_8h.html#a1d52a5464986fc0bbbce3bc114aa04ef" title="Encrypt and authenticate a message. ">crypto_box_afternm()</a> performs message-dependent computation using the derived the key. Once the key is derived using <a class="el" href="naclite_8h.html#a09a1c4b3c26592ef93892feb67767113" title="Encrypt and authenticate a message. ">crypto_box_beforenm()</a> multiple calls to <a class="el" href="naclite_8h.html#a1d52a5464986fc0bbbce3bc114aa04ef" title="Encrypt and authenticate a message. ">crypto_box_afternm()</a> can be made to process the message. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/box.html">NaCl crypto_box documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00532">532</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="aa99c97521c76b846df8ee4c591b55af2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa99c97521c76b846df8ee4c591b55af2">&#9670;&nbsp;</a></span>crypto_box_open_afternm()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_box_open_afternm </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Verify and decrypt a message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">m</td><td>output byte buffer </td></tr>
    <tr><td class="paramname">c</td><td>input byte buffer </td></tr>
    <tr><td class="paramname">d</td><td>size of the input byte buffer </td></tr>
    <tr><td class="paramname">n</td><td>nonce byte buffer </td></tr>
    <tr><td class="paramname">k</td><td>shared secret byte buffer</td></tr>
  </table>
  </dd>
</dl>
<p><a class="el" href="naclite_8h.html#a1d52a5464986fc0bbbce3bc114aa04ef" title="Encrypt and authenticate a message. ">crypto_box_afternm()</a> performs message-dependent computation using the derived the key. Once the key is derived using <a class="el" href="naclite_8h.html#a09a1c4b3c26592ef93892feb67767113" title="Encrypt and authenticate a message. ">crypto_box_beforenm()</a> multiple calls to <a class="el" href="naclite_8h.html#aa99c97521c76b846df8ee4c591b55af2" title="Verify and decrypt a message. ">crypto_box_open_afternm()</a> can be made to process the message. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/box.html">NaCl crypto_box documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00537">537</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a470bad08d0811609c811491b97e3efd9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a470bad08d0811609c811491b97e3efd9">&#9670;&nbsp;</a></span>crypto_box_unchecked()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_box_unchecked </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encrypt and authenticate a message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">c</td><td>output byte buffer </td></tr>
    <tr><td class="paramname">m</td><td>input byte buffer </td></tr>
    <tr><td class="paramname">d</td><td>size of the input byte buffer </td></tr>
    <tr><td class="paramname">n</td><td>nonce byte buffer </td></tr>
    <tr><td class="paramname">y</td><td>other's public key </td></tr>
    <tr><td class="paramname">x</td><td>private key</td></tr>
  </table>
  </dd>
</dl>
<p><a class="el" href="naclite_8h.html#a9901282f0662fae3ddc74986f8d7408c" title="Encrypt and authenticate a message. ">crypto_box()</a> uses crypto_box_curve25519xsalsa20poly1305.</p>
<p>This version of <a class="el" href="naclite_8h.html#a9901282f0662fae3ddc74986f8d7408c" title="Encrypt and authenticate a message. ">crypto_box()</a> does not check for small order elements. It can be unsafe but it exists for backwards compatibility with downlevel clients. Without the compatibility interop with early versions of <a class="el" href="namespace_na_cl.html" title="Namespace containing NaCl library functions. ">NaCl</a>, libsodium and other libraries does not exist. The downlevel interop may also be needed of cryptocurrencies like Bitcoin, Ethereum, Monero and Zcash. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>This version of <a class="el" href="naclite_8h.html#a9901282f0662fae3ddc74986f8d7408c" title="Encrypt and authenticate a message. ">crypto_box()</a> does not check for small order elements. It should not be used in new software. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/box.html">NaCl crypto_box documentation</a>, <a href="https://eprint.iacr.org/2017/806.pdf">May the Fourth Be With You: A Microarchitectural Side Channel Attack on Several Real-World Applications of Curve25519</a>, <a href="https://github.com/jedisct1/libsodium/commit/afabd7e7386e1194">libsodium commit afabd7e7386e1194</a>. </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00549">549</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a5ef82c04c61482332e4b5dca5818fbf4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ef82c04c61482332e4b5dca5818fbf4">&#9670;&nbsp;</a></span>crypto_box_open_unchecked()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_box_open_unchecked </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Verify and decrypt a message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">m</td><td>output byte buffer </td></tr>
    <tr><td class="paramname">c</td><td>input byte buffer </td></tr>
    <tr><td class="paramname">d</td><td>size of the input byte buffer </td></tr>
    <tr><td class="paramname">n</td><td>nonce byte buffer </td></tr>
    <tr><td class="paramname">y</td><td>other's public key </td></tr>
    <tr><td class="paramname">x</td><td>private key</td></tr>
  </table>
  </dd>
</dl>
<p><a class="el" href="naclite_8h.html#a42858b56b012c429f152a8795a294b7f" title="Verify and decrypt a message. ">crypto_box_open()</a> uses crypto_box_curve25519xsalsa20poly1305.</p>
<p>This version of <a class="el" href="naclite_8h.html#a42858b56b012c429f152a8795a294b7f" title="Verify and decrypt a message. ">crypto_box_open()</a> does not check for small order elements. It can be unsafe but it exists for backwards compatibility with downlevel clients. Without the compatibility interop with early versions of <a class="el" href="namespace_na_cl.html" title="Namespace containing NaCl library functions. ">NaCl</a>, libsodium and other libraries does not exist. The downlevel interop may also be needed of cryptocurrencies like Bitcoin, Ethereum, Monero and Zcash. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>This version of <a class="el" href="naclite_8h.html#a42858b56b012c429f152a8795a294b7f" title="Verify and decrypt a message. ">crypto_box_open()</a> does not check for small order elements. It should not be used in new software. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/box.html">NaCl crypto_box documentation</a>, <a href="https://eprint.iacr.org/2017/806.pdf">May the Fourth Be With You: A Microarchitectural Side Channel Attack on Several Real-World Applications of Curve25519</a>, <a href="https://github.com/jedisct1/libsodium/commit/afabd7e7386e1194">libsodium commit afabd7e7386e1194</a>. </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00563">563</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a3550ab7369eb2693c5bbc1f555ad6370"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3550ab7369eb2693c5bbc1f555ad6370">&#9670;&nbsp;</a></span>crypto_box_beforenm_unchecked()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_box_beforenm_unchecked </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>x</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encrypt and authenticate a message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">k</td><td>shared secret byte buffer </td></tr>
    <tr><td class="paramname">y</td><td>other's public key </td></tr>
    <tr><td class="paramname">x</td><td>private key</td></tr>
  </table>
  </dd>
</dl>
<p><a class="el" href="naclite_8h.html#a09a1c4b3c26592ef93892feb67767113" title="Encrypt and authenticate a message. ">crypto_box_beforenm()</a> performs message-independent precomputation to derive the key. Once the key is derived multiple calls to <a class="el" href="naclite_8h.html#a1d52a5464986fc0bbbce3bc114aa04ef" title="Encrypt and authenticate a message. ">crypto_box_afternm()</a> can be made to process the message.</p>
<p>This version of <a class="el" href="naclite_8h.html#a09a1c4b3c26592ef93892feb67767113" title="Encrypt and authenticate a message. ">crypto_box_beforenm()</a> does not check for small order elements. It can be unsafe but it exists for backwards compatibility with downlevel clients. Without the compatibility interop with early versions of <a class="el" href="namespace_na_cl.html" title="Namespace containing NaCl library functions. ">NaCl</a>, libsodium and other libraries does not exist. The downlevel interop may also be needed of cryptocurrencies like Bitcoin, Ethereum, Monero and Zcash. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>This version of <a class="el" href="naclite_8h.html#a09a1c4b3c26592ef93892feb67767113" title="Encrypt and authenticate a message. ">crypto_box_beforenm()</a> does not check for small order elements. It should not be used in new software. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/box.html">NaCl crypto_box documentation</a>, <a href="https://eprint.iacr.org/2017/806.pdf">May the Fourth Be With You: A Microarchitectural Side Channel Attack on Several Real-World Applications of Curve25519</a>, <a href="https://github.com/jedisct1/libsodium/commit/afabd7e7386e1194">libsodium commit afabd7e7386e1194</a>. </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00525">525</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a3faa0eb09577f9f094fe05c5e7c0d505"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3faa0eb09577f9f094fe05c5e7c0d505">&#9670;&nbsp;</a></span>crypto_core_hsalsa20()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_core_hsalsa20 </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TODO. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00140">140</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a5dcfce19212ff730c854e733e13655e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5dcfce19212ff730c854e733e13655e5">&#9670;&nbsp;</a></span>crypto_hashblocks()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_hashblocks </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Hash multiple blocks. </p>
<p><a class="el" href="naclite_8h.html#a5dcfce19212ff730c854e733e13655e5" title="Hash multiple blocks. ">crypto_hashblocks()</a> uses crypto_hashblocks_sha512. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/hash.html">NaCl crypto_hash documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00602">602</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a8a0d992ad3768945d2b8f4f04e40b23a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a0d992ad3768945d2b8f4f04e40b23a">&#9670;&nbsp;</a></span>crypto_hash()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_hash </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Hash a message. </p>
<p><a class="el" href="naclite_8h.html#a8a0d992ad3768945d2b8f4f04e40b23a" title="Hash a message. ">crypto_hash()</a> uses crypto_hash_sha512. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/hash.html">NaCl crypto_hash documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00645">645</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a42ae4588274ec80232448abb212de4c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42ae4588274ec80232448abb212de4c1">&#9670;&nbsp;</a></span>crypto_onetimeauth()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_onetimeauth </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create an authentication tag for a message. </p>
<p><a class="el" href="naclite_8h.html#a42ae4588274ec80232448abb212de4c1" title="Create an authentication tag for a message. ">crypto_onetimeauth()</a> uses crypto_onetimeauth_poly1305. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/onetimeauth.html">NaCl crypto_onetimeauth documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00208">208</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="aa296b9fdb62ddce1fe87043e626fd574"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa296b9fdb62ddce1fe87043e626fd574">&#9670;&nbsp;</a></span>crypto_onetimeauth_verify()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_onetimeauth_verify </td>
          <td>(</td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Verify an authentication tag on a message. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/onetimeauth.html">NaCl crypto_onetimeauth documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00261">261</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a6c18d7ce2ad9a14a7dd5e2a2eade80a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c18d7ce2ad9a14a7dd5e2a2eade80a9">&#9670;&nbsp;</a></span>crypto_scalarmult()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_scalarmult </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Scalar multiplication of a point. </p>
<p><a class="el" href="naclite_8h.html#a6c18d7ce2ad9a14a7dd5e2a2eade80a9" title="Scalar multiplication of a point. ">crypto_scalarmult()</a> uses crypto_scalarmult_curve25519 </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/scalarmult.html">NaCl crypto_scalarmult documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00452">452</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a5c724dc954ad94ef544ea52ee52ccd55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c724dc954ad94ef544ea52ee52ccd55">&#9670;&nbsp;</a></span>crypto_scalarmult_base()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_scalarmult_base </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Scalar multiplication of base point. </p>
<p><a class="el" href="naclite_8h.html#a5c724dc954ad94ef544ea52ee52ccd55" title="Scalar multiplication of base point. ">crypto_scalarmult_base()</a> uses crypto_scalarmult_curve25519 </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/scalarmult.html">NaCl crypto_scalarmult documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00503">503</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="aceecda08cbfd5aa60ef23e608687f641"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aceecda08cbfd5aa60ef23e608687f641">&#9670;&nbsp;</a></span>crypto_secretbox()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_secretbox </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encrypt and authenticate a message. </p>
<p><a class="el" href="naclite_8h.html#aceecda08cbfd5aa60ef23e608687f641" title="Encrypt and authenticate a message. ">crypto_secretbox()</a> uses a symmetric key to encrypt and authenticate a message. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/secretbox.html">NaCl crypto_secretbox documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00268">268</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a1d943e9c5b6be5956c6af8256ffddaf5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d943e9c5b6be5956c6af8256ffddaf5">&#9670;&nbsp;</a></span>crypto_secretbox_open()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_secretbox_open </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Verify and decrypt a message. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/secretbox.html">NaCl crypto_secretbox documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00278">278</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="afb36330ea01be7980c6fcce191710a77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb36330ea01be7980c6fcce191710a77">&#9670;&nbsp;</a></span>crypto_sign()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_sign </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>sm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64 *&#160;</td>
          <td class="paramname"><em>smlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>sk</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sign a message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sm</td><td>output byte buffer </td></tr>
    <tr><td class="paramname">smlen</td><td>size of the output byte buffer </td></tr>
    <tr><td class="paramname">m</td><td>input byte buffer </td></tr>
    <tr><td class="paramname">n</td><td>size of the input byte buffer </td></tr>
    <tr><td class="paramname">sk</td><td>private key</td></tr>
  </table>
  </dd>
</dl>
<p><a class="el" href="naclite_8h.html#afb36330ea01be7980c6fcce191710a77" title="Sign a message. ">crypto_sign()</a> uses crypto_sign_ed25519. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/sign.html">NaCl crypto_sign documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00794">794</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a4b48b4f3787739f06245d76b09662854"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b48b4f3787739f06245d76b09662854">&#9670;&nbsp;</a></span>crypto_sign_open()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_sign_open </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64 *&#160;</td>
          <td class="paramname"><em>mlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>sm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>pk</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Verify a message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">m</td><td>output byte buffer </td></tr>
    <tr><td class="paramname">mlen</td><td>size of the output byte buffer </td></tr>
    <tr><td class="paramname">sm</td><td>input byte buffer </td></tr>
    <tr><td class="paramname">n</td><td>size of the input byte buffer </td></tr>
    <tr><td class="paramname">pk</td><td>public key </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/sign.html">NaCl crypto_sign documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00862">862</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="adf6198b5db146b4924d20835b9f0c61d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf6198b5db146b4924d20835b9f0c61d">&#9670;&nbsp;</a></span>crypto_sign_keypair()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_sign_keypair </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>pk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>sk</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Generate a keypair for signing. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pk</td><td>public key byte buffer </td></tr>
    <tr><td class="paramname">sk</td><td>private key byte buffer</td></tr>
  </table>
  </dd>
</dl>
<p><a class="el" href="naclite_8h.html#adf6198b5db146b4924d20835b9f0c61d" title="Generate a keypair for signing. ">crypto_sign_keypair()</a> creates an ed25519 keypair. </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/sign.html">NaCl crypto_sign documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00739">739</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a00e45fd4091b32bba7fc1041b2b4e689"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00e45fd4091b32bba7fc1041b2b4e689">&#9670;&nbsp;</a></span>crypto_stream()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_stream </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Produce a keystream using <a class="el" href="struct_x_salsa20.html" title="XSalsa20 stream cipher. ">XSalsa20</a>. </p>
<p><a class="el" href="naclite_8h.html#a00e45fd4091b32bba7fc1041b2b4e689" title="Produce a keystream using XSalsa20. ">crypto_stream()</a> uses crypto_stream_xsalsa20 </p><dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/stream.html">NaCl crypto_stream documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00180">180</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a3e5da87ad72613d0a6546c18623ec8da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e5da87ad72613d0a6546c18623ec8da">&#9670;&nbsp;</a></span>crypto_stream_xor()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_stream_xor </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encrypt a message using <a class="el" href="struct_x_salsa20.html" title="XSalsa20 stream cipher. ">XSalsa20</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/stream.html">NaCl crypto_stream documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00187">187</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a5eaee390489d2a7b9998efa1ac46db37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5eaee390489d2a7b9998efa1ac46db37">&#9670;&nbsp;</a></span>crypto_stream_salsa20()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_stream_salsa20 </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Produce a keystream using <a class="el" href="struct_salsa20.html" title="Salsa20 stream cipher. ">Salsa20</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/stream.html">NaCl crypto_stream documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00175">175</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a025ced94bf40601aaca557f88e263520"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a025ced94bf40601aaca557f88e263520">&#9670;&nbsp;</a></span>crypto_stream_salsa20_xor()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_stream_salsa20_xor </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word64&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encrypt a message using <a class="el" href="struct_salsa20.html" title="Salsa20 stream cipher. ">Salsa20</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/stream.html">NaCl crypto_stream documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00148">148</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="aec57f288b468ee38492c45557f736ca8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec57f288b468ee38492c45557f736ca8">&#9670;&nbsp;</a></span>crypto_verify_16()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_verify_16 </td>
          <td>(</td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compare 16-byte buffers. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/verify.html">NaCl crypto_verify documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00084">84</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
<a id="a33256907cbe2f0a1788e13fa58c31eec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33256907cbe2f0a1788e13fa58c31eec">&#9670;&nbsp;</a></span>crypto_verify_32()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int crypto_verify_32 </td>
          <td>(</td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compare 32-byte buffers. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, non-0 otherwise </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://nacl.cr.yp.to/verify.html">NaCl crypto_verify documentation</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 6.0 </dd></dl>

<p class="definition">Definition at line <a class="el" href="tweetnacl_8cpp_source.html#l00089">89</a> of file <a class="el" href="tweetnacl_8cpp_source.html">tweetnacl.cpp</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Sep 16 2018 07:58:10 for Crypto++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>