Lastest doxygen docs updated

travis build: 25
	commit: 05b02f5624f2054cdf2e802f63c834162c2fe05b
	auto-pushed to gh-pages
This commit is contained in:
travis-ci 2014-06-08 21:44:14 +00:00
parent 4687c91b42
commit ca575303bf
244 changed files with 21381 additions and 1 deletions

View File

112
annotated.html Normal file
View File

@ -0,0 +1,112 @@
<!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"/>
<title>post quantum cryptography: Data Structures</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</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 class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Data Structures</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the data structures with brief descriptions:</div><table>
<tr><td class="indexkey"><a class="el" href="structkeypair.html">keypair</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="structntru__params.html">ntru_params</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><a class="el" href="structstring.html">string</a></td><td class="indexvalue"></td></tr>
</table>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:13 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

BIN
bc_s.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B

118
classes.html Normal file
View File

@ -0,0 +1,118 @@
<!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"/>
<title>post quantum cryptography: Data Structure Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</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>Data&#160;Structures</span></a></li>
<li class="current"><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Data Structure Index</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_K">K</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a></div>
<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
<tr><td rowspan="2" valign="bottom"><a name="letter_K"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;K&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;N&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;S&#160;&#160;</div></td></tr></table>
</td><td></td></tr>
<tr><td></td></tr>
<tr><td valign="top"><a class="el" href="structkeypair.html">keypair</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structntru__params.html">ntru_params</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structstring.html">string</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_K">K</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a></div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:13 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

BIN
closed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

197
decrypt_8h.html Normal file
View File

@ -0,0 +1,197 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/include/decrypt.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/include/decrypt.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>public API, decryption
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru_8h_source.html">ntru.h</a>&quot;</code><br/>
<code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for decrypt.h:</div>
<div class="dyncontent">
<div class="center"><img src="decrypt_8h__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2include_2decrypt_8h" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2include_2decrypt_8h" id="_2home_2travis_2build_2hasufell_2pqc_2include_2decrypt_8h">
</map>
</div>
</div>
<p><a href="decrypt_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structstring.html">string</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decrypt_8h.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt_string</a> (const <a class="el" href="structstring.html">string</a> *encr_msg, const fmpz_poly_t priv_key, const fmpz_poly_t priv_key_inv, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>public API, decryption </p>
<p>This file holds the public API of decryption of the pqc NTRU implementation and is meant to be installed on the client system. </p>
<p>Definition in file <a class="el" href="decrypt_8h_source.html">decrypt.h</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="aa9cc61eec0c119e48762f6078a14527b"></a><!-- doxytag: member="decrypt.h::ntru_decrypt_string" ref="aa9cc61eec0c119e48762f6078a14527b" args="(const string *encr_msg, const fmpz_poly_t priv_key, const fmpz_poly_t priv_key_inv, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* <a class="el" href="decrypt_8h.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt_string</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structstring.html">string</a> *&#160;</td>
<td class="paramname"><em>encr_msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_key_inv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Decryption of a given encrypted string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">encr_msg</td><td>the encrypted message in the form of a string </td></tr>
<tr><td class="paramname">priv_key</td><td>the polynom containing the private key to decrypt the message </td></tr>
<tr><td class="paramname">priv_key_inv</td><td>the inverse polynome to the private key </td></tr>
<tr><td class="paramname">params</td><td>the <a class="el" href="structntru__params.html">ntru_params</a> </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the decrypted string or NULL on failure</dd></dl>
<p>Decryption of a given encrypted string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">encr_msg</td><td>the encrypted message in the form of a string </td></tr>
<tr><td class="paramname">priv_key</td><td>the polynom containing the private key to decrypt the message </td></tr>
<tr><td class="paramname">priv_key_inv</td><td>the inverse polynome to the private key </td></tr>
<tr><td class="paramname">params</td><td>the <a class="el" href="structntru__params.html">ntru_params</a> </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the decrypted string </dd></dl>
<p>Definition at line <a class="el" href="ntru__decrypt_8c_source.html#l00092">92</a> of file <a class="el" href="ntru__decrypt_8c_source.html">ntru_decrypt.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

16
decrypt_8h__incl.dot Normal file
View File

@ -0,0 +1,16 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/include/decrypt.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru_8h.html",tooltip="public API, basic data types"];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

1
decrypt_8h__incl.md5 Normal file
View File

@ -0,0 +1 @@
ec7cb992a1c085002004ee39f7a320d8

146
decrypt_8h_source.html Normal file
View File

@ -0,0 +1,146 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/include/decrypt.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/include/decrypt.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="decrypt_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00030"></a>00030 <span class="preprocessor">#ifndef PUBLIC_NTRU_DECRYPT_H_</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define PUBLIC_NTRU_DECRYPT_H_</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span>
<a name="l00033"></a>00033
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;<a class="code" href="ntru_8h.html" title="public API, basic data types">ntru.h</a>&quot;</span>
<a name="l00035"></a>00035
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;fmpz_poly.h&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;fmpz.h&gt;</span>
<a name="l00038"></a>00038
<a name="l00039"></a>00039
<a name="l00050"></a>00050 <span class="keywordtype">string</span> *
<a name="l00051"></a>00051 <a class="code" href="ntru__decrypt_8c.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt_string</a>(
<a name="l00052"></a>00052 <span class="keyword">const</span> <span class="keywordtype">string</span> *encr_msg,
<a name="l00053"></a>00053 <span class="keyword">const</span> fmpz_poly_t priv_key,
<a name="l00054"></a>00054 <span class="keyword">const</span> fmpz_poly_t priv_key_inv,
<a name="l00055"></a>00055 <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00056"></a>00056
<a name="l00057"></a>00057
<a name="l00058"></a>00058 <span class="preprocessor">#endif </span><span class="comment">/* PUBLIC_NTRU_DECRYPT_H_ */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

949
doxygen.css Normal file
View File

@ -0,0 +1,949 @@
/* The standard CSS for doxygen */
body, table, div, p, dl {
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
font-size: 13px;
line-height: 1.3;
}
/* @group Heading Levels */
h1 {
font-size: 150%;
}
.title {
font-size: 150%;
font-weight: bold;
margin: 10px 2px;
}
h2 {
font-size: 120%;
}
h3 {
font-size: 100%;
}
dt {
font-weight: bold;
}
div.multicol {
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
-moz-column-count: 3;
-webkit-column-count: 3;
}
p.startli, p.startdd, p.starttd {
margin-top: 2px;
}
p.endli {
margin-bottom: 0px;
}
p.enddd {
margin-bottom: 4px;
}
p.endtd {
margin-bottom: 2px;
}
/* @end */
caption {
font-weight: bold;
}
span.legend {
font-size: 70%;
text-align: center;
}
h3.version {
font-size: 90%;
text-align: center;
}
div.qindex, div.navtab{
background-color: #EBEFF6;
border: 1px solid #A3B4D7;
text-align: center;
}
div.qindex, div.navpath {
width: 100%;
line-height: 140%;
}
div.navtab {
margin-right: 15px;
}
/* @group Link Styling */
a {
color: #3D578C;
font-weight: normal;
text-decoration: none;
}
.contents a:visited {
color: #4665A2;
}
a:hover {
text-decoration: underline;
}
a.qindex {
font-weight: bold;
}
a.qindexHL {
font-weight: bold;
background-color: #9CAFD4;
color: #ffffff;
border: 1px double #869DCA;
}
.contents a.qindexHL:visited {
color: #ffffff;
}
a.el {
font-weight: bold;
}
a.elRef {
}
a.code, a.code:visited {
color: #4665A2;
}
a.codeRef, a.codeRef:visited {
color: #4665A2;
}
/* @end */
dl.el {
margin-left: -1cm;
}
.fragment {
font-family: monospace, fixed;
font-size: 105%;
}
pre.fragment {
border: 1px solid #C4CFE5;
background-color: #FBFCFD;
padding: 4px 6px;
margin: 4px 8px 4px 2px;
overflow: auto;
word-wrap: break-word;
font-size: 9pt;
line-height: 125%;
}
div.ah {
background-color: black;
font-weight: bold;
color: #ffffff;
margin-bottom: 3px;
margin-top: 3px;
padding: 0.2em;
border: solid thin #333;
border-radius: 0.5em;
-webkit-border-radius: .5em;
-moz-border-radius: .5em;
box-shadow: 2px 2px 3px #999;
-webkit-box-shadow: 2px 2px 3px #999;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
}
div.groupHeader {
margin-left: 16px;
margin-top: 12px;
font-weight: bold;
}
div.groupText {
margin-left: 16px;
font-style: italic;
}
body {
background-color: white;
color: black;
margin: 0;
}
div.contents {
margin-top: 10px;
margin-left: 8px;
margin-right: 8px;
}
td.indexkey {
background-color: #EBEFF6;
font-weight: bold;
border: 1px solid #C4CFE5;
margin: 2px 0px 2px 0;
padding: 2px 10px;
white-space: nowrap;
vertical-align: top;
}
td.indexvalue {
background-color: #EBEFF6;
border: 1px solid #C4CFE5;
padding: 2px 10px;
margin: 2px 0px;
}
tr.memlist {
background-color: #EEF1F7;
}
p.formulaDsp {
text-align: center;
}
img.formulaDsp {
}
img.formulaInl {
vertical-align: middle;
}
div.center {
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
padding: 0px;
}
div.center img {
border: 0px;
}
address.footer {
text-align: right;
padding-right: 12px;
}
img.footer {
border: 0px;
vertical-align: middle;
}
/* @group Code Colorization */
span.keyword {
color: #008000
}
span.keywordtype {
color: #604020
}
span.keywordflow {
color: #e08000
}
span.comment {
color: #800000
}
span.preprocessor {
color: #806020
}
span.stringliteral {
color: #002080
}
span.charliteral {
color: #008080
}
span.vhdldigit {
color: #ff00ff
}
span.vhdlchar {
color: #000000
}
span.vhdlkeyword {
color: #700070
}
span.vhdllogic {
color: #ff0000
}
/* @end */
/*
.search {
color: #003399;
font-weight: bold;
}
form.search {
margin-bottom: 0px;
margin-top: 0px;
}
input.search {
font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
*/
td.tiny {
font-size: 75%;
}
.dirtab {
padding: 4px;
border-collapse: collapse;
border: 1px solid #A3B4D7;
}
th.dirtab {
background: #EBEFF6;
font-weight: bold;
}
hr {
height: 0px;
border: none;
border-top: 1px solid #4A6AAA;
}
hr.footer {
height: 1px;
}
/* @group Member Descriptions */
table.memberdecls {
border-spacing: 0px;
padding: 0px;
}
.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
background-color: #F9FAFC;
border: none;
margin: 4px;
padding: 1px 0 0 8px;
}
.mdescLeft, .mdescRight {
padding: 0px 8px 4px 8px;
color: #555;
}
.memItemLeft, .memItemRight, .memTemplParams {
border-top: 1px solid #C4CFE5;
}
.memItemLeft, .memTemplItemLeft {
white-space: nowrap;
}
.memItemRight {
width: 100%;
}
.memTemplParams {
color: #4665A2;
white-space: nowrap;
}
/* @end */
/* @group Member Details */
/* Styles for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #4665A2;
font-weight: normal;
margin-left: 9px;
}
.memnav {
background-color: #EBEFF6;
border: 1px solid #A3B4D7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.mempage {
width: 100%;
}
.memitem {
padding: 0;
margin-bottom: 10px;
margin-right: 5px;
}
.memname {
white-space: nowrap;
font-weight: bold;
margin-left: 6px;
}
.memproto, dl.reflist dt {
border-top: 1px solid #A8B8D9;
border-left: 1px solid #A8B8D9;
border-right: 1px solid #A8B8D9;
padding: 6px 0px 6px 0px;
color: #253555;
font-weight: bold;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
/* opera specific markup */
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
border-top-right-radius: 8px;
border-top-left-radius: 8px;
/* firefox specific markup */
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-moz-border-radius-topright: 8px;
-moz-border-radius-topleft: 8px;
/* webkit specific markup */
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-webkit-border-top-right-radius: 8px;
-webkit-border-top-left-radius: 8px;
background-image:url('nav_f.png');
background-repeat:repeat-x;
background-color: #E2E8F2;
}
.memdoc, dl.reflist dd {
border-bottom: 1px solid #A8B8D9;
border-left: 1px solid #A8B8D9;
border-right: 1px solid #A8B8D9;
padding: 2px 5px;
background-color: #FBFCFD;
border-top-width: 0;
/* opera specific markup */
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
/* firefox specific markup */
-moz-border-radius-bottomleft: 8px;
-moz-border-radius-bottomright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
/* webkit specific markup */
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
}
dl.reflist dt {
padding: 5px;
}
dl.reflist dd {
margin: 0px 0px 10px 0px;
padding: 5px;
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
white-space: nowrap;
}
.paramname em {
font-style: normal;
}
.params, .retval, .exception, .tparams {
border-spacing: 6px 2px;
}
.params .paramname, .retval .paramname {
font-weight: bold;
vertical-align: top;
}
.params .paramtype {
font-style: italic;
vertical-align: top;
}
.params .paramdir {
font-family: "courier new",courier,monospace;
vertical-align: top;
}
/* @end */
/* @group Directory (tree) */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin: 0px;
}
/* these are for tree view when used as main index */
.directory {
font-size: 9pt;
font-weight: bold;
margin: 5px;
}
.directory h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
/*
The following two styles can be used to replace the root node title
with an image of your choice. Simply uncomment the next two styles,
specify the name of your image and be sure to set 'height' to the
proper pixel height of your image.
*/
/*
.directory h3.swap {
height: 61px;
background-repeat: no-repeat;
background-image: url("yourimage.gif");
}
.directory h3.swap span {
display: none;
}
*/
.directory > h3 {
margin-top: 0;
}
.directory p {
margin: 0px;
white-space: nowrap;
}
.directory div {
display: none;
margin: 0px;
}
.directory img {
vertical-align: -30%;
}
/* these are for tree view when not used as main index */
.directory-alt {
font-size: 100%;
font-weight: bold;
}
.directory-alt h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
.directory-alt > h3 {
margin-top: 0;
}
.directory-alt p {
margin: 0px;
white-space: nowrap;
}
.directory-alt div {
display: none;
margin: 0px;
}
.directory-alt img {
vertical-align: -30%;
}
/* @end */
div.dynheader {
margin-top: 8px;
}
address {
font-style: normal;
color: #2A3D61;
}
table.doxtable {
border-collapse:collapse;
}
table.doxtable td, table.doxtable th {
border: 1px solid #2D4068;
padding: 3px 7px 2px;
}
table.doxtable th {
background-color: #374F7F;
color: #FFFFFF;
font-size: 110%;
padding-bottom: 4px;
padding-top: 5px;
text-align:left;
}
table.fieldtable {
width: 100%;
margin-bottom: 10px;
border: 1px solid #A8B8D9;
border-spacing: 0px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
-webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
}
.fieldtable td, .fieldtable th {
padding: 3px 7px 2px;
}
.fieldtable td.fieldtype, .fieldtable td.fieldname {
white-space: nowrap;
border-right: 1px solid #A8B8D9;
border-bottom: 1px solid #A8B8D9;
vertical-align: top;
}
.fieldtable td.fielddoc {
border-bottom: 1px solid #A8B8D9;
width: 100%;
}
.fieldtable tr:last-child td {
border-bottom: none;
}
.fieldtable th {
background-image:url('nav_f.png');
background-repeat:repeat-x;
background-color: #E2E8F2;
font-size: 90%;
color: #253555;
padding-bottom: 4px;
padding-top: 5px;
text-align:left;
-moz-border-radius-topleft: 4px;
-moz-border-radius-topright: 4px;
-webkit-border-top-left-radius: 4px;
-webkit-border-top-right-radius: 4px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom: 1px solid #A8B8D9;
}
.tabsearch {
top: 0px;
left: 10px;
height: 36px;
background-image: url('tab_b.png');
z-index: 101;
overflow: hidden;
font-size: 13px;
}
.navpath ul
{
font-size: 11px;
background-image:url('tab_b.png');
background-repeat:repeat-x;
height:30px;
line-height:30px;
color:#8AA0CC;
border:solid 1px #C2CDE4;
overflow:hidden;
margin:0px;
padding:0px;
}
.navpath li
{
list-style-type:none;
float:left;
padding-left:10px;
padding-right:15px;
background-image:url('bc_s.png');
background-repeat:no-repeat;
background-position:right;
color:#364D7C;
}
.navpath li.navelem a
{
height:32px;
display:block;
text-decoration: none;
outline: none;
}
.navpath li.navelem a:hover
{
color:#6884BD;
}
.navpath li.footer
{
list-style-type:none;
float:right;
padding-left:10px;
padding-right:15px;
background-image:none;
background-repeat:no-repeat;
background-position:right;
color:#364D7C;
font-size: 8pt;
}
div.summary
{
float: right;
font-size: 8pt;
padding-right: 5px;
width: 50%;
text-align: right;
}
div.summary a
{
white-space: nowrap;
}
div.ingroups
{
margin-left: 5px;
font-size: 8pt;
padding-left: 5px;
width: 50%;
text-align: left;
}
div.ingroups a
{
white-space: nowrap;
}
div.header
{
background-image:url('nav_h.png');
background-repeat:repeat-x;
background-color: #F9FAFC;
margin: 0px;
border-bottom: 1px solid #C4CFE5;
}
div.headertitle
{
padding: 5px 5px 5px 7px;
}
dl
{
padding: 0 0 0 10px;
}
dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug
{
border-left:4px solid;
padding: 0 0 0 6px;
}
dl.note
{
border-color: #D0C000;
}
dl.warning, dl.attention
{
border-color: #FF0000;
}
dl.pre, dl.post, dl.invariant
{
border-color: #00D000;
}
dl.deprecated
{
border-color: #505050;
}
dl.todo
{
border-color: #00C0E0;
}
dl.test
{
border-color: #3030E0;
}
dl.bug
{
border-color: #C08050;
}
#projectlogo
{
text-align: center;
vertical-align: bottom;
border-collapse: separate;
}
#projectlogo img
{
border: 0px none;
}
#projectname
{
font: 300% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 2px 0px;
}
#projectbrief
{
font: 120% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 0px;
}
#projectnumber
{
font: 50% Tahoma, Arial,sans-serif;
margin: 0px;
padding: 0px;
}
#titlearea
{
padding: 0px;
margin: 0px;
width: 100%;
border-bottom: 1px solid #5373B4;
}
.image
{
text-align: center;
}
.dotgraph
{
text-align: center;
}
.mscgraph
{
text-align: center;
}
.caption
{
font-weight: bold;
}
div.zoom
{
border: 1px solid #90A5CE;
}
dl.citelist {
margin-bottom:50px;
}
dl.citelist dt {
color:#334975;
float:left;
font-weight:bold;
margin-right:10px;
padding:5px;
}
dl.citelist dd {
margin:2px 0;
padding:5px 0;
}
@media print
{
#top { display: none; }
#side-nav { display: none; }
#nav-path { display: none; }
body { overflow:visible; }
h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
.summary { display: none; }
.memitem { page-break-inside: avoid; }
#doc-content
{
margin-left:0 !important;
height:auto !important;
width:auto !important;
overflow:inherit;
display:inline;
}
pre.fragment
{
overflow: visible;
text-wrap: unrestricted;
white-space: -moz-pre-wrap; /* Moz */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
white-space: pre-wrap; /* CSS3 */
word-wrap: break-word; /* IE 5.5+ */
}
}

BIN
doxygen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

106
doxygen_8dox.html Normal file
View File

@ -0,0 +1,106 @@
<!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"/>
<title>post quantum cryptography: doxygen.dox File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">doxygen.dox File Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

197
encrypt_8h.html Normal file
View File

