pqc/ntru__poly__ascii_8c.html

442 lines
24 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.7"/>
<title>post quantum cryptography: /home/travis/build/hasufell/pqc/src/ntru_poly_ascii.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">post quantum cryptography
</div>
<div id="projectbrief">Highly optimized implementation of the NTRUEncrypt algorithm</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
<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>
<!-- 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>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">ntru_poly_ascii.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>polynomials to acii
<a href="#details">More...</a></p>
<div class="textblock"><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__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_poly_ascii.c:</div>
<div class="dyncontent">
<div class="center"><img src="ntru__poly__ascii_8c__incl.png" border="0" usemap="#_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__poly__ascii_8c" alt=""/></div>
<map name="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__poly__ascii_8c" id="_2home_2travis_2build_2hasufell_2pqc_2src_2ntru__poly__ascii_8c">
<area shape="rect" id="node3" href="ntru__poly__ascii_8h.html" title="header for ntru_poly_ascii.c " alt="" coords="276,117,396,147"/><area shape="rect" id="node5" href="ntru__common_8h.html" title="common macros/functions " alt="" coords="70,195,182,224"/><area shape="rect" id="node9" href="ntru__params_8h.html" title="NTRU parameters. " alt="" coords="526,195,630,224"/><area shape="rect" id="node13" href="ntru__string_8h.html" title="header for ntru_string.c " alt="" coords="291,195,384,224"/><area shape="rect" id="node21" href="ntru__mem_8h.html" title="header for ntru_mem.c " alt="" coords="30,117,120,147"/><area shape="rect" id="node25" href="ntru__poly_8h.html" title="header for ntru_poly.c " alt="" coords="660,117,746,147"/><area shape="rect" id="node27" href="ntru__err_8h.html" title="error handling " alt="" coords="947,195,1024,224"/></map>
</div>
</div>
<p><a href="ntru__poly__ascii_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:afd3f036287b4f62846c1a236426d73e1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structstring.html">string</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="ntru__poly__ascii_8c.html#afd3f036287b4f62846c1a236426d73e1">get_bin_arr_to_ascii</a> (const char *binary_rep)</td></tr>
<tr class="separator:afd3f036287b4f62846c1a236426d73e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d86ab2dede39b332d4149e16b2046b8"><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__poly__ascii_8c.html#a0d86ab2dede39b332d4149e16b2046b8">bin_poly_to_ascii</a> (const fmpz_poly_t poly, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr class="separator:a0d86ab2dede39b332d4149e16b2046b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9464c96c3ebec6ee716c604fdc4ad21"><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__poly__ascii_8c.html#ab9464c96c3ebec6ee716c604fdc4ad21">bin_poly_arr_to_ascii</a> (const fmpz_poly_t **bin_poly_arr, const uint32_t poly_c, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr class="separator:ab9464c96c3ebec6ee716c604fdc4ad21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4d233591b7e51d6cf787edd3bfa91e2"><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__poly__ascii_8c.html#aa4d233591b7e51d6cf787edd3bfa91e2">poly_to_ascii</a> (const fmpz_poly_t poly, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr class="separator:aa4d233591b7e51d6cf787edd3bfa91e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa141976b665b94c0db9912bc50de4a1"><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__poly__ascii_8c.html#afa141976b665b94c0db9912bc50de4a1">poly_arr_to_ascii</a> (const fmpz_poly_t **poly_array, const uint32_t poly_c, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr class="separator:afa141976b665b94c0db9912bc50de4a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ba0179e3ae0d5e721ff8429a8265e80"><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__poly__ascii_8c.html#a4ba0179e3ae0d5e721ff8429a8265e80">poly_to_base64</a> (const fmpz_poly_t poly, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr class="separator:a4ba0179e3ae0d5e721ff8429a8265e80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dc14698073df2e46e6540cbff870fc7"><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__poly__ascii_8c.html#a0dc14698073df2e46e6540cbff870fc7">poly_arr_to_base64</a> (const fmpz_poly_t **poly_array, const uint32_t poly_c, const <a class="el" href="structntru__params.html">ntru_params</a> *params)</td></tr>
<tr class="separator:a0dc14698073df2e46e6540cbff870fc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>polynomials to acii </p>
<p>This file allows to convert polynomials to ascii strings, including base64 encoded. </p>
<p>Definition in file <a class="el" href="ntru__poly__ascii_8c_source.html">ntru_poly_ascii.c</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ab9464c96c3ebec6ee716c604fdc4ad21"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* bin_poly_arr_to_ascii </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t **&#160;</td>
<td class="paramname"><em>bin_poly_arr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t&#160;</td>
<td class="paramname"><em>poly_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>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert an array of binary polynomials back to a real string. The polynomial coefficients represent a binary format of the ascii string with the following mapping:</p>
<p>1 =&gt; 1</p>
<p>-1 =&gt; 0</p>
<p>2 =&gt; 0</p>
<p>The 2's are only used for filling up the last polynomial, so they will just end up as '\0's at the end of the string and will not confuse the result.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bin_poly_arr</td><td>the array of polynomials </td></tr>
<tr><td class="paramname">poly_c</td><td>the amount of polynomials in bin_poly_arr </td></tr>
<tr><td class="paramname">params</td><td>the NTRU parameters </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the real string, newly allocated </dd></dl>
<p>Definition at line <a class="el" href="ntru__poly__ascii_8c_source.html#l00143">143</a> of file <a class="el" href="ntru__poly__ascii_8c_source.html">ntru_poly_ascii.c</a>.</p>
</div>
</div>
<a class="anchor" id="a0d86ab2dede39b332d4149e16b2046b8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* bin_poly_to_ascii </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>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 single binary polynomial back to a real string. The polynomial coefficients represent a binary format of the ascii string with the following mapping:</p>
<p>1 =&gt; 1</p>
<p>-1 =&gt; 0</p>
<p>2 =&gt; 0</p>
<p>The 2's are only used for filling up the rest of the polynomial, so they will just end up as '\0's at the end of the string and will not confuse the result.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">poly</td><td>the binary polynomial to convert </td></tr>
<tr><td class="paramname">params</td><td>the NTRU parameters </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the real string, newly allocated </dd></dl>
<p>Definition at line <a class="el" href="ntru__poly__ascii_8c_source.html#l00114">114</a> of file <a class="el" href="ntru__poly__ascii_8c_source.html">ntru_poly_ascii.c</a>.</p>
</div>
</div>
<a class="anchor" id="afd3f036287b4f62846c1a236426d73e1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="structstring.html">string</a> * get_bin_arr_to_ascii </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>binary_rep</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Converts a binary representation of multiple concatenated integers to the corresponding array of ascii chars, which is NULL-terminated.</p>
<p>It reads in 8bit chunks, as in:</p>
<p>10110101|00111100|01011001 =&gt; 90|60|89 =&gt; "Z&lt;Y"</p>
<p>Chunks that are 00000000 are stripped from the result.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">binary_rep</td><td>the binary representation of multiple integers concatenated </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string of corresponding ascii-chars, newly allocated </dd></dl>
<p>Definition at line <a class="el" href="ntru__poly__ascii_8c_source.html#l00069">69</a> of file <a class="el" href="ntru__poly__ascii_8c_source.html">ntru_poly_ascii.c</a>.</p>
</div>
</div>
<a class="anchor" id="afa141976b665b94c0db9912bc50de4a1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* poly_arr_to_ascii </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t **&#160;</td>
<td class="paramname"><em>poly_array</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t&#160;</td>
<td class="paramname"><em>poly_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>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert an array of polynomials back to a real string. The polynomial coefficients are expected to be in the range [0, q-1] and will be casted back to chars without any mapping.</p>
<p>Trailing q coefficients are only used for filling up the rest of a polynomial with '\0', so they will not confuse the result.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">poly_array</td><td>the array of polynomials </td></tr>
<tr><td class="paramname">poly_c</td><td>the amount of polynomials in poly_arr </td></tr>
<tr><td class="paramname">params</td><td>the NTRU parameters </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the real string, newly allocated </dd></dl>
<p>Definition at line <a class="el" href="ntru__poly__ascii_8c_source.html#l00203">203</a> of file <a class="el" href="ntru__poly__ascii_8c_source.html">ntru_poly_ascii.c</a>.</p>
</div>
</div>
<a class="anchor" id="a0dc14698073df2e46e6540cbff870fc7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* poly_arr_to_base64 </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t **&#160;</td>
<td class="paramname"><em>poly_arr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t&#160;</td>
<td class="paramname"><em>poly_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>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert an array of polynomials back to a real string which is base64 encoded. The polynomial coefficients are expected to be in the range [0, q-1] and will be casted back to chars without any mapping.</p>
<p>Trailing q coefficients are only used for filling up the rest of a polynomial with '\0', so they will not confuse the result.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">poly_arr</td><td>the array of polynomials </td></tr>
<tr><td class="paramname">poly_c</td><td>the amount of polynomials in poly_arr </td></tr>
<tr><td class="paramname">params</td><td>the NTRU parameters </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the real string, newly allocated </dd></dl>
<p>Definition at line <a class="el" href="ntru__poly__ascii_8c_source.html#l00264">264</a> of file <a class="el" href="ntru__poly__ascii_8c_source.html">ntru_poly_ascii.c</a>.</p>
</div>
</div>
<a class="anchor" id="aa4d233591b7e51d6cf787edd3bfa91e2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* poly_to_ascii </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>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 single polynom back to a real string which is ascii encoded (full 256 C char spectrum). The polynomial coefficients are expected to be in the range [0, q-1] and will be casted back to chars without any mapping.</p>
<p>Trailing q coefficients are only used for filling up the rest of a polynomial with '\0', so they will not confuse the result.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">poly</td><td>the polynomial to convert </td></tr>
<tr><td class="paramname">params</td><td>the NTRU parameters </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the real string, newly allocated </dd></dl>
<p>Definition at line <a class="el" href="ntru__poly__ascii_8c_source.html#l00180">180</a> of file <a class="el" href="ntru__poly__ascii_8c_source.html">ntru_poly_ascii.c</a>.</p>
</div>
</div>
<a class="anchor" id="a4ba0179e3ae0d5e721ff8429a8265e80"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structstring.html">string</a>* poly_to_base64 </td>
<td>(</td>
<td class="paramtype">const fmpz_poly_t&#160;</td>
<td class="paramname"><em>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 single polynom back to a real string which is base64 encoded. The polynomial coefficients are expected to be in the range [0, q-1] and will be casted back to chars without any mapping.</p>
<p>Trailing q coefficients are only used for filling up the rest of a polynomial with '\0', so they will not confuse the result.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">poly</td><td>the polynomial to convert </td></tr>
<tr><td class="paramname">params</td><td>the NTRU parameters </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the real string, newly allocated </dd></dl>
<p>Definition at line <a class="el" href="ntru__poly__ascii_8c_source.html#l00237">237</a> of file <a class="el" href="ntru__poly__ascii_8c_source.html">ntru_poly_ascii.c</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 8 2014 23:33:23 for post quantum cryptography by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</small></address>
</body>
</html>