mirror of
https://github.com/taigrr/arduinolibs
synced 2025-01-18 04:33:12 -08:00
673 lines
42 KiB
HTML
673 lines
42 KiB
HTML
<!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.6"/>
|
|
<title>Arduino Cryptography Library: ChaChaPoly Class 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="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<script type="text/javascript">
|
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
|
</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 style="padding-left: 0.5em;">
|
|
<div id="projectname">Arduino Cryptography Library
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.6 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
</script>
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
<li>
|
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
|
<span class="left">
|
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
alt=""/>
|
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
|
</span><span class="right">
|
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
|
</span>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="navrow2" class="tabs2">
|
|
<ul class="tablist">
|
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
|
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
|
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
|
</ul>
|
|
</div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Pages</a></div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="classChaChaPoly-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">ChaChaPoly Class Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Authenticated cipher based on <a class="el" href="classChaCha.html" title="ChaCha stream cipher. ">ChaCha</a> and <a class="el" href="classPoly1305.html" title="Poly1305 message authenticator. ">Poly1305</a>.
|
|
<a href="classChaChaPoly.html#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="ChaChaPoly_8h_source.html">ChaChaPoly.h</a>></code></p>
|
|
<div class="dynheader">
|
|
Inheritance diagram for ChaChaPoly:</div>
|
|
<div class="dyncontent">
|
|
<div class="center">
|
|
<img src="classChaChaPoly.png" usemap="#ChaChaPoly_map" alt=""/>
|
|
<map id="ChaChaPoly_map" name="ChaChaPoly_map">
|
|
<area href="classAuthenticatedCipher.html" title="Abstract base class for authenticated ciphers. " alt="AuthenticatedCipher" shape="rect" coords="0,56,127,80"/>
|
|
<area href="classCipher.html" title="Abstract base class for stream ciphers. " alt="Cipher" shape="rect" coords="0,0,127,24"/>
|
|
</map>
|
|
</div></div>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:a1b6779227eff97b0336bbc849c7e2e1c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b6779227eff97b0336bbc849c7e2e1c"></a>
|
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#a1b6779227eff97b0336bbc849c7e2e1c">ChaChaPoly</a> ()</td></tr>
|
|
<tr class="memdesc:a1b6779227eff97b0336bbc849c7e2e1c"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new <a class="el" href="classChaChaPoly.html" title="Authenticated cipher based on ChaCha and Poly1305. ">ChaChaPoly</a> authenticated cipher. <br/></td></tr>
|
|
<tr class="separator:a1b6779227eff97b0336bbc849c7e2e1c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7c37e683ee0d2f1181007d8bded4f80c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c37e683ee0d2f1181007d8bded4f80c"></a>
|
|
virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#a7c37e683ee0d2f1181007d8bded4f80c">~ChaChaPoly</a> ()</td></tr>
|
|
<tr class="memdesc:a7c37e683ee0d2f1181007d8bded4f80c"><td class="mdescLeft"> </td><td class="mdescRight">Destroys this <a class="el" href="classChaChaPoly.html" title="Authenticated cipher based on ChaCha and Poly1305. ">ChaChaPoly</a> authenticated cipher. <br/></td></tr>
|
|
<tr class="separator:a7c37e683ee0d2f1181007d8bded4f80c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a666760e68cb53f28ba0a8dc09039c0fb"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#a666760e68cb53f28ba0a8dc09039c0fb">keySize</a> () const </td></tr>
|
|
<tr class="memdesc:a666760e68cb53f28ba0a8dc09039c0fb"><td class="mdescLeft"> </td><td class="mdescRight">Default size of the key for this cipher, in bytes. <a href="#a666760e68cb53f28ba0a8dc09039c0fb">More...</a><br/></td></tr>
|
|
<tr class="separator:a666760e68cb53f28ba0a8dc09039c0fb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac3ebfaaaffe9d607905681949e75140d"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#ac3ebfaaaffe9d607905681949e75140d">ivSize</a> () const </td></tr>
|
|
<tr class="memdesc:ac3ebfaaaffe9d607905681949e75140d"><td class="mdescLeft"> </td><td class="mdescRight">Size of the initialization vector for this cipher, in bytes. <a href="#ac3ebfaaaffe9d607905681949e75140d">More...</a><br/></td></tr>
|
|
<tr class="separator:ac3ebfaaaffe9d607905681949e75140d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a086c2aea395ab31136ebe7805591fd0a"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#a086c2aea395ab31136ebe7805591fd0a">tagSize</a> () const </td></tr>
|
|
<tr class="memdesc:a086c2aea395ab31136ebe7805591fd0a"><td class="mdescLeft"> </td><td class="mdescRight">Returns the size of the authentication tag. <a href="#a086c2aea395ab31136ebe7805591fd0a">More...</a><br/></td></tr>
|
|
<tr class="separator:a086c2aea395ab31136ebe7805591fd0a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae300892647dd92cbce711b834aa20c09"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#ae300892647dd92cbce711b834aa20c09">setKey</a> (const uint8_t *key, size_t len)</td></tr>
|
|
<tr class="memdesc:ae300892647dd92cbce711b834aa20c09"><td class="mdescLeft"> </td><td class="mdescRight">Sets the key to use for future encryption and decryption operations. <a href="#ae300892647dd92cbce711b834aa20c09">More...</a><br/></td></tr>
|
|
<tr class="separator:ae300892647dd92cbce711b834aa20c09"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a308056b17b3a4a496e9612ae19a2fd6f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#a308056b17b3a4a496e9612ae19a2fd6f">setIV</a> (const uint8_t *iv, size_t len)</td></tr>
|
|
<tr class="memdesc:a308056b17b3a4a496e9612ae19a2fd6f"><td class="mdescLeft"> </td><td class="mdescRight">Sets the initialization vector to use for future encryption and decryption operations. <a href="#a308056b17b3a4a496e9612ae19a2fd6f">More...</a><br/></td></tr>
|
|
<tr class="separator:a308056b17b3a4a496e9612ae19a2fd6f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7df4acd04f459ecf9d3b24317bde94a3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#a7df4acd04f459ecf9d3b24317bde94a3">encrypt</a> (uint8_t *output, const uint8_t *input, size_t len)</td></tr>
|
|
<tr class="memdesc:a7df4acd04f459ecf9d3b24317bde94a3"><td class="mdescLeft"> </td><td class="mdescRight">Encrypts an input buffer and writes the ciphertext to an output buffer. <a href="#a7df4acd04f459ecf9d3b24317bde94a3">More...</a><br/></td></tr>
|
|
<tr class="separator:a7df4acd04f459ecf9d3b24317bde94a3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a42f556f202b1166486434ee15b6d95a0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#a42f556f202b1166486434ee15b6d95a0">decrypt</a> (uint8_t *output, const uint8_t *input, size_t len)</td></tr>
|
|
<tr class="memdesc:a42f556f202b1166486434ee15b6d95a0"><td class="mdescLeft"> </td><td class="mdescRight">Decrypts an input buffer and writes the plaintext to an output buffer. <a href="#a42f556f202b1166486434ee15b6d95a0">More...</a><br/></td></tr>
|
|
<tr class="separator:a42f556f202b1166486434ee15b6d95a0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4aa3514d1fb6272da977a7467ae6734b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#a4aa3514d1fb6272da977a7467ae6734b">addAuthData</a> (const void *data, size_t len)</td></tr>
|
|
<tr class="memdesc:a4aa3514d1fb6272da977a7467ae6734b"><td class="mdescLeft"> </td><td class="mdescRight">Adds extra data that will be authenticated but not encrypted. <a href="#a4aa3514d1fb6272da977a7467ae6734b">More...</a><br/></td></tr>
|
|
<tr class="separator:a4aa3514d1fb6272da977a7467ae6734b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a92d850ad7027829e4072c43bd5028f95"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#a92d850ad7027829e4072c43bd5028f95">computeTag</a> (void *tag, size_t len)</td></tr>
|
|
<tr class="memdesc:a92d850ad7027829e4072c43bd5028f95"><td class="mdescLeft"> </td><td class="mdescRight">Finalizes the encryption process and computes the authentication tag. <a href="#a92d850ad7027829e4072c43bd5028f95">More...</a><br/></td></tr>
|
|
<tr class="separator:a92d850ad7027829e4072c43bd5028f95"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aeffb3e0df0b4da03f72f30251243d953"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#aeffb3e0df0b4da03f72f30251243d953">checkTag</a> (const void *tag, size_t len)</td></tr>
|
|
<tr class="memdesc:aeffb3e0df0b4da03f72f30251243d953"><td class="mdescLeft"> </td><td class="mdescRight">Finalizes the decryption process and checks the authentication tag. <a href="#aeffb3e0df0b4da03f72f30251243d953">More...</a><br/></td></tr>
|
|
<tr class="separator:aeffb3e0df0b4da03f72f30251243d953"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2d7fc3fd05a0b6c7c9c21fff6e939c9a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classChaChaPoly.html#a2d7fc3fd05a0b6c7c9c21fff6e939c9a">clear</a> ()</td></tr>
|
|
<tr class="memdesc:a2d7fc3fd05a0b6c7c9c21fff6e939c9a"><td class="mdescLeft"> </td><td class="mdescRight">Clears all security-sensitive state from this cipher. <a href="#a2d7fc3fd05a0b6c7c9c21fff6e939c9a">More...</a><br/></td></tr>
|
|
<tr class="separator:a2d7fc3fd05a0b6c7c9c21fff6e939c9a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="inherit_header pub_methods_classAuthenticatedCipher"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classAuthenticatedCipher')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classAuthenticatedCipher.html">AuthenticatedCipher</a></td></tr>
|
|
<tr class="memitem:a0b1c0210ecb9d374d09b5b62a5140ba2 inherit pub_methods_classAuthenticatedCipher"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b1c0210ecb9d374d09b5b62a5140ba2"></a>
|
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classAuthenticatedCipher.html#a0b1c0210ecb9d374d09b5b62a5140ba2">AuthenticatedCipher</a> ()</td></tr>
|
|
<tr class="memdesc:a0b1c0210ecb9d374d09b5b62a5140ba2 inherit pub_methods_classAuthenticatedCipher"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new authenticated cipher. <br/></td></tr>
|
|
<tr class="separator:a0b1c0210ecb9d374d09b5b62a5140ba2 inherit pub_methods_classAuthenticatedCipher"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae52a07be5b7265ea5898529ec21a79e4 inherit pub_methods_classAuthenticatedCipher"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae52a07be5b7265ea5898529ec21a79e4"></a>
|
|
virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classAuthenticatedCipher.html#ae52a07be5b7265ea5898529ec21a79e4">~AuthenticatedCipher</a> ()</td></tr>
|
|
<tr class="memdesc:ae52a07be5b7265ea5898529ec21a79e4 inherit pub_methods_classAuthenticatedCipher"><td class="mdescLeft"> </td><td class="mdescRight">Destroys this authenticated cipher. <br/></td></tr>
|
|
<tr class="separator:ae52a07be5b7265ea5898529ec21a79e4 inherit pub_methods_classAuthenticatedCipher"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="inherit_header pub_methods_classCipher"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classCipher')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classCipher.html">Cipher</a></td></tr>
|
|
<tr class="memitem:a6a61077eca3ccd5900f92ceac58fb09c inherit pub_methods_classCipher"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a61077eca3ccd5900f92ceac58fb09c"></a>
|
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classCipher.html#a6a61077eca3ccd5900f92ceac58fb09c">Cipher</a> ()</td></tr>
|
|
<tr class="memdesc:a6a61077eca3ccd5900f92ceac58fb09c inherit pub_methods_classCipher"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new cipher object. <br/></td></tr>
|
|
<tr class="separator:a6a61077eca3ccd5900f92ceac58fb09c inherit pub_methods_classCipher"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a84bdea765f7e35aa5b5950dd2853a383 inherit pub_methods_classCipher"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classCipher.html#a84bdea765f7e35aa5b5950dd2853a383">~Cipher</a> ()</td></tr>
|
|
<tr class="memdesc:a84bdea765f7e35aa5b5950dd2853a383 inherit pub_methods_classCipher"><td class="mdescLeft"> </td><td class="mdescRight">Destroys this cipher object. <a href="#a84bdea765f7e35aa5b5950dd2853a383">More...</a><br/></td></tr>
|
|
<tr class="separator:a84bdea765f7e35aa5b5950dd2853a383 inherit pub_methods_classCipher"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Authenticated cipher based on <a class="el" href="classChaCha.html" title="ChaCha stream cipher. ">ChaCha</a> and <a class="el" href="classPoly1305.html" title="Poly1305 message authenticator. ">Poly1305</a>. </p>
|
|
<p><a class="el" href="classChaChaPoly.html" title="Authenticated cipher based on ChaCha and Poly1305. ">ChaChaPoly</a> is an authenticated cipher based on a combination of <a class="el" href="classChaCha.html" title="ChaCha stream cipher. ">ChaCha</a> with 20 rounds for encryption and <a class="el" href="classPoly1305.html" title="Poly1305 message authenticator. ">Poly1305</a> for authentication. The resulting cipher has a 256-bit key, a 64-bit or 96-bit initialization vector, and a 128-bit authentication tag.</p>
|
|
<p>Reference: <a href="https://tools.ietf.org/html/draft-irtf-cfrg-chacha20-poly1305-10">https://tools.ietf.org/html/draft-irtf-cfrg-chacha20-poly1305-10</a></p>
|
|
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classChaCha.html" title="ChaCha stream cipher. ">ChaCha</a>, <a class="el" href="classPoly1305.html" title="Poly1305 message authenticator. ">Poly1305</a>, <a class="el" href="classAuthenticatedCipher.html" title="Abstract base class for authenticated ciphers. ">AuthenticatedCipher</a> </dd></dl>
|
|
|
|
<p>Definition at line <a class="el" href="ChaChaPoly_8h_source.html#l00030">30</a> of file <a class="el" href="ChaChaPoly_8h_source.html">ChaChaPoly.h</a>.</p>
|
|
</div><h2 class="groupheader">Member Function Documentation</h2>
|
|
<a class="anchor" id="a4aa3514d1fb6272da977a7467ae6734b"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ChaChaPoly::addAuthData </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const void * </td>
|
|
<td class="paramname"><em>data</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>len</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Adds extra data that will be authenticated but not encrypted. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">data</td><td>The extra data to be authenticated. </td></tr>
|
|
<tr><td class="paramname">len</td><td>The number of bytes of extra data to be authenticated.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>This function must be called before the first call to <a class="el" href="classChaChaPoly.html#a7df4acd04f459ecf9d3b24317bde94a3" title="Encrypts an input buffer and writes the ciphertext to an output buffer. ">encrypt()</a> or <a class="el" href="classChaChaPoly.html#a42f556f202b1166486434ee15b6d95a0" title="Decrypts an input buffer and writes the plaintext to an output buffer. ">decrypt()</a>. That is, it is assumed that all extra data for authentication is available before the first payload data block and that it will be prepended to the payload for authentication. If the subclass needs to process the extra data after the payload, then it is responsible for saving <em>data</em> away until it is needed during <a class="el" href="classChaChaPoly.html#a92d850ad7027829e4072c43bd5028f95" title="Finalizes the encryption process and computes the authentication tag. ">computeTag()</a> or <a class="el" href="classChaChaPoly.html#aeffb3e0df0b4da03f72f30251243d953" title="Finalizes the decryption process and checks the authentication tag. ">checkTag()</a>.</p>
|
|
<p>This function can be called multiple times with separate extra data blocks for authentication. All such data will be concatenated into a single block for authentication purposes. </p>
|
|
|
|
<p>Implements <a class="el" href="classAuthenticatedCipher.html#abdb081bdf0d59c138cbcffd23c044b10">AuthenticatedCipher</a>.</p>
|
|
|
|
<p>Definition at line <a class="el" href="ChaChaPoly_8cpp_source.html#l00127">127</a> of file <a class="el" href="ChaChaPoly_8cpp_source.html">ChaChaPoly.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="aeffb3e0df0b4da03f72f30251243d953"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ChaChaPoly::checkTag </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const void * </td>
|
|
<td class="paramname"><em>tag</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>len</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Finalizes the decryption process and checks the authentication tag. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">tag</td><td>The tag value from the incoming ciphertext to be checked. </td></tr>
|
|
<tr><td class="paramname">len</td><td>The length of the tag value in bytes, which may be less than <a class="el" href="classChaChaPoly.html#a086c2aea395ab31136ebe7805591fd0a" title="Returns the size of the authentication tag. ">tagSize()</a>.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Returns true if the <em>tag</em> is identical to the first <em>len</em> bytes of the authentication tag that was calculated during the decryption process. Returns false otherwise.</dd></dl>
|
|
<p>This function must be called after the final block of ciphertext is passed to <a class="el" href="classChaChaPoly.html#a42f556f202b1166486434ee15b6d95a0" title="Decrypts an input buffer and writes the plaintext to an output buffer. ">decrypt()</a> to determine if the data could be authenticated.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>Authenticated cipher modes usually require that if the tag could not be verified, then all of the data that was previously decrypted <em>must</em> be discarded. It is unwise to use the decrypted data for any purpose before it can be verified. Callers are responsible for ensuring that any data returned via previous calls to <a class="el" href="classChaChaPoly.html#a42f556f202b1166486434ee15b6d95a0" title="Decrypts an input buffer and writes the plaintext to an output buffer. ">decrypt()</a> is discarded if <a class="el" href="classChaChaPoly.html#aeffb3e0df0b4da03f72f30251243d953" title="Finalizes the decryption process and checks the authentication tag. ">checkTag()</a> returns false.</dd></dl>
|
|
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classChaChaPoly.html#a92d850ad7027829e4072c43bd5028f95" title="Finalizes the encryption process and computes the authentication tag. ">computeTag()</a> </dd></dl>
|
|
|
|
<p>Implements <a class="el" href="classAuthenticatedCipher.html#a4bb33d194e2c7d30c4e5a713e59786ff">AuthenticatedCipher</a>.</p>
|
|
|
|
<p>Definition at line <a class="el" href="ChaChaPoly_8cpp_source.html#l00150">150</a> of file <a class="el" href="ChaChaPoly_8cpp_source.html">ChaChaPoly.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a2d7fc3fd05a0b6c7c9c21fff6e939c9a"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ChaChaPoly::clear </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Clears all security-sensitive state from this cipher. </p>
|
|
<p>Security-sensitive information includes key schedules, initialization vectors, and any temporary state that is used by <a class="el" href="classChaChaPoly.html#a7df4acd04f459ecf9d3b24317bde94a3" title="Encrypts an input buffer and writes the ciphertext to an output buffer. ">encrypt()</a> or <a class="el" href="classChaChaPoly.html#a42f556f202b1166486434ee15b6d95a0" title="Decrypts an input buffer and writes the plaintext to an output buffer. ">decrypt()</a> which is stored in the cipher itself. </p>
|
|
|
|
<p>Implements <a class="el" href="classCipher.html#a4b7c3965646441a70d9ab934a7c92ab1">Cipher</a>.</p>
|
|
|
|
<p>Definition at line <a class="el" href="ChaChaPoly_8cpp_source.html#l00164">164</a> of file <a class="el" href="ChaChaPoly_8cpp_source.html">ChaChaPoly.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a92d850ad7027829e4072c43bd5028f95"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ChaChaPoly::computeTag </td>
|
|
<td>(</td>
|
|
<td class="paramtype">void * </td>
|
|
<td class="paramname"><em>tag</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>len</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Finalizes the encryption process and computes the authentication tag. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">tag</td><td>Points to the buffer to write the tag to. </td></tr>
|
|
<tr><td class="paramname">len</td><td>The length of the tag, which may be less than <a class="el" href="classChaChaPoly.html#a086c2aea395ab31136ebe7805591fd0a" title="Returns the size of the authentication tag. ">tagSize()</a> to truncate the tag to the first <em>len</em> bytes.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classChaChaPoly.html#aeffb3e0df0b4da03f72f30251243d953" title="Finalizes the decryption process and checks the authentication tag. ">checkTag()</a> </dd></dl>
|
|
|
|
<p>Implements <a class="el" href="classAuthenticatedCipher.html#a73fa4306053ed457e5c533b3127391c9">AuthenticatedCipher</a>.</p>
|
|
|
|
<p>Definition at line <a class="el" href="ChaChaPoly_8cpp_source.html#l00135">135</a> of file <a class="el" href="ChaChaPoly_8cpp_source.html">ChaChaPoly.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a42f556f202b1166486434ee15b6d95a0"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ChaChaPoly::decrypt </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint8_t * </td>
|
|
<td class="paramname"><em>output</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>input</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>len</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Decrypts an input buffer and writes the plaintext to an output buffer. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">output</td><td>The output buffer to write to, which may be the same buffer as <em>input</em>. The <em>output</em> buffer must have at least as many bytes as the <em>input</em> buffer. </td></tr>
|
|
<tr><td class="paramname">input</td><td>The input buffer to read from. </td></tr>
|
|
<tr><td class="paramname">len</td><td>The number of bytes to decrypt.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>The <a class="el" href="classChaChaPoly.html#a42f556f202b1166486434ee15b6d95a0" title="Decrypts an input buffer and writes the plaintext to an output buffer. ">decrypt()</a> function can be called multiple times with different regions of the ciphertext data.</p>
|
|
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classChaChaPoly.html#a7df4acd04f459ecf9d3b24317bde94a3" title="Encrypts an input buffer and writes the ciphertext to an output buffer. ">encrypt()</a> </dd></dl>
|
|
|
|
<p>Implements <a class="el" href="classCipher.html#ac6099d1a0d7f2ff67b0e4ccb4a17eb08">Cipher</a>.</p>
|
|
|
|
<p>Definition at line <a class="el" href="ChaChaPoly_8cpp_source.html#l00116">116</a> of file <a class="el" href="ChaChaPoly_8cpp_source.html">ChaChaPoly.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a7df4acd04f459ecf9d3b24317bde94a3"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void ChaChaPoly::encrypt </td>
|
|
<td>(</td>
|
|
<td class="paramtype">uint8_t * </td>
|
|
<td class="paramname"><em>output</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>input</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>len</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Encrypts an input buffer and writes the ciphertext to an output buffer. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">output</td><td>The output buffer to write to, which may be the same buffer as <em>input</em>. The <em>output</em> buffer must have at least as many bytes as the <em>input</em> buffer. </td></tr>
|
|
<tr><td class="paramname">input</td><td>The input buffer to read from. </td></tr>
|
|
<tr><td class="paramname">len</td><td>The number of bytes to encrypt.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>The <a class="el" href="classChaChaPoly.html#a7df4acd04f459ecf9d3b24317bde94a3" title="Encrypts an input buffer and writes the ciphertext to an output buffer. ">encrypt()</a> function can be called multiple times with different regions of the plaintext data.</p>
|
|
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classChaChaPoly.html#a42f556f202b1166486434ee15b6d95a0" title="Decrypts an input buffer and writes the plaintext to an output buffer. ">decrypt()</a> </dd></dl>
|
|
|
|
<p>Implements <a class="el" href="classCipher.html#ad2832bd61039d61560e34ea3382ca562">Cipher</a>.</p>
|
|
|
|
<p>Definition at line <a class="el" href="ChaChaPoly_8cpp_source.html#l00105">105</a> of file <a class="el" href="ChaChaPoly_8cpp_source.html">ChaChaPoly.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ac3ebfaaaffe9d607905681949e75140d"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">size_t ChaChaPoly::ivSize </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Size of the initialization vector for this cipher, in bytes. </p>
|
|
<p>If the cipher does not need an initialization vector, this function will return zero. </p>
|
|
|
|
<p>Implements <a class="el" href="classCipher.html#ab8b53ddc4ce431f03c2a1903d70ace9c">Cipher</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a666760e68cb53f28ba0a8dc09039c0fb"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">size_t ChaChaPoly::keySize </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Default size of the key for this cipher, in bytes. </p>
|
|
<p>If the cipher supports variable-sized keys, <a class="el" href="classChaChaPoly.html#a666760e68cb53f28ba0a8dc09039c0fb" title="Default size of the key for this cipher, in bytes. ">keySize()</a> indicates the default or recommended key size. The cipher may support other key sizes.</p>
|
|
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classChaChaPoly.html#ae300892647dd92cbce711b834aa20c09" title="Sets the key to use for future encryption and decryption operations. ">setKey()</a>, ivSize() </dd></dl>
|
|
|
|
<p>Implements <a class="el" href="classCipher.html#a4cea432ea0278c865441f17cbb88b1ab">Cipher</a>.</p>
|
|
|
|
<p>Definition at line <a class="el" href="ChaChaPoly_8cpp_source.html#l00061">61</a> of file <a class="el" href="ChaChaPoly_8cpp_source.html">ChaChaPoly.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a308056b17b3a4a496e9612ae19a2fd6f"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ChaChaPoly::setIV </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>iv</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>len</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the initialization vector to use for future encryption and decryption operations. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">iv</td><td>The initialization vector to use. </td></tr>
|
|
<tr><td class="paramname">len</td><td>The length of the initialization vector in bytes. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Returns false if the length is not supported.</dd></dl>
|
|
<p>Initialization vectors should be set before the first call to <a class="el" href="classChaChaPoly.html#a7df4acd04f459ecf9d3b24317bde94a3" title="Encrypts an input buffer and writes the ciphertext to an output buffer. ">encrypt()</a> or <a class="el" href="classChaChaPoly.html#a42f556f202b1166486434ee15b6d95a0" title="Decrypts an input buffer and writes the plaintext to an output buffer. ">decrypt()</a> after a <a class="el" href="classChaChaPoly.html#ae300892647dd92cbce711b834aa20c09" title="Sets the key to use for future encryption and decryption operations. ">setKey()</a> call. If the initialization vector is changed after encryption or decryption begins, then the behaviour is undefined.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>The IV is not encoded into the output stream by <a class="el" href="classChaChaPoly.html#a7df4acd04f459ecf9d3b24317bde94a3" title="Encrypts an input buffer and writes the ciphertext to an output buffer. ">encrypt()</a>. The caller is responsible for communicating the IV to the other party.</dd></dl>
|
|
<dl class="section see"><dt>See Also</dt><dd>ivSize() </dd></dl>
|
|
|
|
<p>Implements <a class="el" href="classCipher.html#a3777acd8ff776a4e945bb7c9f2d044d9">Cipher</a>.</p>
|
|
|
|
<p>Definition at line <a class="el" href="ChaChaPoly_8cpp_source.html#l00084">84</a> of file <a class="el" href="ChaChaPoly_8cpp_source.html">ChaChaPoly.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ae300892647dd92cbce711b834aa20c09"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool ChaChaPoly::setKey </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const uint8_t * </td>
|
|
<td class="paramname"><em>key</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>len</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sets the key to use for future encryption and decryption operations. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">key</td><td>The key to use. </td></tr>
|
|
<tr><td class="paramname">len</td><td>The length of the key in bytes. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Returns false if the key length is not supported, or the key is somehow "weak" and unusable by this cipher.</dd></dl>
|
|
<p>Use <a class="el" href="classChaChaPoly.html#a2d7fc3fd05a0b6c7c9c21fff6e939c9a" title="Clears all security-sensitive state from this cipher. ">clear()</a> or the destructor to remove the key and any other sensitive data from the object once encryption or decryption is complete.</p>
|
|
<p>Calling <a class="el" href="classChaChaPoly.html#ae300892647dd92cbce711b834aa20c09" title="Sets the key to use for future encryption and decryption operations. ">setKey()</a> resets the cipher. Any temporary data that was being retained for encrypting partial blocks will be abandoned.</p>
|
|
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classChaChaPoly.html#a666760e68cb53f28ba0a8dc09039c0fb" title="Default size of the key for this cipher, in bytes. ">keySize()</a>, <a class="el" href="classChaChaPoly.html#a2d7fc3fd05a0b6c7c9c21fff6e939c9a" title="Clears all security-sensitive state from this cipher. ">clear()</a> </dd></dl>
|
|
|
|
<p>Implements <a class="el" href="classCipher.html#a0dfe133bda81dfa680b668f5908ccbe5">Cipher</a>.</p>
|
|
|
|
<p>Definition at line <a class="el" href="ChaChaPoly_8cpp_source.html#l00079">79</a> of file <a class="el" href="ChaChaPoly_8cpp_source.html">ChaChaPoly.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a086c2aea395ab31136ebe7805591fd0a"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">size_t ChaChaPoly::tagSize </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the size of the authentication tag. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>The size of the authentication tag in bytes.</dd></dl>
|
|
<p>By default this function should return the largest tag size supported by the authenticated cipher.</p>
|
|
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classChaChaPoly.html#a92d850ad7027829e4072c43bd5028f95" title="Finalizes the encryption process and computes the authentication tag. ">computeTag()</a> </dd></dl>
|
|
|
|
<p>Implements <a class="el" href="classAuthenticatedCipher.html#a50c9de15b1ac1f3079dcfef626238759">AuthenticatedCipher</a>.</p>
|
|
|
|
<p>Definition at line <a class="el" href="ChaChaPoly_8cpp_source.html#l00073">73</a> of file <a class="el" href="ChaChaPoly_8cpp_source.html">ChaChaPoly.cpp</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following files:<ul>
|
|
<li><a class="el" href="ChaChaPoly_8h_source.html">ChaChaPoly.h</a></li>
|
|
<li><a class="el" href="ChaChaPoly_8cpp_source.html">ChaChaPoly.cpp</a></li>
|
|
</ul>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated on Fri Apr 27 2018 12:01:32 for Arduino Cryptography Library by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.6
|
|
</small></address>
|
|
</body>
|
|
</html>
|