blob: 31f26a638b3ef564ee5001ce52660eeae2c81afc [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>AMCL: utils.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/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">AMCL
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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">utils.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>AMCL Support functions for M-Pin servers.
<a href="#details">More...</a></p>
<div class="textblock"><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 &quot;amcl.h&quot;</code><br />
<code>#include &quot;<a class="el" href="utils_8h_source.html">utils.h</a>&quot;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ae83713794e16e5aaca8c26fa3b2a53e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#ae83713794e16e5aaca8c26fa3b2a53e0">amcl_hex2bin</a> (const char *src, char *dst, int src_len)</td></tr>
<tr class="memdesc:ae83713794e16e5aaca8c26fa3b2a53e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode hex value. <a href="#ae83713794e16e5aaca8c26fa3b2a53e0">More...</a><br /></td></tr>
<tr class="separator:ae83713794e16e5aaca8c26fa3b2a53e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3f99e6869645e7a199f5455d1b8b5ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#af3f99e6869645e7a199f5455d1b8b5ff">amcl_bin2hex</a> (char *src, char *dst, int src_len)</td></tr>
<tr class="memdesc:af3f99e6869645e7a199f5455d1b8b5ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode binary string. <a href="#af3f99e6869645e7a199f5455d1b8b5ff">More...</a><br /></td></tr>
<tr class="separator:af3f99e6869645e7a199f5455d1b8b5ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a2cf72b4b90aacd14063ed1b294658d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#a0a2cf72b4b90aacd14063ed1b294658d">amcl_print_hex</a> (char *src, int src_len)</td></tr>
<tr class="memdesc:a0a2cf72b4b90aacd14063ed1b294658d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print encoded binary string in hex. <a href="#a0a2cf72b4b90aacd14063ed1b294658d">More...</a><br /></td></tr>
<tr class="separator:a0a2cf72b4b90aacd14063ed1b294658d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a453d001cb992b62b8cf2620a4a1f4778"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#a453d001cb992b62b8cf2620a4a1f4778">generateOTP</a> (<a class="el" href="structcsprng.html">csprng</a> *RNG)</td></tr>
<tr class="memdesc:a453d001cb992b62b8cf2620a4a1f4778"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random six digit one time password. <a href="#a453d001cb992b62b8cf2620a4a1f4778">More...</a><br /></td></tr>
<tr class="separator:a453d001cb992b62b8cf2620a4a1f4778"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac29f2d3dfb9593dba84f2bfe7051aba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8c.html#aac29f2d3dfb9593dba84f2bfe7051aba">generateRandom</a> (<a class="el" href="structcsprng.html">csprng</a> *RNG, <a class="el" href="structoctet.html">octet</a> *randomValue)</td></tr>
<tr class="memdesc:aac29f2d3dfb9593dba84f2bfe7051aba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random Octet. <a href="#aac29f2d3dfb9593dba84f2bfe7051aba">More...</a><br /></td></tr>
<tr class="separator:aac29f2d3dfb9593dba84f2bfe7051aba"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Mike Scott </dd>
<dd>
Kealan McCusker </dd></dl>
<dl class="section date"><dt>Date</dt><dd>28th July 2016 LICENSE</dd></dl>
<p>Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at</p>
<p><a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="af3f99e6869645e7a199f5455d1b8b5ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3f99e6869645e7a199f5455d1b8b5ff">&#9670;&nbsp;</a></span>amcl_bin2hex()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void amcl_bin2hex </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>src_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Encode binary string.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">src</td><td>Binary string </td></tr>
<tr><td class="paramname">dst</td><td>Hex encoded string </td></tr>
<tr><td class="paramname">src_len</td><td>length binary string </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ae83713794e16e5aaca8c26fa3b2a53e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae83713794e16e5aaca8c26fa3b2a53e0">&#9670;&nbsp;</a></span>amcl_hex2bin()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void amcl_hex2bin </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>src_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Decode hex value.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">src</td><td>Hex encoded string </td></tr>
<tr><td class="paramname">dst</td><td>Binary string </td></tr>
<tr><td class="paramname">src_len</td><td>length Hex encoded string </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a0a2cf72b4b90aacd14063ed1b294658d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a2cf72b4b90aacd14063ed1b294658d">&#9670;&nbsp;</a></span>amcl_print_hex()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void amcl_print_hex </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>src_len</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Print encoded binary string in hex.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">src</td><td>Binary string </td></tr>
<tr><td class="paramname">src_len</td><td>length binary string </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a453d001cb992b62b8cf2620a4a1f4778"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a453d001cb992b62b8cf2620a4a1f4778">&#9670;&nbsp;</a></span>generateOTP()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int generateOTP </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structcsprng.html">csprng</a> *&#160;</td>
<td class="paramname"><em>RNG</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Generates a random six digit one time password.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">RNG</td><td>random number generator </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>OTP One Time Password </dd></dl>
</div>
</div>
<a id="aac29f2d3dfb9593dba84f2bfe7051aba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac29f2d3dfb9593dba84f2bfe7051aba">&#9670;&nbsp;</a></span>generateRandom()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void generateRandom </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structcsprng.html">csprng</a> *&#160;</td>
<td class="paramname"><em>RNG</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structoctet.html">octet</a> *&#160;</td>
<td class="paramname"><em>randomValue</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Generate a random Octet.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">RNG</td><td>random number generator </td></tr>
<tr><td class="paramname">randomValue</td><td>random Octet </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.15
</small></address>
</body>
</html>