@ -0,0 +1,197 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/include/encrypt.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/include/encrypt.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>public API, encryption
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru_8h_source.html">ntru.h</a>&quot;</code><br/>
<code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for encrypt.h:</div>
<div class="dyncontent">
<div class="center"><img src="encrypt_8h__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2include_2encrypt_8h" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2include_2encrypt_8h" id="_2home_2travis_2build_2hasufell_2pqc_2include_2encrypt_8h">
</map>
</div>
</div>
<p><a href="encrypt_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structstring.html">string</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="encrypt_8h.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt_string</a> (const <a class="el" href="structstring.html">string</a> *msg, const fmpz_poly_t pub_key, const fmpz_poly_t rnd, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>public API, encryption </p>
<p>This file holds the public API of encryption of the pqc NTRU implementation and is meant to be installed on the client system. </p>
<p>Definition in file <a class="el" href="encrypt_8h_source.html">encrypt.h</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a0bb47c0fa0dd4a4cfa0c0f7a722fd554"></a><!-- doxytag: member="encrypt.h::ntru_encrypt_string" ref="a0bb47c0fa0dd4a4cfa0c0f7a722fd554" args="(const string *msg, const fmpz_poly_t pub_key, const fmpz_poly_t rnd, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* <a class="el" href="encrypt_8h.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt_string</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structstring.html">string</a> *&#160;</td>
<td class="paramname"><em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>pub_key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>rnd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Encrypt a message in the form of a null-terminated char array and return a string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">msg</td><td>the message </td></tr>
<tr><td class="paramname">pub_key</td><td>the public key </td></tr>
<tr><td class="paramname">rnd</td><td>the random poly (should have relatively small coefficients, but not restricted to {-1, 0, 1}) </td></tr>
<tr><td class="paramname">params</td><td><a class="el" href="structntru__params.html">ntru_params</a> the ntru context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the newly allocated encrypted string, NULL on failure</dd></dl>
<p>Encrypt a message in the form of a null-terminated char array and return a string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">msg</td><td>the message </td></tr>
<tr><td class="paramname">pub_key</td><td>the public key </td></tr>
<tr><td class="paramname">rnd</td><td>the random poly (should have relatively small coefficients, but not restricted to {-1, 0, 1}) </td></tr>
<tr><td class="paramname">params</td><td><a class="el" href="structntru__params.html">ntru_params</a> the ntru context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the newly allocated encrypted string </dd></dl>
<p>Definition at line <a class="el" href="ntru__encrypt_8c_source.html#l00074">74</a> of file <a class="el" href="ntru__encrypt_8c_source.html">ntru_encrypt.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

16
encrypt_8h__incl.dot Normal file
View File

@ -0,0 +1,16 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/include/encrypt.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru_8h.html",tooltip="public API, basic data types"];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

1
encrypt_8h__incl.md5 Normal file
View File

@ -0,0 +1 @@
f9fe215186c65b1a48490e4808f402c4

146
encrypt_8h_source.html Normal file
View File

@ -0,0 +1,146 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/include/encrypt.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/include/encrypt.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="encrypt_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00030"></a>00030 <span class="preprocessor">#ifndef PUBLIC_NTRU_ENCRYPT_H_</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define PUBLIC_NTRU_ENCRYPT_H_</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span>
<a name="l00033"></a>00033
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;<a class="code" href="ntru_8h.html" title="public API, basic data types">ntru.h</a>&quot;</span>
<a name="l00035"></a>00035
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;fmpz_poly.h&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;fmpz.h&gt;</span>
<a name="l00038"></a>00038
<a name="l00039"></a>00039
<a name="l00051"></a>00051 <span class="keywordtype">string</span> *
<a name="l00052"></a>00052 <a class="code" href="ntru__encrypt_8c.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt_string</a>(
<a name="l00053"></a>00053 <span class="keyword">const</span> <span class="keywordtype">string</span> *msg,
<a name="l00054"></a>00054 <span class="keyword">const</span> fmpz_poly_t pub_key,
<a name="l00055"></a>00055 <span class="keyword">const</span> fmpz_poly_t rnd,
<a name="l00056"></a>00056 <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00057"></a>00057
<a name="l00058"></a>00058
<a name="l00059"></a>00059 <span class="preprocessor">#endif </span><span class="comment">/* PUBLIC_NTRU_ENCRYPT_H_ */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

136
files.html Normal file
View File

@ -0,0 +1,136 @@
<!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"/>
<title>post quantum cryptography: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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 class="current"><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">File List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all files with brief descriptions:</div><table>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/include/<a class="el" href="decrypt_8h.html">decrypt.h</a> <a href="decrypt_8h_source.html">[code]</a></td><td class="indexvalue">Public API, decryption </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/include/<a class="el" href="encrypt_8h.html">encrypt.h</a> <a href="encrypt_8h_source.html">[code]</a></td><td class="indexvalue">Public API, encryption </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/include/<a class="el" href="keypair_8h.html">keypair.h</a> <a href="keypair_8h_source.html">[code]</a></td><td class="indexvalue">Public API, key handling </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/include/<a class="el" href="ntru_8h.html">ntru.h</a> <a href="ntru_8h_source.html">[code]</a></td><td class="indexvalue">Public API, basic data types </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/include/<a class="el" href="rnd_8h.html">rnd.h</a> <a href="rnd_8h_source.html">[code]</a></td><td class="indexvalue">Public API, random polynomials </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__ascii__poly_8c.html">ntru_ascii_poly.c</a> <a href="ntru__ascii__poly_8c_source.html">[code]</a></td><td class="indexvalue">Ascii to polynomials </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__ascii__poly_8h.html">ntru_ascii_poly.h</a> <a href="ntru__ascii__poly_8h_source.html">[code]</a></td><td class="indexvalue">Header for <a class="el" href="ntru__ascii__poly_8c.html" title="ascii to polynomials">ntru_ascii_poly.c</a> </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__common_8h.html">ntru_common.h</a> <a href="ntru__common_8h_source.html">[code]</a></td><td class="indexvalue">Common macros/functions </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__decrypt_8c.html">ntru_decrypt.c</a> <a href="ntru__decrypt_8c_source.html">[code]</a></td><td class="indexvalue">NTRU decryption </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__decrypt_8h.html">ntru_decrypt.h</a> <a href="ntru__decrypt_8h_source.html">[code]</a></td><td class="indexvalue">Header for <a class="el" href="ntru__decrypt_8c.html" title="NTRU decryption.">ntru_decrypt.c</a> </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__encrypt_8c.html">ntru_encrypt.c</a> <a href="ntru__encrypt_8c_source.html">[code]</a></td><td class="indexvalue">NTRU encryption </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__encrypt_8h.html">ntru_encrypt.h</a> <a href="ntru__encrypt_8h_source.html">[code]</a></td><td class="indexvalue">Header for encrypt.c </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__err_8h.html">ntru_err.h</a> <a href="ntru__err_8h_source.html">[code]</a></td><td class="indexvalue">Error handling </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__file_8c.html">ntru_file.c</a> <a href="ntru__file_8c_source.html">[code]</a></td><td class="indexvalue">File operations </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__file_8h.html">ntru_file.h</a> <a href="ntru__file_8h_source.html">[code]</a></td><td class="indexvalue">Header for <a class="el" href="ntru__file_8c.html" title="file operations">ntru_file.c</a> </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__keypair_8c.html">ntru_keypair.c</a> <a href="ntru__keypair_8c_source.html">[code]</a></td><td class="indexvalue">Key creation and operations </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__keypair_8h.html">ntru_keypair.h</a> <a href="ntru__keypair_8h_source.html">[code]</a></td><td class="indexvalue">Header for <a class="el" href="ntru__keypair_8c.html" title="key creation and operations">ntru_keypair.c</a> </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__mem_8c.html">ntru_mem.c</a> <a href="ntru__mem_8c_source.html">[code]</a></td><td class="indexvalue">Memory management </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__mem_8h.html">ntru_mem.h</a> <a href="ntru__mem_8h_source.html">[code]</a></td><td class="indexvalue">Header for <a class="el" href="ntru__mem_8c.html" title="memory management">ntru_mem.c</a> </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__params_8h.html">ntru_params.h</a> <a href="ntru__params_8h_source.html">[code]</a></td><td class="indexvalue">NTRU parameters </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__poly_8c.html">ntru_poly.c</a> <a href="ntru__poly_8c_source.html">[code]</a></td><td class="indexvalue">Operations on polynomials </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__poly_8h.html">ntru_poly.h</a> <a href="ntru__poly_8h_source.html">[code]</a></td><td class="indexvalue">Header for <a class="el" href="ntru__poly_8c.html" title="operations on polynomials">ntru_poly.c</a> </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__poly__ascii_8c.html">ntru_poly_ascii.c</a> <a href="ntru__poly__ascii_8c_source.html">[code]</a></td><td class="indexvalue">Polynomials to acii </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__poly__ascii_8h.html">ntru_poly_ascii.h</a> <a href="ntru__poly__ascii_8h_source.html">[code]</a></td><td class="indexvalue">Header for <a class="el" href="ntru__poly__ascii_8c.html" title="polynomials to acii">ntru_poly_ascii.c</a> </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__rnd_8c.html">ntru_rnd.c</a> <a href="ntru__rnd_8c_source.html">[code]</a></td><td class="indexvalue">Random polynomials </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__rnd_8h.html">ntru_rnd.h</a> <a href="ntru__rnd_8h_source.html">[code]</a></td><td class="indexvalue">Header for <a class="el" href="ntru__rnd_8c.html" title="random polynomials">ntru_rnd.c</a> </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__string_8c.html">ntru_string.c</a> <a href="ntru__string_8c_source.html">[code]</a></td><td class="indexvalue">String type and operations </td></tr>
<tr><td class="indexkey">/home/travis/build/hasufell/pqc/src/<a class="el" href="ntru__string_8h.html">ntru_string.h</a> <a href="ntru__string_8h_source.html">[code]</a></td><td class="indexvalue">Header for <a class="el" href="ntru__string_8c.html" title="string type and operations">ntru_string.c</a> </td></tr>
</table>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:13 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

135
functions.html Normal file
View File

@ -0,0 +1,135 @@
<!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"/>
<title>post quantum cryptography: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</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>Data&#160;Structures</span></a></li>
<li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
<li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div><ul>
<li>len
: <a class="el" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">string</a>
</li>
<li>N
: <a class="el" href="structntru__params.html#afb8425ee3db2b917b3c4e8d9b75bd3ff">ntru_params</a>
</li>
<li>p
: <a class="el" href="structntru__params.html#a41b368825e1eb126604e13e8f549ec8f">ntru_params</a>
</li>
<li>priv
: <a class="el" href="structkeypair.html#a9e9805ad001216da53f2c57accb288e1">keypair</a>
</li>
<li>priv_inv
: <a class="el" href="structkeypair.html#a9e63f1d275b91c9d9716fb4069461799">keypair</a>
</li>
<li>ptr
: <a class="el" href="structstring.html#afd608f62303958cea6f1f7afdec1e282">string</a>
</li>
<li>pub
: <a class="el" href="structkeypair.html#afa635c70f233d0b7449b4a17513646c4">keypair</a>
</li>
<li>q
: <a class="el" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">ntru_params</a>
</li>
</ul>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:13 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

135
functions_vars.html Normal file
View File

@ -0,0 +1,135 @@
<!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"/>
<title>post quantum cryptography: Data Fields - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</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>Data&#160;Structures</span></a></li>
<li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
<li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&#160;<ul>
<li>len
: <a class="el" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">string</a>
</li>
<li>N
: <a class="el" href="structntru__params.html#afb8425ee3db2b917b3c4e8d9b75bd3ff">ntru_params</a>
</li>
<li>p
: <a class="el" href="structntru__params.html#a41b368825e1eb126604e13e8f549ec8f">ntru_params</a>
</li>
<li>priv
: <a class="el" href="structkeypair.html#a9e9805ad001216da53f2c57accb288e1">keypair</a>
</li>
<li>priv_inv
: <a class="el" href="structkeypair.html#a9e63f1d275b91c9d9716fb4069461799">keypair</a>
</li>
<li>ptr
: <a class="el" href="structstring.html#afd608f62303958cea6f1f7afdec1e282">string</a>
</li>
<li>pub
: <a class="el" href="structkeypair.html#afa635c70f233d0b7449b4a17513646c4">keypair</a>
</li>
<li>q
: <a class="el" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">ntru_params</a>
</li>
</ul>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:13 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

417
globals.html Normal file
View File

@ -0,0 +1,417 @@
<!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"/>
<title>post quantum cryptography: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_k"><span>k</span></a></li>
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
<li>ascii_bin_to_bin_poly()
: <a class="el" href="ntru__ascii__poly_8c.html#aa5d0d4abdb2ce837a0a3b6e478c8f1a9">ntru_ascii_poly.c</a>
, <a class="el" href="ntru__ascii__poly_8h.html#aa5d0d4abdb2ce837a0a3b6e478c8f1a9">ntru_ascii_poly.h</a>
</li>
<li>ASCII_BITS
: <a class="el" href="ntru__common_8h.html#a8d370c21bcf662e586397e764aba95e1">ntru_common.h</a>
</li>
<li>ascii_to_bin_poly_arr()
: <a class="el" href="ntru__ascii__poly_8c.html#a3237071bca2489c3b2efd46e674e0805">ntru_ascii_poly.c</a>
, <a class="el" href="ntru__ascii__poly_8h.html#a3237071bca2489c3b2efd46e674e0805">ntru_ascii_poly.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
<li>base64_to_poly_arr()
: <a class="el" href="ntru__ascii__poly_8c.html#a8460cd27ad4562f560bb304609a3e06d">ntru_ascii_poly.c</a>
, <a class="el" href="ntru__ascii__poly_8h.html#a8460cd27ad4562f560bb304609a3e06d">ntru_ascii_poly.h</a>
</li>
<li>bin_poly_arr_to_ascii()
: <a class="el" href="ntru__poly__ascii_8h.html#ab9464c96c3ebec6ee716c604fdc4ad21">ntru_poly_ascii.h</a>
, <a class="el" href="ntru__poly__ascii_8c.html#ab9464c96c3ebec6ee716c604fdc4ad21">ntru_poly_ascii.c</a>
</li>
<li>bin_poly_to_ascii()
: <a class="el" href="ntru__poly__ascii_8h.html#a0d86ab2dede39b332d4149e16b2046b8">ntru_poly_ascii.h</a>
, <a class="el" href="ntru__poly__ascii_8c.html#a0d86ab2dede39b332d4149e16b2046b8">ntru_poly_ascii.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
<li>CHAR_SIZE
: <a class="el" href="ntru__common_8h.html#a22c7f61c2f0fa6b1943548e838055cec">ntru_common.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
<li>export_priv_key()
: <a class="el" href="ntru__keypair_8c.html#afa29f14a14486d3f6b979ee900d7e738">ntru_keypair.c</a>
, <a class="el" href="ntru__keypair_8h.html#afa29f14a14486d3f6b979ee900d7e738">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#afa29f14a14486d3f6b979ee900d7e738">keypair.h</a>
</li>
<li>export_public_key()
: <a class="el" href="ntru__keypair_8c.html#a41741ed660cb806c47335f66055e1bdd">ntru_keypair.c</a>
, <a class="el" href="ntru__keypair_8h.html#a41741ed660cb806c47335f66055e1bdd">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#a41741ed660cb806c47335f66055e1bdd">keypair.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>fmpz_add_n()
: <a class="el" href="ntru__poly_8c.html#ad2a11e832808ef1cfee0eed1cc02f4b9">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#ad2a11e832808ef1cfee0eed1cc02f4b9">ntru_poly.h</a>
</li>
<li>fmpz_cmp_si_n()
: <a class="el" href="ntru__poly_8h.html#aaaac83ec72414aa208832442657c3520">ntru_poly.h</a>
, <a class="el" href="ntru__poly_8c.html#aaaac83ec72414aa208832442657c3520">ntru_poly.c</a>
</li>
<li>fmpz_invmod_ui()
: <a class="el" href="ntru__poly_8c.html#a59da1b7962829af8f18d58c05f588606">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#a59da1b7962829af8f18d58c05f588606">ntru_poly.h</a>
</li>
<li>fmpz_poly_mod()
: <a class="el" href="ntru__poly_8h.html#a7c4f5e96355518dc97a23da8f34b661a">ntru_poly.h</a>
, <a class="el" href="ntru__poly_8c.html#a7c4f5e96355518dc97a23da8f34b661a">ntru_poly.c</a>
</li>
<li>fmpz_poly_mod_unsigned()
: <a class="el" href="ntru__poly_8h.html#ae7d0d8364dba689df3fb4904610634cc">ntru_poly.h</a>
, <a class="el" href="ntru__poly_8c.html#ae7d0d8364dba689df3fb4904610634cc">ntru_poly.c</a>
</li>
<li>fmpz_poly_set_coeff_fmpz_n()
: <a class="el" href="ntru__poly_8c.html#ab1f966fe680d1ce7c19c8c812d1932a7">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#ab1f966fe680d1ce7c19c8c812d1932a7">ntru_poly.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
<li>get_bin_arr_to_ascii()
: <a class="el" href="ntru__poly__ascii_8c.html#afd3f036287b4f62846c1a236426d73e1">ntru_poly_ascii.c</a>
</li>
<li>get_int_to_bin_str()
: <a class="el" href="ntru__ascii__poly_8c.html#a2d2f760b6a98bd87248c1d3e120a665b">ntru_ascii_poly.c</a>
</li>
<li>get_rnd_int()
: <a class="el" href="ntru__rnd_8h.html#ad85ebfb1cb4b4942942213b750812cf0">ntru_rnd.h</a>
, <a class="el" href="rnd_8h.html#ad85ebfb1cb4b4942942213b750812cf0">rnd.h</a>
, <a class="el" href="ntru__rnd_8c.html#ad85ebfb1cb4b4942942213b750812cf0">ntru_rnd.c</a>
</li>
<li>get_urnd_int()
: <a class="el" href="rnd_8h.html#a99e4820cab7157eb1e16109e21dac81f">rnd.h</a>
, <a class="el" href="ntru__rnd_8h.html#a99e4820cab7157eb1e16109e21dac81f">ntru_rnd.h</a>
, <a class="el" href="ntru__rnd_8c.html#a99e4820cab7157eb1e16109e21dac81f">ntru_rnd.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
<li>import_priv_key()
: <a class="el" href="ntru__keypair_8c.html#a1f917ea6ef5302826c888e5c88e0869e">ntru_keypair.c</a>
, <a class="el" href="ntru__keypair_8h.html#a1f917ea6ef5302826c888e5c88e0869e">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#a1f917ea6ef5302826c888e5c88e0869e">keypair.h</a>
</li>
<li>import_public_key()
: <a class="el" href="ntru__keypair_8c.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">ntru_keypair.c</a>
, <a class="el" href="ntru__keypair_8h.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">keypair.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
<li>keypair
: <a class="el" href="ntru__keypair_8h.html#aacfc9254c7939584924ab9d27ba6f504">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#aacfc9254c7939584924ab9d27ba6f504">keypair.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
<li>NTRU_ABORT
: <a class="el" href="ntru__err_8h.html#ab0f71521e9bc99beab8ece52bb00341a">ntru_err.h</a>
</li>
<li>NTRU_ABORT_DEBUG
: <a class="el" href="ntru__err_8h.html#a5d4dd1c1539c408c0dcd915750e8f224">ntru_err.h</a>
</li>
<li>ntru_calloc()
: <a class="el" href="ntru__mem_8h.html#a37e0be4fd8d0b677a41c8287ef47885c">ntru_mem.h</a>
, <a class="el" href="ntru__mem_8c.html#a37e0be4fd8d0b677a41c8287ef47885c">ntru_mem.c</a>
</li>
<li>ntru_create_keypair()
: <a class="el" href="ntru__keypair_8c.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_keypair.c</a>
, <a class="el" href="ntru__keypair_8h.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#a6873d41211a92c4f6b0074ef34ae1743">keypair.h</a>
</li>
<li>ntru_decrypt_poly()
: <a class="el" href="ntru__decrypt_8c.html#a41c72f59e37a3c6ef6790eb909555d76">ntru_decrypt.c</a>
, <a class="el" href="ntru__decrypt_8h.html#a8108219b815b18d63672bbc45e76ca31">ntru_decrypt.h</a>
</li>
<li>ntru_decrypt_string()
: <a class="el" href="ntru__decrypt_8c.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt.c</a>
, <a class="el" href="ntru__decrypt_8h.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt.h</a>
, <a class="el" href="decrypt_8h.html#aa9cc61eec0c119e48762f6078a14527b">decrypt.h</a>
</li>
<li>ntru_delete_keypair()
: <a class="el" href="ntru__keypair_8c.html#a5279c4990bc22bb9e735fe36372a6786">ntru_keypair.c</a>
, <a class="el" href="ntru__keypair_8h.html#a5279c4990bc22bb9e735fe36372a6786">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#a5279c4990bc22bb9e735fe36372a6786">keypair.h</a>
</li>
<li>ntru_encrypt_poly()
: <a class="el" href="ntru__encrypt_8c.html#a0156453c7cab7cf3da259beb1daf914b">ntru_encrypt.c</a>
, <a class="el" href="ntru__encrypt_8h.html#a9063450af4b523d202c7628dbac70e68">ntru_encrypt.h</a>
</li>
<li>ntru_encrypt_string()
: <a class="el" href="ntru__encrypt_8c.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt.c</a>
, <a class="el" href="encrypt_8h.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">encrypt.h</a>
, <a class="el" href="ntru__encrypt_8h.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt.h</a>
</li>
<li>ntru_get_rnd_tern_poly_num()
: <a class="el" href="rnd_8h.html#a916a55c609c172ae4e48896032b36e47">rnd.h</a>
, <a class="el" href="ntru__rnd_8c.html#a916a55c609c172ae4e48896032b36e47">ntru_rnd.c</a>
, <a class="el" href="ntru__rnd_8h.html#a916a55c609c172ae4e48896032b36e47">ntru_rnd.h</a>
</li>
<li>ntru_malloc()
: <a class="el" href="ntru__mem_8h.html#a020790bf8b201fde92395cf975c0c691">ntru_mem.h</a>
, <a class="el" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_mem.c</a>
</li>
<li>ntru_params
: <a class="el" href="ntru_8h.html#a2f326c88fc033eca78a47ee8d387c592">ntru.h</a>
, <a class="el" href="ntru__params_8h.html#a2f326c88fc033eca78a47ee8d387c592">ntru_params.h</a>
</li>
<li>NTRU_WARN
: <a class="el" href="ntru__err_8h.html#a8b2647533f0e1a6f81e08e8315674d55">ntru_err.h</a>
</li>
<li>NTRU_WARN_DEBUG
: <a class="el" href="ntru__err_8h.html#abcb6d051074ab3a58c5e9764f927753c">ntru_err.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>poly_arr_to_ascii()
: <a class="el" href="ntru__poly__ascii_8c.html#afa141976b665b94c0db9912bc50de4a1">ntru_poly_ascii.c</a>
, <a class="el" href="ntru__poly__ascii_8h.html#afa141976b665b94c0db9912bc50de4a1">ntru_poly_ascii.h</a>
</li>
<li>poly_arr_to_base64()
: <a class="el" href="ntru__poly__ascii_8h.html#a16163cc57631a0965577cb0f89365ca0">ntru_poly_ascii.h</a>
, <a class="el" href="ntru__poly__ascii_8c.html#a0dc14698073df2e46e6540cbff870fc7">ntru_poly_ascii.c</a>
</li>
<li>poly_delete()
: <a class="el" href="ntru__poly_8c.html#a27ff2116f70bcbf5028219adcae4c5f0">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#a27ff2116f70bcbf5028219adcae4c5f0">ntru_poly.h</a>
, <a class="el" href="ntru_8h.html#a27ff2116f70bcbf5028219adcae4c5f0">ntru.h</a>
</li>
<li>poly_delete_all()
: <a class="el" href="ntru__poly_8c.html#a83297bc2ab5b6e7ce42553570dd8268f">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#a83297bc2ab5b6e7ce42553570dd8268f">ntru_poly.h</a>
, <a class="el" href="ntru_8h.html#a83297bc2ab5b6e7ce42553570dd8268f">ntru.h</a>
</li>
<li>poly_delete_array()
: <a class="el" href="ntru__poly_8c.html#a3f53c63383ff301b20dcede0783869a7">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#a3f53c63383ff301b20dcede0783869a7">ntru_poly.h</a>
, <a class="el" href="ntru_8h.html#a3f53c63383ff301b20dcede0783869a7">ntru.h</a>
</li>
<li>poly_draw()
: <a class="el" href="ntru_8h.html#a80a8ce0f2944bc3df94291ef2f781498">ntru.h</a>
, <a class="el" href="ntru__poly_8c.html#a80a8ce0f2944bc3df94291ef2f781498">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#a80a8ce0f2944bc3df94291ef2f781498">ntru_poly.h</a>
</li>
<li>poly_draw_pretty()
: <a class="el" href="ntru__poly_8c.html#aec098d00160d2d502eb1f8a7c3fa5453">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#aec098d00160d2d502eb1f8a7c3fa5453">ntru_poly.h</a>
, <a class="el" href="ntru_8h.html#aec098d00160d2d502eb1f8a7c3fa5453">ntru.h</a>
</li>
<li>poly_inverse_poly_p()
: <a class="el" href="ntru__poly_8c.html#ae77b2014df42e5ed612206d5930ac608">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#ae77b2014df42e5ed612206d5930ac608">ntru_poly.h</a>
</li>
<li>poly_inverse_poly_q()
: <a class="el" href="ntru__poly_8c.html#ace66beb516186e52f9b5b1ed8a397849">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#ace66beb516186e52f9b5b1ed8a397849">ntru_poly.h</a>
</li>
<li>poly_mod2_to_modq()
: <a class="el" href="ntru__poly_8c.html#a891af13dc4355c9fab9ca3fafcac8054">ntru_poly.c</a>
</li>
<li>poly_new()
: <a class="el" href="ntru_8h.html#a20f86085d5eb5372fd25dc270069d38c">ntru.h</a>
, <a class="el" href="ntru__poly_8c.html#a20f86085d5eb5372fd25dc270069d38c">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#a20f86085d5eb5372fd25dc270069d38c">ntru_poly.h</a>
</li>
<li>poly_starmultiply()
: <a class="el" href="ntru__poly_8c.html#ae96f479ddd97af709a0ed50817fd3fb3">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#ae96f479ddd97af709a0ed50817fd3fb3">ntru_poly.h</a>
</li>
<li>poly_to_ascii()
: <a class="el" href="ntru__poly__ascii_8c.html#aa4d233591b7e51d6cf787edd3bfa91e2">ntru_poly_ascii.c</a>
, <a class="el" href="ntru__poly__ascii_8h.html#aa4d233591b7e51d6cf787edd3bfa91e2">ntru_poly_ascii.h</a>
</li>
<li>poly_to_base64()
: <a class="el" href="ntru__poly__ascii_8c.html#a4ba0179e3ae0d5e721ff8429a8265e80">ntru_poly_ascii.c</a>
, <a class="el" href="ntru__poly__ascii_8h.html#a4ba0179e3ae0d5e721ff8429a8265e80">ntru_poly_ascii.h</a>
</li>
<li>prints()
: <a class="el" href="ntru__string_8c.html#a55d4ce182c335ff6cca360909a7be395">ntru_string.c</a>
, <a class="el" href="ntru__string_8h.html#a55d4ce182c335ff6cca360909a7be395">ntru_string.h</a>
, <a class="el" href="ntru_8h.html#a55d4ce182c335ff6cca360909a7be395">ntru.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
<li>read_file()
: <a class="el" href="ntru__file_8c.html#a348c2a56837571f410d44631abc09dc4">ntru_file.c</a>
, <a class="el" href="ntru__file_8h.html#a348c2a56837571f410d44631abc09dc4">ntru_file.h</a>
, <a class="el" href="ntru_8h.html#a348c2a56837571f410d44631abc09dc4">ntru.h</a>
</li>
<li>REALLOC
: <a class="el" href="ntru__mem_8h.html#a718b6446905826d711cb7ef00808bb4e">ntru_mem.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>STD_FILE_BUF
: <a class="el" href="ntru__file_8c.html#a15651456278c8f50777dfe104f492951">ntru_file.c</a>
</li>
<li>string
: <a class="el" href="ntru__string_8h.html#a63e2e3ee7db5274c6a3929edfc07c6c9">ntru_string.h</a>
, <a class="el" href="ntru_8h.html#a63e2e3ee7db5274c6a3929edfc07c6c9">ntru.h</a>
</li>
<li>string_delete()
: <a class="el" href="ntru__string_8c.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">ntru_string.c</a>
, <a class="el" href="ntru__string_8h.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">ntru_string.h</a>
, <a class="el" href="ntru_8h.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">ntru.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
<li>write_file()
: <a class="el" href="ntru__file_8c.html#a1f8eef5ea12c77ed2491d96864eb0d43">ntru_file.c</a>
, <a class="el" href="ntru_8h.html#af2a0fc4dd4109749d8f3100a913cc304">ntru.h</a>
, <a class="el" href="ntru__file_8h.html#a1f8eef5ea12c77ed2491d96864eb0d43">ntru_file.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:13 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

136
globals_defs.html Normal file
View File

@ -0,0 +1,136 @@
<!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"/>
<title>post quantum cryptography: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&#160;<ul>
<li>ASCII_BITS
: <a class="el" href="ntru__common_8h.html#a8d370c21bcf662e586397e764aba95e1">ntru_common.h</a>
</li>
<li>CHAR_SIZE
: <a class="el" href="ntru__common_8h.html#a22c7f61c2f0fa6b1943548e838055cec">ntru_common.h</a>
</li>
<li>NTRU_ABORT
: <a class="el" href="ntru__err_8h.html#ab0f71521e9bc99beab8ece52bb00341a">ntru_err.h</a>
</li>
<li>NTRU_ABORT_DEBUG
: <a class="el" href="ntru__err_8h.html#a5d4dd1c1539c408c0dcd915750e8f224">ntru_err.h</a>
</li>
<li>NTRU_WARN
: <a class="el" href="ntru__err_8h.html#a8b2647533f0e1a6f81e08e8315674d55">ntru_err.h</a>
</li>
<li>NTRU_WARN_DEBUG
: <a class="el" href="ntru__err_8h.html#abcb6d051074ab3a58c5e9764f927753c">ntru_err.h</a>
</li>
<li>REALLOC
: <a class="el" href="ntru__mem_8h.html#a718b6446905826d711cb7ef00808bb4e">ntru_mem.h</a>
</li>
<li>STD_FILE_BUF
: <a class="el" href="ntru__file_8c.html#a15651456278c8f50777dfe104f492951">ntru_file.c</a>
</li>
</ul>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:13 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

371
globals_func.html Normal file
View File

@ -0,0 +1,371 @@
<!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"/>
<title>post quantum cryptography: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&#160;
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
<li>ascii_bin_to_bin_poly()
: <a class="el" href="ntru__ascii__poly_8c.html#aa5d0d4abdb2ce837a0a3b6e478c8f1a9">ntru_ascii_poly.c</a>
, <a class="el" href="ntru__ascii__poly_8h.html#aa5d0d4abdb2ce837a0a3b6e478c8f1a9">ntru_ascii_poly.h</a>
</li>
<li>ascii_to_bin_poly_arr()
: <a class="el" href="ntru__ascii__poly_8c.html#a3237071bca2489c3b2efd46e674e0805">ntru_ascii_poly.c</a>
, <a class="el" href="ntru__ascii__poly_8h.html#a3237071bca2489c3b2efd46e674e0805">ntru_ascii_poly.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
<li>base64_to_poly_arr()
: <a class="el" href="ntru__ascii__poly_8c.html#a8460cd27ad4562f560bb304609a3e06d">ntru_ascii_poly.c</a>
, <a class="el" href="ntru__ascii__poly_8h.html#a8460cd27ad4562f560bb304609a3e06d">ntru_ascii_poly.h</a>
</li>
<li>bin_poly_arr_to_ascii()
: <a class="el" href="ntru__poly__ascii_8h.html#ab9464c96c3ebec6ee716c604fdc4ad21">ntru_poly_ascii.h</a>
, <a class="el" href="ntru__poly__ascii_8c.html#ab9464c96c3ebec6ee716c604fdc4ad21">ntru_poly_ascii.c</a>
</li>
<li>bin_poly_to_ascii()
: <a class="el" href="ntru__poly__ascii_8h.html#a0d86ab2dede39b332d4149e16b2046b8">ntru_poly_ascii.h</a>
, <a class="el" href="ntru__poly__ascii_8c.html#a0d86ab2dede39b332d4149e16b2046b8">ntru_poly_ascii.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
<li>export_priv_key()
: <a class="el" href="ntru__keypair_8c.html#afa29f14a14486d3f6b979ee900d7e738">ntru_keypair.c</a>
, <a class="el" href="ntru__keypair_8h.html#afa29f14a14486d3f6b979ee900d7e738">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#afa29f14a14486d3f6b979ee900d7e738">keypair.h</a>
</li>
<li>export_public_key()
: <a class="el" href="ntru__keypair_8c.html#a41741ed660cb806c47335f66055e1bdd">ntru_keypair.c</a>
, <a class="el" href="ntru__keypair_8h.html#a41741ed660cb806c47335f66055e1bdd">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#a41741ed660cb806c47335f66055e1bdd">keypair.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>fmpz_add_n()
: <a class="el" href="ntru__poly_8c.html#ad2a11e832808ef1cfee0eed1cc02f4b9">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#ad2a11e832808ef1cfee0eed1cc02f4b9">ntru_poly.h</a>
</li>
<li>fmpz_cmp_si_n()
: <a class="el" href="ntru__poly_8h.html#aaaac83ec72414aa208832442657c3520">ntru_poly.h</a>
, <a class="el" href="ntru__poly_8c.html#aaaac83ec72414aa208832442657c3520">ntru_poly.c</a>
</li>
<li>fmpz_invmod_ui()
: <a class="el" href="ntru__poly_8c.html#a59da1b7962829af8f18d58c05f588606">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#a59da1b7962829af8f18d58c05f588606">ntru_poly.h</a>
</li>
<li>fmpz_poly_mod()
: <a class="el" href="ntru__poly_8h.html#a7c4f5e96355518dc97a23da8f34b661a">ntru_poly.h</a>
, <a class="el" href="ntru__poly_8c.html#a7c4f5e96355518dc97a23da8f34b661a">ntru_poly.c</a>
</li>
<li>fmpz_poly_mod_unsigned()
: <a class="el" href="ntru__poly_8h.html#ae7d0d8364dba689df3fb4904610634cc">ntru_poly.h</a>
, <a class="el" href="ntru__poly_8c.html#ae7d0d8364dba689df3fb4904610634cc">ntru_poly.c</a>
</li>
<li>fmpz_poly_set_coeff_fmpz_n()
: <a class="el" href="ntru__poly_8c.html#ab1f966fe680d1ce7c19c8c812d1932a7">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#ab1f966fe680d1ce7c19c8c812d1932a7">ntru_poly.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
<li>get_bin_arr_to_ascii()
: <a class="el" href="ntru__poly__ascii_8c.html#afd3f036287b4f62846c1a236426d73e1">ntru_poly_ascii.c</a>
</li>
<li>get_int_to_bin_str()
: <a class="el" href="ntru__ascii__poly_8c.html#a2d2f760b6a98bd87248c1d3e120a665b">ntru_ascii_poly.c</a>
</li>
<li>get_rnd_int()
: <a class="el" href="ntru__rnd_8h.html#ad85ebfb1cb4b4942942213b750812cf0">ntru_rnd.h</a>
, <a class="el" href="rnd_8h.html#ad85ebfb1cb4b4942942213b750812cf0">rnd.h</a>
, <a class="el" href="ntru__rnd_8c.html#ad85ebfb1cb4b4942942213b750812cf0">ntru_rnd.c</a>
</li>
<li>get_urnd_int()
: <a class="el" href="rnd_8h.html#a99e4820cab7157eb1e16109e21dac81f">rnd.h</a>
, <a class="el" href="ntru__rnd_8h.html#a99e4820cab7157eb1e16109e21dac81f">ntru_rnd.h</a>
, <a class="el" href="ntru__rnd_8c.html#a99e4820cab7157eb1e16109e21dac81f">ntru_rnd.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
<li>import_priv_key()
: <a class="el" href="ntru__keypair_8c.html#a1f917ea6ef5302826c888e5c88e0869e">ntru_keypair.c</a>
, <a class="el" href="ntru__keypair_8h.html#a1f917ea6ef5302826c888e5c88e0869e">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#a1f917ea6ef5302826c888e5c88e0869e">keypair.h</a>
</li>
<li>import_public_key()
: <a class="el" href="ntru__keypair_8c.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">ntru_keypair.c</a>
, <a class="el" href="ntru__keypair_8h.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">keypair.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
<li>ntru_calloc()
: <a class="el" href="ntru__mem_8c.html#a37e0be4fd8d0b677a41c8287ef47885c">ntru_mem.c</a>
, <a class="el" href="ntru__mem_8h.html#a37e0be4fd8d0b677a41c8287ef47885c">ntru_mem.h</a>
</li>
<li>ntru_create_keypair()
: <a class="el" href="ntru__keypair_8h.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#a6873d41211a92c4f6b0074ef34ae1743">keypair.h</a>
, <a class="el" href="ntru__keypair_8c.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_keypair.c</a>
</li>
<li>ntru_decrypt_poly()
: <a class="el" href="ntru__decrypt_8c.html#a41c72f59e37a3c6ef6790eb909555d76">ntru_decrypt.c</a>
, <a class="el" href="ntru__decrypt_8h.html#a8108219b815b18d63672bbc45e76ca31">ntru_decrypt.h</a>
</li>
<li>ntru_decrypt_string()
: <a class="el" href="ntru__decrypt_8c.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt.c</a>
, <a class="el" href="ntru__decrypt_8h.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt.h</a>
, <a class="el" href="decrypt_8h.html#aa9cc61eec0c119e48762f6078a14527b">decrypt.h</a>
</li>
<li>ntru_delete_keypair()
: <a class="el" href="ntru__keypair_8c.html#a5279c4990bc22bb9e735fe36372a6786">ntru_keypair.c</a>
, <a class="el" href="ntru__keypair_8h.html#a5279c4990bc22bb9e735fe36372a6786">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#a5279c4990bc22bb9e735fe36372a6786">keypair.h</a>
</li>
<li>ntru_encrypt_poly()
: <a class="el" href="ntru__encrypt_8h.html#a9063450af4b523d202c7628dbac70e68">ntru_encrypt.h</a>
, <a class="el" href="ntru__encrypt_8c.html#a0156453c7cab7cf3da259beb1daf914b">ntru_encrypt.c</a>
</li>
<li>ntru_encrypt_string()
: <a class="el" href="encrypt_8h.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">encrypt.h</a>
, <a class="el" href="ntru__encrypt_8h.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt.h</a>
, <a class="el" href="ntru__encrypt_8c.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt.c</a>
</li>
<li>ntru_get_rnd_tern_poly_num()
: <a class="el" href="rnd_8h.html#a916a55c609c172ae4e48896032b36e47">rnd.h</a>
, <a class="el" href="ntru__rnd_8c.html#a916a55c609c172ae4e48896032b36e47">ntru_rnd.c</a>
, <a class="el" href="ntru__rnd_8h.html#a916a55c609c172ae4e48896032b36e47">ntru_rnd.h</a>
</li>
<li>ntru_malloc()
: <a class="el" href="ntru__mem_8h.html#a020790bf8b201fde92395cf975c0c691">ntru_mem.h</a>
, <a class="el" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_mem.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>poly_arr_to_ascii()
: <a class="el" href="ntru__poly__ascii_8c.html#afa141976b665b94c0db9912bc50de4a1">ntru_poly_ascii.c</a>
, <a class="el" href="ntru__poly__ascii_8h.html#afa141976b665b94c0db9912bc50de4a1">ntru_poly_ascii.h</a>
</li>
<li>poly_arr_to_base64()
: <a class="el" href="ntru__poly__ascii_8h.html#a16163cc57631a0965577cb0f89365ca0">ntru_poly_ascii.h</a>
, <a class="el" href="ntru__poly__ascii_8c.html#a0dc14698073df2e46e6540cbff870fc7">ntru_poly_ascii.c</a>
</li>
<li>poly_delete()
: <a class="el" href="ntru__poly_8c.html#a27ff2116f70bcbf5028219adcae4c5f0">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#a27ff2116f70bcbf5028219adcae4c5f0">ntru_poly.h</a>
, <a class="el" href="ntru_8h.html#a27ff2116f70bcbf5028219adcae4c5f0">ntru.h</a>
</li>
<li>poly_delete_all()
: <a class="el" href="ntru__poly_8c.html#a83297bc2ab5b6e7ce42553570dd8268f">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#a83297bc2ab5b6e7ce42553570dd8268f">ntru_poly.h</a>
, <a class="el" href="ntru_8h.html#a83297bc2ab5b6e7ce42553570dd8268f">ntru.h</a>
</li>
<li>poly_delete_array()
: <a class="el" href="ntru__poly_8c.html#a3f53c63383ff301b20dcede0783869a7">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#a3f53c63383ff301b20dcede0783869a7">ntru_poly.h</a>
, <a class="el" href="ntru_8h.html#a3f53c63383ff301b20dcede0783869a7">ntru.h</a>
</li>
<li>poly_draw()
: <a class="el" href="ntru_8h.html#a80a8ce0f2944bc3df94291ef2f781498">ntru.h</a>
, <a class="el" href="ntru__poly_8c.html#a80a8ce0f2944bc3df94291ef2f781498">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#a80a8ce0f2944bc3df94291ef2f781498">ntru_poly.h</a>
</li>
<li>poly_draw_pretty()
: <a class="el" href="ntru__poly_8c.html#aec098d00160d2d502eb1f8a7c3fa5453">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#aec098d00160d2d502eb1f8a7c3fa5453">ntru_poly.h</a>
, <a class="el" href="ntru_8h.html#aec098d00160d2d502eb1f8a7c3fa5453">ntru.h</a>
</li>
<li>poly_inverse_poly_p()
: <a class="el" href="ntru__poly_8c.html#ae77b2014df42e5ed612206d5930ac608">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#ae77b2014df42e5ed612206d5930ac608">ntru_poly.h</a>
</li>
<li>poly_inverse_poly_q()
: <a class="el" href="ntru__poly_8c.html#ace66beb516186e52f9b5b1ed8a397849">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#ace66beb516186e52f9b5b1ed8a397849">ntru_poly.h</a>
</li>
<li>poly_mod2_to_modq()
: <a class="el" href="ntru__poly_8c.html#a891af13dc4355c9fab9ca3fafcac8054">ntru_poly.c</a>
</li>
<li>poly_new()
: <a class="el" href="ntru_8h.html#a20f86085d5eb5372fd25dc270069d38c">ntru.h</a>
, <a class="el" href="ntru__poly_8c.html#a20f86085d5eb5372fd25dc270069d38c">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#a20f86085d5eb5372fd25dc270069d38c">ntru_poly.h</a>
</li>
<li>poly_starmultiply()
: <a class="el" href="ntru__poly_8c.html#ae96f479ddd97af709a0ed50817fd3fb3">ntru_poly.c</a>
, <a class="el" href="ntru__poly_8h.html#ae96f479ddd97af709a0ed50817fd3fb3">ntru_poly.h</a>
</li>
<li>poly_to_ascii()
: <a class="el" href="ntru__poly__ascii_8c.html#aa4d233591b7e51d6cf787edd3bfa91e2">ntru_poly_ascii.c</a>
, <a class="el" href="ntru__poly__ascii_8h.html#aa4d233591b7e51d6cf787edd3bfa91e2">ntru_poly_ascii.h</a>
</li>
<li>poly_to_base64()
: <a class="el" href="ntru__poly__ascii_8c.html#a4ba0179e3ae0d5e721ff8429a8265e80">ntru_poly_ascii.c</a>
, <a class="el" href="ntru__poly__ascii_8h.html#a4ba0179e3ae0d5e721ff8429a8265e80">ntru_poly_ascii.h</a>
</li>
<li>prints()
: <a class="el" href="ntru__string_8c.html#a55d4ce182c335ff6cca360909a7be395">ntru_string.c</a>
, <a class="el" href="ntru__string_8h.html#a55d4ce182c335ff6cca360909a7be395">ntru_string.h</a>
, <a class="el" href="ntru_8h.html#a55d4ce182c335ff6cca360909a7be395">ntru.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
<li>read_file()
: <a class="el" href="ntru__file_8c.html#a348c2a56837571f410d44631abc09dc4">ntru_file.c</a>
, <a class="el" href="ntru_8h.html#a348c2a56837571f410d44631abc09dc4">ntru.h</a>
, <a class="el" href="ntru__file_8h.html#a348c2a56837571f410d44631abc09dc4">ntru_file.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>string_delete()
: <a class="el" href="ntru__string_8c.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">ntru_string.c</a>
, <a class="el" href="ntru_8h.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">ntru.h</a>
, <a class="el" href="ntru__string_8h.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">ntru_string.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
<li>write_file()
: <a class="el" href="ntru__file_8c.html#a1f8eef5ea12c77ed2491d96864eb0d43">ntru_file.c</a>
, <a class="el" href="ntru_8h.html#af2a0fc4dd4109749d8f3100a913cc304">ntru.h</a>
, <a class="el" href="ntru__file_8h.html#a1f8eef5ea12c77ed2491d96864eb0d43">ntru_file.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:13 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

124
globals_type.html Normal file
View File

@ -0,0 +1,124 @@
<!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"/>
<title>post quantum cryptography: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&#160;<ul>
<li>keypair
: <a class="el" href="ntru__keypair_8h.html#aacfc9254c7939584924ab9d27ba6f504">ntru_keypair.h</a>
, <a class="el" href="keypair_8h.html#aacfc9254c7939584924ab9d27ba6f504">keypair.h</a>
</li>
<li>ntru_params
: <a class="el" href="ntru__params_8h.html#a2f326c88fc033eca78a47ee8d387c592">ntru_params.h</a>
, <a class="el" href="ntru_8h.html#a2f326c88fc033eca78a47ee8d387c592">ntru.h</a>
</li>
<li>string
: <a class="el" href="ntru__string_8h.html#a63e2e3ee7db5274c6a3929edfc07c6c9">ntru_string.h</a>
, <a class="el" href="ntru_8h.html#a63e2e3ee7db5274c6a3929edfc07c6c9">ntru.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:13 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

22
graph_legend.dot Normal file
View File

@ -0,0 +1,22 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node9 [shape="box",label="Inherited",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",fillcolor="grey75",style="filled" fontcolor="black"];
Node10 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [shape="box",label="PublicBase",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPublicBase.html"];
Node11 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [shape="box",label="Truncated",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="red",URL="$classTruncated.html"];
Node13 -> Node9 [dir="back",color="darkgreen",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [shape="box",label="ProtectedBase",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classProtectedBase.html"];
Node14 -> Node9 [dir="back",color="firebrick4",fontsize="10",style="solid",fontname="Helvetica"];
Node14 [shape="box",label="PrivateBase",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPrivateBase.html"];
Node15 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 [shape="box",label="Undocumented",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="grey75"];
Node16 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 [shape="box",label="Templ< int >",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"];
Node17 -> Node16 [dir="back",color="orange",fontsize="10",style="dashed",label="< int >",fontname="Helvetica"];
Node17 [shape="box",label="Templ< T >",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"];
Node18 -> Node9 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label="m_usedClass",fontname="Helvetica"];
Node18 [shape="box",label="Used",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classUsed.html"];
}

164
graph_legend.html Normal file
View File

@ -0,0 +1,164 @@
<!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"/>
<title>post quantum cryptography: Graph Legend</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</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>
<div class="header">
<div class="headertitle">
<div class="title">Graph Legend</div> </div>
</div><!--header-->
<div class="contents">
<p>This page explains how to interpret the graphs that are generated by doxygen.</p>
<p>Consider the following example: </p>
<div class="fragment"><pre class="fragment"><span class="comment">/*! Invisible class because of truncation */</span>
<span class="keyword">class </span>Invisible { };
<span class="comment"></span>
<span class="comment">/*! Truncated class, inheritance relation is hidden */</span>
<span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };
<span class="comment">/* Class not documented with doxygen comments */</span>
<span class="keyword">class </span>Undocumented { };
<span class="comment"></span>
<span class="comment">/*! Class that is inherited using public inheritance */</span>
<span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };
<span class="comment"></span>
<span class="comment">/*! A template class */</span>
<span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };
<span class="comment"></span>
<span class="comment">/*! Class that is inherited using protected inheritance */</span>
<span class="keyword">class </span>ProtectedBase { };
<span class="comment"></span>
<span class="comment">/*! Class that is inherited using private inheritance */</span>
<span class="keyword">class </span>PrivateBase { };
<span class="comment"></span>
<span class="comment">/*! Class that is used by the Inherited class */</span>
<span class="keyword">class </span>Used { };
<span class="comment"></span>
<span class="comment">/*! Super class that inherits a number of other classes */</span>
<span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,
<span class="keyword">protected</span> ProtectedBase,
<span class="keyword">private</span> PrivateBase,
<span class="keyword">public</span> Undocumented,
<span class="keyword">public</span> Templ&lt;int&gt;
{
<span class="keyword">private</span>:
Used *m_usedClass;
};
</pre></div><p> This will result in the following graph:</p>
<center><div class="image">
<img src="graph_legend.png" />
</div>
</center> <p>The boxes in the above graph have the following meaning: </p>
<ul>
<li>
A filled gray box represents the struct or class for which the graph is generated. </li>
<li>
A box with a black border denotes a documented struct or class. </li>
<li>
A box with a grey border denotes an undocumented struct or class. </li>
<li>
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
</ul>
<p>The arrows have the following meaning: </p>
<ul>
<li>
A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
<li>
A dark green arrow is used for protected inheritance. </li>
<li>
A dark red arrow is used for private inheritance. </li>
<li>
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible. </li>
<li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
</ul>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:13 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

1
graph_legend.md5 Normal file
View File

@ -0,0 +1 @@
70d597617e34367275a35eeb8fb7ea07

View File

@ -1 +1,134 @@
My GitHub Page
<!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"/>
<title>post quantum cryptography: Index Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</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>
<div class="header">
<div class="headertitle">
<div class="title">Index Page </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><dl class="author"><dt><b>Author:</b></dt><dd>hasufell</dd></dl>
<h2><a class="anchor" id="intro_sec"></a>
Introduction</h2>
<p>Highly optimized C implementation of the NTRUEncrypt algorithm, using the FLINT library.</p>
<h2><a class="anchor" id="mot"></a>
Motivation</h2>
<p>Modern quantum computers will enable us to ride extremely effective attacks on crypto algorithms like rsa. One known attack is the quantum algorithm called <a href="http://en.wikipedia.org/wiki/Shor%27s_algorithm">Shor's algorithm</a>. In the light of fast paced computer hardware development and known quantum algorithms, it is of importance to find and implement alternatives which are not vulnerable to these attacks.</p>
<p>One known alternative is called <a href="http://en.wikipedia.org/wiki/NTRUEncrypt">NTRU</a> and will be our main focus. It is lattice-based (shortest vector problem in a lattice). In fact, NTRU is a parametrised family of cryptosystems. As such it is represented by the triple (N, p, q), where N is prime, q is always larger than p and p and q are coprime. As well as four sets of polynomials: a polynomial part of the private key, a polynomial for generation of the public key, the message and a blinding value, respectively, all of degree at most N - 1. It is, in theory, very efficient, since encryption and decryption only use simple polynomial multiplication which are very fast compared to asymmetric encryption schemes.</p>
<h2><a class="anchor" id="goals"></a>
Goals</h2>
<p>Our main goal is to implement an alternative library of the NTRU algorithm in C and gather experience in cryptographic programming. Further, it may help to raise awareness of the need of quantum-secure encryption and enable us to contribute to already present implementations. It may even reveal problems of other implementations and help advancing them. It may as well help with diversity in crypto implementations, which is always a good thing. On top of that we will provide a command-line interface to our library and allow basic operations like key creation and encryption from stdin.</p>
<p>Optimizing the algorithm itself is not within our scope. However, the library may undergo heavy changes on the mathematical implementation of polynomial arithmetic, in order to optimize run-time behaviour.</p>
<h2><a class="anchor" id="algos"></a>
Algorithms</h2>
<p>Most of the algorithms in <a class="el" href="ntru__poly_8c.html" title="operations on polynomials">ntru_poly.c</a>, <a class="el" href="ntru__decrypt_8c.html" title="NTRU decryption.">ntru_decrypt.c</a>, <a class="el" href="ntru__encrypt_8c.html" title="NTRU encryption.">ntru_encrypt.c</a> and <a class="el" href="ntru__keypair_8c.html" title="key creation and operations">ntru_keypair.c</a> are based on the pseudo-code from <a href="http://www.crypto.wpi.edu/Publications/Documents/ms_corourke.pdf">Efficient NTRU Implementations by Colleen Marie O'Rourke</a>.</p>
<p>Further work is based on <a href="http://www.math.uni-hamburg.de/home/kuehn/moldenhauer-bsc-NTRUKryptosystem-final.pdf">Das NTRU-Kryptosystem von Anja Moldenhauer</a> and the official <a href="https://www.securityinnovation.com/uploads/Crypto/NTRUTech014.pdf">NTRU Cryptosystems Technical Report #14</a>.</p>
<h2><a class="anchor" id="license"></a>
License</h2>
<p><a href="https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">LGPL-2.1</a></p>
<h2><a class="anchor" id="deps"></a>
Dependencies</h2>
<p>This library was written for Linux systems. Support for windows will not be added. \* <a href="http://www.flintlib.org">FLINT-2.4.3 or later</a> (compiled with gmp and mpfr) \* <a href="https://developer.gnome.org/glib/stable/">glib-2.0</a> \* <a href="http://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</a> (for the build only)</p>
<h2><a class="anchor" id="install_sec"></a>
Installation</h2>
<p>\* make \* make install</p>
<h2><a class="anchor" id="usage"></a>
Usage</h2>
<p>See this API doc, the public headers are in the include/ subfolder.</p>
<h2><a class="anchor" id="perf"></a>
Performance</h2>
<p>See <a href="https://github.com/hasufell/pqc/wiki/Performance-analysis">Performance Analysis on github</a>.</p>
<h2><a class="anchor" id="ref"></a>
References</h2>
<p>\* <a href="https://github.com/hasufell/pqc">This library on github</a> \* <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.25.8422&amp;rep=rep1&amp;type=pdf">Original NTRUEncrypt paper</a> \* <a href="http://www.crypto.wpi.edu/Publications/Documents/ms_corourke.pdf">Efficient NTRU Implementations by Colleen Marie O'Rourke</a> \* <a href="http://www.math.uni-hamburg.de/home/kuehn/moldenhauer-bsc-NTRUKryptosystem-final.pdf">Das NTRU-Kryptosystem von Anja Moldenhauer</a> \* <a href="https://www.securityinnovation.com/uploads/Crypto/NTRUTech014.pdf">NTRU Cryptosystems Technical Report #14</a> \* <a href="http://teal.gmu.edu/courses/ECE646/project/reports_2001/dsouza.pdf">The NTRU Cryptosystem: Implementation and Comparative Analysis by Rodney D'Souza</a> \* <a href="http://en.wikipedia.org/wiki/NTRUEncrypt">Wikipedia Article</a> </p>
</div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:13 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

112
installdox Executable file
View File

@ -0,0 +1,112 @@
#!/usr/bin/perl
%subst = ( );
$quiet = 0;
while ( @ARGV ) {
$_ = shift @ARGV;
if ( s/^-// ) {
if ( /^l(.*)/ ) {
$v = ($1 eq "") ? shift @ARGV : $1;
($v =~ /\/$/) || ($v .= "/");
$_ = $v;
if ( /(.+)\@(.+)/ ) {
if ( exists $subst{$1} ) {
$subst{$1} = $2;
} else {
print STDERR "Unknown tag file $1 given with option -l\n";
&usage();
}
} else {
print STDERR "Argument $_ is invalid for option -l\n";
&usage();
}
}
elsif ( /^q/ ) {
$quiet = 1;
}
elsif ( /^\?|^h/ ) {
&usage();
}
else {
print STDERR "Illegal option -$_\n";
&usage();
}
}
else {
push (@files, $_ );
}
}
foreach $sub (keys %subst)
{
if ( $subst{$sub} eq "" )
{
print STDERR "No substitute given for tag file `$sub'\n";
&usage();
}
elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" )
{
print "Substituting $subst{$sub} for each occurrence of tag file $sub\n";
}
}
if ( ! @files ) {
if (opendir(D,".")) {
foreach $file ( readdir(D) ) {
$match = ".html";
next if ( $file =~ /^\.\.?$/ );
($file =~ /$match/) && (push @files, $file);
($file =~ /\.svg/) && (push @files, $file);
($file =~ "navtree.js") && (push @files, $file);
}
closedir(D);
}
}
if ( ! @files ) {
print STDERR "Warning: No input files given and none found!\n";
}
foreach $f (@files)
{
if ( ! $quiet ) {
print "Editing: $f...\n";
}
$oldf = $f;
$f .= ".bak";
unless (rename $oldf,$f) {
print STDERR "Error: cannot rename file $oldf\n";
exit 1;
}
if (open(F,"<$f")) {
unless (open(G,">$oldf")) {
print STDERR "Error: opening file $oldf for writing\n";
exit 1;
}
if ($oldf ne "tree.js") {
while (<F>) {
s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (xlink:href|href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g;
print G "$_";
}
}
else {
while (<F>) {
s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g;
print G "$_";
}
}
}
else {
print STDERR "Warning file $f does not exist\n";
}
unlink $f;
}
sub usage {
print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
print STDERR "Options:\n";
print STDERR " -l tagfile\@linkName tag file + URL or directory \n";
print STDERR " -q Quiet mode\n\n";
exit 1;
}

64
jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

436
keypair_8h.html Normal file
View File

@ -0,0 +1,436 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/include/keypair.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/include/keypair.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>public API, key handling
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru_8h_source.html">ntru.h</a>&quot;</code><br/>
<code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
<code>#include &lt;stdbool.h&gt;</code><br/>
<code>#include &lt;stdint.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for keypair.h:</div>
<div class="dyncontent">
<div class="center"><img src="keypair_8h__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2include_2keypair_8h" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2include_2keypair_8h" id="_2home_2travis_2build_2hasufell_2pqc_2include_2keypair_8h">
</map>
</div>
</div>
<p><a href="keypair_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structkeypair.html">keypair</a></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structkeypair.html">keypair</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="keypair_8h.html#aacfc9254c7939584924ab9d27ba6f504">keypair</a></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="keypair_8h.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_create_keypair</a> (fmpz_poly_t f, fmpz_poly_t g, <a class="el" href="structkeypair.html">keypair</a> *pair, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="keypair_8h.html#a41741ed660cb806c47335f66055e1bdd">export_public_key</a> (char const *const filename, fmpz_poly_t pub, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="keypair_8h.html#afa29f14a14486d3f6b979ee900d7e738">export_priv_key</a> (char const *const filename, fmpz_poly_t priv, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="keypair_8h.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">import_public_key</a> (char const *const filename, fmpz_poly_t pub, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="keypair_8h.html#a1f917ea6ef5302826c888e5c88e0869e">import_priv_key</a> (char const *const filename, fmpz_poly_t priv, fmpz_poly_t priv_inv, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="keypair_8h.html#a5279c4990bc22bb9e735fe36372a6786">ntru_delete_keypair</a> (<a class="el" href="structkeypair.html">keypair</a> *pair)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>public API, key handling </p>
<p>This file holds the public API of generating, exporting and importing public and private keys of the pqc NTRU implementation and is meant to be installed on the client system. </p>
<p>Definition in file <a class="el" href="keypair_8h_source.html">keypair.h</a>.</p>
</div><hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="aacfc9254c7939584924ab9d27ba6f504"></a><!-- doxytag: member="keypair.h::keypair" ref="aacfc9254c7939584924ab9d27ba6f504" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structkeypair.html">keypair</a> <a class="el" href="structkeypair.html">keypair</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="keypair_8h_source.html#l00042">42</a> of file <a class="el" href="keypair_8h_source.html">keypair.h</a>.</p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="afa29f14a14486d3f6b979ee900d7e738"></a><!-- doxytag: member="keypair.h::export_priv_key" ref="afa29f14a14486d3f6b979ee900d7e738" args="(char const *const filename, fmpz_poly_t priv, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#afa29f14a14486d3f6b979ee900d7e738">export_priv_key</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Export the private key to a file.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>the file to save the private key into </td></tr>
<tr><td class="paramname">priv</td><td>the private key </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00111">111</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a41741ed660cb806c47335f66055e1bdd"></a><!-- doxytag: member="keypair.h::export_public_key" ref="a41741ed660cb806c47335f66055e1bdd" args="(char const *const filename, fmpz_poly_t pub, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#a41741ed660cb806c47335f66055e1bdd">export_public_key</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>pub</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Export the public key to a file.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>the file to save the public key into </td></tr>
<tr><td class="paramname">pub</td><td>the public key </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00096">96</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a1f917ea6ef5302826c888e5c88e0869e"></a><!-- doxytag: member="keypair.h::import_priv_key" ref="a1f917ea6ef5302826c888e5c88e0869e" args="(char const *const filename, fmpz_poly_t priv, fmpz_poly_t priv_inv, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#a1f917ea6ef5302826c888e5c88e0869e">import_priv_key</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_inv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Import the private key from a file and store him along with his inverse.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>the file to get the private key from </td></tr>
<tr><td class="paramname">priv</td><td>where to save the private key [out] </td></tr>
<tr><td class="paramname">priv_inv</td><td>where to save the inverse of the private key [out] </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00157">157</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a4e2c6da04c55e8c1b6c447f4cc9f1d6f"></a><!-- doxytag: member="keypair.h::import_public_key" ref="a4e2c6da04c55e8c1b6c447f4cc9f1d6f" args="(char const *const filename, fmpz_poly_t pub, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">import_public_key</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>pub</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Import the public key from a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>the file to get the public key from </td></tr>
<tr><td class="paramname">pub</td><td>where to save the public key [out] </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00132">132</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a6873d41211a92c4f6b0074ef34ae1743"></a><!-- doxytag: member="keypair.h::ntru_create_keypair" ref="a6873d41211a92c4f6b0074ef34ae1743" args="(fmpz_poly_t f, fmpz_poly_t g, keypair *pair, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="keypair_8h.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_create_keypair</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>f</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>g</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structkeypair.html">keypair</a> *&#160;</td>
<td class="paramname"><em>pair</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates an NTRU key pair, consisting of public and private components.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">f</td><td>a random polynomial </td></tr>
<tr><td class="paramname">g</td><td>a random polynomial </td></tr>
<tr><td class="paramname">pair</td><td>store private and public components here [out] </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context</td></tr>
</table>
</dd>
</dl>
<p>Creates an NTRU key pair, consisting of public and private components.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">f</td><td>a random polynomial </td></tr>
<tr><td class="paramname">g</td><td>a random polynomial </td></tr>
<tr><td class="paramname">pair</td><td>store private and public components here [out] </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true for success, false if f or g are not invertible (then the caller hast to try different ones) </dd></dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00047">47</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a5279c4990bc22bb9e735fe36372a6786"></a><!-- doxytag: member="keypair.h::ntru_delete_keypair" ref="a5279c4990bc22bb9e735fe36372a6786" args="(keypair *pair)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#a5279c4990bc22bb9e735fe36372a6786">ntru_delete_keypair</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structkeypair.html">keypair</a> *&#160;</td>
<td class="paramname"><em>pair</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Used to free the inner structure of a keypair. This will not call free() on the pair itself.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">pair</td><td>the pair to free the inner structure of </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00197">197</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

19
keypair_8h__incl.dot Normal file
View File

@ -0,0 +1,19 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/include/keypair.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru_8h.html",tooltip="public API, basic data types"];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="stdbool.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

1
keypair_8h__incl.md5 Normal file
View File

@ -0,0 +1 @@
4303da91ade606bc2d885da5a117a4fa

181
keypair_8h_source.html Normal file
View File

@ -0,0 +1,181 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/include/keypair.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/include/keypair.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="keypair_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00031"></a>00031 <span class="preprocessor">#ifndef PUBLIC_NTRU_KEYPAIR_H_</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#define PUBLIC_NTRU_KEYPAIR_H_</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;<a class="code" href="ntru_8h.html" title="public API, basic data types">ntru.h</a>&quot;</span>
<a name="l00035"></a>00035
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;fmpz_poly.h&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;fmpz.h&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;stdbool.h&gt;</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
<a name="l00040"></a>00040
<a name="l00041"></a>00041
<a name="l00042"></a><a class="code" href="keypair_8h.html#aacfc9254c7939584924ab9d27ba6f504">00042</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structkeypair.html">keypair</a> <a class="code" href="structkeypair.html">keypair</a>;
<a name="l00043"></a>00043
<a name="l00044"></a>00044
<a name="l00049"></a>00049 <span class="keyword">struct </span><a class="code" href="structkeypair.html">keypair</a> {
<a name="l00054"></a>00054 fmpz_poly_t <a class="code" href="structkeypair.html#a9e9805ad001216da53f2c57accb288e1">priv</a>;
<a name="l00059"></a>00059 fmpz_poly_t <a class="code" href="structkeypair.html#a9e63f1d275b91c9d9716fb4069461799">priv_inv</a>;
<a name="l00064"></a>00064 fmpz_poly_t <a class="code" href="structkeypair.html#afa635c70f233d0b7449b4a17513646c4">pub</a>;
<a name="l00065"></a>00065 };
<a name="l00066"></a>00066
<a name="l00067"></a>00067
<a name="l00078"></a>00078 <span class="keywordtype">bool</span>
<a name="l00079"></a>00079 <a class="code" href="ntru__keypair_8c.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_create_keypair</a>(
<a name="l00080"></a>00080 fmpz_poly_t f,
<a name="l00081"></a>00081 fmpz_poly_t g,
<a name="l00082"></a>00082 <a class="code" href="structkeypair.html">keypair</a> *pair,
<a name="l00083"></a>00083 <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00084"></a>00084
<a name="l00092"></a>00092 <span class="keywordtype">void</span>
<a name="l00093"></a>00093 <a class="code" href="ntru__keypair_8c.html#a41741ed660cb806c47335f66055e1bdd">export_public_key</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename,
<a name="l00094"></a>00094 fmpz_poly_t pub,
<a name="l00095"></a>00095 <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00096"></a>00096
<a name="l00104"></a>00104 <span class="keywordtype">void</span>
<a name="l00105"></a>00105 <a class="code" href="ntru__keypair_8c.html#afa29f14a14486d3f6b979ee900d7e738">export_priv_key</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename,
<a name="l00106"></a>00106 fmpz_poly_t priv,
<a name="l00107"></a>00107 <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00108"></a>00108
<a name="l00115"></a>00115 <span class="keywordtype">void</span>
<a name="l00116"></a>00116 <a class="code" href="ntru__keypair_8c.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">import_public_key</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename,
<a name="l00117"></a>00117 fmpz_poly_t pub,
<a name="l00118"></a>00118 <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00119"></a>00119
<a name="l00129"></a>00129 <span class="keywordtype">void</span>
<a name="l00130"></a>00130 <a class="code" href="ntru__keypair_8c.html#a1f917ea6ef5302826c888e5c88e0869e">import_priv_key</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename,
<a name="l00131"></a>00131 fmpz_poly_t priv,
<a name="l00132"></a>00132 fmpz_poly_t priv_inv,
<a name="l00133"></a>00133 <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00134"></a>00134
<a name="l00142"></a>00142 <span class="keywordtype">void</span>
<a name="l00143"></a>00143 <a class="code" href="ntru__keypair_8c.html#a5279c4990bc22bb9e735fe36372a6786">ntru_delete_keypair</a>(<a class="code" href="structkeypair.html">keypair</a> *pair);
<a name="l00144"></a>00144
<a name="l00145"></a>00145
<a name="l00146"></a>00146 <span class="preprocessor">#endif </span><span class="comment">/* PUBLIC_NTRU_KEYPAIR_H_ */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

BIN
nav_f.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

BIN
nav_h.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 B

503
ntru_8h.html Normal file
View File

@ -0,0 +1,503 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/include/ntru.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/include/ntru.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>public API, basic data types
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
<code>#include &lt;stdint.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru.h:</div>
<div class="dyncontent">
<div class="center"><img src="ntru_8h__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2include_2ntru_8h" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2include_2ntru_8h" id="_2home_2travis_2build_2hasufell_2pqc_2include_2ntru_8h">
</map>
</div>
</div>
<p><a href="ntru_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structntru__params.html">ntru_params</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structstring.html">string</a></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structntru__params.html">ntru_params</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru_8h.html#a2f326c88fc033eca78a47ee8d387c592">ntru_params</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structstring.html">string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru_8h.html#a63e2e3ee7db5274c6a3929edfc07c6c9">string</a></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru_8h.html#a55d4ce182c335ff6cca360909a7be395">prints</a> (const <a class="el" href="structstring.html">string</a> *print_string)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru_8h.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">string_delete</a> (<a class="el" href="structstring.html">string</a> *del_string)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru_8h.html#a20f86085d5eb5372fd25dc270069d38c">poly_new</a> (fmpz_poly_t new_poly, int const *const c, const size_t len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru_8h.html#a27ff2116f70bcbf5028219adcae4c5f0">poly_delete</a> (fmpz_poly_t poly)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru_8h.html#a3f53c63383ff301b20dcede0783869a7">poly_delete_array</a> (fmpz_poly_t **poly_array)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru_8h.html#a83297bc2ab5b6e7ce42553570dd8268f">poly_delete_all</a> (fmpz_poly_t poly,...)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru_8h.html#a80a8ce0f2944bc3df94291ef2f781498">poly_draw</a> (const fmpz_poly_t poly)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru_8h.html#aec098d00160d2d502eb1f8a7c3fa5453">poly_draw_pretty</a> (const fmpz_poly_t poly)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structstring.html">string</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru_8h.html#a348c2a56837571f410d44631abc09dc4">read_file</a> (char const *const filename)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru_8h.html#af2a0fc4dd4109749d8f3100a913cc304">write_file</a> (<a class="el" href="structstring.html">string</a> const *wstring, char const *const filename)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>public API, basic data types </p>
<p>This file holds the public API of the most basic data types and operations of the pqc NTRU implementation and is meant to be installed on the client system. </p>
<p>Definition in file <a class="el" href="ntru_8h_source.html">ntru.h</a>.</p>
</div><hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="a2f326c88fc033eca78a47ee8d387c592"></a><!-- doxytag: member="ntru.h::ntru_params" ref="a2f326c88fc033eca78a47ee8d387c592" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structntru__params.html">ntru_params</a> <a class="el" href="structntru__params.html">ntru_params</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="ntru_8h_source.html#l00039">39</a> of file <a class="el" href="ntru_8h_source.html">ntru.h</a>.</p>
</div>
</div>
<a class="anchor" id="a63e2e3ee7db5274c6a3929edfc07c6c9"></a><!-- doxytag: member="ntru.h::string" ref="a63e2e3ee7db5274c6a3929edfc07c6c9" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structstring.html">string</a> <a class="el" href="structstring.html">string</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="ntru_8h_source.html#l00040">40</a> of file <a class="el" href="ntru_8h_source.html">ntru.h</a>.</p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a27ff2116f70bcbf5028219adcae4c5f0"></a><!-- doxytag: member="ntru.h::poly_delete" ref="a27ff2116f70bcbf5028219adcae4c5f0" args="(fmpz_poly_t poly)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#a27ff2116f70bcbf5028219adcae4c5f0">poly_delete</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>poly</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This deletes the internal structure of a polynomial, and frees the pointer.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">poly</td><td>the polynomial to delete </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00123">123</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a83297bc2ab5b6e7ce42553570dd8268f"></a><!-- doxytag: member="ntru.h::poly_delete_all" ref="a83297bc2ab5b6e7ce42553570dd8268f" args="(fmpz_poly_t poly,...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#a83297bc2ab5b6e7ce42553570dd8268f">poly_delete_all</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>poly</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This deletes the internal structure of all polynomials, and frees the pointers. You must call this with NULL as last argument!</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">poly</td><td>the polynomial to delete </td></tr>
<tr><td class="paramname">...</td><td>follow up polynomials </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00149">149</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a3f53c63383ff301b20dcede0783869a7"></a><!-- doxytag: member="ntru.h::poly_delete_array" ref="a3f53c63383ff301b20dcede0783869a7" args="(fmpz_poly_t **poly_array)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#a3f53c63383ff301b20dcede0783869a7">poly_delete_array</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t **&#160;</td>
<td class="paramname"><em>poly_array</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Delete the internal structure of a polynomial array which must be NULL terminated. It is expected that poly_array is not on the stack and was obtained by a function like ascii_to_poly().</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">poly_array</td><td>the polynomial array </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00131">131</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a80a8ce0f2944bc3df94291ef2f781498"></a><!-- doxytag: member="ntru.h::poly_draw" ref="a80a8ce0f2944bc3df94291ef2f781498" args="(const fmpz_poly_t poly)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#a80a8ce0f2944bc3df94291ef2f781498">poly_draw</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>poly</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Draws a polynomial to stdout.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">poly</td><td>draw this </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00574">574</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="aec098d00160d2d502eb1f8a7c3fa5453"></a><!-- doxytag: member="ntru.h::poly_draw_pretty" ref="aec098d00160d2d502eb1f8a7c3fa5453" args="(const fmpz_poly_t poly)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#aec098d00160d2d502eb1f8a7c3fa5453">poly_draw_pretty</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>poly</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Draws a polynomial to stdout, in pretty format.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">poly</td><td>draw this </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00583">583</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a20f86085d5eb5372fd25dc270069d38c"></a><!-- doxytag: member="ntru.h::poly_new" ref="a20f86085d5eb5372fd25dc270069d38c" args="(fmpz_poly_t new_poly, int const *const c, const size_t len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#a20f86085d5eb5372fd25dc270069d38c">poly_new</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>new_poly</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int const *const&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initializes and builds a polynomial with the coefficient values of c[] of size len within NTRU parameters and returns a newly allocated polynomial. For an empty polynom, both c and len can be NULL/0.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">new_poly</td><td>the polynomial to initialize and fill with coefficients [out] </td></tr>
<tr><td class="paramname">c</td><td>array of polynomial coefficients, can be NULL </td></tr>
<tr><td class="paramname">len</td><td>size of the coefficient array, can be 0 </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>newly allocated polynomial pointer, must be freed with fmpz_poly_clear() </dd></dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00110">110</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a55d4ce182c335ff6cca360909a7be395"></a><!-- doxytag: member="ntru.h::prints" ref="a55d4ce182c335ff6cca360909a7be395" args="(const string *print_string)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#a55d4ce182c335ff6cca360909a7be395">prints</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structstring.html">string</a> *&#160;</td>
<td class="paramname"><em>print_string</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Prints the given string to stdout.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">print_string</td><td>the print to string </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__string_8c_source.html#l00037">37</a> of file <a class="el" href="ntru__string_8c_source.html">ntru_string.c</a>.</p>
</div>
</div>
<a class="anchor" id="a348c2a56837571f410d44631abc09dc4"></a><!-- doxytag: member="ntru.h::read_file" ref="a348c2a56837571f410d44631abc09dc4" args="(char const *const filename)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* <a class="el" href="ntru_8h.html#a348c2a56837571f410d44631abc09dc4">read_file</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads a file and returns a newly allocated string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>file to open </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a newly allocated string which must be freed by the caller or NULL on failure</dd></dl>
<p>Reads a file and returns a newly allocated string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>file to open </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a newly allocated string which must be freed by the caller or NULL on failure (e.g. if the file could not be opened/closed) </dd></dl>
<p>Definition at line <a class="el" href="ntru__file_8c_source.html#l00050">50</a> of file <a class="el" href="ntru__file_8c_source.html">ntru_file.c</a>.</p>
</div>
</div>
<a class="anchor" id="ac1b5f66fbbbdfc7901357ddcfec52e5a"></a><!-- doxytag: member="ntru.h::string_delete" ref="ac1b5f66fbbbdfc7901357ddcfec52e5a" args="(string *del_string)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">string_delete</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structstring.html">string</a> *&#160;</td>
<td class="paramname"><em>del_string</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Delete the inner structure of the string and frees the string itself from the heap. Must not be called on stack variables.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">del_string</td><td>the string to delete </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__string_8c_source.html#l00047">47</a> of file <a class="el" href="ntru__string_8c_source.html">ntru_string.c</a>.</p>
</div>
</div>
<a class="anchor" id="af2a0fc4dd4109749d8f3100a913cc304"></a><!-- doxytag: member="ntru.h::write_file" ref="af2a0fc4dd4109749d8f3100a913cc304" args="(string const *wstring, char const *const filename)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#af2a0fc4dd4109749d8f3100a913cc304">write_file</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structstring.html">string</a> const *&#160;</td>
<td class="paramname"><em>wstring</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Write a string to a file. The file will be pruned or created if it does not exist.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">wstring</td><td>the string to write to the file </td></tr>
<tr><td class="paramname">filename</td><td>the name of the file to write to</td></tr>
</table>
</dd>
</dl>
<p>Write a string to a file. The file will be pruned or created if it does not exist.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">wstring</td><td>the string to write to the file </td></tr>
<tr><td class="paramname">filename</td><td>the name of the file to write to </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true for success or false for failure if fopen or fclose failed </dd></dl>
<p>Definition at line <a class="el" href="ntru__file_8c_source.html#l00107">107</a> of file <a class="el" href="ntru__file_8c_source.html">ntru_file.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

12
ntru_8h__incl.dot Normal file
View File

@ -0,0 +1,12 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/include/ntru.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
}

1
ntru_8h__incl.md5 Normal file
View File

@ -0,0 +1 @@
512dd154d90a38f15b27224cf5c624d1

186
ntru_8h_source.html Normal file
View File

@ -0,0 +1,186 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/include/ntru.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/include/ntru.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00030"></a>00030 <span class="preprocessor">#ifndef PUBLIC_NTRU_NTRU_H_</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define PUBLIC_NTRU_NTRU_H_</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span>
<a name="l00033"></a>00033
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;fmpz_poly.h&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;fmpz.h&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
<a name="l00037"></a>00037
<a name="l00038"></a>00038
<a name="l00039"></a><a class="code" href="ntru_8h.html#a2f326c88fc033eca78a47ee8d387c592">00039</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structntru__params.html">ntru_params</a> <a class="code" href="structntru__params.html">ntru_params</a>;
<a name="l00040"></a><a class="code" href="ntru_8h.html#a63e2e3ee7db5274c6a3929edfc07c6c9">00040</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structstring.html">string</a> <a class="code" href="structstring.html">string</a>;
<a name="l00041"></a>00041
<a name="l00042"></a>00042
<a name="l00047"></a>00047 <span class="keyword">struct </span><a class="code" href="structntru__params.html">ntru_params</a> {
<a name="l00052"></a>00052 uint32_t <a class="code" href="structntru__params.html#afb8425ee3db2b917b3c4e8d9b75bd3ff">N</a>;
<a name="l00056"></a>00056 uint32_t <a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">q</a>;
<a name="l00060"></a>00060 uint32_t <a class="code" href="structntru__params.html#a41b368825e1eb126604e13e8f549ec8f">p</a>;
<a name="l00061"></a>00061 };
<a name="l00062"></a>00062
<a name="l00066"></a>00066 <span class="keyword">struct </span><a class="code" href="structstring.html">string</a> {
<a name="l00074"></a>00074 <span class="keywordtype">char</span> *<a class="code" href="structstring.html#afd608f62303958cea6f1f7afdec1e282">ptr</a>;
<a name="l00078"></a>00078 <span class="keywordtype">size_t</span> <a class="code" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">len</a>;
<a name="l00079"></a>00079 };
<a name="l00080"></a>00080
<a name="l00081"></a>00081
<a name="l00087"></a>00087 <span class="keywordtype">void</span>
<a name="l00088"></a>00088 <a class="code" href="ntru__string_8c.html#a55d4ce182c335ff6cca360909a7be395">prints</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> *print_string);
<a name="l00089"></a>00089
<a name="l00098"></a>00098 <span class="keywordtype">void</span>
<a name="l00099"></a>00099 <a class="code" href="ntru__string_8c.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">string_delete</a>(<span class="keywordtype">string</span> *del_string);
<a name="l00100"></a>00100
<a name="l00114"></a>00114 <span class="keywordtype">void</span>
<a name="l00115"></a>00115 <a class="code" href="ntru__poly_8c.html#a20f86085d5eb5372fd25dc270069d38c">poly_new</a>(fmpz_poly_t new_poly,
<a name="l00116"></a>00116 <span class="keywordtype">int</span> <span class="keyword">const</span> * <span class="keyword">const</span> c,
<a name="l00117"></a>00117 <span class="keyword">const</span> <span class="keywordtype">size_t</span> len);
<a name="l00118"></a>00118
<a name="l00125"></a>00125 <span class="keywordtype">void</span>
<a name="l00126"></a>00126 <a class="code" href="ntru__poly_8c.html#a27ff2116f70bcbf5028219adcae4c5f0">poly_delete</a>(fmpz_poly_t poly);
<a name="l00127"></a>00127
<a name="l00136"></a>00136 <span class="keywordtype">void</span>
<a name="l00137"></a>00137 <a class="code" href="ntru__poly_8c.html#a3f53c63383ff301b20dcede0783869a7">poly_delete_array</a>(fmpz_poly_t **poly_array);
<a name="l00138"></a>00138
<a name="l00147"></a>00147 <span class="keywordtype">void</span>
<a name="l00148"></a>00148 <a class="code" href="ntru__poly_8c.html#a83297bc2ab5b6e7ce42553570dd8268f">poly_delete_all</a>(fmpz_poly_t poly, ...);
<a name="l00149"></a>00149
<a name="l00155"></a>00155 <span class="keywordtype">void</span>
<a name="l00156"></a>00156 <a class="code" href="ntru__poly_8c.html#a80a8ce0f2944bc3df94291ef2f781498">poly_draw</a>(<span class="keyword">const</span> fmpz_poly_t poly);
<a name="l00157"></a>00157
<a name="l00164"></a>00164 <span class="keywordtype">void</span>
<a name="l00165"></a>00165 <a class="code" href="ntru__poly_8c.html#aec098d00160d2d502eb1f8a7c3fa5453">poly_draw_pretty</a>(<span class="keyword">const</span> fmpz_poly_t poly);
<a name="l00166"></a>00166
<a name="l00174"></a>00174 <span class="keywordtype">string</span> *
<a name="l00175"></a>00175 <a class="code" href="ntru__file_8c.html#a348c2a56837571f410d44631abc09dc4">read_file</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename);
<a name="l00176"></a>00176
<a name="l00184"></a>00184 <span class="keywordtype">void</span>
<a name="l00185"></a>00185 <a class="code" href="ntru__file_8c.html#a1f8eef5ea12c77ed2491d96864eb0d43">write_file</a>(<span class="keywordtype">string</span> <span class="keyword">const</span> *wstring, <span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename);
<a name="l00186"></a>00186
<a name="l00187"></a>00187
<a name="l00188"></a>00188 <span class="preprocessor">#endif </span><span class="comment">/* NTRU_NTRU_H_ */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

295
ntru__ascii__poly_8c.html Normal file
View File

@ -0,0 +1,295 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_ascii_poly.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_ascii_poly.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>ascii to polynomials
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru__ascii__poly_8h_source.html">ntru_ascii_poly.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__common_8h_source.html">ntru_common.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__mem_8h_source.html">ntru_mem.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__poly_8h_source.html">ntru_poly.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__string_8h_source.html">ntru_string.h</a>&quot;</code><br/>
<code>#include &lt;glib.h&gt;</code><br/>
<code>#include &lt;stdint.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_ascii_poly.c:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__ascii__poly_8c__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__ascii__poly_8c" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__ascii__poly_8c" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__ascii__poly_8c">
</map>
</div>
</div>
<p><a href="ntru__ascii__poly_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__ascii__poly_8c.html#a2d2f760b6a98bd87248c1d3e120a665b">get_int_to_bin_str</a> (uint8_t value)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">fmpz_poly_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__ascii__poly_8c.html#aa5d0d4abdb2ce837a0a3b6e478c8f1a9">ascii_bin_to_bin_poly</a> (const char *to_poly, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">fmpz_poly_t **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__ascii__poly_8c.html#a3237071bca2489c3b2efd46e674e0805">ascii_to_bin_poly_arr</a> (const <a class="el" href="structstring.html">string</a> *to_poly, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">fmpz_poly_t **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__ascii__poly_8c.html#a8460cd27ad4562f560bb304609a3e06d">base64_to_poly_arr</a> (const <a class="el" href="structstring.html">string</a> *to_poly, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>ascii to polynomials </p>
<p>This file allows to convert ascii strings, including base64 encoded ones, to polynomials. </p>
<p>Definition in file <a class="el" href="ntru__ascii__poly_8c_source.html">ntru_ascii_poly.c</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="aa5d0d4abdb2ce837a0a3b6e478c8f1a9"></a><!-- doxytag: member="ntru_ascii_poly.c::ascii_bin_to_bin_poly" ref="aa5d0d4abdb2ce837a0a3b6e478c8f1a9" args="(const char *to_poly, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">fmpz_poly_t* <a class="el" href="ntru__ascii__poly_8h.html#aa5d0d4abdb2ce837a0a3b6e478c8f1a9">ascii_bin_to_bin_poly</a> </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>to_poly</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Convert a "binary" ascii string to a binary polyomial. The ascii string will be converted to a binary representation and the following mapping will apply between binary -&gt; poly:</p>
<p>1 =&gt; 1</p>
<p>0 =&gt; -1</p>
<p>If the polynomial is of degree less than N -1, then it will be filled with trailing 2's for later use in <a class="el" href="ntru__poly__ascii_8c.html#a0d86ab2dede39b332d4149e16b2046b8">bin_poly_to_ascii()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">to_poly</td><td>the string to get into binary polynomial format </td></tr>
<tr><td class="paramname">params</td><td>the NTRUEncrypt context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>newly allocated array of binary polynomials </dd></dl>
<p>Definition at line <a class="el" href="ntru__ascii__poly_8c_source.html#l00081">81</a> of file <a class="el" href="ntru__ascii__poly_8c_source.html">ntru_ascii_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a3237071bca2489c3b2efd46e674e0805"></a><!-- doxytag: member="ntru_ascii_poly.c::ascii_to_bin_poly_arr" ref="a3237071bca2489c3b2efd46e674e0805" args="(const string *to_poly, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">fmpz_poly_t** <a class="el" href="ntru__ascii__poly_8h.html#a3237071bca2489c3b2efd46e674e0805">ascii_to_bin_poly_arr</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structstring.html">string</a> *&#160;</td>
<td class="paramname"><em>to_poly</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Convert an ascii string to an array of binary polyomials. The ascii string will be converted to a binary representation and the following mapping will apply between binary -&gt; poly:</p>
<p>1 =&gt; 1</p>
<p>0 =&gt; -1</p>
<p>If the last polynomial is of degree less than N -1, then it will be filled with trailing 2's for later use in <a class="el" href="ntru__poly__ascii_8c.html#ab9464c96c3ebec6ee716c604fdc4ad21">bin_poly_arr_to_ascii()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">to_poly</td><td>the string to get into binary polynomial format </td></tr>
<tr><td class="paramname">params</td><td>the NTRUEncrypt context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>newly allocated array of binary polynomials </dd></dl>
<p>Definition at line <a class="el" href="ntru__ascii__poly_8c_source.html#l00101">101</a> of file <a class="el" href="ntru__ascii__poly_8c_source.html">ntru_ascii_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a8460cd27ad4562f560bb304609a3e06d"></a><!-- doxytag: member="ntru_ascii_poly.c::base64_to_poly_arr" ref="a8460cd27ad4562f560bb304609a3e06d" args="(const string *to_poly, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">fmpz_poly_t** <a class="el" href="ntru__ascii__poly_8h.html#a8460cd27ad4562f560bb304609a3e06d">base64_to_poly_arr</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structstring.html">string</a> *&#160;</td>
<td class="paramname"><em>to_poly</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Convert an base64 encoded string to an array of polyomials with coefficients which are expected to be in the range [0, q-1]. The chars will be converted (after decoding) to their integer representation and directly put into the coefficients.</p>
<p>If the last polynomial is of degree less than N -1, then it will be filled with trailing q's for later user in <a class="el" href="ntru__poly__ascii_8c.html#a0dc14698073df2e46e6540cbff870fc7">poly_arr_to_base64()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">to_poly</td><td>the string to get into polynomial format, which is of type string, so we can iterate safely over it (the string might have null-bytes in the middle of it) </td></tr>
<tr><td class="paramname">params</td><td>the NTRUEncrypt context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>newly allocated array of polynomials </dd></dl>
<p>Definition at line <a class="el" href="ntru__ascii__poly_8c_source.html#l00146">146</a> of file <a class="el" href="ntru__ascii__poly_8c_source.html">ntru_ascii_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a2d2f760b6a98bd87248c1d3e120a665b"></a><!-- doxytag: member="ntru_ascii_poly.c::get_int_to_bin_str" ref="a2d2f760b6a98bd87248c1d3e120a665b" args="(uint8_t value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static char * <a class="el" href="ntru__ascii__poly_8c.html#a2d2f760b6a98bd87248c1d3e120a665b">get_int_to_bin_str</a> </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Convert an integer to it's binary representation as a string and return it.</p>
<p>As in: 90 =&gt; "10110101"</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">value</td><td>the integer to convert </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the binary representation as a newly allocated string </dd></dl>
<p>Definition at line <a class="el" href="ntru__ascii__poly_8c_source.html#l00062">62</a> of file <a class="el" href="ntru__ascii__poly_8c_source.html">ntru_ascii_poly.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -0,0 +1,49 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_ascii_poly.c",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru_ascii_poly.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__ascii__poly_8h.html",tooltip="header for ntru_ascii_poly.c"];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="ntru_common.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__common_8h.html",tooltip="common macros/functions"];
Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="ntru_string.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__string_8h.html",tooltip="header for ntru_string.c"];
Node5 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="ntru_params.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__params_8h.html",tooltip="NTRU parameters."];
Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="ntru_mem.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__mem_8h.html",tooltip="header for ntru_mem.c"];
Node10 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="ntru_poly.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__poly_8h.html",tooltip="header for ntru_poly.c"];
Node11 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="ntru_err.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__err_8h.html",tooltip="error handling"];
Node11 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="stdarg.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node11 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node14 [label="stdbool.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node11 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 [label="glib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 [label="string.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

View File

@ -0,0 +1 @@
a44d09273de9c60d0e0582d08fae85fa

View File

@ -0,0 +1,299 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_ascii_poly.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_ascii_poly.c</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__ascii__poly_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00029"></a>00029 <span class="preprocessor">#include &quot;<a class="code" href="ntru__ascii__poly_8h.html" title="header for ntru_ascii_poly.c">ntru_ascii_poly.h</a>&quot;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &quot;<a class="code" href="ntru__common_8h.html" title="common macros/functions">ntru_common.h</a>&quot;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;<a class="code" href="ntru__mem_8h.html" title="header for ntru_mem.c">ntru_mem.h</a>&quot;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="ntru__params_8h.html" title="NTRU parameters.">ntru_params.h</a>&quot;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;<a class="code" href="ntru__poly_8h.html" title="header for ntru_poly.c">ntru_poly.h</a>&quot;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;<a class="code" href="ntru__string_8h.html" title="header for ntru_string.c">ntru_string.h</a>&quot;</span>
<a name="l00035"></a>00035
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;glib.h&gt;</span>
<a name="l00037"></a>00037
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00041"></a>00041
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;fmpz_poly.h&gt;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;fmpz.h&gt;</span>
<a name="l00044"></a>00044
<a name="l00045"></a>00045
<a name="l00055"></a>00055 <span class="keyword">static</span> <span class="keywordtype">char</span> *
<a name="l00056"></a>00056 <a class="code" href="ntru__ascii__poly_8c.html#a2d2f760b6a98bd87248c1d3e120a665b">get_int_to_bin_str</a>(uint8_t value);
<a name="l00057"></a>00057
<a name="l00058"></a>00058
<a name="l00059"></a>00059 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00060"></a>00060
<a name="l00061"></a>00061 <span class="keyword">static</span> <span class="keywordtype">char</span> *
<a name="l00062"></a><a class="code" href="ntru__ascii__poly_8c.html#a2d2f760b6a98bd87248c1d3e120a665b">00062</a> <a class="code" href="ntru__ascii__poly_8c.html#a2d2f760b6a98bd87248c1d3e120a665b">get_int_to_bin_str</a>(uint8_t value)
<a name="l00063"></a>00063 {
<a name="l00064"></a>00064 <span class="keywordtype">int</span> i;
<a name="l00065"></a>00065 <span class="keyword">const</span> <span class="keywordtype">size_t</span> bin_string_size = <a class="code" href="ntru__common_8h.html#a8d370c21bcf662e586397e764aba95e1">ASCII_BITS</a> + 1;
<a name="l00066"></a>00066 <span class="keywordtype">char</span> *bin_string = <a class="code" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a>(<span class="keyword">sizeof</span>(*bin_string) *
<a name="l00067"></a>00067 (bin_string_size)); <span class="comment">/* account for trailing null-byte */</span>
<a name="l00068"></a>00068
<a name="l00069"></a>00069 <span class="comment">/* terminate properly */</span>
<a name="l00070"></a>00070 bin_string[bin_string_size - 1] = <span class="charliteral">&#39;\0&#39;</span>;
<a name="l00071"></a>00071
<a name="l00072"></a>00072 <span class="keywordflow">for</span> (i = <a class="code" href="ntru__common_8h.html#a8d370c21bcf662e586397e764aba95e1">ASCII_BITS</a> - 1; i &gt;= 0; --i, value &gt;&gt;= 1)
<a name="l00073"></a>00073 bin_string[i] = (value &amp; 1) + <span class="charliteral">&#39;0&#39;</span>;
<a name="l00074"></a>00074
<a name="l00075"></a>00075 <span class="keywordflow">return</span> bin_string;
<a name="l00076"></a>00076 }
<a name="l00077"></a>00077
<a name="l00078"></a>00078 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00079"></a>00079
<a name="l00080"></a>00080 fmpz_poly_t *
<a name="l00081"></a><a class="code" href="ntru__ascii__poly_8h.html#aa5d0d4abdb2ce837a0a3b6e478c8f1a9">00081</a> <a class="code" href="ntru__ascii__poly_8c.html#aa5d0d4abdb2ce837a0a3b6e478c8f1a9">ascii_bin_to_bin_poly</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *to_poly, <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params)
<a name="l00082"></a>00082 {
<a name="l00083"></a>00083 uint32_t i = 0;
<a name="l00084"></a>00084 fmpz_poly_t *new_poly = <a class="code" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a>(<span class="keyword">sizeof</span>(*new_poly));
<a name="l00085"></a>00085
<a name="l00086"></a>00086 fmpz_poly_init(*new_poly);
<a name="l00087"></a>00087
<a name="l00088"></a>00088 <span class="keywordflow">while</span> (to_poly[i] &amp;&amp; i &lt; params-&gt;N) {
<a name="l00089"></a>00089 fmpz_poly_set_coeff_si(*new_poly,
<a name="l00090"></a>00090 i,
<a name="l00091"></a>00091 (to_poly[i] == <span class="charliteral">&#39;0&#39;</span>) ? -1 : 1);
<a name="l00092"></a>00092 i++;
<a name="l00093"></a>00093 }
<a name="l00094"></a>00094
<a name="l00095"></a>00095 <span class="keywordflow">return</span> new_poly;
<a name="l00096"></a>00096 }
<a name="l00097"></a>00097
<a name="l00098"></a>00098 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00099"></a>00099
<a name="l00100"></a>00100 fmpz_poly_t **
<a name="l00101"></a><a class="code" href="ntru__ascii__poly_8h.html#a3237071bca2489c3b2efd46e674e0805">00101</a> <a class="code" href="ntru__ascii__poly_8c.html#a3237071bca2489c3b2efd46e674e0805">ascii_to_bin_poly_arr</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> *to_poly, <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params)
<a name="l00102"></a>00102 {
<a name="l00103"></a>00103 <span class="keywordtype">char</span> *cur = to_poly-&gt;<a class="code" href="structstring.html#afd608f62303958cea6f1f7afdec1e282">ptr</a>;
<a name="l00104"></a>00104 <span class="keywordtype">char</span> *out = <a class="code" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a>(<a class="code" href="ntru__common_8h.html#a22c7f61c2f0fa6b1943548e838055cec">CHAR_SIZE</a> * (to_poly-&gt;<a class="code" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">len</a> * <a class="code" href="ntru__common_8h.html#a8d370c21bcf662e586397e764aba95e1">ASCII_BITS</a> + 1));
<a name="l00105"></a>00105 uint32_t polyc = 0;
<a name="l00106"></a>00106 <span class="keywordtype">size_t</span> out_len = 0;
<a name="l00107"></a>00107 fmpz_poly_t **poly_array;
<a name="l00108"></a>00108
<a name="l00109"></a>00109 <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; to_poly-&gt;<a class="code" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">len</a>; i++) {
<a name="l00110"></a>00110 <span class="keywordtype">char</span> *tmp_string = <a class="code" href="ntru__ascii__poly_8c.html#a2d2f760b6a98bd87248c1d3e120a665b">get_int_to_bin_str</a>((<span class="keywordtype">int</span>)(*cur));
<a name="l00111"></a>00111 memcpy(out + out_len, tmp_string, <a class="code" href="ntru__common_8h.html#a8d370c21bcf662e586397e764aba95e1">ASCII_BITS</a>);
<a name="l00112"></a>00112 out_len += <a class="code" href="ntru__common_8h.html#a8d370c21bcf662e586397e764aba95e1">ASCII_BITS</a>;
<a name="l00113"></a>00113 cur++;
<a name="l00114"></a>00114 free(tmp_string);
<a name="l00115"></a>00115 }
<a name="l00116"></a>00116 out[out_len] = <span class="charliteral">&#39;\0&#39;</span>;
<a name="l00117"></a>00117
<a name="l00118"></a>00118 poly_array = <a class="code" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a>(<span class="keyword">sizeof</span>(**poly_array) *
<a name="l00119"></a>00119 (strlen(out) / params-&gt;<a class="code" href="structntru__params.html#afb8425ee3db2b917b3c4e8d9b75bd3ff">N</a> + 1));
<a name="l00120"></a>00120
<a name="l00121"></a>00121 <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; out_len; i += params-&gt;<a class="code" href="structntru__params.html#afb8425ee3db2b917b3c4e8d9b75bd3ff">N</a>) {
<a name="l00122"></a>00122 <span class="keywordtype">char</span> chunk[params-&gt;<a class="code" href="structntru__params.html#afb8425ee3db2b917b3c4e8d9b75bd3ff">N</a> + 1];
<a name="l00123"></a>00123 <span class="keywordtype">size_t</span> real_chunk_size;
<a name="l00124"></a>00124
<a name="l00125"></a>00125 real_chunk_size =
<a name="l00126"></a>00126 (out_len - i &gt; params-&gt;<a class="code" href="structntru__params.html#afb8425ee3db2b917b3c4e8d9b75bd3ff">N</a>) ? params-&gt;<a class="code" href="structntru__params.html#afb8425ee3db2b917b3c4e8d9b75bd3ff">N</a> : out_len - i;
<a name="l00127"></a>00127
<a name="l00128"></a>00128 memcpy(chunk, out + i, real_chunk_size);
<a name="l00129"></a>00129 chunk[real_chunk_size] = <span class="charliteral">&#39;\0&#39;</span>;
<a name="l00130"></a>00130
<a name="l00131"></a>00131 poly_array[polyc] = <a class="code" href="ntru__ascii__poly_8c.html#aa5d0d4abdb2ce837a0a3b6e478c8f1a9">ascii_bin_to_bin_poly</a>(chunk, params);
<a name="l00132"></a>00132
<a name="l00133"></a>00133 polyc++;
<a name="l00134"></a>00134 }
<a name="l00135"></a>00135
<a name="l00136"></a>00136 free(out);
<a name="l00137"></a>00137
<a name="l00138"></a>00138 poly_array[polyc] = NULL;
<a name="l00139"></a>00139
<a name="l00140"></a>00140 <span class="keywordflow">return</span> poly_array;
<a name="l00141"></a>00141 }
<a name="l00142"></a>00142
<a name="l00143"></a>00143 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00144"></a>00144
<a name="l00145"></a>00145 fmpz_poly_t **
<a name="l00146"></a><a class="code" href="ntru__ascii__poly_8h.html#a8460cd27ad4562f560bb304609a3e06d">00146</a> <a class="code" href="ntru__ascii__poly_8c.html#a8460cd27ad4562f560bb304609a3e06d">base64_to_poly_arr</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> *to_poly, <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params)
<a name="l00147"></a>00147 {
<a name="l00148"></a>00148 uint32_t i = 0,
<a name="l00149"></a>00149 polyc = 0;
<a name="l00150"></a>00150 gsize out_len;
<a name="l00151"></a>00151 guchar *base64_decoded = NULL,
<a name="l00152"></a>00152 *base_tmp = NULL;
<a name="l00153"></a>00153 <span class="keywordtype">string</span> *new_string = <a class="code" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a>(<span class="keyword">sizeof</span>(*new_string));
<a name="l00154"></a>00154 fmpz_poly_t **poly_array;
<a name="l00155"></a>00155 <span class="keywordtype">char</span> *tmp = <a class="code" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a>(<span class="keyword">sizeof</span>(<span class="keywordtype">char</span>) * (to_poly-&gt;<a class="code" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">len</a> + 1));
<a name="l00156"></a>00156
<a name="l00157"></a>00157 <span class="comment">/* g_base64_decode() needs it null-terminated */</span>
<a name="l00158"></a>00158 memcpy(tmp, to_poly-&gt;<a class="code" href="structstring.html#afd608f62303958cea6f1f7afdec1e282">ptr</a>, to_poly-&gt;<a class="code" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">len</a>);
<a name="l00159"></a>00159 tmp[to_poly-&gt;<a class="code" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">len</a>] = <span class="charliteral">&#39;\0&#39;</span>;
<a name="l00160"></a>00160
<a name="l00161"></a>00161 base_tmp = g_base64_decode((<span class="keyword">const</span> gchar *)tmp, &amp;out_len);
<a name="l00162"></a>00162
<a name="l00163"></a>00163 <span class="comment">/* g_base64_decode() needs it null-terminated */</span>
<a name="l00164"></a>00164 <a class="code" href="ntru__mem_8h.html#a718b6446905826d711cb7ef00808bb4e">REALLOC</a>(tmp, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>) * (out_len + 1));
<a name="l00165"></a>00165 memcpy(tmp, base_tmp, out_len);
<a name="l00166"></a>00166 tmp[out_len] = <span class="charliteral">&#39;\0&#39;</span>;
<a name="l00167"></a>00167
<a name="l00168"></a>00168 base64_decoded = g_base64_decode((<span class="keyword">const</span> gchar *)tmp, &amp;out_len);
<a name="l00169"></a>00169
<a name="l00170"></a>00170 new_string-&gt;<a class="code" href="structstring.html#afd608f62303958cea6f1f7afdec1e282">ptr</a> = (<span class="keywordtype">char</span> *)base64_decoded;
<a name="l00171"></a>00171 new_string-&gt;<a class="code" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">len</a> = (<span class="keywordtype">unsigned</span> long)(out_len);
<a name="l00172"></a>00172
<a name="l00173"></a>00173 poly_array = <a class="code" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a>(<span class="keyword">sizeof</span>(**poly_array) *
<a name="l00174"></a>00174 (new_string-&gt;<a class="code" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">len</a> / params-&gt;<a class="code" href="structntru__params.html#afb8425ee3db2b917b3c4e8d9b75bd3ff">N</a>));
<a name="l00175"></a>00175
<a name="l00176"></a>00176 <span class="keywordflow">while</span> (i &lt; new_string-&gt;len) {
<a name="l00177"></a>00177 uint32_t j = 0;
<a name="l00178"></a>00178 fmpz_poly_t *new_poly = <a class="code" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a>(<span class="keyword">sizeof</span>(*new_poly));
<a name="l00179"></a>00179
<a name="l00180"></a>00180 fmpz_poly_init(*new_poly);
<a name="l00181"></a>00181
<a name="l00182"></a>00182 <span class="keywordflow">while</span> (j &lt; params-&gt;N) {
<a name="l00183"></a>00183 fmpz_poly_set_coeff_si(*new_poly,
<a name="l00184"></a>00184 j,
<a name="l00185"></a>00185 (uint8_t)(base64_decoded[i]));
<a name="l00186"></a>00186 j++;
<a name="l00187"></a>00187 i++;
<a name="l00188"></a>00188 }
<a name="l00189"></a>00189
<a name="l00190"></a>00190 <span class="comment">/* fill the last poly with q (which is a non-standard</span>
<a name="l00191"></a>00191 <span class="comment"> * coefficient) */</span>
<a name="l00192"></a>00192 <span class="keywordflow">for</span> (uint32_t k = j; k &lt; params-&gt;<a class="code" href="structntru__params.html#afb8425ee3db2b917b3c4e8d9b75bd3ff">N</a>; k++) {
<a name="l00193"></a>00193 fmpz_poly_set_coeff_si(*new_poly,
<a name="l00194"></a>00194 k,
<a name="l00195"></a>00195 params-&gt;<a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">q</a>);
<a name="l00196"></a>00196 }
<a name="l00197"></a>00197
<a name="l00198"></a>00198 poly_array[polyc] = new_poly;
<a name="l00199"></a>00199 polyc++;
<a name="l00200"></a>00200 }
<a name="l00201"></a>00201
<a name="l00202"></a>00202 poly_array[polyc] = NULL;
<a name="l00203"></a>00203
<a name="l00204"></a>00204 <a class="code" href="ntru__string_8c.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">string_delete</a>(new_string);
<a name="l00205"></a>00205 free(base_tmp);
<a name="l00206"></a>00206 free(tmp);
<a name="l00207"></a>00207
<a name="l00208"></a>00208 <span class="keywordflow">return</span> poly_array;
<a name="l00209"></a>00209 }
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

259
ntru__ascii__poly_8h.html Normal file
View File

@ -0,0 +1,259 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_ascii_poly.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_ascii_poly.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>header for <a class="el" href="ntru__ascii__poly_8c.html" title="ascii to polynomials">ntru_ascii_poly.c</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru__common_8h_source.html">ntru_common.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__string_8h_source.html">ntru_string.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>&quot;</code><br/>
<code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_ascii_poly.h:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__ascii__poly_8h__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__ascii__poly_8h" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__ascii__poly_8h" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__ascii__poly_8h">
</map>
</div>
</div>
<p><a href="ntru__ascii__poly_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">fmpz_poly_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__ascii__poly_8h.html#aa5d0d4abdb2ce837a0a3b6e478c8f1a9">ascii_bin_to_bin_poly</a> (const char *to_poly, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">fmpz_poly_t **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__ascii__poly_8h.html#a3237071bca2489c3b2efd46e674e0805">ascii_to_bin_poly_arr</a> (const <a class="el" href="structstring.html">string</a> *to_poly, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">fmpz_poly_t **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__ascii__poly_8h.html#a8460cd27ad4562f560bb304609a3e06d">base64_to_poly_arr</a> (const <a class="el" href="structstring.html">string</a> *to_poly, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>header for <a class="el" href="ntru__ascii__poly_8c.html" title="ascii to polynomials">ntru_ascii_poly.c</a> </p>
<p>Header for the internal API of <a class="el" href="ntru__ascii__poly_8c.html" title="ascii to polynomials">ntru_ascii_poly.c</a>. </p>
<p>Definition in file <a class="el" href="ntru__ascii__poly_8h_source.html">ntru_ascii_poly.h</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="aa5d0d4abdb2ce837a0a3b6e478c8f1a9"></a><!-- doxytag: member="ntru_ascii_poly.h::ascii_bin_to_bin_poly" ref="aa5d0d4abdb2ce837a0a3b6e478c8f1a9" args="(const char *to_poly, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">fmpz_poly_t* <a class="el" href="ntru__ascii__poly_8h.html#aa5d0d4abdb2ce837a0a3b6e478c8f1a9">ascii_bin_to_bin_poly</a> </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>to_poly</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Convert a "binary" ascii string to a binary polyomial. The ascii string will be converted to a binary representation and the following mapping will apply between binary -&gt; poly:</p>
<p>1 =&gt; 1</p>
<p>0 =&gt; -1</p>
<p>If the polynomial is of degree less than N -1, then it will be filled with trailing 2's for later use in <a class="el" href="ntru__poly__ascii_8c.html#a0d86ab2dede39b332d4149e16b2046b8">bin_poly_to_ascii()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">to_poly</td><td>the string to get into binary polynomial format </td></tr>
<tr><td class="paramname">params</td><td>the NTRUEncrypt context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>newly allocated array of binary polynomials </dd></dl>
<p>Definition at line <a class="el" href="ntru__ascii__poly_8c_source.html#l00081">81</a> of file <a class="el" href="ntru__ascii__poly_8c_source.html">ntru_ascii_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a3237071bca2489c3b2efd46e674e0805"></a><!-- doxytag: member="ntru_ascii_poly.h::ascii_to_bin_poly_arr" ref="a3237071bca2489c3b2efd46e674e0805" args="(const string *to_poly, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">fmpz_poly_t** <a class="el" href="ntru__ascii__poly_8h.html#a3237071bca2489c3b2efd46e674e0805">ascii_to_bin_poly_arr</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structstring.html">string</a> *&#160;</td>
<td class="paramname"><em>to_poly</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Convert an ascii string to an array of binary polyomials. The ascii string will be converted to a binary representation and the following mapping will apply between binary -&gt; poly:</p>
<p>1 =&gt; 1</p>
<p>0 =&gt; -1</p>
<p>If the last polynomial is of degree less than N -1, then it will be filled with trailing 2's for later use in <a class="el" href="ntru__poly__ascii_8c.html#ab9464c96c3ebec6ee716c604fdc4ad21">bin_poly_arr_to_ascii()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">to_poly</td><td>the string to get into binary polynomial format </td></tr>
<tr><td class="paramname">params</td><td>the NTRUEncrypt context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>newly allocated array of binary polynomials </dd></dl>
<p>Definition at line <a class="el" href="ntru__ascii__poly_8c_source.html#l00101">101</a> of file <a class="el" href="ntru__ascii__poly_8c_source.html">ntru_ascii_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a8460cd27ad4562f560bb304609a3e06d"></a><!-- doxytag: member="ntru_ascii_poly.h::base64_to_poly_arr" ref="a8460cd27ad4562f560bb304609a3e06d" args="(const string *to_poly, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">fmpz_poly_t** <a class="el" href="ntru__ascii__poly_8h.html#a8460cd27ad4562f560bb304609a3e06d">base64_to_poly_arr</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structstring.html">string</a> *&#160;</td>
<td class="paramname"><em>to_poly</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Convert an base64 encoded string to an array of polyomials with coefficients which are expected to be in the range [0, q-1]. The chars will be converted (after decoding) to their integer representation and directly put into the coefficients.</p>
<p>If the last polynomial is of degree less than N -1, then it will be filled with trailing q's for later user in <a class="el" href="ntru__poly__ascii_8c.html#a0dc14698073df2e46e6540cbff870fc7">poly_arr_to_base64()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">to_poly</td><td>the string to get into polynomial format, which is of type string, so we can iterate safely over it (the string might have null-bytes in the middle of it) </td></tr>
<tr><td class="paramname">params</td><td>the NTRUEncrypt context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>newly allocated array of polynomials </dd></dl>
<p>Definition at line <a class="el" href="ntru__ascii__poly_8c_source.html#l00146">146</a> of file <a class="el" href="ntru__ascii__poly_8c_source.html">ntru_ascii_poly.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -0,0 +1,21 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_ascii_poly.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru_common.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__common_8h.html",tooltip="common macros/functions"];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="ntru_string.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__string_8h.html",tooltip="header for ntru_string.c"];
Node4 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="ntru_params.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__params_8h.html",tooltip="NTRU parameters."];
Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
}

View File

@ -0,0 +1 @@
eeb812a91fe6b7412ad0dddfa4530952

View File

@ -0,0 +1,150 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_ascii_poly.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_ascii_poly.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__ascii__poly_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef NTRU_ASCII_POLY_H_</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define NTRU_ASCII_POLY_H_</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="ntru__common_8h.html" title="common macros/functions">ntru_common.h</a>&quot;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;<a class="code" href="ntru__string_8h.html" title="header for ntru_string.c">ntru_string.h</a>&quot;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;<a class="code" href="ntru__params_8h.html" title="NTRU parameters.">ntru_params.h</a>&quot;</span>
<a name="l00035"></a>00035
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;fmpz_poly.h&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;fmpz.h&gt;</span>
<a name="l00038"></a>00038
<a name="l00039"></a>00039
<a name="l00056"></a>00056 fmpz_poly_t *
<a name="l00057"></a>00057 <a class="code" href="ntru__ascii__poly_8c.html#aa5d0d4abdb2ce837a0a3b6e478c8f1a9">ascii_bin_to_bin_poly</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *to_poly, <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00058"></a>00058
<a name="l00075"></a>00075 fmpz_poly_t **
<a name="l00076"></a>00076 <a class="code" href="ntru__ascii__poly_8c.html#a3237071bca2489c3b2efd46e674e0805">ascii_to_bin_poly_arr</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> *to_poly, <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00077"></a>00077
<a name="l00093"></a>00093 fmpz_poly_t **
<a name="l00094"></a>00094 <a class="code" href="ntru__ascii__poly_8c.html#a8460cd27ad4562f560bb304609a3e06d">base64_to_poly_arr</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> *to_poly, <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00095"></a>00095
<a name="l00096"></a>00096
<a name="l00097"></a>00097 <span class="preprocessor">#endif </span><span class="comment">/* NTRU_ASCII_POLY_H_ */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

163
ntru__common_8h.html Normal file
View File

@ -0,0 +1,163 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_common.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_common.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>common macros/functions
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdlib.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_common.h:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__common_8h__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__common_8h" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__common_8h" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__common_8h">
</map>
</div>
</div>
<p><a href="ntru__common_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__common_8h.html#a22c7f61c2f0fa6b1943548e838055cec">CHAR_SIZE</a>&#160;&#160;&#160;sizeof(char)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__common_8h.html#a8d370c21bcf662e586397e764aba95e1">ASCII_BITS</a>&#160;&#160;&#160;8</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>common macros/functions </p>
<p>This file holds common macros and functions shared throughout the whole codebase without any particular purpose. </p>
<p>Definition in file <a class="el" href="ntru__common_8h_source.html">ntru_common.h</a>.</p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="a8d370c21bcf662e586397e764aba95e1"></a><!-- doxytag: member="ntru_common.h::ASCII_BITS" ref="a8d370c21bcf662e586397e764aba95e1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="ntru__common_8h.html#a8d370c21bcf662e586397e764aba95e1">ASCII_BITS</a>&#160;&#160;&#160;8</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="ntru__common_8h_source.html#l00038">38</a> of file <a class="el" href="ntru__common_8h_source.html">ntru_common.h</a>.</p>
</div>
</div>
<a class="anchor" id="a22c7f61c2f0fa6b1943548e838055cec"></a><!-- doxytag: member="ntru_common.h::CHAR_SIZE" ref="a22c7f61c2f0fa6b1943548e838055cec" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="ntru__common_8h.html#a22c7f61c2f0fa6b1943548e838055cec">CHAR_SIZE</a>&#160;&#160;&#160;sizeof(char)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="ntru__common_8h_source.html#l00037">37</a> of file <a class="el" href="ntru__common_8h_source.html">ntru_common.h</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -0,0 +1,8 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_common.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
}

View File

@ -0,0 +1 @@
387a14e03c762904414073faf13de234

139
ntru__common_8h_source.html Normal file
View File

@ -0,0 +1,139 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_common.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_common.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__common_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00030"></a>00030 <span class="preprocessor">#ifndef NTRU_COMMON_H</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define NTRU_COMMON_H</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span>
<a name="l00033"></a>00033
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00035"></a>00035
<a name="l00036"></a>00036
<a name="l00037"></a><a class="code" href="ntru__common_8h.html#a22c7f61c2f0fa6b1943548e838055cec">00037</a> <span class="preprocessor">#define CHAR_SIZE sizeof(char)</span>
<a name="l00038"></a><a class="code" href="ntru__common_8h.html#a8d370c21bcf662e586397e764aba95e1">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define ASCII_BITS 8</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span>
<a name="l00040"></a>00040
<a name="l00041"></a>00041 <span class="preprocessor">#endif </span><span class="comment">/* NTRU_COMMON_H */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

252
ntru__decrypt_8c.html Normal file
View File

@ -0,0 +1,252 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_decrypt.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_decrypt.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>NTRU decryption.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru__ascii__poly_8h_source.html">ntru_ascii_poly.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__decrypt_8h_source.html">ntru_decrypt.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__poly_8h_source.html">ntru_poly.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__poly__ascii_8h_source.html">ntru_poly_ascii.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__string_8h_source.html">ntru_string.h</a>&quot;</code><br/>
<code>#include &lt;stdbool.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_decrypt.c:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__decrypt_8c__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__decrypt_8c" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__decrypt_8c" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__decrypt_8c">
</map>
</div>
</div>
<p><a href="ntru__decrypt_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__decrypt_8c.html#a41c72f59e37a3c6ef6790eb909555d76">ntru_decrypt_poly</a> (const fmpz_poly_t encr_msg, const fmpz_poly_t priv_key, const fmpz_poly_t priv_key_inv, fmpz_poly_t out_bin, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structstring.html">string</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__decrypt_8c.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt_string</a> (const <a class="el" href="structstring.html">string</a> *encr_msg, const fmpz_poly_t priv_key, const fmpz_poly_t priv_key_inv, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>NTRU decryption. </p>
<p>This file handles the NTRU decryption algorithm. </p>
<p>Definition in file <a class="el" href="ntru__decrypt_8c_source.html">ntru_decrypt.c</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a41c72f59e37a3c6ef6790eb909555d76"></a><!-- doxytag: member="ntru_decrypt.c::ntru_decrypt_poly" ref="a41c72f59e37a3c6ef6790eb909555d76" args="(const fmpz_poly_t encr_msg, const fmpz_poly_t priv_key, const fmpz_poly_t priv_key_inv, fmpz_poly_t out_bin, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru__decrypt_8h.html#a8108219b815b18d63672bbc45e76ca31">ntru_decrypt_poly</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>encr_msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_key_inv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>out_tern</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Decryption of the given Polynom with the private key, its inverse and the fitting <a class="el" href="structntru__params.html">ntru_params</a></p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">encr_msg</td><td>encrypted polynom with maximum length of N from the given context </td></tr>
<tr><td class="paramname">priv_key</td><td>the polynom containing the private key to decrypt the message </td></tr>
<tr><td class="paramname">priv_key_inv</td><td>the inverse polynome to the private key </td></tr>
<tr><td class="paramname">out_tern</td><td>the resulting ternary polynom [out] </td></tr>
<tr><td class="paramname">params</td><td>the <a class="el" href="structntru__params.html">ntru_params</a> </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__decrypt_8c_source.html#l00046">46</a> of file <a class="el" href="ntru__decrypt_8c_source.html">ntru_decrypt.c</a>.</p>
</div>
</div>
<a class="anchor" id="aa9cc61eec0c119e48762f6078a14527b"></a><!-- doxytag: member="ntru_decrypt.c::ntru_decrypt_string" ref="aa9cc61eec0c119e48762f6078a14527b" args="(const string *encr_msg, const fmpz_poly_t priv_key, const fmpz_poly_t priv_key_inv, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* <a class="el" href="decrypt_8h.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt_string</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structstring.html">string</a> *&#160;</td>
<td class="paramname"><em>encr_msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_key_inv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Decryption of a given encrypted string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">encr_msg</td><td>the encrypted message in the form of a string </td></tr>
<tr><td class="paramname">priv_key</td><td>the polynom containing the private key to decrypt the message </td></tr>
<tr><td class="paramname">priv_key_inv</td><td>the inverse polynome to the private key </td></tr>
<tr><td class="paramname">params</td><td>the <a class="el" href="structntru__params.html">ntru_params</a> </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the decrypted string </dd></dl>
<p>Definition at line <a class="el" href="ntru__decrypt_8c_source.html#l00092">92</a> of file <a class="el" href="ntru__decrypt_8c_source.html">ntru_decrypt.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -0,0 +1,56 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_decrypt.c",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru_ascii_poly.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__ascii__poly_8h.html",tooltip="header for ntru_ascii_poly.c"];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="ntru_common.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__common_8h.html",tooltip="common macros/functions"];
Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="ntru_string.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__string_8h.html",tooltip="header for ntru_string.c"];
Node5 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="ntru_params.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__params_8h.html",tooltip="NTRU parameters."];
Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="ntru_decrypt.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__decrypt_8h.html",tooltip="header for ntru_decrypt.c"];
Node10 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="ntru_poly.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__poly_8h.html",tooltip="header for ntru_poly.c"];
Node11 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="ntru_err.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__err_8h.html",tooltip="error handling"];
Node11 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="stdarg.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node11 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node14 [label="stdbool.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node11 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 [label="ntru_poly_ascii.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__poly__ascii_8h.html",tooltip="header for ntru_poly_ascii.c"];
Node15 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 [label="string.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

View File

@ -0,0 +1 @@
7dbd28d16ee280fd2e4a31ed4f916592

View File

@ -0,0 +1,223 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_decrypt.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_decrypt.c</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__decrypt_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00029"></a>00029 <span class="preprocessor">#include &quot;<a class="code" href="ntru__ascii__poly_8h.html" title="header for ntru_ascii_poly.c">ntru_ascii_poly.h</a>&quot;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &quot;<a class="code" href="ntru__decrypt_8h.html" title="header for ntru_decrypt.c">ntru_decrypt.h</a>&quot;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;<a class="code" href="ntru__params_8h.html" title="NTRU parameters.">ntru_params.h</a>&quot;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="ntru__poly_8h.html" title="header for ntru_poly.c">ntru_poly.h</a>&quot;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;<a class="code" href="ntru__poly__ascii_8h.html" title="header for ntru_poly_ascii.c">ntru_poly_ascii.h</a>&quot;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;<a class="code" href="ntru__string_8h.html" title="header for ntru_string.c">ntru_string.h</a>&quot;</span>
<a name="l00035"></a>00035
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;stdbool.h&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00038"></a>00038
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;fmpz_poly.h&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;fmpz.h&gt;</span>
<a name="l00041"></a>00041
<a name="l00042"></a>00042
<a name="l00043"></a>00043 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00044"></a>00044
<a name="l00045"></a>00045 <span class="keywordtype">void</span>
<a name="l00046"></a><a class="code" href="ntru__decrypt_8h.html#a8108219b815b18d63672bbc45e76ca31">00046</a> <a class="code" href="ntru__decrypt_8c.html#a41c72f59e37a3c6ef6790eb909555d76">ntru_decrypt_poly</a>(
<a name="l00047"></a>00047 <span class="keyword">const</span> fmpz_poly_t encr_msg,
<a name="l00048"></a>00048 <span class="keyword">const</span> fmpz_poly_t priv_key,
<a name="l00049"></a>00049 <span class="keyword">const</span> fmpz_poly_t priv_key_inv,
<a name="l00050"></a>00050 fmpz_poly_t out_bin,
<a name="l00051"></a>00051 <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params)
<a name="l00052"></a>00052 {
<a name="l00053"></a>00053 fmpz_poly_t a,
<a name="l00054"></a>00054 priv_key_tmp,
<a name="l00055"></a>00055 priv_key_inv_tmp,
<a name="l00056"></a>00056 encr_msg_tmp;
<a name="l00057"></a>00057
<a name="l00058"></a>00058 <span class="keywordflow">if</span> (!encr_msg || !priv_key || !priv_key_inv || !out_bin || !params)
<a name="l00059"></a>00059 <a class="code" href="ntru__err_8h.html#a5d4dd1c1539c408c0dcd915750e8f224">NTRU_ABORT_DEBUG</a>(<span class="stringliteral">&quot;Unexpected NULL parameters&quot;</span>);
<a name="l00060"></a>00060
<a name="l00061"></a>00061 fmpz_poly_init(a);
<a name="l00062"></a>00062 fmpz_poly_zero(a);
<a name="l00063"></a>00063
<a name="l00064"></a>00064 <span class="comment">/*</span>
<a name="l00065"></a>00065 <span class="comment"> * make sure all are shifted to</span>
<a name="l00066"></a>00066 <span class="comment"> * [-q/2, q/2]</span>
<a name="l00067"></a>00067 <span class="comment"> */</span>
<a name="l00068"></a>00068 fmpz_poly_init(priv_key_tmp);
<a name="l00069"></a>00069 fmpz_poly_init(priv_key_inv_tmp);
<a name="l00070"></a>00070 fmpz_poly_init(encr_msg_tmp);
<a name="l00071"></a>00071 fmpz_poly_set(priv_key_tmp, priv_key);
<a name="l00072"></a>00072 fmpz_poly_set(priv_key_inv_tmp, priv_key_inv);
<a name="l00073"></a>00073 fmpz_poly_set(encr_msg_tmp, encr_msg);
<a name="l00074"></a>00074 <a class="code" href="ntru__poly_8c.html#a7c4f5e96355518dc97a23da8f34b661a">fmpz_poly_mod</a>(priv_key_tmp, params-&gt;<a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">q</a>);
<a name="l00075"></a>00075 <a class="code" href="ntru__poly_8c.html#a7c4f5e96355518dc97a23da8f34b661a">fmpz_poly_mod</a>(priv_key_inv_tmp, params-&gt;<a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">q</a>);
<a name="l00076"></a>00076 <a class="code" href="ntru__poly_8c.html#a7c4f5e96355518dc97a23da8f34b661a">fmpz_poly_mod</a>(encr_msg_tmp, params-&gt;<a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">q</a>);
<a name="l00077"></a>00077
<a name="l00078"></a>00078 <a class="code" href="ntru__poly_8c.html#ae96f479ddd97af709a0ed50817fd3fb3">poly_starmultiply</a>(priv_key_tmp, encr_msg_tmp, a, params, params-&gt;<a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">q</a>);
<a name="l00079"></a>00079 <a class="code" href="ntru__poly_8c.html#a7c4f5e96355518dc97a23da8f34b661a">fmpz_poly_mod</a>(a, params-&gt;<a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">q</a>);
<a name="l00080"></a>00080 <a class="code" href="ntru__poly_8c.html#ae96f479ddd97af709a0ed50817fd3fb3">poly_starmultiply</a>(a, priv_key_inv_tmp, out_bin, params, params-&gt;<a class="code" href="structntru__params.html#a41b368825e1eb126604e13e8f549ec8f">p</a>);
<a name="l00081"></a>00081 <a class="code" href="ntru__poly_8c.html#a7c4f5e96355518dc97a23da8f34b661a">fmpz_poly_mod</a>(out_bin, params-&gt;<a class="code" href="structntru__params.html#a41b368825e1eb126604e13e8f549ec8f">p</a>);
<a name="l00082"></a>00082
<a name="l00083"></a>00083 fmpz_poly_clear(a);
<a name="l00084"></a>00084 fmpz_poly_clear(priv_key_tmp);
<a name="l00085"></a>00085 fmpz_poly_clear(priv_key_inv_tmp);
<a name="l00086"></a>00086 fmpz_poly_clear(encr_msg_tmp);
<a name="l00087"></a>00087 }
<a name="l00088"></a>00088
<a name="l00089"></a>00089 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00090"></a>00090
<a name="l00091"></a>00091 <span class="keywordtype">string</span> *
<a name="l00092"></a><a class="code" href="decrypt_8h.html#aa9cc61eec0c119e48762f6078a14527b">00092</a> <a class="code" href="ntru__decrypt_8c.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt_string</a>(
<a name="l00093"></a>00093 <span class="keyword">const</span> <span class="keywordtype">string</span> *encr_msg,
<a name="l00094"></a>00094 <span class="keyword">const</span> fmpz_poly_t priv_key,
<a name="l00095"></a>00095 <span class="keyword">const</span> fmpz_poly_t priv_key_inv,
<a name="l00096"></a>00096 <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params)
<a name="l00097"></a>00097 {
<a name="l00098"></a>00098 uint32_t i = 0;
<a name="l00099"></a>00099 <span class="keywordtype">string</span> *decr_msg;
<a name="l00100"></a>00100 fmpz_poly_t **poly_array;
<a name="l00101"></a>00101
<a name="l00102"></a>00102 <span class="keywordflow">if</span> (!encr_msg || !encr_msg-&gt;<a class="code" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">len</a>)
<a name="l00103"></a>00103 <a class="code" href="ntru__err_8h.html#a5d4dd1c1539c408c0dcd915750e8f224">NTRU_ABORT_DEBUG</a>(<span class="stringliteral">&quot;Unexpected NULL parameters&quot;</span>);
<a name="l00104"></a>00104
<a name="l00105"></a>00105 poly_array = <a class="code" href="ntru__ascii__poly_8c.html#a8460cd27ad4562f560bb304609a3e06d">base64_to_poly_arr</a>(encr_msg, params);
<a name="l00106"></a>00106
<a name="l00107"></a>00107 <span class="keywordflow">while</span> (*poly_array[i]) {
<a name="l00108"></a>00108 <a class="code" href="ntru__decrypt_8c.html#a41c72f59e37a3c6ef6790eb909555d76">ntru_decrypt_poly</a>(*poly_array[i],
<a name="l00109"></a>00109 priv_key,
<a name="l00110"></a>00110 priv_key_inv,
<a name="l00111"></a>00111 *poly_array[i],
<a name="l00112"></a>00112 params);
<a name="l00113"></a>00113 i++;
<a name="l00114"></a>00114 }
<a name="l00115"></a>00115
<a name="l00116"></a>00116 decr_msg = <a class="code" href="ntru__poly__ascii_8c.html#ab9464c96c3ebec6ee716c604fdc4ad21">bin_poly_arr_to_ascii</a>((<span class="keyword">const</span> fmpz_poly_t **)poly_array,
<a name="l00117"></a>00117 i, params);
<a name="l00118"></a>00118
<a name="l00119"></a>00119 <a class="code" href="ntru__poly_8c.html#a3f53c63383ff301b20dcede0783869a7">poly_delete_array</a>(poly_array);
<a name="l00120"></a>00120
<a name="l00121"></a>00121 <span class="keywordflow">return</span> decr_msg;
<a name="l00122"></a>00122 }
<a name="l00123"></a>00123
<a name="l00124"></a>00124 <span class="comment">/*------------------------------------------------------------------------*/</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

247
ntru__decrypt_8h.html Normal file
View File

@ -0,0 +1,247 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_decrypt.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_decrypt.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>header for <a class="el" href="ntru__decrypt_8c.html" title="NTRU decryption.">ntru_decrypt.c</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__poly_8h_source.html">ntru_poly.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__string_8h_source.html">ntru_string.h</a>&quot;</code><br/>
<code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_decrypt.h:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__decrypt_8h__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__decrypt_8h" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__decrypt_8h" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__decrypt_8h">
</map>
</div>
</div>
<p><a href="ntru__decrypt_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__decrypt_8h.html#a8108219b815b18d63672bbc45e76ca31">ntru_decrypt_poly</a> (const fmpz_poly_t encr_msg, const fmpz_poly_t priv_key, const fmpz_poly_t priv_key_inv, fmpz_poly_t out_tern, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structstring.html">string</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__decrypt_8h.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt_string</a> (const <a class="el" href="structstring.html">string</a> *encr_msg, const fmpz_poly_t priv_key, const fmpz_poly_t priv_key_inv, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>header for <a class="el" href="ntru__decrypt_8c.html" title="NTRU decryption.">ntru_decrypt.c</a> </p>
<p>Header for the external API of <a class="el" href="ntru__decrypt_8c.html" title="NTRU decryption.">ntru_decrypt.c</a>. </p>
<p>Definition in file <a class="el" href="ntru__decrypt_8h_source.html">ntru_decrypt.h</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a8108219b815b18d63672bbc45e76ca31"></a><!-- doxytag: member="ntru_decrypt.h::ntru_decrypt_poly" ref="a8108219b815b18d63672bbc45e76ca31" args="(const fmpz_poly_t encr_msg, const fmpz_poly_t priv_key, const fmpz_poly_t priv_key_inv, fmpz_poly_t out_tern, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru__decrypt_8h.html#a8108219b815b18d63672bbc45e76ca31">ntru_decrypt_poly</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>encr_msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_key_inv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>out_tern</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Decryption of the given Polynom with the private key, its inverse and the fitting <a class="el" href="structntru__params.html">ntru_params</a></p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">encr_msg</td><td>encrypted polynom with maximum length of N from the given context </td></tr>
<tr><td class="paramname">priv_key</td><td>the polynom containing the private key to decrypt the message </td></tr>
<tr><td class="paramname">priv_key_inv</td><td>the inverse polynome to the private key </td></tr>
<tr><td class="paramname">out_tern</td><td>the resulting ternary polynom [out] </td></tr>
<tr><td class="paramname">params</td><td>the <a class="el" href="structntru__params.html">ntru_params</a> </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__decrypt_8c_source.html#l00046">46</a> of file <a class="el" href="ntru__decrypt_8c_source.html">ntru_decrypt.c</a>.</p>
</div>
</div>
<a class="anchor" id="aa9cc61eec0c119e48762f6078a14527b"></a><!-- doxytag: member="ntru_decrypt.h::ntru_decrypt_string" ref="aa9cc61eec0c119e48762f6078a14527b" args="(const string *encr_msg, const fmpz_poly_t priv_key, const fmpz_poly_t priv_key_inv, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* <a class="el" href="decrypt_8h.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt_string</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structstring.html">string</a> *&#160;</td>
<td class="paramname"><em>encr_msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_key_inv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Decryption of a given encrypted string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">encr_msg</td><td>the encrypted message in the form of a string </td></tr>
<tr><td class="paramname">priv_key</td><td>the polynom containing the private key to decrypt the message </td></tr>
<tr><td class="paramname">priv_key_inv</td><td>the inverse polynome to the private key </td></tr>
<tr><td class="paramname">params</td><td>the <a class="el" href="structntru__params.html">ntru_params</a> </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the decrypted string </dd></dl>
<p>Definition at line <a class="el" href="ntru__decrypt_8c_source.html#l00092">92</a> of file <a class="el" href="ntru__decrypt_8c_source.html">ntru_decrypt.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -0,0 +1,30 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_decrypt.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru_params.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__params_8h.html",tooltip="NTRU parameters."];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="ntru_poly.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__poly_8h.html",tooltip="header for ntru_poly.c"];
Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="ntru_err.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__err_8h.html",tooltip="error handling"];
Node4 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="stdarg.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="stdbool.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node4 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node4 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="ntru_string.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__string_8h.html",tooltip="header for ntru_string.c"];
Node10 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
}

View File

@ -0,0 +1 @@
5e60f3f7ddf44d6bc8445e25e29c3343

View File

@ -0,0 +1,155 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_decrypt.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_decrypt.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__decrypt_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef NTRU_DECRYPT_H</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define NTRU_DECRYPT_H</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;<a class="code" href="ntru__params_8h.html" title="NTRU parameters.">ntru_params.h</a>&quot;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="ntru__poly_8h.html" title="header for ntru_poly.c">ntru_poly.h</a>&quot;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;<a class="code" href="ntru__string_8h.html" title="header for ntru_string.c">ntru_string.h</a>&quot;</span>
<a name="l00034"></a>00034
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;fmpz_poly.h&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;fmpz.h&gt;</span>
<a name="l00037"></a>00037
<a name="l00038"></a>00038
<a name="l00051"></a>00051 <span class="keywordtype">void</span>
<a name="l00052"></a>00052 <a class="code" href="ntru__decrypt_8c.html#a41c72f59e37a3c6ef6790eb909555d76">ntru_decrypt_poly</a>(
<a name="l00053"></a>00053 <span class="keyword">const</span> fmpz_poly_t encr_msg,
<a name="l00054"></a>00054 <span class="keyword">const</span> fmpz_poly_t priv_key,
<a name="l00055"></a>00055 <span class="keyword">const</span> fmpz_poly_t priv_key_inv,
<a name="l00056"></a>00056 fmpz_poly_t out_tern,
<a name="l00057"></a>00057 <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00058"></a>00058
<a name="l00069"></a>00069 <span class="keywordtype">string</span> *
<a name="l00070"></a>00070 <a class="code" href="ntru__decrypt_8c.html#aa9cc61eec0c119e48762f6078a14527b">ntru_decrypt_string</a>(
<a name="l00071"></a>00071 <span class="keyword">const</span> <span class="keywordtype">string</span> *encr_msg,
<a name="l00072"></a>00072 <span class="keyword">const</span> fmpz_poly_t priv_key,
<a name="l00073"></a>00073 <span class="keyword">const</span> fmpz_poly_t priv_key_inv,
<a name="l00074"></a>00074 <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00075"></a>00075
<a name="l00076"></a>00076
<a name="l00077"></a>00077 <span class="preprocessor">#endif </span><span class="comment">/* NTRU_DECRYPT */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

257
ntru__encrypt_8c.html Normal file
View File

@ -0,0 +1,257 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_encrypt.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_encrypt.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>NTRU encryption.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru__ascii__poly_8h_source.html">ntru_ascii_poly.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__encrypt_8h_source.html">ntru_encrypt.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__mem_8h_source.html">ntru_mem.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__poly_8h_source.html">ntru_poly.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__poly__ascii_8h_source.html">ntru_poly_ascii.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__string_8h_source.html">ntru_string.h</a>&quot;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_encrypt.c:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__encrypt_8c__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__encrypt_8c" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__encrypt_8c" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__encrypt_8c">
</map>
</div>
</div>
<p><a href="ntru__encrypt_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__encrypt_8c.html#a0156453c7cab7cf3da259beb1daf914b">ntru_encrypt_poly</a> (const fmpz_poly_t msg_bin, const fmpz_poly_t pub_key, const fmpz_poly_t rnd, fmpz_poly_t out, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structstring.html">string</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__encrypt_8c.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt_string</a> (const <a class="el" href="structstring.html">string</a> *msg, const fmpz_poly_t pub_key, const fmpz_poly_t rnd, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>NTRU encryption. </p>
<p>This file handles the NTRU encryption algorithm. </p>
<p>Definition in file <a class="el" href="ntru__encrypt_8c_source.html">ntru_encrypt.c</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a0156453c7cab7cf3da259beb1daf914b"></a><!-- doxytag: member="ntru_encrypt.c::ntru_encrypt_poly" ref="a0156453c7cab7cf3da259beb1daf914b" args="(const fmpz_poly_t msg_bin, const fmpz_poly_t pub_key, const fmpz_poly_t rnd, fmpz_poly_t out, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru__encrypt_8h.html#a9063450af4b523d202c7628dbac70e68">ntru_encrypt_poly</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>msg_tern</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>pub_key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>rnd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>encrypt the msg, using the math: e = (h r) + m (mod q)</p>
<p>e = the encrypted poly</p>
<p>h = the public key</p>
<p>r = the random poly</p>
<p>m = the message poly</p>
<p>q = large mod</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">msg_tern</td><td>the message to encrypt, in ternary format </td></tr>
<tr><td class="paramname">pub_key</td><td>the public key </td></tr>
<tr><td class="paramname">rnd</td><td>the random poly (should have relatively small coefficients, but not restricted to {-1, 0, 1}) </td></tr>
<tr><td class="paramname">out</td><td>the output poly which is in the range {0, q-1} (not ternary!) [out] </td></tr>
<tr><td class="paramname">params</td><td><a class="el" href="structntru__params.html">ntru_params</a> the ntru context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__encrypt_8c_source.html#l00046">46</a> of file <a class="el" href="ntru__encrypt_8c_source.html">ntru_encrypt.c</a>.</p>
</div>
</div>
<a class="anchor" id="a0bb47c0fa0dd4a4cfa0c0f7a722fd554"></a><!-- doxytag: member="ntru_encrypt.c::ntru_encrypt_string" ref="a0bb47c0fa0dd4a4cfa0c0f7a722fd554" args="(const string *msg, const fmpz_poly_t pub_key, const fmpz_poly_t rnd, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* <a class="el" href="encrypt_8h.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt_string</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structstring.html">string</a> *&#160;</td>
<td class="paramname"><em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>pub_key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>rnd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Encrypt a message in the form of a null-terminated char array and return a string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">msg</td><td>the message </td></tr>
<tr><td class="paramname">pub_key</td><td>the public key </td></tr>
<tr><td class="paramname">rnd</td><td>the random poly (should have relatively small coefficients, but not restricted to {-1, 0, 1}) </td></tr>
<tr><td class="paramname">params</td><td><a class="el" href="structntru__params.html">ntru_params</a> the ntru context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the newly allocated encrypted string </dd></dl>
<p>Definition at line <a class="el" href="ntru__encrypt_8c_source.html#l00074">74</a> of file <a class="el" href="ntru__encrypt_8c_source.html">ntru_encrypt.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -0,0 +1,58 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_encrypt.c",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru_ascii_poly.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__ascii__poly_8h.html",tooltip="header for ntru_ascii_poly.c"];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="ntru_common.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__common_8h.html",tooltip="common macros/functions"];
Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="ntru_string.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__string_8h.html",tooltip="header for ntru_string.c"];
Node5 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="ntru_params.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__params_8h.html",tooltip="NTRU parameters."];
Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="ntru_encrypt.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__encrypt_8h.html",tooltip="header for encrypt.c"];
Node10 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="ntru_poly.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__poly_8h.html",tooltip="header for ntru_poly.c"];
Node11 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="ntru_err.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__err_8h.html",tooltip="error handling"];
Node11 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="stdarg.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node11 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node14 [label="stdbool.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node11 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 [label="ntru_mem.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__mem_8h.html",tooltip="header for ntru_mem.c"];
Node15 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 [label="ntru_poly_ascii.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__poly__ascii_8h.html",tooltip="header for ntru_poly_ascii.c"];
Node16 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 [label="string.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

View File

@ -0,0 +1 @@
99d0879ce83c16c396109da391990130

View File

@ -0,0 +1,205 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_encrypt.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_encrypt.c</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__encrypt_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00029"></a>00029 <span class="preprocessor">#include &quot;<a class="code" href="ntru__ascii__poly_8h.html" title="header for ntru_ascii_poly.c">ntru_ascii_poly.h</a>&quot;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &quot;<a class="code" href="ntru__encrypt_8h.html" title="header for encrypt.c">ntru_encrypt.h</a>&quot;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;<a class="code" href="ntru__mem_8h.html" title="header for ntru_mem.c">ntru_mem.h</a>&quot;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="ntru__params_8h.html" title="NTRU parameters.">ntru_params.h</a>&quot;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;<a class="code" href="ntru__poly_8h.html" title="header for ntru_poly.c">ntru_poly.h</a>&quot;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;<a class="code" href="ntru__poly__ascii_8h.html" title="header for ntru_poly_ascii.c">ntru_poly_ascii.h</a>&quot;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &quot;<a class="code" href="ntru__string_8h.html" title="header for ntru_string.c">ntru_string.h</a>&quot;</span>
<a name="l00036"></a>00036
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00038"></a>00038
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;fmpz_poly.h&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;fmpz.h&gt;</span>
<a name="l00041"></a>00041
<a name="l00042"></a>00042
<a name="l00043"></a>00043 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00044"></a>00044
<a name="l00045"></a>00045 <span class="keywordtype">void</span>
<a name="l00046"></a><a class="code" href="ntru__encrypt_8h.html#a9063450af4b523d202c7628dbac70e68">00046</a> <a class="code" href="ntru__encrypt_8c.html#a0156453c7cab7cf3da259beb1daf914b">ntru_encrypt_poly</a>(
<a name="l00047"></a>00047 <span class="keyword">const</span> fmpz_poly_t msg_bin,
<a name="l00048"></a>00048 <span class="keyword">const</span> fmpz_poly_t pub_key,
<a name="l00049"></a>00049 <span class="keyword">const</span> fmpz_poly_t rnd,
<a name="l00050"></a>00050 fmpz_poly_t out,
<a name="l00051"></a>00051 <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params)
<a name="l00052"></a>00052 {
<a name="l00053"></a>00053 fmpz_poly_t tmp_poly_msg;
<a name="l00054"></a>00054
<a name="l00055"></a>00055 <span class="keywordflow">if</span> (!msg_bin || !pub_key || !rnd || !out || !params)
<a name="l00056"></a>00056 <a class="code" href="ntru__err_8h.html#a5d4dd1c1539c408c0dcd915750e8f224">NTRU_ABORT_DEBUG</a>(<span class="stringliteral">&quot;Unexpected NULL parameters&quot;</span>);
<a name="l00057"></a>00057
<a name="l00058"></a>00058 <span class="comment">/* allow aliasing */</span>
<a name="l00059"></a>00059 fmpz_poly_init(tmp_poly_msg);
<a name="l00060"></a>00060 fmpz_poly_set(tmp_poly_msg, msg_bin);
<a name="l00061"></a>00061
<a name="l00062"></a>00062 fmpz_poly_zero(out);
<a name="l00063"></a>00063 <a class="code" href="ntru__poly_8c.html#ae96f479ddd97af709a0ed50817fd3fb3">poly_starmultiply</a>(pub_key, rnd, out, params, params-&gt;<a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">q</a>);
<a name="l00064"></a>00064
<a name="l00065"></a>00065 fmpz_poly_add(out, out, tmp_poly_msg);
<a name="l00066"></a>00066 <a class="code" href="ntru__poly_8c.html#ae7d0d8364dba689df3fb4904610634cc">fmpz_poly_mod_unsigned</a>(out, params-&gt;<a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">q</a>);
<a name="l00067"></a>00067
<a name="l00068"></a>00068 fmpz_poly_clear(tmp_poly_msg);
<a name="l00069"></a>00069 }
<a name="l00070"></a>00070
<a name="l00071"></a>00071 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00072"></a>00072
<a name="l00073"></a>00073 <span class="keywordtype">string</span> *
<a name="l00074"></a><a class="code" href="encrypt_8h.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">00074</a> <a class="code" href="ntru__encrypt_8c.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt_string</a>(
<a name="l00075"></a>00075 <span class="keyword">const</span> <span class="keywordtype">string</span> *msg,
<a name="l00076"></a>00076 <span class="keyword">const</span> fmpz_poly_t pub_key,
<a name="l00077"></a>00077 <span class="keyword">const</span> fmpz_poly_t rnd,
<a name="l00078"></a>00078 <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params)
<a name="l00079"></a>00079 {
<a name="l00080"></a>00080 uint32_t i = 0;
<a name="l00081"></a>00081 <span class="keywordtype">string</span> *enc_msg;
<a name="l00082"></a>00082 fmpz_poly_t **poly_array;
<a name="l00083"></a>00083
<a name="l00084"></a>00084 <span class="keywordflow">if</span> (!msg || !msg-&gt;<a class="code" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">len</a>)
<a name="l00085"></a>00085 <a class="code" href="ntru__err_8h.html#a5d4dd1c1539c408c0dcd915750e8f224">NTRU_ABORT_DEBUG</a>(<span class="stringliteral">&quot;Unexpected NULL parameters&quot;</span>);
<a name="l00086"></a>00086
<a name="l00087"></a>00087 poly_array = <a class="code" href="ntru__ascii__poly_8c.html#a3237071bca2489c3b2efd46e674e0805">ascii_to_bin_poly_arr</a>(msg, params);
<a name="l00088"></a>00088
<a name="l00089"></a>00089 <span class="keywordflow">while</span> (*poly_array[i]) {
<a name="l00090"></a>00090 <a class="code" href="ntru__encrypt_8c.html#a0156453c7cab7cf3da259beb1daf914b">ntru_encrypt_poly</a>(*poly_array[i],
<a name="l00091"></a>00091 pub_key,
<a name="l00092"></a>00092 rnd,
<a name="l00093"></a>00093 *poly_array[i],
<a name="l00094"></a>00094 params);
<a name="l00095"></a>00095 i++;
<a name="l00096"></a>00096 }
<a name="l00097"></a>00097
<a name="l00098"></a>00098 enc_msg = <a class="code" href="ntru__poly__ascii_8c.html#a0dc14698073df2e46e6540cbff870fc7">poly_arr_to_base64</a>((<span class="keyword">const</span> fmpz_poly_t **)poly_array,
<a name="l00099"></a>00099 i, params);
<a name="l00100"></a>00100
<a name="l00101"></a>00101 <a class="code" href="ntru__poly_8c.html#a3f53c63383ff301b20dcede0783869a7">poly_delete_array</a>(poly_array);
<a name="l00102"></a>00102
<a name="l00103"></a>00103 <span class="keywordflow">return</span> enc_msg;
<a name="l00104"></a>00104 }
<a name="l00105"></a>00105
<a name="l00106"></a>00106 <span class="comment">/*------------------------------------------------------------------------*/</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

252
ntru__encrypt_8h.html Normal file
View File

@ -0,0 +1,252 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_encrypt.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_encrypt.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>header for encrypt.c
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__poly_8h_source.html">ntru_poly.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__string_8h_source.html">ntru_string.h</a>&quot;</code><br/>
<code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_encrypt.h:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__encrypt_8h__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__encrypt_8h" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__encrypt_8h" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__encrypt_8h">
</map>
</div>
</div>
<p><a href="ntru__encrypt_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__encrypt_8h.html#a9063450af4b523d202c7628dbac70e68">ntru_encrypt_poly</a> (const fmpz_poly_t msg_tern, const fmpz_poly_t pub_key, const fmpz_poly_t rnd, fmpz_poly_t out, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structstring.html">string</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__encrypt_8h.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt_string</a> (const <a class="el" href="structstring.html">string</a> *msg, const fmpz_poly_t pub_key, const fmpz_poly_t rnd, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>header for encrypt.c </p>
<p>Header for the internal API of <a class="el" href="ntru__encrypt_8c.html" title="NTRU encryption.">ntru_encrypt.c</a>. </p>
<p>Definition in file <a class="el" href="ntru__encrypt_8h_source.html">ntru_encrypt.h</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a9063450af4b523d202c7628dbac70e68"></a><!-- doxytag: member="ntru_encrypt.h::ntru_encrypt_poly" ref="a9063450af4b523d202c7628dbac70e68" args="(const fmpz_poly_t msg_tern, const fmpz_poly_t pub_key, const fmpz_poly_t rnd, fmpz_poly_t out, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru__encrypt_8h.html#a9063450af4b523d202c7628dbac70e68">ntru_encrypt_poly</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>msg_tern</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>pub_key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>rnd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>encrypt the msg, using the math: e = (h r) + m (mod q)</p>
<p>e = the encrypted poly</p>
<p>h = the public key</p>
<p>r = the random poly</p>
<p>m = the message poly</p>
<p>q = large mod</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">msg_tern</td><td>the message to encrypt, in ternary format </td></tr>
<tr><td class="paramname">pub_key</td><td>the public key </td></tr>
<tr><td class="paramname">rnd</td><td>the random poly (should have relatively small coefficients, but not restricted to {-1, 0, 1}) </td></tr>
<tr><td class="paramname">out</td><td>the output poly which is in the range {0, q-1} (not ternary!) [out] </td></tr>
<tr><td class="paramname">params</td><td><a class="el" href="structntru__params.html">ntru_params</a> the ntru context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__encrypt_8c_source.html#l00046">46</a> of file <a class="el" href="ntru__encrypt_8c_source.html">ntru_encrypt.c</a>.</p>
</div>
</div>
<a class="anchor" id="a0bb47c0fa0dd4a4cfa0c0f7a722fd554"></a><!-- doxytag: member="ntru_encrypt.h::ntru_encrypt_string" ref="a0bb47c0fa0dd4a4cfa0c0f7a722fd554" args="(const string *msg, const fmpz_poly_t pub_key, const fmpz_poly_t rnd, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* <a class="el" href="encrypt_8h.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt_string</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structstring.html">string</a> *&#160;</td>
<td class="paramname"><em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>pub_key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>rnd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Encrypt a message in the form of a null-terminated char array and return a string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">msg</td><td>the message </td></tr>
<tr><td class="paramname">pub_key</td><td>the public key </td></tr>
<tr><td class="paramname">rnd</td><td>the random poly (should have relatively small coefficients, but not restricted to {-1, 0, 1}) </td></tr>
<tr><td class="paramname">params</td><td><a class="el" href="structntru__params.html">ntru_params</a> the ntru context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the newly allocated encrypted string </dd></dl>
<p>Definition at line <a class="el" href="ntru__encrypt_8c_source.html#l00074">74</a> of file <a class="el" href="ntru__encrypt_8c_source.html">ntru_encrypt.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -0,0 +1,30 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_encrypt.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru_params.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__params_8h.html",tooltip="NTRU parameters."];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="ntru_poly.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__poly_8h.html",tooltip="header for ntru_poly.c"];
Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="ntru_err.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__err_8h.html",tooltip="error handling"];
Node4 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="stdarg.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="stdbool.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node4 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node4 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="ntru_string.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__string_8h.html",tooltip="header for ntru_string.c"];
Node10 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
}

View File

@ -0,0 +1 @@
0c16aafbff376266fd942e48b12d9d11

View File

@ -0,0 +1,156 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_encrypt.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_encrypt.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__encrypt_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef PQC_ENCRYPT_H</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define PQC_ENCRYPT_H</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="ntru__params_8h.html" title="NTRU parameters.">ntru_params.h</a>&quot;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;<a class="code" href="ntru__poly_8h.html" title="header for ntru_poly.c">ntru_poly.h</a>&quot;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;<a class="code" href="ntru__string_8h.html" title="header for ntru_string.c">ntru_string.h</a>&quot;</span>
<a name="l00035"></a>00035
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;fmpz_poly.h&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;fmpz.h&gt;</span>
<a name="l00038"></a>00038
<a name="l00039"></a>00039
<a name="l00062"></a>00062 <span class="keywordtype">void</span>
<a name="l00063"></a>00063 <a class="code" href="ntru__encrypt_8c.html#a0156453c7cab7cf3da259beb1daf914b">ntru_encrypt_poly</a>(
<a name="l00064"></a>00064 <span class="keyword">const</span> fmpz_poly_t msg_tern,
<a name="l00065"></a>00065 <span class="keyword">const</span> fmpz_poly_t pub_key,
<a name="l00066"></a>00066 <span class="keyword">const</span> fmpz_poly_t rnd,
<a name="l00067"></a>00067 fmpz_poly_t out,
<a name="l00068"></a>00068 <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00069"></a>00069
<a name="l00081"></a>00081 <span class="keywordtype">string</span> *
<a name="l00082"></a>00082 <a class="code" href="ntru__encrypt_8c.html#a0bb47c0fa0dd4a4cfa0c0f7a722fd554">ntru_encrypt_string</a>(
<a name="l00083"></a>00083 <span class="keyword">const</span> <span class="keywordtype">string</span> *msg,
<a name="l00084"></a>00084 <span class="keyword">const</span> fmpz_poly_t pub_key,
<a name="l00085"></a>00085 <span class="keyword">const</span> fmpz_poly_t rnd,
<a name="l00086"></a>00086 <span class="keyword">const</span> <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00087"></a>00087
<a name="l00088"></a>00088
<a name="l00089"></a>00089 <span class="preprocessor">#endif </span><span class="comment">/* PQC_ENCRYPT_H */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

221
ntru__err_8h.html Normal file
View File

@ -0,0 +1,221 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_err.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_err.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>error handling
<a href="#details">More...</a></p>
<p><a href="ntru__err_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__err_8h.html#ab0f71521e9bc99beab8ece52bb00341a">NTRU_ABORT</a>(...)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__err_8h.html#a5d4dd1c1539c408c0dcd915750e8f224">NTRU_ABORT_DEBUG</a>(...)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__err_8h.html#a8b2647533f0e1a6f81e08e8315674d55">NTRU_WARN</a>(...)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__err_8h.html#abcb6d051074ab3a58c5e9764f927753c">NTRU_WARN_DEBUG</a>(...)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>error handling </p>
<p>This file provides error macros and functions for the NTRU cryptosystem. </p>
<p>Definition in file <a class="el" href="ntru__err_8h_source.html">ntru_err.h</a>.</p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="ab0f71521e9bc99beab8ece52bb00341a"></a><!-- doxytag: member="ntru_err.h::NTRU_ABORT" ref="ab0f71521e9bc99beab8ece52bb00341a" args="(...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="ntru__err_8h.html#ab0f71521e9bc99beab8ece52bb00341a">NTRU_ABORT</a></td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
fprintf(stderr, __VA_ARGS__); \
abort(); \
}
</pre></div>
<p>Definition at line <a class="el" href="ntru__err_8h_source.html#l00033">33</a> of file <a class="el" href="ntru__err_8h_source.html">ntru_err.h</a>.</p>
</div>
</div>
<a class="anchor" id="a5d4dd1c1539c408c0dcd915750e8f224"></a><!-- doxytag: member="ntru_err.h::NTRU_ABORT_DEBUG" ref="a5d4dd1c1539c408c0dcd915750e8f224" args="(...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="ntru__err_8h.html#a5d4dd1c1539c408c0dcd915750e8f224">NTRU_ABORT_DEBUG</a></td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
fprintf(stderr, __VA_ARGS__); \
fprintf(stderr, <span class="stringliteral">&quot; [file %s, line %d]:\n&quot;</span>, \
__FILE__, __LINE__); \
abort(); \
}
</pre></div>
<p>Definition at line <a class="el" href="ntru__err_8h_source.html#l00039">39</a> of file <a class="el" href="ntru__err_8h_source.html">ntru_err.h</a>.</p>
</div>
</div>
<a class="anchor" id="a8b2647533f0e1a6f81e08e8315674d55"></a><!-- doxytag: member="ntru_err.h::NTRU_WARN" ref="a8b2647533f0e1a6f81e08e8315674d55" args="(...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="ntru__err_8h.html#a8b2647533f0e1a6f81e08e8315674d55">NTRU_WARN</a></td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
fprintf(stderr, __VA_ARGS__); \
}
</pre></div>
<p>Definition at line <a class="el" href="ntru__err_8h_source.html#l00047">47</a> of file <a class="el" href="ntru__err_8h_source.html">ntru_err.h</a>.</p>
</div>
</div>
<a class="anchor" id="abcb6d051074ab3a58c5e9764f927753c"></a><!-- doxytag: member="ntru_err.h::NTRU_WARN_DEBUG" ref="abcb6d051074ab3a58c5e9764f927753c" args="(...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="ntru__err_8h.html#abcb6d051074ab3a58c5e9764f927753c">NTRU_WARN_DEBUG</a></td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
fprintf(stderr, __VA_ARGS__); \
fprintf(stderr, <span class="stringliteral">&quot; [file %s, line %d]:\n&quot;</span>, \
__FILE__, __LINE__); \
}
</pre></div>
<p>Definition at line <a class="el" href="ntru__err_8h_source.html#l00052">52</a> of file <a class="el" href="ntru__err_8h_source.html">ntru_err.h</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

159
ntru__err_8h_source.html Normal file
View File

@ -0,0 +1,159 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_err.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_err.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__err_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00029"></a>00029 <span class="preprocessor">#ifndef NTRU_ERR_H</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define NTRU_ERR_H</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span>
<a name="l00032"></a>00032
<a name="l00033"></a><a class="code" href="ntru__err_8h.html#ab0f71521e9bc99beab8ece52bb00341a">00033</a> <span class="preprocessor">#define NTRU_ABORT(...) \</span>
<a name="l00034"></a>00034 <span class="preprocessor">{ \</span>
<a name="l00035"></a>00035 <span class="preprocessor"> fprintf(stderr, __VA_ARGS__); \</span>
<a name="l00036"></a>00036 <span class="preprocessor"> abort(); \</span>
<a name="l00037"></a>00037 <span class="preprocessor">}</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span>
<a name="l00039"></a><a class="code" href="ntru__err_8h.html#a5d4dd1c1539c408c0dcd915750e8f224">00039</a> <span class="preprocessor">#define NTRU_ABORT_DEBUG(...) \</span>
<a name="l00040"></a>00040 <span class="preprocessor">{ \</span>
<a name="l00041"></a>00041 <span class="preprocessor"> fprintf(stderr, __VA_ARGS__); \</span>
<a name="l00042"></a>00042 <span class="preprocessor"> fprintf(stderr, &quot; [file %s, line %d]:\n&quot;, \</span>
<a name="l00043"></a>00043 <span class="preprocessor"> __FILE__, __LINE__); \</span>
<a name="l00044"></a>00044 <span class="preprocessor"> abort(); \</span>
<a name="l00045"></a>00045 <span class="preprocessor">}</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span>
<a name="l00047"></a><a class="code" href="ntru__err_8h.html#a8b2647533f0e1a6f81e08e8315674d55">00047</a> <span class="preprocessor">#define NTRU_WARN(...) \</span>
<a name="l00048"></a>00048 <span class="preprocessor">{ \</span>
<a name="l00049"></a>00049 <span class="preprocessor"> fprintf(stderr, __VA_ARGS__); \</span>
<a name="l00050"></a>00050 <span class="preprocessor">}</span>
<a name="l00051"></a>00051 <span class="preprocessor"></span>
<a name="l00052"></a><a class="code" href="ntru__err_8h.html#abcb6d051074ab3a58c5e9764f927753c">00052</a> <span class="preprocessor">#define NTRU_WARN_DEBUG(...) \</span>
<a name="l00053"></a>00053 <span class="preprocessor">{ \</span>
<a name="l00054"></a>00054 <span class="preprocessor"> fprintf(stderr, __VA_ARGS__); \</span>
<a name="l00055"></a>00055 <span class="preprocessor"> fprintf(stderr, &quot; [file %s, line %d]:\n&quot;, \</span>
<a name="l00056"></a>00056 <span class="preprocessor"> __FILE__, __LINE__); \</span>
<a name="l00057"></a>00057 <span class="preprocessor">}</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span>
<a name="l00059"></a>00059
<a name="l00060"></a>00060 <span class="preprocessor">#endif </span><span class="comment">/* NTRU_ERR_H */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

230
ntru__file_8c.html Normal file
View File

@ -0,0 +1,230 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_file.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_file.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>file operations
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru__common_8h_source.html">ntru_common.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__err_8h_source.html">ntru_err.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__mem_8h_source.html">ntru_mem.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__string_8h_source.html">ntru_string.h</a>&quot;</code><br/>
<code>#include &lt;fcntl.h&gt;</code><br/>
<code>#include &lt;stdbool.h&gt;</code><br/>
<code>#include &lt;stdint.h&gt;</code><br/>
<code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &lt;sys/stat.h&gt;</code><br/>
<code>#include &lt;sys/types.h&gt;</code><br/>
<code>#include &lt;unistd.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_file.c:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__file_8c__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__file_8c" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__file_8c" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__file_8c">
</map>
</div>
</div>
<p><a href="ntru__file_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__file_8c.html#a15651456278c8f50777dfe104f492951">STD_FILE_BUF</a>&#160;&#160;&#160;4096</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structstring.html">string</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__file_8c.html#a348c2a56837571f410d44631abc09dc4">read_file</a> (char const *const filename)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__file_8c.html#a1f8eef5ea12c77ed2491d96864eb0d43">write_file</a> (<a class="el" href="structstring.html">string</a> const *wstring, char const *const filename)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>file operations </p>
<p>Allows operations on files, such as reading and writing. </p>
<p>Definition in file <a class="el" href="ntru__file_8c_source.html">ntru_file.c</a>.</p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="a15651456278c8f50777dfe104f492951"></a><!-- doxytag: member="ntru_file.c::STD_FILE_BUF" ref="a15651456278c8f50777dfe104f492951" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="ntru__file_8c.html#a15651456278c8f50777dfe104f492951">STD_FILE_BUF</a>&#160;&#160;&#160;4096</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="ntru__file_8c_source.html#l00044">44</a> of file <a class="el" href="ntru__file_8c_source.html">ntru_file.c</a>.</p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a348c2a56837571f410d44631abc09dc4"></a><!-- doxytag: member="ntru_file.c::read_file" ref="a348c2a56837571f410d44631abc09dc4" args="(char const *const filename)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* <a class="el" href="ntru_8h.html#a348c2a56837571f410d44631abc09dc4">read_file</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads a file and returns a newly allocated string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>file to open </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a newly allocated string which must be freed by the caller or NULL on failure (e.g. if the file could not be opened/closed) </dd></dl>
<p>Definition at line <a class="el" href="ntru__file_8c_source.html#l00050">50</a> of file <a class="el" href="ntru__file_8c_source.html">ntru_file.c</a>.</p>
</div>
</div>
<a class="anchor" id="a1f8eef5ea12c77ed2491d96864eb0d43"></a><!-- doxytag: member="ntru_file.c::write_file" ref="a1f8eef5ea12c77ed2491d96864eb0d43" args="(string const *wstring, char const *const filename)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="ntru_8h.html#af2a0fc4dd4109749d8f3100a913cc304">write_file</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structstring.html">string</a> const *&#160;</td>
<td class="paramname"><em>wstring</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Write a string to a file. The file will be pruned or created if it does not exist.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">wstring</td><td>the string to write to the file </td></tr>
<tr><td class="paramname">filename</td><td>the name of the file to write to </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true for success or false for failure if fopen or fclose failed </dd></dl>
<p>Definition at line <a class="el" href="ntru__file_8c_source.html#l00107">107</a> of file <a class="el" href="ntru__file_8c_source.html">ntru_file.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

35
ntru__file_8c__incl.dot Normal file
View File

@ -0,0 +1,35 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_file.c",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru_common.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__common_8h.html",tooltip="common macros/functions"];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="ntru_err.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__err_8h.html",tooltip="error handling"];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="ntru_mem.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__mem_8h.html",tooltip="header for ntru_mem.c"];
Node5 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="ntru_string.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__string_8h.html",tooltip="header for ntru_string.c"];
Node6 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="fcntl.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="stdbool.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="stdio.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="string.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="sys/stat.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="sys/types.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node14 [label="unistd.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
}

