mirror of
https://github.com/taigrr/arduinolibs
synced 2025-01-18 04:33:12 -08:00
227 lines
27 KiB
HTML
227 lines
27 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: EAX< T > Class Template 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="classEAX-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">EAX< T > Class Template Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Implementation of the <a class="el" href="classEAX.html" title="Implementation of the EAX authenticated cipher. ">EAX</a> authenticated cipher.
|
|
<a href="classEAX.html#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="EAX_8h_source.html">EAX.h</a>></code></p>
|
|
<div class="dynheader">
|
|
Inheritance diagram for EAX< T >:</div>
|
|
<div class="dyncontent">
|
|
<div class="center">
|
|
<img src="classEAX.png" usemap="#EAX< T >_map" alt=""/>
|
|
<map id="EAX< T >_map" name="EAX< T >_map">
|
|
<area href="classEAXCommon.html" title="Concrete base class to assist with implementing EAX for 128-bit block ciphers. " alt="EAXCommon" shape="rect" coords="0,112,127,136"/>
|
|
<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:a7a1f89270e885a1ca245ca978b66e09b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7a1f89270e885a1ca245ca978b66e09b"></a>
|
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAX.html#a7a1f89270e885a1ca245ca978b66e09b">EAX</a> ()</td></tr>
|
|
<tr class="memdesc:a7a1f89270e885a1ca245ca978b66e09b"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new <a class="el" href="classEAX.html" title="Implementation of the EAX authenticated cipher. ">EAX</a> object for the block cipher T. <br/></td></tr>
|
|
<tr class="separator:a7a1f89270e885a1ca245ca978b66e09b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="inherit_header pub_methods_classEAXCommon"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classEAXCommon')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classEAXCommon.html">EAXCommon</a></td></tr>
|
|
<tr class="memitem:a027956913eecfa0bc760f20f3b62df29 inherit pub_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#a027956913eecfa0bc760f20f3b62df29">keySize</a> () const </td></tr>
|
|
<tr class="memdesc:a027956913eecfa0bc760f20f3b62df29 inherit pub_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Default size of the key for this cipher, in bytes. <a href="#a027956913eecfa0bc760f20f3b62df29">More...</a><br/></td></tr>
|
|
<tr class="separator:a027956913eecfa0bc760f20f3b62df29 inherit pub_methods_classEAXCommon"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abc6ccfb9338c94699458723f669513bf inherit pub_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#abc6ccfb9338c94699458723f669513bf">ivSize</a> () const </td></tr>
|
|
<tr class="memdesc:abc6ccfb9338c94699458723f669513bf inherit pub_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Size of the initialization vector for this cipher, in bytes. <a href="#abc6ccfb9338c94699458723f669513bf">More...</a><br/></td></tr>
|
|
<tr class="separator:abc6ccfb9338c94699458723f669513bf inherit pub_methods_classEAXCommon"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8804341b21f752a5b8178a3bdb123fd9 inherit pub_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#a8804341b21f752a5b8178a3bdb123fd9">tagSize</a> () const </td></tr>
|
|
<tr class="memdesc:a8804341b21f752a5b8178a3bdb123fd9 inherit pub_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Returns the size of the authentication tag. <a href="#a8804341b21f752a5b8178a3bdb123fd9">More...</a><br/></td></tr>
|
|
<tr class="separator:a8804341b21f752a5b8178a3bdb123fd9 inherit pub_methods_classEAXCommon"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af5be5115c119610abb351028263d28de inherit pub_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#af5be5115c119610abb351028263d28de">setKey</a> (const uint8_t *key, size_t len)</td></tr>
|
|
<tr class="memdesc:af5be5115c119610abb351028263d28de inherit pub_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Sets the key to use for future encryption and decryption operations. <a href="#af5be5115c119610abb351028263d28de">More...</a><br/></td></tr>
|
|
<tr class="separator:af5be5115c119610abb351028263d28de inherit pub_methods_classEAXCommon"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a33a5da1f210f01c3622fbf27208f3d45 inherit pub_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#a33a5da1f210f01c3622fbf27208f3d45">setIV</a> (const uint8_t *iv, size_t len)</td></tr>
|
|
<tr class="memdesc:a33a5da1f210f01c3622fbf27208f3d45 inherit pub_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Sets the initialization vector to use for future encryption and decryption operations. <a href="#a33a5da1f210f01c3622fbf27208f3d45">More...</a><br/></td></tr>
|
|
<tr class="separator:a33a5da1f210f01c3622fbf27208f3d45 inherit pub_methods_classEAXCommon"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aad2c563f749535f539b8efbd74b09099 inherit pub_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#aad2c563f749535f539b8efbd74b09099">encrypt</a> (uint8_t *output, const uint8_t *input, size_t len)</td></tr>
|
|
<tr class="memdesc:aad2c563f749535f539b8efbd74b09099 inherit pub_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Encrypts an input buffer and writes the ciphertext to an output buffer. <a href="#aad2c563f749535f539b8efbd74b09099">More...</a><br/></td></tr>
|
|
<tr class="separator:aad2c563f749535f539b8efbd74b09099 inherit pub_methods_classEAXCommon"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a63ce8ae45db137ec9d447216b84245c2 inherit pub_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#a63ce8ae45db137ec9d447216b84245c2">decrypt</a> (uint8_t *output, const uint8_t *input, size_t len)</td></tr>
|
|
<tr class="memdesc:a63ce8ae45db137ec9d447216b84245c2 inherit pub_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Decrypts an input buffer and writes the plaintext to an output buffer. <a href="#a63ce8ae45db137ec9d447216b84245c2">More...</a><br/></td></tr>
|
|
<tr class="separator:a63ce8ae45db137ec9d447216b84245c2 inherit pub_methods_classEAXCommon"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:acdf2c51fb11c068202311b5c95767db8 inherit pub_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#acdf2c51fb11c068202311b5c95767db8">addAuthData</a> (const void *data, size_t len)</td></tr>
|
|
<tr class="memdesc:acdf2c51fb11c068202311b5c95767db8 inherit pub_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Adds extra data that will be authenticated but not encrypted. <a href="#acdf2c51fb11c068202311b5c95767db8">More...</a><br/></td></tr>
|
|
<tr class="separator:acdf2c51fb11c068202311b5c95767db8 inherit pub_methods_classEAXCommon"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab5a61bba48561d6e7e6b8bafc51d91e3 inherit pub_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#ab5a61bba48561d6e7e6b8bafc51d91e3">computeTag</a> (void *tag, size_t len)</td></tr>
|
|
<tr class="memdesc:ab5a61bba48561d6e7e6b8bafc51d91e3 inherit pub_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Finalizes the encryption process and computes the authentication tag. <a href="#ab5a61bba48561d6e7e6b8bafc51d91e3">More...</a><br/></td></tr>
|
|
<tr class="separator:ab5a61bba48561d6e7e6b8bafc51d91e3 inherit pub_methods_classEAXCommon"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a72c403f52cefab57566bc5f634c1b963 inherit pub_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#a72c403f52cefab57566bc5f634c1b963">checkTag</a> (const void *tag, size_t len)</td></tr>
|
|
<tr class="memdesc:a72c403f52cefab57566bc5f634c1b963 inherit pub_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Finalizes the decryption process and checks the authentication tag. <a href="#a72c403f52cefab57566bc5f634c1b963">More...</a><br/></td></tr>
|
|
<tr class="separator:a72c403f52cefab57566bc5f634c1b963 inherit pub_methods_classEAXCommon"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afa88b0f589e09103e9c69ace081db0af inherit pub_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#afa88b0f589e09103e9c69ace081db0af">clear</a> ()</td></tr>
|
|
<tr class="memdesc:afa88b0f589e09103e9c69ace081db0af inherit pub_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Clears all security-sensitive state from this cipher. <a href="#afa88b0f589e09103e9c69ace081db0af">More...</a><br/></td></tr>
|
|
<tr class="separator:afa88b0f589e09103e9c69ace081db0af inherit pub_methods_classEAXCommon"><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><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
|
|
Additional Inherited Members</h2></td></tr>
|
|
<tr class="inherit_header pro_methods_classEAXCommon"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classEAXCommon')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="classEAXCommon.html">EAXCommon</a></td></tr>
|
|
<tr class="memitem:ae09c9df956bf87cde02ca36c26c32f79 inherit pro_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#ae09c9df956bf87cde02ca36c26c32f79">EAXCommon</a> ()</td></tr>
|
|
<tr class="memdesc:ae09c9df956bf87cde02ca36c26c32f79 inherit pro_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new cipher in <a class="el" href="classEAX.html" title="Implementation of the EAX authenticated cipher. ">EAX</a> mode. <a href="#ae09c9df956bf87cde02ca36c26c32f79">More...</a><br/></td></tr>
|
|
<tr class="separator:ae09c9df956bf87cde02ca36c26c32f79 inherit pro_methods_classEAXCommon"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7db44040163b33f818cfaf47185251ca inherit pro_methods_classEAXCommon"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classEAXCommon.html#a7db44040163b33f818cfaf47185251ca">setBlockCipher</a> (<a class="el" href="classBlockCipher.html">BlockCipher</a> *cipher)</td></tr>
|
|
<tr class="memdesc:a7db44040163b33f818cfaf47185251ca inherit pro_methods_classEAXCommon"><td class="mdescLeft"> </td><td class="mdescRight">Sets the block cipher to use for this <a class="el" href="classEAX.html" title="Implementation of the EAX authenticated cipher. ">EAX</a> object. <a href="#a7db44040163b33f818cfaf47185251ca">More...</a><br/></td></tr>
|
|
<tr class="separator:a7db44040163b33f818cfaf47185251ca inherit pro_methods_classEAXCommon"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><h3>template<typename T><br/>
|
|
class EAX< T ></h3>
|
|
|
|
<p>Implementation of the <a class="el" href="classEAX.html" title="Implementation of the EAX authenticated cipher. ">EAX</a> authenticated cipher. </p>
|
|
<p><a class="el" href="classEAX.html" title="Implementation of the EAX authenticated cipher. ">EAX</a> mode converts a block cipher into an authenticated cipher that uses the block cipher T to encrypt and authenticate.</p>
|
|
<p>The size of the key is determined by the underlying block cipher T. The IV is recommended to be 128 bits (16 bytes) in length, but other lengths are supported as well. The default <a class="el" href="classEAXCommon.html#a8804341b21f752a5b8178a3bdb123fd9" title="Returns the size of the authentication tag. ">tagSize()</a> is 128 bits (16 bytes) but the <a class="el" href="classEAX.html" title="Implementation of the EAX authenticated cipher. ">EAX</a> specification does allow smaller tag sizes.</p>
|
|
<p>The template parameter T must be a concrete subclass of <a class="el" href="classBlockCipher.html" title="Abstract base class for block ciphers. ">BlockCipher</a> indicating the specific block cipher to use. The block cipher must have a block size of 128 bits. For example, the following creates a <a class="el" href="classEAX.html" title="Implementation of the EAX authenticated cipher. ">EAX</a> object using <a class="el" href="classAES256.html" title="AES block cipher with 256-bit keys. ">AES256</a> as the underlying cipher and then uses it to encrypt and authenticate a <code>plaintext</code> block:</p>
|
|
<div class="fragment"><div class="line"><a class="code" href="classEAX.html">EAX<AES256></a> eax;</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#af5be5115c119610abb351028263d28de">setKey</a>(key, <span class="keyword">sizeof</span>(key));</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#a33a5da1f210f01c3622fbf27208f3d45">setIV</a>(iv, <span class="keyword">sizeof</span>(iv));</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#acdf2c51fb11c068202311b5c95767db8">addAuthData</a>(adata, <span class="keyword">sizeof</span>(adata));</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#aad2c563f749535f539b8efbd74b09099">encrypt</a>(ciphertext, plaintext, <span class="keyword">sizeof</span>(plaintext));</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#ab5a61bba48561d6e7e6b8bafc51d91e3">computeTag</a>(tag, <span class="keyword">sizeof</span>(tag));</div>
|
|
</div><!-- fragment --><p>The decryption process is almost identical to convert a <code>ciphertext</code> and <em>tag</em> back into plaintext and then check the tag:</p>
|
|
<div class="fragment"><div class="line"><a class="code" href="classEAX.html">EAX<AES256></a> eax;</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#af5be5115c119610abb351028263d28de">setKey</a>(key, <span class="keyword">sizeof</span>(key));</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#a33a5da1f210f01c3622fbf27208f3d45">setIV</a>(iv, <span class="keyword">sizeof</span>(iv));</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#acdf2c51fb11c068202311b5c95767db8">addAuthData</a>(adata, <span class="keyword">sizeof</span>(adata));</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#a63ce8ae45db137ec9d447216b84245c2">decrypt</a>(ciphertext, plaintext, <span class="keyword">sizeof</span>(plaintext));</div>
|
|
<div class="line"><span class="keywordflow">if</span> (!eax.<a class="code" href="classEAXCommon.html#a72c403f52cefab57566bc5f634c1b963">checkTag</a>(tag, <span class="keyword">sizeof</span>(tag))) {</div>
|
|
<div class="line"> <span class="comment">// The data was invalid - do not use it.</span></div>
|
|
<div class="line"> ...</div>
|
|
<div class="line">}</div>
|
|
</div><!-- fragment --><p>The <a class="el" href="classEAX.html" title="Implementation of the EAX authenticated cipher. ">EAX</a> class can also be used to implement message authentication by omitting the plaintext:</p>
|
|
<div class="fragment"><div class="line"><a class="code" href="classEAX.html">EAX<AES256></a> eax;</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#af5be5115c119610abb351028263d28de">setKey</a>(key, <span class="keyword">sizeof</span>(key));</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#a33a5da1f210f01c3622fbf27208f3d45">setIV</a>(iv, <span class="keyword">sizeof</span>(iv));</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#acdf2c51fb11c068202311b5c95767db8">addAuthData</a>(adata1, <span class="keyword">sizeof</span>(adata1));</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#acdf2c51fb11c068202311b5c95767db8">addAuthData</a>(adata2, <span class="keyword">sizeof</span>(adata1));</div>
|
|
<div class="line">...</div>
|
|
<div class="line">eax.addAuthData(adataN, <span class="keyword">sizeof</span>(adataN));</div>
|
|
<div class="line">eax.<a class="code" href="classEAXCommon.html#ab5a61bba48561d6e7e6b8bafc51d91e3">computeTag</a>(tag, <span class="keyword">sizeof</span>(tag));</div>
|
|
</div><!-- fragment --><p>References: <a href="https://en.wikipedia.org/wiki/EAX_mode,">https://en.wikipedia.org/wiki/EAX_mode,</a> <a href="http://web.cs.ucdavis.edu/~rogaway/papers/eax.html">http://web.cs.ucdavis.edu/~rogaway/papers/eax.html</a></p>
|
|
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classEAXCommon.html" title="Concrete base class to assist with implementing EAX for 128-bit block ciphers. ">EAXCommon</a>, <a class="el" href="classGCM.html" title="Implementation of the Galois Counter Mode (GCM). ">GCM</a> </dd></dl>
|
|
|
|
<p>Definition at line <a class="el" href="EAX_8h_source.html#l00076">76</a> of file <a class="el" href="EAX_8h_source.html">EAX.h</a>.</p>
|
|
</div><hr/>The documentation for this class was generated from the following files:<ul>
|
|
<li><a class="el" href="EAX_8h_source.html">EAX.h</a></li>
|
|
<li><a class="el" href="EAX_8cpp_source.html">EAX.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>
|