pqc/ntru__encrypt_8c.html
travis-ci ca575303bf Lastest doxygen docs updated
travis build: 25
	commit: 05b02f5624f2054cdf2e802f63c834162c2fe05b
	auto-pushed to gh-pages
2014-06-08 21:44:14 +00:00

258 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>