1
ntru__file_8c__incl.md5 Normal file
View File

@ -0,0 +1 @@
3f5614474a6bac84c8ead4a69185b1d7

228
ntru__file_8c_source.html Normal file
View File

@ -0,0 +1,228 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_file.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_file.c</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__file_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00029"></a>00029 <span class="preprocessor">#include &quot;<a class="code" href="ntru__common_8h.html" title="common macros/functions">ntru_common.h</a>&quot;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &quot;<a class="code" href="ntru__err_8h.html" title="error handling">ntru_err.h</a>&quot;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;<a class="code" href="ntru__mem_8h.html" title="header for ntru_mem.c">ntru_mem.h</a>&quot;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="ntru__string_8h.html" title="header for ntru_string.c">ntru_string.h</a>&quot;</span>
<a name="l00033"></a>00033
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;fcntl.h&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;stdbool.h&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;sys/stat.h&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
<a name="l00043"></a>00043
<a name="l00044"></a><a class="code" href="ntru__file_8c.html#a15651456278c8f50777dfe104f492951">00044</a> <span class="preprocessor">#define STD_FILE_BUF 4096</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span>
<a name="l00046"></a>00046
<a name="l00047"></a>00047 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00048"></a>00048
<a name="l00049"></a>00049 <span class="keywordtype">string</span> *
<a name="l00050"></a><a class="code" href="ntru_8h.html#a348c2a56837571f410d44631abc09dc4">00050</a> <a class="code" href="ntru__file_8c.html#a348c2a56837571f410d44631abc09dc4">read_file</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename)
<a name="l00051"></a>00051 {
<a name="l00052"></a>00052 <span class="keywordtype">char</span> buf[<a class="code" href="ntru__file_8c.html#a15651456278c8f50777dfe104f492951">STD_FILE_BUF</a>],
<a name="l00053"></a>00053 *cstring = NULL;
<a name="l00054"></a>00054 <span class="keywordtype">int</span> fd = 0;
<a name="l00055"></a>00055 <span class="keywordtype">size_t</span> str_size = 0;
<a name="l00056"></a>00056 ssize_t n;
<a name="l00057"></a>00057 <span class="keywordtype">size_t</span> file_length = 0;
<a name="l00058"></a>00058 <span class="keywordtype">string</span> *result_string;
<a name="l00059"></a>00059
<a name="l00060"></a>00060 fd = open(filename, O_RDONLY);
<a name="l00061"></a>00061 file_length = lseek(fd, 0, SEEK_END) + 1;
<a name="l00062"></a>00062 lseek(fd, 0, SEEK_SET);
<a name="l00063"></a>00063
<a name="l00064"></a>00064 cstring = malloc(<span class="keyword">sizeof</span>(<span class="keywordtype">char</span>) * file_length);
<a name="l00065"></a>00065
<a name="l00066"></a>00066 <span class="keywordflow">if</span> (fd != -1) {
<a name="l00067"></a>00067 <span class="comment">/* read and copy chunks */</span>
<a name="l00068"></a>00068 <span class="keywordflow">while</span> ((n = read(fd, buf, <a class="code" href="ntru__file_8c.html#a15651456278c8f50777dfe104f492951">STD_FILE_BUF</a>)) != 0) {
<a name="l00069"></a>00069
<a name="l00070"></a>00070 <span class="keywordflow">if</span> (n == -1) {
<a name="l00071"></a>00071 <a class="code" href="ntru__err_8h.html#abcb6d051074ab3a58c5e9764f927753c">NTRU_WARN_DEBUG</a>(<span class="stringliteral">&quot;Failed while reading file descriptor %d&quot;</span>,
<a name="l00072"></a>00072 fd);
<a name="l00073"></a>00073 <span class="keywordflow">goto</span> failure_cleanup;
<a name="l00074"></a>00074 }
<a name="l00075"></a>00075
<a name="l00076"></a>00076 str_size += n; <span class="comment">/* count total bytes read */</span>
<a name="l00077"></a>00077
<a name="l00078"></a>00078 <span class="comment">/* append buffer to string */</span>
<a name="l00079"></a>00079 memcpy(cstring + (str_size - n), buf, (<span class="keywordtype">size_t</span>)n);
<a name="l00080"></a>00080 }
<a name="l00081"></a>00081 <span class="comment">/* add trailing NULL byte */</span>
<a name="l00082"></a>00082 cstring[str_size] = <span class="charliteral">&#39;\0&#39;</span>;
<a name="l00083"></a>00083
<a name="l00084"></a>00084 <span class="keywordflow">if</span> (close(fd)) {
<a name="l00085"></a>00085 <a class="code" href="ntru__err_8h.html#abcb6d051074ab3a58c5e9764f927753c">NTRU_WARN_DEBUG</a>(<span class="stringliteral">&quot;Failed to close file descripter %d\n&quot;</span>, fd);
<a name="l00086"></a>00086 <span class="keywordflow">goto</span> failure_cleanup;
<a name="l00087"></a>00087 }
<a name="l00088"></a>00088
<a name="l00089"></a>00089 result_string = <a class="code" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a>(<span class="keyword">sizeof</span>(*result_string));
<a name="l00090"></a>00090 result_string-&gt;<a class="code" href="structstring.html#afd608f62303958cea6f1f7afdec1e282">ptr</a> = cstring;
<a name="l00091"></a>00091 result_string-&gt;<a class="code" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">len</a> = str_size;
<a name="l00092"></a>00092
<a name="l00093"></a>00093 <span class="keywordflow">return</span> result_string;
<a name="l00094"></a>00094
<a name="l00095"></a>00095 } <span class="keywordflow">else</span> {
<a name="l00096"></a>00096 <span class="keywordflow">return</span> NULL;
<a name="l00097"></a>00097 }
<a name="l00098"></a>00098
<a name="l00099"></a>00099 failure_cleanup:
<a name="l00100"></a>00100 free(cstring);
<a name="l00101"></a>00101 <span class="keywordflow">return</span> NULL;
<a name="l00102"></a>00102 }
<a name="l00103"></a>00103
<a name="l00104"></a>00104 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00105"></a>00105
<a name="l00106"></a>00106 <span class="keywordtype">bool</span>
<a name="l00107"></a><a class="code" href="ntru_8h.html#af2a0fc4dd4109749d8f3100a913cc304">00107</a> <a class="code" href="ntru__file_8c.html#a1f8eef5ea12c77ed2491d96864eb0d43">write_file</a>(<span class="keywordtype">string</span> <span class="keyword">const</span> *wstring, <span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename)
<a name="l00108"></a>00108 {
<a name="l00109"></a>00109 FILE *fp;
<a name="l00110"></a>00110
<a name="l00111"></a>00111 fp = fopen(filename, <span class="stringliteral">&quot;w&quot;</span>);
<a name="l00112"></a>00112
<a name="l00113"></a>00113 <span class="keywordflow">if</span> (!fp) {
<a name="l00114"></a>00114 <a class="code" href="ntru__err_8h.html#abcb6d051074ab3a58c5e9764f927753c">NTRU_WARN_DEBUG</a>(<span class="stringliteral">&quot;Failed while creating file\n&quot;</span>);
<a name="l00115"></a>00115 <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00116"></a>00116 }
<a name="l00117"></a>00117
<a name="l00118"></a>00118 <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; wstring-&gt;<a class="code" href="structstring.html#aa6bcf0353fd5cf2f374a9b1dd0e4a73a">len</a>; i++)
<a name="l00119"></a>00119 fprintf(fp, <span class="stringliteral">&quot;%c&quot;</span>, wstring-&gt;<a class="code" href="structstring.html#afd608f62303958cea6f1f7afdec1e282">ptr</a>[i]);
<a name="l00120"></a>00120
<a name="l00121"></a>00121 <span class="keywordflow">if</span> (fclose(fp)) {
<a name="l00122"></a>00122 <a class="code" href="ntru__err_8h.html#abcb6d051074ab3a58c5e9764f927753c">NTRU_WARN_DEBUG</a>(<span class="stringliteral">&quot;Failed to close file descripter\n&quot;</span>);
<a name="l00123"></a>00123 <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00124"></a>00124 }
<a name="l00125"></a>00125
<a name="l00126"></a>00126 <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00127"></a>00127 }
<a name="l00128"></a>00128
<a name="l00129"></a>00129 <span class="comment">/*------------------------------------------------------------------------*/</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

200
ntru__file_8h.html Normal file
View File

@ -0,0 +1,200 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_file.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_file.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>header for <a class="el" href="ntru__file_8c.html" title="file operations">ntru_file.c</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru__common_8h_source.html">ntru_common.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__string_8h_source.html">ntru_string.h</a>&quot;</code><br/>
<code>#include &lt;stdbool.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_file.h:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__file_8h__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__file_8h" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__file_8h" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__file_8h">
</map>
</div>
</div>
<p><a href="ntru__file_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structstring.html">string</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__file_8h.html#a348c2a56837571f410d44631abc09dc4">read_file</a> (char const *const filename)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__file_8h.html#a1f8eef5ea12c77ed2491d96864eb0d43">write_file</a> (<a class="el" href="structstring.html">string</a> const *wstring, char const *const filename)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>header for <a class="el" href="ntru__file_8c.html" title="file operations">ntru_file.c</a> </p>
<p>Header for the external API of <a class="el" href="ntru__file_8c.html" title="file operations">ntru_file.c</a>. </p>
<p>Definition in file <a class="el" href="ntru__file_8h_source.html">ntru_file.h</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a348c2a56837571f410d44631abc09dc4"></a><!-- doxytag: member="ntru_file.h::read_file" ref="a348c2a56837571f410d44631abc09dc4" args="(char const *const filename)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* <a class="el" href="ntru_8h.html#a348c2a56837571f410d44631abc09dc4">read_file</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reads a file and returns a newly allocated string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>file to open </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a newly allocated string which must be freed by the caller or NULL on failure (e.g. if the file could not be opened/closed) </dd></dl>
<p>Definition at line <a class="el" href="ntru__file_8c_source.html#l00050">50</a> of file <a class="el" href="ntru__file_8c_source.html">ntru_file.c</a>.</p>
</div>
</div>
<a class="anchor" id="a1f8eef5ea12c77ed2491d96864eb0d43"></a><!-- doxytag: member="ntru_file.h::write_file" ref="a1f8eef5ea12c77ed2491d96864eb0d43" args="(string const *wstring, char const *const filename)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="ntru_8h.html#af2a0fc4dd4109749d8f3100a913cc304">write_file</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structstring.html">string</a> const *&#160;</td>
<td class="paramname"><em>wstring</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Write a string to a file. The file will be pruned or created if it does not exist.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">wstring</td><td>the string to write to the file </td></tr>
<tr><td class="paramname">filename</td><td>the name of the file to write to </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true for success or false for failure if fopen or fclose failed </dd></dl>
<p>Definition at line <a class="el" href="ntru__file_8c_source.html#l00107">107</a> of file <a class="el" href="ntru__file_8c_source.html">ntru_file.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

15
ntru__file_8h__incl.dot Normal file
View File

@ -0,0 +1,15 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_file.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru_common.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__common_8h.html",tooltip="common macros/functions"];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="ntru_string.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__string_8h.html",tooltip="header for ntru_string.c"];
Node4 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="stdbool.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
}

1
ntru__file_8h__incl.md5 Normal file
View File

@ -0,0 +1 @@
f2ffeaf3ebe24d90c8c312a86c034e9e

145
ntru__file_8h_source.html Normal file
View File

@ -0,0 +1,145 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_file.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_file.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__file_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef NTRU_FILE_H</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define NTRU_FILE_H</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="ntru__common_8h.html" title="common macros/functions">ntru_common.h</a>&quot;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;<a class="code" href="ntru__string_8h.html" title="header for ntru_string.c">ntru_string.h</a>&quot;</span>
<a name="l00034"></a>00034
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;stdbool.h&gt;</span>
<a name="l00036"></a>00036
<a name="l00037"></a>00037
<a name="l00045"></a>00045 <span class="keywordtype">string</span> *
<a name="l00046"></a>00046 <a class="code" href="ntru__file_8c.html#a348c2a56837571f410d44631abc09dc4">read_file</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename);
<a name="l00047"></a>00047
<a name="l00056"></a>00056 <span class="keywordtype">bool</span>
<a name="l00057"></a>00057 <a class="code" href="ntru__file_8c.html#a1f8eef5ea12c77ed2491d96864eb0d43">write_file</a>(<span class="keywordtype">string</span> <span class="keyword">const</span> *wstring, <span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename);
<a name="l00058"></a>00058
<a name="l00059"></a>00059
<a name="l00060"></a>00060 <span class="preprocessor">#endif </span><span class="comment">/* NTRU_FILE_H */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

408
ntru__keypair_8c.html Normal file
View File

@ -0,0 +1,408 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_keypair.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_keypair.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>key creation and operations
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru__ascii__poly_8h_source.html">ntru_ascii_poly.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__file_8h_source.html">ntru_file.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__keypair_8h_source.html">ntru_keypair.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__poly_8h_source.html">ntru_poly.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__poly__ascii_8h_source.html">ntru_poly_ascii.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__string_8h_source.html">ntru_string.h</a>&quot;</code><br/>
<code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
<code>#include &lt;stdbool.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_keypair.c:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__keypair_8c__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__keypair_8c" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__keypair_8c" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__keypair_8c">
</map>
</div>
</div>
<p><a href="ntru__keypair_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8c.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_create_keypair</a> (fmpz_poly_t f, fmpz_poly_t g, <a class="el" href="structkeypair.html">keypair</a> *pair, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8c.html#a41741ed660cb806c47335f66055e1bdd">export_public_key</a> (char const *const filename, fmpz_poly_t pub, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8c.html#afa29f14a14486d3f6b979ee900d7e738">export_priv_key</a> (char const *const filename, fmpz_poly_t priv, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8c.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">import_public_key</a> (char const *const filename, fmpz_poly_t pub, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8c.html#a1f917ea6ef5302826c888e5c88e0869e">import_priv_key</a> (char const *const filename, fmpz_poly_t priv, fmpz_poly_t priv_inv, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8c.html#a5279c4990bc22bb9e735fe36372a6786">ntru_delete_keypair</a> (<a class="el" href="structkeypair.html">keypair</a> *pair)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>key creation and operations </p>
<p>This file handles the creation of the key pair and possibly common operations on them. </p>
<p>Definition in file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="afa29f14a14486d3f6b979ee900d7e738"></a><!-- doxytag: member="ntru_keypair.c::export_priv_key" ref="afa29f14a14486d3f6b979ee900d7e738" args="(char const *const filename, fmpz_poly_t priv, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#afa29f14a14486d3f6b979ee900d7e738">export_priv_key</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Export the private key to a file.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>the file to save the private key into </td></tr>
<tr><td class="paramname">priv</td><td>the private key </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00111">111</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a41741ed660cb806c47335f66055e1bdd"></a><!-- doxytag: member="ntru_keypair.c::export_public_key" ref="a41741ed660cb806c47335f66055e1bdd" args="(char const *const filename, fmpz_poly_t pub, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#a41741ed660cb806c47335f66055e1bdd">export_public_key</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>pub</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Export the public key to a file.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>the file to save the public key into </td></tr>
<tr><td class="paramname">pub</td><td>the public key </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00096">96</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a1f917ea6ef5302826c888e5c88e0869e"></a><!-- doxytag: member="ntru_keypair.c::import_priv_key" ref="a1f917ea6ef5302826c888e5c88e0869e" args="(char const *const filename, fmpz_poly_t priv, fmpz_poly_t priv_inv, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#a1f917ea6ef5302826c888e5c88e0869e">import_priv_key</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_inv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Import the private key from a file and store him along with his inverse.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>the file to get the private key from </td></tr>
<tr><td class="paramname">priv</td><td>where to save the private key [out] </td></tr>
<tr><td class="paramname">priv_inv</td><td>where to save the inverse of the private key [out] </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00157">157</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a4e2c6da04c55e8c1b6c447f4cc9f1d6f"></a><!-- doxytag: member="ntru_keypair.c::import_public_key" ref="a4e2c6da04c55e8c1b6c447f4cc9f1d6f" args="(char const *const filename, fmpz_poly_t pub, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">import_public_key</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>pub</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Import the public key from a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>the file to get the public key from </td></tr>
<tr><td class="paramname">pub</td><td>where to save the public key [out] </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00132">132</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a6873d41211a92c4f6b0074ef34ae1743"></a><!-- doxytag: member="ntru_keypair.c::ntru_create_keypair" ref="a6873d41211a92c4f6b0074ef34ae1743" args="(fmpz_poly_t f, fmpz_poly_t g, keypair *pair, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="keypair_8h.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_create_keypair</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>f</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>g</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structkeypair.html">keypair</a> *&#160;</td>
<td class="paramname"><em>pair</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates an NTRU key pair, consisting of public and private components.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">f</td><td>a random polynomial </td></tr>
<tr><td class="paramname">g</td><td>a random polynomial </td></tr>
<tr><td class="paramname">pair</td><td>store private and public components here [out] </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true for success, false if f or g are not invertible (then the caller hast to try different ones) </dd></dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00047">47</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a5279c4990bc22bb9e735fe36372a6786"></a><!-- doxytag: member="ntru_keypair.c::ntru_delete_keypair" ref="a5279c4990bc22bb9e735fe36372a6786" args="(keypair *pair)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#a5279c4990bc22bb9e735fe36372a6786">ntru_delete_keypair</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structkeypair.html">keypair</a> *&#160;</td>
<td class="paramname"><em>pair</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Used to free the inner structure of a keypair. This will not call free() on the pair itself.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">pair</td><td>the pair to free the inner structure of </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00197">197</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -0,0 +1,60 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_keypair.c",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru_ascii_poly.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__ascii__poly_8h.html",tooltip="header for ntru_ascii_poly.c"];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="ntru_common.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__common_8h.html",tooltip="common macros/functions"];
Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="ntru_string.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__string_8h.html",tooltip="header for ntru_string.c"];
Node5 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="ntru_params.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__params_8h.html",tooltip="NTRU parameters."];
Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="ntru_file.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__file_8h.html",tooltip="header for ntru_file.c"];
Node10 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="stdbool.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="ntru_keypair.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__keypair_8h.html",tooltip="header for ntru_keypair.c"];
Node12 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="ntru_poly.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__poly_8h.html",tooltip="header for ntru_poly.c"];
Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node14 [label="ntru_err.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__err_8h.html",tooltip="error handling"];
Node13 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node15 [label="stdarg.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node13 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 [label="ntru_poly_ascii.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__poly__ascii_8h.html",tooltip="header for ntru_poly_ascii.c"];
Node16 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node16 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node17 [label="string.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
}

View File

@ -0,0 +1 @@
19384e450a717a8c3944d423527b302d

View File

@ -0,0 +1,303 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_keypair.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_keypair.c</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__keypair_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00029"></a>00029 <span class="preprocessor">#include &quot;<a class="code" href="ntru__ascii__poly_8h.html" title="header for ntru_ascii_poly.c">ntru_ascii_poly.h</a>&quot;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &quot;<a class="code" href="ntru__file_8h.html" title="header for ntru_file.c">ntru_file.h</a>&quot;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;<a class="code" href="ntru__keypair_8h.html" title="header for ntru_keypair.c">ntru_keypair.h</a>&quot;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="ntru__params_8h.html" title="NTRU parameters.">ntru_params.h</a>&quot;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;<a class="code" href="ntru__poly_8h.html" title="header for ntru_poly.c">ntru_poly.h</a>&quot;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;<a class="code" href="ntru__poly__ascii_8h.html" title="header for ntru_poly_ascii.c">ntru_poly_ascii.h</a>&quot;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &quot;<a class="code" href="ntru__string_8h.html" title="header for ntru_string.c">ntru_string.h</a>&quot;</span>
<a name="l00036"></a>00036
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;fmpz_poly.h&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;fmpz.h&gt;</span>
<a name="l00039"></a>00039
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;stdbool.h&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00042"></a>00042
<a name="l00043"></a>00043
<a name="l00044"></a>00044 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00045"></a>00045
<a name="l00046"></a>00046 <span class="keywordtype">bool</span>
<a name="l00047"></a><a class="code" href="keypair_8h.html#a6873d41211a92c4f6b0074ef34ae1743">00047</a> <a class="code" href="ntru__keypair_8c.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_create_keypair</a>(
<a name="l00048"></a>00048 fmpz_poly_t f,
<a name="l00049"></a>00049 fmpz_poly_t g,
<a name="l00050"></a>00050 <a class="code" href="structkeypair.html">keypair</a> *pair,
<a name="l00051"></a>00051 <a class="code" href="structntru__params.html">ntru_params</a> *params)
<a name="l00052"></a>00052 {
<a name="l00053"></a>00053 <span class="keywordtype">bool</span> retval = <span class="keyword">false</span>;
<a name="l00054"></a>00054 fmpz_poly_t Fq,
<a name="l00055"></a>00055 Fp,
<a name="l00056"></a>00056 pub;
<a name="l00057"></a>00057
<a name="l00058"></a>00058 <span class="keywordflow">if</span> (!f || !g || !params)
<a name="l00059"></a>00059 <span class="keywordflow">goto</span> _return;
<a name="l00060"></a>00060
<a name="l00061"></a>00061 fmpz_poly_init(Fq);
<a name="l00062"></a>00062 fmpz_poly_init(Fp);
<a name="l00063"></a>00063 fmpz_poly_init(pub);
<a name="l00064"></a>00064
<a name="l00065"></a>00065 <span class="keywordflow">if</span> (!<a class="code" href="ntru__poly_8c.html#ace66beb516186e52f9b5b1ed8a397849">poly_inverse_poly_q</a>(f, Fq, params))
<a name="l00066"></a>00066 <span class="keywordflow">goto</span> _cleanup;
<a name="l00067"></a>00067
<a name="l00068"></a>00068 <span class="keywordflow">if</span> (!<a class="code" href="ntru__poly_8c.html#ae77b2014df42e5ed612206d5930ac608">poly_inverse_poly_p</a>(f, Fp, params))
<a name="l00069"></a>00069 <span class="keywordflow">goto</span> _cleanup;
<a name="l00070"></a>00070
<a name="l00071"></a>00071 <a class="code" href="ntru__poly_8c.html#ae96f479ddd97af709a0ed50817fd3fb3">poly_starmultiply</a>(Fq, g, pub, params, params-&gt;<a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">q</a>);
<a name="l00072"></a>00072 fmpz_poly_scalar_mul_ui(pub, pub, params-&gt;<a class="code" href="structntru__params.html#a41b368825e1eb126604e13e8f549ec8f">p</a>);
<a name="l00073"></a>00073 <a class="code" href="ntru__poly_8c.html#ae7d0d8364dba689df3fb4904610634cc">fmpz_poly_mod_unsigned</a>(pub, params-&gt;<a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">q</a>);
<a name="l00074"></a>00074
<a name="l00075"></a>00075 fmpz_poly_init(pair-&gt;<a class="code" href="structkeypair.html#a9e9805ad001216da53f2c57accb288e1">priv</a>);
<a name="l00076"></a>00076 fmpz_poly_init(pair-&gt;<a class="code" href="structkeypair.html#a9e63f1d275b91c9d9716fb4069461799">priv_inv</a>);
<a name="l00077"></a>00077 fmpz_poly_init(pair-&gt;<a class="code" href="structkeypair.html#afa635c70f233d0b7449b4a17513646c4">pub</a>);
<a name="l00078"></a>00078
<a name="l00079"></a>00079 fmpz_poly_set(pair-&gt;<a class="code" href="structkeypair.html#a9e9805ad001216da53f2c57accb288e1">priv</a>, f);
<a name="l00080"></a>00080 fmpz_poly_set(pair-&gt;<a class="code" href="structkeypair.html#a9e63f1d275b91c9d9716fb4069461799">priv_inv</a>, Fp);
<a name="l00081"></a>00081 fmpz_poly_set(pair-&gt;<a class="code" href="structkeypair.html#afa635c70f233d0b7449b4a17513646c4">pub</a>, pub);
<a name="l00082"></a>00082
<a name="l00083"></a>00083 retval = <span class="keyword">true</span>;
<a name="l00084"></a>00084
<a name="l00085"></a>00085 _cleanup:
<a name="l00086"></a>00086 fmpz_poly_clear(Fq);
<a name="l00087"></a>00087 fmpz_poly_clear(Fp);
<a name="l00088"></a>00088 fmpz_poly_clear(pub);
<a name="l00089"></a>00089 _return:
<a name="l00090"></a>00090 <span class="keywordflow">return</span> retval;
<a name="l00091"></a>00091 }
<a name="l00092"></a>00092
<a name="l00093"></a>00093 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00094"></a>00094
<a name="l00095"></a>00095 <span class="keywordtype">void</span>
<a name="l00096"></a><a class="code" href="keypair_8h.html#a41741ed660cb806c47335f66055e1bdd">00096</a> <a class="code" href="ntru__keypair_8c.html#a41741ed660cb806c47335f66055e1bdd">export_public_key</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename,
<a name="l00097"></a>00097 fmpz_poly_t pub,
<a name="l00098"></a>00098 <a class="code" href="structntru__params.html">ntru_params</a> *params)
<a name="l00099"></a>00099 {
<a name="l00100"></a>00100 <span class="keywordtype">string</span> *pub_string;
<a name="l00101"></a>00101
<a name="l00102"></a>00102 pub_string = <a class="code" href="ntru__poly__ascii_8c.html#a4ba0179e3ae0d5e721ff8429a8265e80">poly_to_base64</a>(pub, params);
<a name="l00103"></a>00103 <a class="code" href="ntru__file_8c.html#a1f8eef5ea12c77ed2491d96864eb0d43">write_file</a>(pub_string, filename);
<a name="l00104"></a>00104
<a name="l00105"></a>00105 <a class="code" href="ntru__string_8c.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">string_delete</a>(pub_string);
<a name="l00106"></a>00106 }
<a name="l00107"></a>00107
<a name="l00108"></a>00108 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00109"></a>00109
<a name="l00110"></a>00110 <span class="keywordtype">void</span>
<a name="l00111"></a><a class="code" href="keypair_8h.html#afa29f14a14486d3f6b979ee900d7e738">00111</a> <a class="code" href="ntru__keypair_8c.html#afa29f14a14486d3f6b979ee900d7e738">export_priv_key</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename,
<a name="l00112"></a>00112 fmpz_poly_t priv,
<a name="l00113"></a>00113 <a class="code" href="structntru__params.html">ntru_params</a> *params)
<a name="l00114"></a>00114 {
<a name="l00115"></a>00115 <span class="keywordtype">string</span> *priv_string;
<a name="l00116"></a>00116 fmpz_poly_t priv_u;
<a name="l00117"></a>00117
<a name="l00118"></a>00118 fmpz_poly_init(priv_u);
<a name="l00119"></a>00119 fmpz_poly_set(priv_u, priv);
<a name="l00120"></a>00120 <a class="code" href="ntru__poly_8c.html#ae7d0d8364dba689df3fb4904610634cc">fmpz_poly_mod_unsigned</a>(priv_u, params-&gt;<a class="code" href="structntru__params.html#a41b368825e1eb126604e13e8f549ec8f">p</a>);
<a name="l00121"></a>00121
<a name="l00122"></a>00122 priv_string = <a class="code" href="ntru__poly__ascii_8c.html#a4ba0179e3ae0d5e721ff8429a8265e80">poly_to_base64</a>(priv_u, params);
<a name="l00123"></a>00123 <a class="code" href="ntru__file_8c.html#a1f8eef5ea12c77ed2491d96864eb0d43">write_file</a>(priv_string, filename);
<a name="l00124"></a>00124
<a name="l00125"></a>00125 fmpz_poly_clear(priv_u);
<a name="l00126"></a>00126 <a class="code" href="ntru__string_8c.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">string_delete</a>(priv_string);
<a name="l00127"></a>00127 }
<a name="l00128"></a>00128
<a name="l00129"></a>00129 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00130"></a>00130
<a name="l00131"></a>00131 <span class="keywordtype">void</span>
<a name="l00132"></a><a class="code" href="keypair_8h.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">00132</a> <a class="code" href="ntru__keypair_8c.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">import_public_key</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename,
<a name="l00133"></a>00133 fmpz_poly_t pub,
<a name="l00134"></a>00134 <a class="code" href="structntru__params.html">ntru_params</a> *params)
<a name="l00135"></a>00135 {
<a name="l00136"></a>00136 <span class="keywordtype">string</span> *pub_string;
<a name="l00137"></a>00137 fmpz_poly_t **imported;
<a name="l00138"></a>00138
<a name="l00139"></a>00139 pub_string = <a class="code" href="ntru__file_8c.html#a348c2a56837571f410d44631abc09dc4">read_file</a>(filename);
<a name="l00140"></a>00140 imported = <a class="code" href="ntru__ascii__poly_8c.html#a8460cd27ad4562f560bb304609a3e06d">base64_to_poly_arr</a>(pub_string, params);
<a name="l00141"></a>00141
<a name="l00142"></a>00142 <span class="comment">/* if the array exceeds one element, then something</span>
<a name="l00143"></a>00143 <span class="comment"> * went horribly wrong */</span>
<a name="l00144"></a>00144 <span class="keywordflow">if</span> (*imported[1])
<a name="l00145"></a>00145 <a class="code" href="ntru__err_8h.html#a5d4dd1c1539c408c0dcd915750e8f224">NTRU_ABORT_DEBUG</a>(<span class="stringliteral">&quot;Failed importing public key!&quot;</span>);
<a name="l00146"></a>00146
<a name="l00147"></a>00147 fmpz_poly_set(pub, **imported);
<a name="l00148"></a>00148
<a name="l00149"></a>00149 <a class="code" href="ntru__string_8c.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">string_delete</a>(pub_string);
<a name="l00150"></a>00150 <a class="code" href="ntru__poly_8c.html#a3f53c63383ff301b20dcede0783869a7">poly_delete_array</a>(imported);
<a name="l00151"></a>00151 free(imported);
<a name="l00152"></a>00152 }
<a name="l00153"></a>00153
<a name="l00154"></a>00154 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00155"></a>00155
<a name="l00156"></a>00156 <span class="keywordtype">void</span>
<a name="l00157"></a><a class="code" href="keypair_8h.html#a1f917ea6ef5302826c888e5c88e0869e">00157</a> <a class="code" href="ntru__keypair_8c.html#a1f917ea6ef5302826c888e5c88e0869e">import_priv_key</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename,
<a name="l00158"></a>00158 fmpz_poly_t priv,
<a name="l00159"></a>00159 fmpz_poly_t priv_inv,
<a name="l00160"></a>00160 <a class="code" href="structntru__params.html">ntru_params</a> *params)
<a name="l00161"></a>00161 {
<a name="l00162"></a>00162 <span class="keywordtype">string</span> *pub_string;
<a name="l00163"></a>00163 fmpz_poly_t **imported,
<a name="l00164"></a>00164 Fp;
<a name="l00165"></a>00165
<a name="l00166"></a>00166 fmpz_poly_init(Fp);
<a name="l00167"></a>00167
<a name="l00168"></a>00168 pub_string = <a class="code" href="ntru__file_8c.html#a348c2a56837571f410d44631abc09dc4">read_file</a>(filename);
<a name="l00169"></a>00169
<a name="l00170"></a>00170 imported = <a class="code" href="ntru__ascii__poly_8c.html#a8460cd27ad4562f560bb304609a3e06d">base64_to_poly_arr</a>(pub_string, params);
<a name="l00171"></a>00171 <a class="code" href="ntru__poly_8c.html#a7c4f5e96355518dc97a23da8f34b661a">fmpz_poly_mod</a>(**imported, params-&gt;<a class="code" href="structntru__params.html#a41b368825e1eb126604e13e8f549ec8f">p</a>);
<a name="l00172"></a>00172
<a name="l00173"></a>00173 <span class="comment">/* if the array exceeds one element, then something</span>
<a name="l00174"></a>00174 <span class="comment"> * went horribly wrong */</span>
<a name="l00175"></a>00175 <span class="keywordflow">if</span> (*imported[1])
<a name="l00176"></a>00176 <a class="code" href="ntru__err_8h.html#a5d4dd1c1539c408c0dcd915750e8f224">NTRU_ABORT_DEBUG</a>(<span class="stringliteral">&quot;Failed importing private key!&quot;</span>);
<a name="l00177"></a>00177
<a name="l00178"></a>00178 fmpz_poly_set(priv, **imported);
<a name="l00179"></a>00179
<a name="l00180"></a>00180 <span class="keywordflow">if</span> (!<a class="code" href="ntru__poly_8c.html#ae77b2014df42e5ed612206d5930ac608">poly_inverse_poly_p</a>(priv, Fp, params))
<a name="l00181"></a>00181 <span class="keywordflow">goto</span> cleanup;
<a name="l00182"></a>00182
<a name="l00183"></a>00183 <a class="code" href="ntru__poly_8c.html#a7c4f5e96355518dc97a23da8f34b661a">fmpz_poly_mod</a>(Fp, params-&gt;<a class="code" href="structntru__params.html#a41b368825e1eb126604e13e8f549ec8f">p</a>);
<a name="l00184"></a>00184
<a name="l00185"></a>00185 fmpz_poly_set(priv_inv, Fp);
<a name="l00186"></a>00186 fmpz_poly_clear(Fp);
<a name="l00187"></a>00187
<a name="l00188"></a>00188 cleanup:
<a name="l00189"></a>00189 <a class="code" href="ntru__string_8c.html#ac1b5f66fbbbdfc7901357ddcfec52e5a">string_delete</a>(pub_string);
<a name="l00190"></a>00190 <a class="code" href="ntru__poly_8c.html#a3f53c63383ff301b20dcede0783869a7">poly_delete_array</a>(imported);
<a name="l00191"></a>00191 free(imported);
<a name="l00192"></a>00192 }
<a name="l00193"></a>00193
<a name="l00194"></a>00194 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00195"></a>00195
<a name="l00196"></a>00196 <span class="keywordtype">void</span>
<a name="l00197"></a><a class="code" href="keypair_8h.html#a5279c4990bc22bb9e735fe36372a6786">00197</a> <a class="code" href="ntru__keypair_8c.html#a5279c4990bc22bb9e735fe36372a6786">ntru_delete_keypair</a>(<a class="code" href="structkeypair.html">keypair</a> *pair)
<a name="l00198"></a>00198 {
<a name="l00199"></a>00199 fmpz_poly_clear(pair-&gt;<a class="code" href="structkeypair.html#a9e63f1d275b91c9d9716fb4069461799">priv_inv</a>);
<a name="l00200"></a>00200 fmpz_poly_clear(pair-&gt;<a class="code" href="structkeypair.html#a9e9805ad001216da53f2c57accb288e1">priv</a>);
<a name="l00201"></a>00201 fmpz_poly_clear(pair-&gt;<a class="code" href="structkeypair.html#afa635c70f233d0b7449b4a17513646c4">pub</a>);
<a name="l00202"></a>00202 }
<a name="l00203"></a>00203
<a name="l00204"></a>00204 <span class="comment">/*------------------------------------------------------------------------*/</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

425
ntru__keypair_8h.html Normal file
View File

@ -0,0 +1,425 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_keypair.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_keypair.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>header for <a class="el" href="ntru__keypair_8c.html" title="key creation and operations">ntru_keypair.c</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>&quot;</code><br/>
<code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
<code>#include &lt;stdbool.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_keypair.h:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__keypair_8h__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__keypair_8h" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__keypair_8h" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__keypair_8h">
</map>
</div>
</div>
<p><a href="ntru__keypair_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structkeypair.html">keypair</a></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structkeypair.html">keypair</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8h.html#aacfc9254c7939584924ab9d27ba6f504">keypair</a></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8h.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_create_keypair</a> (fmpz_poly_t f, fmpz_poly_t g, <a class="el" href="structkeypair.html">keypair</a> *pair, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8h.html#a41741ed660cb806c47335f66055e1bdd">export_public_key</a> (char const *const filename, fmpz_poly_t pub, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8h.html#afa29f14a14486d3f6b979ee900d7e738">export_priv_key</a> (char const *const filename, fmpz_poly_t priv, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8h.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">import_public_key</a> (char const *const filename, fmpz_poly_t pub, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8h.html#a1f917ea6ef5302826c888e5c88e0869e">import_priv_key</a> (char const *const filename, fmpz_poly_t priv, fmpz_poly_t priv_inv, <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__keypair_8h.html#a5279c4990bc22bb9e735fe36372a6786">ntru_delete_keypair</a> (<a class="el" href="structkeypair.html">keypair</a> *pair)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>header for <a class="el" href="ntru__keypair_8c.html" title="key creation and operations">ntru_keypair.c</a> </p>
<p>Header for internal API of <a class="el" href="ntru__keypair_8c.html" title="key creation and operations">ntru_keypair.c</a>. </p>
<p>Definition in file <a class="el" href="ntru__keypair_8h_source.html">ntru_keypair.h</a>.</p>
</div><hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="aacfc9254c7939584924ab9d27ba6f504"></a><!-- doxytag: member="ntru_keypair.h::keypair" ref="aacfc9254c7939584924ab9d27ba6f504" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structkeypair.html">keypair</a> <a class="el" href="structkeypair.html">keypair</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="ntru__keypair_8h_source.html#l00039">39</a> of file <a class="el" href="ntru__keypair_8h_source.html">ntru_keypair.h</a>.</p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="afa29f14a14486d3f6b979ee900d7e738"></a><!-- doxytag: member="ntru_keypair.h::export_priv_key" ref="afa29f14a14486d3f6b979ee900d7e738" args="(char const *const filename, fmpz_poly_t priv, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#afa29f14a14486d3f6b979ee900d7e738">export_priv_key</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Export the private key to a file.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>the file to save the private key into </td></tr>
<tr><td class="paramname">priv</td><td>the private key </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00111">111</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a41741ed660cb806c47335f66055e1bdd"></a><!-- doxytag: member="ntru_keypair.h::export_public_key" ref="a41741ed660cb806c47335f66055e1bdd" args="(char const *const filename, fmpz_poly_t pub, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#a41741ed660cb806c47335f66055e1bdd">export_public_key</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>pub</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Export the public key to a file.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>the file to save the public key into </td></tr>
<tr><td class="paramname">pub</td><td>the public key </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00096">96</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a1f917ea6ef5302826c888e5c88e0869e"></a><!-- doxytag: member="ntru_keypair.h::import_priv_key" ref="a1f917ea6ef5302826c888e5c88e0869e" args="(char const *const filename, fmpz_poly_t priv, fmpz_poly_t priv_inv, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#a1f917ea6ef5302826c888e5c88e0869e">import_priv_key</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>priv_inv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Import the private key from a file and store him along with his inverse.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>the file to get the private key from </td></tr>
<tr><td class="paramname">priv</td><td>where to save the private key [out] </td></tr>
<tr><td class="paramname">priv_inv</td><td>where to save the inverse of the private key [out] </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00157">157</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a4e2c6da04c55e8c1b6c447f4cc9f1d6f"></a><!-- doxytag: member="ntru_keypair.h::import_public_key" ref="a4e2c6da04c55e8c1b6c447f4cc9f1d6f" args="(char const *const filename, fmpz_poly_t pub, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">import_public_key</a> </td>
<td>(</td>
<td class="paramtype">char const *const&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>pub</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Import the public key from a file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>the file to get the public key from </td></tr>
<tr><td class="paramname">pub</td><td>where to save the public key [out] </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00132">132</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a6873d41211a92c4f6b0074ef34ae1743"></a><!-- doxytag: member="ntru_keypair.h::ntru_create_keypair" ref="a6873d41211a92c4f6b0074ef34ae1743" args="(fmpz_poly_t f, fmpz_poly_t g, keypair *pair, ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="keypair_8h.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_create_keypair</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>f</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>g</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structkeypair.html">keypair</a> *&#160;</td>
<td class="paramname"><em>pair</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Creates an NTRU key pair, consisting of public and private components.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">f</td><td>a random polynomial </td></tr>
<tr><td class="paramname">g</td><td>a random polynomial </td></tr>
<tr><td class="paramname">pair</td><td>store private and public components here [out] </td></tr>
<tr><td class="paramname">params</td><td>the NTRU context </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true for success, false if f or g are not invertible (then the caller hast to try different ones) </dd></dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00047">47</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
<a class="anchor" id="a5279c4990bc22bb9e735fe36372a6786"></a><!-- doxytag: member="ntru_keypair.h::ntru_delete_keypair" ref="a5279c4990bc22bb9e735fe36372a6786" args="(keypair *pair)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="keypair_8h.html#a5279c4990bc22bb9e735fe36372a6786">ntru_delete_keypair</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structkeypair.html">keypair</a> *&#160;</td>
<td class="paramname"><em>pair</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Used to free the inner structure of a keypair. This will not call free() on the pair itself.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">pair</td><td>the pair to free the inner structure of </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__keypair_8c_source.html#l00197">197</a> of file <a class="el" href="ntru__keypair_8c_source.html">ntru_keypair.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -0,0 +1,16 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_keypair.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru_params.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__params_8h.html",tooltip="NTRU parameters."];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="stdbool.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
}

View File

@ -0,0 +1 @@
b563620bbeef40262ba6bb0f04338e05

View File

@ -0,0 +1,181 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_keypair.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_keypair.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__keypair_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef NTRU_KEYPAIR_H</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define NTRU_KEYPAIR_H</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="ntru__params_8h.html" title="NTRU parameters.">ntru_params.h</a>&quot;</span>
<a name="l00033"></a>00033
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;fmpz_poly.h&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;fmpz.h&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;stdbool.h&gt;</span>
<a name="l00037"></a>00037
<a name="l00038"></a>00038
<a name="l00039"></a><a class="code" href="ntru__keypair_8h.html#aacfc9254c7939584924ab9d27ba6f504">00039</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structkeypair.html">keypair</a> <a class="code" href="structkeypair.html">keypair</a>;
<a name="l00040"></a>00040
<a name="l00041"></a>00041
<a name="l00046"></a><a class="code" href="structkeypair.html">00046</a> <span class="keyword">struct </span><a class="code" href="structkeypair.html">keypair</a> {
<a name="l00051"></a><a class="code" href="structkeypair.html#a9e9805ad001216da53f2c57accb288e1">00051</a> fmpz_poly_t <a class="code" href="structkeypair.html#a9e9805ad001216da53f2c57accb288e1">priv</a>;
<a name="l00056"></a><a class="code" href="structkeypair.html#a9e63f1d275b91c9d9716fb4069461799">00056</a> fmpz_poly_t <a class="code" href="structkeypair.html#a9e63f1d275b91c9d9716fb4069461799">priv_inv</a>;
<a name="l00061"></a><a class="code" href="structkeypair.html#afa635c70f233d0b7449b4a17513646c4">00061</a> fmpz_poly_t <a class="code" href="structkeypair.html#afa635c70f233d0b7449b4a17513646c4">pub</a>;
<a name="l00062"></a>00062 };
<a name="l00063"></a>00063
<a name="l00064"></a>00064
<a name="l00077"></a>00077 <span class="keywordtype">bool</span>
<a name="l00078"></a>00078 <a class="code" href="ntru__keypair_8c.html#a6873d41211a92c4f6b0074ef34ae1743">ntru_create_keypair</a>(
<a name="l00079"></a>00079 fmpz_poly_t f,
<a name="l00080"></a>00080 fmpz_poly_t g,
<a name="l00081"></a>00081 <a class="code" href="structkeypair.html">keypair</a> *pair,
<a name="l00082"></a>00082 <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00083"></a>00083
<a name="l00091"></a>00091 <span class="keywordtype">void</span>
<a name="l00092"></a>00092 <a class="code" href="ntru__keypair_8c.html#a41741ed660cb806c47335f66055e1bdd">export_public_key</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename,
<a name="l00093"></a>00093 fmpz_poly_t pub,
<a name="l00094"></a>00094 <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00095"></a>00095
<a name="l00103"></a>00103 <span class="keywordtype">void</span>
<a name="l00104"></a>00104 <a class="code" href="ntru__keypair_8c.html#afa29f14a14486d3f6b979ee900d7e738">export_priv_key</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename,
<a name="l00105"></a>00105 fmpz_poly_t priv,
<a name="l00106"></a>00106 <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00107"></a>00107
<a name="l00114"></a>00114 <span class="keywordtype">void</span>
<a name="l00115"></a>00115 <a class="code" href="ntru__keypair_8c.html#a4e2c6da04c55e8c1b6c447f4cc9f1d6f">import_public_key</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename,
<a name="l00116"></a>00116 fmpz_poly_t pub,
<a name="l00117"></a>00117 <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00118"></a>00118
<a name="l00128"></a>00128 <span class="keywordtype">void</span>
<a name="l00129"></a>00129 <a class="code" href="ntru__keypair_8c.html#a1f917ea6ef5302826c888e5c88e0869e">import_priv_key</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> filename,
<a name="l00130"></a>00130 fmpz_poly_t priv,
<a name="l00131"></a>00131 fmpz_poly_t priv_inv,
<a name="l00132"></a>00132 <a class="code" href="structntru__params.html">ntru_params</a> *params);
<a name="l00133"></a>00133
<a name="l00141"></a>00141 <span class="keywordtype">void</span>
<a name="l00142"></a>00142 <a class="code" href="ntru__keypair_8c.html#a5279c4990bc22bb9e735fe36372a6786">ntru_delete_keypair</a>(<a class="code" href="structkeypair.html">keypair</a> *pair);
<a name="l00143"></a>00143
<a name="l00144"></a>00144
<a name="l00145"></a>00145 <span class="preprocessor">#endif </span><span class="comment">/* NTRU_KEYPAIR_H */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

200
ntru__mem_8c.html Normal file
View File

@ -0,0 +1,200 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_mem.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_mem.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>memory management
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru__mem_8h_source.html">ntru_mem.h</a>&quot;</code><br/>
<code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_mem.c:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__mem_8c__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__mem_8c" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__mem_8c" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__mem_8c">
</map>
</div>
</div>
<p><a href="ntru__mem_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a> (size_t size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__mem_8c.html#a37e0be4fd8d0b677a41c8287ef47885c">ntru_calloc</a> (size_t nmemb, size_t size)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>memory management </p>
<p>This file provides functions for memory management. </p>
<p>Definition in file <a class="el" href="ntru__mem_8c_source.html">ntru_mem.c</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a37e0be4fd8d0b677a41c8287ef47885c"></a><!-- doxytag: member="ntru_mem.c::ntru_calloc" ref="a37e0be4fd8d0b677a41c8287ef47885c" args="(size_t nmemb, size_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="ntru__mem_8h.html#a37e0be4fd8d0b677a41c8287ef47885c">ntru_calloc</a> </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>nmemb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Allocate memory of size and return a void pointer. The memory is zeroed.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">nmemb</td><td>amount of blocks to allocate </td></tr>
<tr><td class="paramname">size</td><td>of the memory blocks to allocate in bytes </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>void pointer to the beginning of the allocated memory block </dd></dl>
<p>Definition at line <a class="el" href="ntru__mem_8c_source.html#l00056">56</a> of file <a class="el" href="ntru__mem_8c_source.html">ntru_mem.c</a>.</p>
</div>
</div>
<a class="anchor" id="a020790bf8b201fde92395cf975c0c691"></a><!-- doxytag: member="ntru_mem.c::ntru_malloc" ref="a020790bf8b201fde92395cf975c0c691" args="(size_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="ntru__mem_8h.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a> </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Allocate memory of size and return a void pointer.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">size</td><td>of the memory to allocate in bytes </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>void pointer to the beginning of the allocated memory block </dd></dl>
<p>Definition at line <a class="el" href="ntru__mem_8c_source.html#l00038">38</a> of file <a class="el" href="ntru__mem_8c_source.html">ntru_mem.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

13
ntru__mem_8c__incl.dot Normal file
View File

@ -0,0 +1,13 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_mem.c",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru_mem.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__mem_8h.html",tooltip="header for ntru_mem.c"];
Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="stdio.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

1
ntru__mem_8c__incl.md5 Normal file
View File

@ -0,0 +1 @@
e0ec6745fb39c92ebf752eca5cb5d782

170
ntru__mem_8c_source.html Normal file
View File

@ -0,0 +1,170 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_mem.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_mem.c</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__mem_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00029"></a>00029 <span class="preprocessor">#include &quot;<a class="code" href="ntru__mem_8h.html" title="header for ntru_mem.c">ntru_mem.h</a>&quot;</span>
<a name="l00030"></a>00030
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00033"></a>00033
<a name="l00034"></a>00034
<a name="l00035"></a>00035 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00036"></a>00036
<a name="l00037"></a>00037 <span class="keywordtype">void</span> *
<a name="l00038"></a><a class="code" href="ntru__mem_8h.html#a020790bf8b201fde92395cf975c0c691">00038</a> <a class="code" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a>(<span class="keywordtype">size_t</span> size)
<a name="l00039"></a>00039 {
<a name="l00040"></a>00040 <span class="keywordtype">void</span> *ptr;
<a name="l00041"></a>00041
<a name="l00042"></a>00042 ptr = malloc(size);
<a name="l00043"></a>00043
<a name="l00044"></a>00044 <span class="keywordflow">if</span> (size)
<a name="l00045"></a>00045 <span class="keywordflow">if</span> (!ptr) {
<a name="l00046"></a>00046 fprintf(stderr, <span class="stringliteral">&quot;failed to allocate memory, aborting!&quot;</span>);
<a name="l00047"></a>00047 abort();
<a name="l00048"></a>00048 }
<a name="l00049"></a>00049
<a name="l00050"></a>00050 <span class="keywordflow">return</span> ptr;
<a name="l00051"></a>00051 }
<a name="l00052"></a>00052
<a name="l00053"></a>00053 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00054"></a>00054
<a name="l00055"></a>00055 <span class="keywordtype">void</span> *
<a name="l00056"></a><a class="code" href="ntru__mem_8h.html#a37e0be4fd8d0b677a41c8287ef47885c">00056</a> <a class="code" href="ntru__mem_8c.html#a37e0be4fd8d0b677a41c8287ef47885c">ntru_calloc</a>(<span class="keywordtype">size_t</span> nmemb, <span class="keywordtype">size_t</span> size)
<a name="l00057"></a>00057 {
<a name="l00058"></a>00058 <span class="keywordtype">void</span> *ptr;
<a name="l00059"></a>00059
<a name="l00060"></a>00060 ptr = calloc(nmemb, size);
<a name="l00061"></a>00061
<a name="l00062"></a>00062 <span class="keywordflow">if</span> (size)
<a name="l00063"></a>00063 <span class="keywordflow">if</span> (!ptr) {
<a name="l00064"></a>00064 fprintf(stderr, <span class="stringliteral">&quot;failed to allocate memory, aborting!&quot;</span>);
<a name="l00065"></a>00065 abort();
<a name="l00066"></a>00066 }
<a name="l00067"></a>00067
<a name="l00068"></a>00068 <span class="keywordflow">return</span> ptr;
<a name="l00069"></a>00069 }
<a name="l00070"></a>00070
<a name="l00071"></a>00071 <span class="comment">/*------------------------------------------------------------------------*/</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

242
ntru__mem_8h.html Normal file
View File

@ -0,0 +1,242 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_mem.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_mem.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>header for <a class="el" href="ntru__mem_8c.html" title="memory management">ntru_mem.c</a>
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdlib.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_mem.h:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__mem_8h__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__mem_8h" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__mem_8h" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__mem_8h">
</map>
</div>
</div>
<p><a href="ntru__mem_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__mem_8h.html#a718b6446905826d711cb7ef00808bb4e">REALLOC</a>(ptr, size)</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__mem_8h.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a> (size_t size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__mem_8h.html#a37e0be4fd8d0b677a41c8287ef47885c">ntru_calloc</a> (size_t nmemb, size_t size)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>header for <a class="el" href="ntru__mem_8c.html" title="memory management">ntru_mem.c</a> </p>
<p>Header for the internal API of <a class="el" href="ntru__mem_8c.html" title="memory management">ntru_mem.c</a>. </p>
<p>Definition in file <a class="el" href="ntru__mem_8h_source.html">ntru_mem.h</a>.</p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="a718b6446905826d711cb7ef00808bb4e"></a><!-- doxytag: member="ntru_mem.h::REALLOC" ref="a718b6446905826d711cb7ef00808bb4e" args="(ptr, size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define <a class="el" href="ntru__mem_8h.html#a718b6446905826d711cb7ef00808bb4e">REALLOC</a></td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">ptr, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">size&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
void *tmp_ptr = NULL; \
tmp_ptr = realloc(ptr, size); \
if (tmp_ptr == NULL) { \
fprintf(stderr,<span class="stringliteral">&quot;NULL Pointer in %s [%d]&quot;</span>,__FILE__,__LINE__); \
abort(); \
} \
ptr = tmp_ptr; \
}
</pre></div><p>Realloc macro which checks if reallocation worked via a temporary pointer. </p>
<p>Definition at line <a class="el" href="ntru__mem_8h_source.html#l00038">38</a> of file <a class="el" href="ntru__mem_8h_source.html">ntru_mem.h</a>.</p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a37e0be4fd8d0b677a41c8287ef47885c"></a><!-- doxytag: member="ntru_mem.h::ntru_calloc" ref="a37e0be4fd8d0b677a41c8287ef47885c" args="(size_t nmemb, size_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="ntru__mem_8h.html#a37e0be4fd8d0b677a41c8287ef47885c">ntru_calloc</a> </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>nmemb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Allocate memory of size and return a void pointer. The memory is zeroed.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">nmemb</td><td>amount of blocks to allocate </td></tr>
<tr><td class="paramname">size</td><td>of the memory blocks to allocate in bytes </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>void pointer to the beginning of the allocated memory block </dd></dl>
<p>Definition at line <a class="el" href="ntru__mem_8c_source.html#l00056">56</a> of file <a class="el" href="ntru__mem_8c_source.html">ntru_mem.c</a>.</p>
</div>
</div>
<a class="anchor" id="a020790bf8b201fde92395cf975c0c691"></a><!-- doxytag: member="ntru_mem.h::ntru_malloc" ref="a020790bf8b201fde92395cf975c0c691" args="(size_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="ntru__mem_8h.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a> </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Allocate memory of size and return a void pointer.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">size</td><td>of the memory to allocate in bytes </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>void pointer to the beginning of the allocated memory block </dd></dl>
<p>Definition at line <a class="el" href="ntru__mem_8c_source.html#l00038">38</a> of file <a class="el" href="ntru__mem_8c_source.html">ntru_mem.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

8
ntru__mem_8h__incl.dot Normal file
View File

@ -0,0 +1,8 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_mem.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
}

1
ntru__mem_8h__incl.md5 Normal file
View File

@ -0,0 +1 @@
3452728e2a5e42b766e2e73bbd8432b8

153
ntru__mem_8h_source.html Normal file
View File

@ -0,0 +1,153 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_mem.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_mem.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__mem_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef NTRU_MEM_H</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define NTRU_MEM_H</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00032"></a>00032
<a name="l00033"></a>00033
<a name="l00038"></a><a class="code" href="ntru__mem_8h.html#a718b6446905826d711cb7ef00808bb4e">00038</a> <span class="preprocessor">#define REALLOC(ptr, size) \</span>
<a name="l00039"></a>00039 <span class="preprocessor">{ \</span>
<a name="l00040"></a>00040 <span class="preprocessor"> void *tmp_ptr = NULL; \</span>
<a name="l00041"></a>00041 <span class="preprocessor"> tmp_ptr = realloc(ptr, size); \</span>
<a name="l00042"></a>00042 <span class="preprocessor"> if (tmp_ptr == NULL) { \</span>
<a name="l00043"></a>00043 <span class="preprocessor"> fprintf(stderr,&quot;NULL Pointer in %s [%d]&quot;,__FILE__,__LINE__); \</span>
<a name="l00044"></a>00044 <span class="preprocessor"> abort(); \</span>
<a name="l00045"></a>00045 <span class="preprocessor"> } \</span>
<a name="l00046"></a>00046 <span class="preprocessor"> ptr = tmp_ptr; \</span>
<a name="l00047"></a>00047 <span class="preprocessor">}</span>
<a name="l00048"></a>00048 <span class="preprocessor"></span>
<a name="l00049"></a>00049
<a name="l00057"></a>00057 <span class="keywordtype">void</span> *
<a name="l00058"></a>00058 <a class="code" href="ntru__mem_8c.html#a020790bf8b201fde92395cf975c0c691">ntru_malloc</a>(<span class="keywordtype">size_t</span> size);
<a name="l00059"></a>00059
<a name="l00068"></a>00068 <span class="keywordtype">void</span> *
<a name="l00069"></a>00069 <a class="code" href="ntru__mem_8c.html#a37e0be4fd8d0b677a41c8287ef47885c">ntru_calloc</a>(<span class="keywordtype">size_t</span> nmemb, <span class="keywordtype">size_t</span> size);
<a name="l00070"></a>00070
<a name="l00071"></a>00071
<a name="l00072"></a>00072 <span class="preprocessor">#endif </span><span class="comment">/* NTRU_MEM_H */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

151
ntru__params_8h.html Normal file
View File

@ -0,0 +1,151 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_params.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_params.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>NTRU parameters.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_params.h:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__params_8h__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__params_8h" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__params_8h" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__params_8h">
</map>
</div>
</div>
<p><a href="ntru__params_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structntru__params.html">ntru_params</a></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structntru__params.html">ntru_params</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__params_8h.html#a2f326c88fc033eca78a47ee8d387c592">ntru_params</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>NTRU parameters. </p>
<p>This file defines the <a class="el" href="structntru__params.html">ntru_params</a> and related data types. </p>
<p>Definition in file <a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>.</p>
</div><hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="a2f326c88fc033eca78a47ee8d387c592"></a><!-- doxytag: member="ntru_params.h::ntru_params" ref="a2f326c88fc033eca78a47ee8d387c592" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structntru__params.html">ntru_params</a> <a class="el" href="structntru__params.html">ntru_params</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="ntru__params_8h_source.html#l00036">36</a> of file <a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

View File

@ -0,0 +1,8 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_params.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
}

View File

@ -0,0 +1 @@
fa96686c8369bd3430304d00772b916a

145
ntru__params_8h_source.html Normal file
View File

@ -0,0 +1,145 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_params.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_params.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="ntru__params_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2014 FH Bielefeld</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of a FH Bielefeld project.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,</span>
<a name="l00019"></a>00019 <span class="comment"> * MA 02110-1301 USA</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00029"></a>00029 <span class="preprocessor">#ifndef NTRU_PARAMS_H</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define NTRU_PARAMS_H</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span>
<a name="l00032"></a>00032
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
<a name="l00034"></a>00034
<a name="l00035"></a>00035
<a name="l00036"></a><a class="code" href="ntru__params_8h.html#a2f326c88fc033eca78a47ee8d387c592">00036</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structntru__params.html">ntru_params</a> <a class="code" href="structntru__params.html">ntru_params</a>;
<a name="l00037"></a>00037
<a name="l00038"></a>00038
<a name="l00043"></a><a class="code" href="structntru__params.html">00043</a> <span class="keyword">struct </span><a class="code" href="structntru__params.html">ntru_params</a> {
<a name="l00048"></a><a class="code" href="structntru__params.html#afb8425ee3db2b917b3c4e8d9b75bd3ff">00048</a> uint32_t <a class="code" href="structntru__params.html#afb8425ee3db2b917b3c4e8d9b75bd3ff">N</a>;
<a name="l00052"></a><a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">00052</a> uint32_t <a class="code" href="structntru__params.html#a29680750bda49dc93e61a752b2f2a0f7">q</a>;
<a name="l00056"></a><a class="code" href="structntru__params.html#a41b368825e1eb126604e13e8f549ec8f">00056</a> uint32_t <a class="code" href="structntru__params.html#a41b368825e1eb126604e13e8f549ec8f">p</a>;
<a name="l00057"></a>00057 };
<a name="l00058"></a>00058
<a name="l00059"></a>00059
<a name="l00060"></a>00060 <span class="preprocessor">#endif </span><span class="comment">/* NTRU_PARAMS_H */</span>
</pre></div></div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

777
ntru__poly_8c.html Normal file
View File

@ -0,0 +1,777 @@
<!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"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_poly.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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&#160;Page</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">/home/travis/build/hasufell/pqc/src/ntru_poly.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>operations on polynomials
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="ntru__err_8h_source.html">ntru_err.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__mem_8h_source.html">ntru_mem.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__params_8h_source.html">ntru_params.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ntru__poly_8h_source.html">ntru_poly.h</a>&quot;</code><br/>
<code>#include &lt;stdarg.h&gt;</code><br/>
<code>#include &lt;stdbool.h&gt;</code><br/>
<code>#include &lt;stdint.h&gt;</code><br/>
<code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;sys/types.h&gt;</code><br/>
<code>#include &lt;fmpz_poly.h&gt;</code><br/>
<code>#include &lt;fmpz.h&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for ntru_poly.c:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__poly_8c__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__poly_8c" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__poly_8c" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__poly_8c">
</map>
</div>
</div>
<p><a href="ntru__poly_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a891af13dc4355c9fab9ca3fafcac8054">poly_mod2_to_modq</a> (const fmpz_poly_t a, fmpz_poly_t Fq, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#aaaac83ec72414aa208832442657c3520">fmpz_cmp_si_n</a> (const fmpz_t f, slong g)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a20f86085d5eb5372fd25dc270069d38c">poly_new</a> (fmpz_poly_t new_poly, int const *const c, const size_t len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a27ff2116f70bcbf5028219adcae4c5f0">poly_delete</a> (fmpz_poly_t poly)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a3f53c63383ff301b20dcede0783869a7">poly_delete_array</a> (fmpz_poly_t **poly_array)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a83297bc2ab5b6e7ce42553570dd8268f">poly_delete_all</a> (fmpz_poly_t poly,...)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ae7d0d8364dba689df3fb4904610634cc">fmpz_poly_mod_unsigned</a> (fmpz_poly_t a, const uint32_t mod)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a7c4f5e96355518dc97a23da8f34b661a">fmpz_poly_mod</a> (fmpz_poly_t a, const uint32_t mod)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ab1f966fe680d1ce7c19c8c812d1932a7">fmpz_poly_set_coeff_fmpz_n</a> (fmpz_poly_t poly, slong n, const fmpz_t x)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a59da1b7962829af8f18d58c05f588606">fmpz_invmod_ui</a> (fmpz_t f, const fmpz_t g, const uint32_t mod)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ad2a11e832808ef1cfee0eed1cc02f4b9">fmpz_add_n</a> (fmpz_t f, const fmpz_t g, const fmpz_t h)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ae96f479ddd97af709a0ed50817fd3fb3">poly_starmultiply</a> (const fmpz_poly_t a, const fmpz_poly_t b, fmpz_poly_t c, const <a class="el" href="structntru__params.html">ntru_params</a> *params, uint32_t modulus)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ace66beb516186e52f9b5b1ed8a397849">poly_inverse_poly_q</a> (const fmpz_poly_t a, fmpz_poly_t Fq, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#ae77b2014df42e5ed612206d5930ac608">poly_inverse_poly_p</a> (const fmpz_poly_t a, fmpz_poly_t Fp, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#a80a8ce0f2944bc3df94291ef2f781498">poly_draw</a> (const fmpz_poly_t poly)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly_8c.html#aec098d00160d2d502eb1f8a7c3fa5453">poly_draw_pretty</a> (const fmpz_poly_t poly)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>operations on polynomials </p>
<p>This files purpose is to handle polynomials in general, allowing modification, arithmetic and common algorithms like inverting them. </p>
<p>Definition in file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="ad2a11e832808ef1cfee0eed1cc02f4b9"></a><!-- doxytag: member="ntru_poly.c::fmpz_add_n" ref="ad2a11e832808ef1cfee0eed1cc02f4b9" args="(fmpz_t f, const fmpz_t g, const fmpz_t h)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru__poly_8h.html#ad2a11e832808ef1cfee0eed1cc02f4b9">fmpz_add_n</a> </td>
<td>(</td>
<td class="paramtype">fmpz_t&#160;</td>
<td class="paramname"><em>f</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_t&#160;</td>
<td class="paramname"><em>g</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_t&#160;</td>
<td class="paramname"><em>h</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The same as fmpz_add() except that it handles NULL pointer for g and h. </p>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00222">222</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="aaaac83ec72414aa208832442657c3520"></a><!-- doxytag: member="ntru_poly.c::fmpz_cmp_si_n" ref="aaaac83ec72414aa208832442657c3520" args="(const fmpz_t f, slong g)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="ntru__poly_8h.html#aaaac83ec72414aa208832442657c3520">fmpz_cmp_si_n</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_t&#160;</td>
<td class="paramname"><em>f</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">slong&#160;</td>
<td class="paramname"><em>g</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The same as fmpz_cmp_si except that it will interpret f as a 0-coefficient if it is a NULL pointer.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">f</td><td>the fmpz value to use for comparison </td></tr>
<tr><td class="paramname">g</td><td>the signed long integer to use for comparison </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>negative value if f &lt; g, positiv evalue if g &lt; f, otherwise 0 </dd></dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00093">93</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a59da1b7962829af8f18d58c05f588606"></a><!-- doxytag: member="ntru_poly.c::fmpz_invmod_ui" ref="a59da1b7962829af8f18d58c05f588606" args="(fmpz_t f, const fmpz_t g, const uint32_t mod)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="ntru__poly_8h.html#a59da1b7962829af8f18d58c05f588606">fmpz_invmod_ui</a> </td>
<td>(</td>
<td class="paramtype">fmpz_t&#160;</td>
<td class="paramname"><em>f</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_t&#160;</td>
<td class="paramname"><em>g</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t&#160;</td>
<td class="paramname"><em>mod</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Wrapper around fmpz_invmod() where we convert mod to an fmpz_t implicitly.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">f</td><td>result [out] </td></tr>
<tr><td class="paramname">g</td><td>the inverse </td></tr>
<tr><td class="paramname">mod</td><td>the modulo </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00210">210</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a7c4f5e96355518dc97a23da8f34b661a"></a><!-- doxytag: member="ntru_poly.c::fmpz_poly_mod" ref="a7c4f5e96355518dc97a23da8f34b661a" args="(fmpz_poly_t a, const uint32_t mod)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru__poly_8h.html#a7c4f5e96355518dc97a23da8f34b661a">fmpz_poly_mod</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t&#160;</td>
<td class="paramname"><em>mod</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Calls fmpz_poly_get_nmod_poly() and fmpz_poly_set_nmod_poly() in a row, so we don't have to deal with the intermediate nmod_poly_t type if we don't need it.</p>
<p>This also normalises the coefficients to the interval -m/2 &lt;= r &lt; m/2.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">a</td><td>the polynom to apply the modulus to </td></tr>
<tr><td class="paramname">mod</td><td>the modulus </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00182">182</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="ae7d0d8364dba689df3fb4904610634cc"></a><!-- doxytag: member="ntru_poly.c::fmpz_poly_mod_unsigned" ref="ae7d0d8364dba689df3fb4904610634cc" args="(fmpz_poly_t a, const uint32_t mod)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru__poly_8h.html#ae7d0d8364dba689df3fb4904610634cc">fmpz_poly_mod_unsigned</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t&#160;</td>
<td class="paramname"><em>mod</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Calls fmpz_poly_get_nmod_poly() and fmpz_poly_set_nmod_poly_unsigned() in a row, so we don't have to deal with the intermediate nmod_poly_t type if we don't need it.</p>
<p>This also normalises the coefficients to the interval 0 &lt;= r &lt; m.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">a</td><td>the polynom to apply the modulus to </td></tr>
<tr><td class="paramname">mod</td><td>the modulus </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00166">166</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="ab1f966fe680d1ce7c19c8c812d1932a7"></a><!-- doxytag: member="ntru_poly.c::fmpz_poly_set_coeff_fmpz_n" ref="ab1f966fe680d1ce7c19c8c812d1932a7" args="(fmpz_poly_t poly, slong n, const fmpz_t x)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru__poly_8h.html#ab1f966fe680d1ce7c19c8c812d1932a7">fmpz_poly_set_coeff_fmpz_n</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>poly</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">slong&#160;</td>
<td class="paramname"><em>n</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_t&#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>The same as fmpz_poly_set_coeff_fmpz() except that it will take care of null-pointer coefficients and use fmpz_poly_set_coeff_si() in that case.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">poly</td><td>the polynom we want to change a coefficient of </td></tr>
<tr><td class="paramname">n</td><td>the coefficient we want to set </td></tr>
<tr><td class="paramname">x</td><td>the value to assign to the coefficient </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00198">198</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a27ff2116f70bcbf5028219adcae4c5f0"></a><!-- doxytag: member="ntru_poly.c::poly_delete" ref="a27ff2116f70bcbf5028219adcae4c5f0" args="(fmpz_poly_t poly)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#a27ff2116f70bcbf5028219adcae4c5f0">poly_delete</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>poly</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This deletes the internal structure of a polynomial, and frees the pointer.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">poly</td><td>the polynomial to delete </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00123">123</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a83297bc2ab5b6e7ce42553570dd8268f"></a><!-- doxytag: member="ntru_poly.c::poly_delete_all" ref="a83297bc2ab5b6e7ce42553570dd8268f" args="(fmpz_poly_t poly,...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#a83297bc2ab5b6e7ce42553570dd8268f">poly_delete_all</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>poly</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This deletes the internal structure of all polynomials, and frees the pointers. You must call this with NULL as last argument!</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">poly</td><td>the polynomial to delete </td></tr>
<tr><td class="paramname">...</td><td>follow up polynomials </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00149">149</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a3f53c63383ff301b20dcede0783869a7"></a><!-- doxytag: member="ntru_poly.c::poly_delete_array" ref="a3f53c63383ff301b20dcede0783869a7" args="(fmpz_poly_t **poly_array)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#a3f53c63383ff301b20dcede0783869a7">poly_delete_array</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t **&#160;</td>
<td class="paramname"><em>poly_array</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Delete the internal structure of a polynomial array which must be NULL terminated. It is expected that poly_array is not on the stack and was obtained by a function like ascii_to_poly().</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">poly_array</td><td>the polynomial array </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00131">131</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a80a8ce0f2944bc3df94291ef2f781498"></a><!-- doxytag: member="ntru_poly.c::poly_draw" ref="a80a8ce0f2944bc3df94291ef2f781498" args="(const fmpz_poly_t poly)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#a80a8ce0f2944bc3df94291ef2f781498">poly_draw</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>poly</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Draws a polynomial to stdout.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">poly</td><td>draw this </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00574">574</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="aec098d00160d2d502eb1f8a7c3fa5453"></a><!-- doxytag: member="ntru_poly.c::poly_draw_pretty" ref="aec098d00160d2d502eb1f8a7c3fa5453" args="(const fmpz_poly_t poly)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#aec098d00160d2d502eb1f8a7c3fa5453">poly_draw_pretty</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>poly</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Draws a polynomial to stdout, in pretty format.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">poly</td><td>draw this </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00583">583</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="ae77b2014df42e5ed612206d5930ac608"></a><!-- doxytag: member="ntru_poly.c::poly_inverse_poly_p" ref="ae77b2014df42e5ed612206d5930ac608" args="(const fmpz_poly_t a, fmpz_poly_t Fp, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="ntru__poly_8h.html#ae77b2014df42e5ed612206d5930ac608">poly_inverse_poly_p</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>Fp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Compute the inverse of a polynomial in (Z/pZ)[X]/(X^N - 1). See NTRU Cryptosystems Tech Report #014 "Almost Inverses
and Fast NTRU Key Creation."</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">a</td><td>polynomial to invert </td></tr>
<tr><td class="paramname">Fp</td><td>polynomial [out] </td></tr>
<tr><td class="paramname">params</td><td>NTRU parameters </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if invertible, false if not </dd></dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00409">409</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="ace66beb516186e52f9b5b1ed8a397849"></a><!-- doxytag: member="ntru_poly.c::poly_inverse_poly_q" ref="ace66beb516186e52f9b5b1ed8a397849" args="(const fmpz_poly_t a, fmpz_poly_t Fq, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="ntru__poly_8h.html#ace66beb516186e52f9b5b1ed8a397849">poly_inverse_poly_q</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>Fq</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Compute the inverse of a polynomial in modulo a power of 2, which is q. This is based off the pseudo-code for "Inversion
in (Z/2Z)[X](X^N - 1)" and "Inversion in (Z/p^r Z)[X](X^N - 1)". See NTRU Cryptosystems Tech Report #014 "Almost Inverses
and Fast NTRU Key Creation."</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">a</td><td>polynomial to invert (is allowed to be the same as param Fq) </td></tr>
<tr><td class="paramname">Fq</td><td>polynomial [out] </td></tr>
<tr><td class="paramname">params</td><td>NTRU parameters </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if invertible, false if not </dd></dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00297">297</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a891af13dc4355c9fab9ca3fafcac8054"></a><!-- doxytag: member="ntru_poly.c::poly_mod2_to_modq" ref="a891af13dc4355c9fab9ca3fafcac8054" args="(const fmpz_poly_t a, fmpz_poly_t Fq, const ntru_params *params)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="ntru__poly_8c.html#a891af13dc4355c9fab9ca3fafcac8054">poly_mod2_to_modq</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>Fq</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Find the inverse polynomial modulo a power of 2, which is q.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">a</td><td>polynomial to invert </td></tr>
<tr><td class="paramname">Fq</td><td>polynomial [out] </td></tr>
<tr><td class="paramname">params</td><td>NTRU parameters </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00063">63</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="a20f86085d5eb5372fd25dc270069d38c"></a><!-- doxytag: member="ntru_poly.c::poly_new" ref="a20f86085d5eb5372fd25dc270069d38c" args="(fmpz_poly_t new_poly, int const *const c, const size_t len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru_8h.html#a20f86085d5eb5372fd25dc270069d38c">poly_new</a> </td>
<td>(</td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>new_poly</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int const *const&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initializes and builds a polynomial with the coefficient values of c[] of size len within NTRU parameters and returns a newly allocated polynomial. For an empty polynom, both c and len can be NULL/0.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">new_poly</td><td>the polynomial to initialize and fill with coefficients [out] </td></tr>
<tr><td class="paramname">c</td><td>array of polynomial coefficients, can be NULL </td></tr>
<tr><td class="paramname">len</td><td>size of the coefficient array, can be 0 </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>newly allocated polynomial pointer, must be freed with fmpz_poly_clear() </dd></dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00110">110</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
<a class="anchor" id="ae96f479ddd97af709a0ed50817fd3fb3"></a><!-- doxytag: member="ntru_poly.c::poly_starmultiply" ref="ae96f479ddd97af709a0ed50817fd3fb3" args="(const fmpz_poly_t a, const fmpz_poly_t b, fmpz_poly_t c, const ntru_params *params, uint32_t modulus)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="ntru__poly_8h.html#ae96f479ddd97af709a0ed50817fd3fb3">poly_starmultiply</a> </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmpz_poly_t&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structntru__params.html">ntru_params</a> *&#160;</td>
<td class="paramname"><em>params</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>modulus</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Starmultiplication, as follows: c = a * b mod (x^N 1)</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">a</td><td>polynom to multiply (can be the same as c) </td></tr>
<tr><td class="paramname">b</td><td>polynom to multiply </td></tr>
<tr><td class="paramname">c</td><td>polynom [out] </td></tr>
<tr><td class="paramname">params</td><td>NTRU parameters </td></tr>
<tr><td class="paramname">modulus</td><td>whether we use p or q </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="ntru__poly_8c_source.html#l00239">239</a> of file <a class="el" href="ntru__poly_8c_source.html">ntru_poly.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Defines</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>
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 21:44:12 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>

39
ntru__poly_8c__incl.dot Normal file
View File

@ -0,0 +1,39 @@
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="/home/travis/build/hasufell/pqc/src/ntru_poly.c",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="ntru_err.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__err_8h.html",tooltip="error handling"];
Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node3 [label="ntru_mem.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__mem_8h.html",tooltip="header for ntru_mem.c"];
Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node4 [label="stdlib.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node5 [label="ntru_params.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__params_8h.html",tooltip="NTRU parameters."];
Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node6 [label="stdint.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 [label="ntru_poly.h",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$ntru__poly_8h.html",tooltip="header for ntru_poly.c"];
Node7 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node8 [label="stdarg.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node7 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="stdbool.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node7 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node7 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node10 [label="fmpz_poly.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node11 [label="stdio.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node12 [label="sys/types.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node13 [label="fmpz.h",height=0.2,width=0.4,color="grey75", fillcolor="white", style="filled"];
}

1
ntru__poly_8c__incl.md5 Normal file
View File

@ -0,0 +1 @@
cf2b10a3d4d39122f153cf5ffd964630

Some files were not shown because too many files have changed in this diff Show More