123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616 |
- <!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.11"/>
- <title>Intel® Enhanced Privacy ID SDK: bignum</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="navtree.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="resize.js"></script>
- <script type="text/javascript" src="navtreedata.js"></script>
- <script type="text/javascript" src="navtree.js"></script>
- <script type="text/javascript">
- $(document).ready(initResizable);
- $(window).load(resizeHeight);
- </script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- <link href="epidstyle.css" rel="stylesheet" type="text/css"/>
- </head>
- <body>
- <div id="top">
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname"><a
- onclick="storeLink('index.html')"
- id="projectlink"
- class="index.html"
- href="index.html">Intel® Enhanced Privacy ID SDK</a>
-  <span id="projectnumber">3.0.0</span>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- <div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
- </div>
- <script type="text/javascript">
- $(document).ready(function(){initNavTree('group___big_num_primitives.html','');});
- </script>
- <div id="doc-content">
- <div class="header">
- <div class="summary">
- <a href="#typedef-members">Typedefs</a> |
- <a href="#func-members">Functions</a> </div>
- <div class="headertitle">
- <div class="title">bignum<div class="ingroups"><a class="el" href="group___epid_module.html">epid</a> » <a class="el" href="group___epid_common.html">common</a> » <a class="el" href="group___epid_math.html">math</a></div></div> </div>
- </div>
- <div class="contents">
- <p>Big number operations.
- <a href="#details">More...</a></p>
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
- Typedefs</h2></td></tr>
- <tr class="memitem:ga2bf153e27be2683f0fb26f0f7ff1f718"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2bf153e27be2683f0fb26f0f7ff1f718"></a>
- typedef struct <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a></td></tr>
- <tr class="memdesc:ga2bf153e27be2683f0fb26f0f7ff1f718"><td class="mdescLeft"> </td><td class="mdescRight">Internal representation of large numbers. <br /></td></tr>
- <tr class="separator:ga2bf153e27be2683f0fb26f0f7ff1f718"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
- Functions</h2></td></tr>
- <tr class="memitem:gad5f6f262bfd780fed3678bcee16f0aed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#gad5f6f262bfd780fed3678bcee16f0aed">NewBigNum</a> (size_t data_size_bytes, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> **bignum)</td></tr>
- <tr class="memdesc:gad5f6f262bfd780fed3678bcee16f0aed"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new BigNum. <a href="#gad5f6f262bfd780fed3678bcee16f0aed">More...</a><br /></td></tr>
- <tr class="separator:gad5f6f262bfd780fed3678bcee16f0aed"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga2d17600068b1d94000635c6644258a03"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#ga2d17600068b1d94000635c6644258a03">DeleteBigNum</a> (<a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> **bignum)</td></tr>
- <tr class="memdesc:ga2d17600068b1d94000635c6644258a03"><td class="mdescLeft"> </td><td class="mdescRight">Deletes a previously allocated BigNum. <a href="#ga2d17600068b1d94000635c6644258a03">More...</a><br /></td></tr>
- <tr class="separator:ga2d17600068b1d94000635c6644258a03"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga808cf477b70ed06358b11756bfe36024"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#ga808cf477b70ed06358b11756bfe36024">ReadBigNum</a> (void const *bn_str, size_t strlen, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> *bn)</td></tr>
- <tr class="memdesc:ga808cf477b70ed06358b11756bfe36024"><td class="mdescLeft"> </td><td class="mdescRight">Deserializes a BigNum from a string. <a href="#ga808cf477b70ed06358b11756bfe36024">More...</a><br /></td></tr>
- <tr class="separator:ga808cf477b70ed06358b11756bfe36024"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga79d86c872fe8da0f217e3ba069f98d38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#ga79d86c872fe8da0f217e3ba069f98d38">WriteBigNum</a> (<a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *bn, size_t strlen, void *bn_str)</td></tr>
- <tr class="memdesc:ga79d86c872fe8da0f217e3ba069f98d38"><td class="mdescLeft"> </td><td class="mdescRight">Serializes a BigNum to a string. <a href="#ga79d86c872fe8da0f217e3ba069f98d38">More...</a><br /></td></tr>
- <tr class="separator:ga79d86c872fe8da0f217e3ba069f98d38"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gae70fd9b3026f0ab3c7e9601d0a3186b8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#gae70fd9b3026f0ab3c7e9601d0a3186b8">BigNumAdd</a> (<a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *a, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *b, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> *r)</td></tr>
- <tr class="memdesc:gae70fd9b3026f0ab3c7e9601d0a3186b8"><td class="mdescLeft"> </td><td class="mdescRight">Adds two BigNum values. <a href="#gae70fd9b3026f0ab3c7e9601d0a3186b8">More...</a><br /></td></tr>
- <tr class="separator:gae70fd9b3026f0ab3c7e9601d0a3186b8"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gacbec9669ab0fe768e2be74dcaca397ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#gacbec9669ab0fe768e2be74dcaca397ea">BigNumSub</a> (<a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *a, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *b, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> *r)</td></tr>
- <tr class="memdesc:gacbec9669ab0fe768e2be74dcaca397ea"><td class="mdescLeft"> </td><td class="mdescRight">Subtracts two BigNum values. <a href="#gacbec9669ab0fe768e2be74dcaca397ea">More...</a><br /></td></tr>
- <tr class="separator:gacbec9669ab0fe768e2be74dcaca397ea"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga03c89b8b8dd87de2c0f4b5822145d317"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#ga03c89b8b8dd87de2c0f4b5822145d317">BigNumMul</a> (<a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *a, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *b, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> *r)</td></tr>
- <tr class="memdesc:ga03c89b8b8dd87de2c0f4b5822145d317"><td class="mdescLeft"> </td><td class="mdescRight">Multiplies two BigNum values. <a href="#ga03c89b8b8dd87de2c0f4b5822145d317">More...</a><br /></td></tr>
- <tr class="separator:ga03c89b8b8dd87de2c0f4b5822145d317"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga166134085464b0df2c8efcfccf8ec573"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#ga166134085464b0df2c8efcfccf8ec573">BigNumDiv</a> (<a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *a, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *b, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> *q, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> *r)</td></tr>
- <tr class="memdesc:ga166134085464b0df2c8efcfccf8ec573"><td class="mdescLeft"> </td><td class="mdescRight">Divides two BigNum values. <a href="#ga166134085464b0df2c8efcfccf8ec573">More...</a><br /></td></tr>
- <tr class="separator:ga166134085464b0df2c8efcfccf8ec573"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga7dd6038987210d10bf843602fef0c929"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#ga7dd6038987210d10bf843602fef0c929">BigNumMod</a> (<a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *a, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *b, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> *r)</td></tr>
- <tr class="memdesc:ga7dd6038987210d10bf843602fef0c929"><td class="mdescLeft"> </td><td class="mdescRight">Computes modular reduction for BigNum value by specified modulus. <a href="#ga7dd6038987210d10bf843602fef0c929">More...</a><br /></td></tr>
- <tr class="separator:ga7dd6038987210d10bf843602fef0c929"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gaf0366e47226563b17fcbc8e3ed766084"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#gaf0366e47226563b17fcbc8e3ed766084">BigNumIsEven</a> (<a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *a, <a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> *is_even)</td></tr>
- <tr class="memdesc:gaf0366e47226563b17fcbc8e3ed766084"><td class="mdescLeft"> </td><td class="mdescRight">Checks if a BigNum is even. <a href="#gaf0366e47226563b17fcbc8e3ed766084">More...</a><br /></td></tr>
- <tr class="separator:gaf0366e47226563b17fcbc8e3ed766084"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gacde6564a814617a96985b379be0dfabb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#gacde6564a814617a96985b379be0dfabb">BigNumIsZero</a> (<a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *a, <a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> *is_zero)</td></tr>
- <tr class="memdesc:gacde6564a814617a96985b379be0dfabb"><td class="mdescLeft"> </td><td class="mdescRight">Checks if a BigNum is zero. <a href="#gacde6564a814617a96985b379be0dfabb">More...</a><br /></td></tr>
- <tr class="separator:gacde6564a814617a96985b379be0dfabb"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gafd64b66fc85dab0005f4a1bb67bdf7b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___big_num_primitives.html#gafd64b66fc85dab0005f4a1bb67bdf7b4">BigNumPow2N</a> (unsigned int n, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> *r)</td></tr>
- <tr class="memdesc:gafd64b66fc85dab0005f4a1bb67bdf7b4"><td class="mdescLeft"> </td><td class="mdescRight">Raises 2 to the given power. <a href="#gafd64b66fc85dab0005f4a1bb67bdf7b4">More...</a><br /></td></tr>
- <tr class="separator:gafd64b66fc85dab0005f4a1bb67bdf7b4"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <p>Big number operations. </p>
- <p>This module provides an API for working with large numbers. BigNums represent non-negative integers.</p>
- <p>Each BigNum variable represents a number of a byte-size set when the variable was created. BigNum variables cannot be re-sized after they are created. </p>
- <h2 class="groupheader">Function Documentation</h2>
- <a class="anchor" id="gae70fd9b3026f0ab3c7e9601d0a3186b8"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> BigNumAdd </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> * </td>
- <td class="paramname"><em>r</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Adds two BigNum values. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The first operand to be added. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The second operand to be added. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>The result of adding a and b.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga166134085464b0df2c8efcfccf8ec573"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> BigNumDiv </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> * </td>
- <td class="paramname"><em>q</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> * </td>
- <td class="paramname"><em>r</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Divides two BigNum values. </p>
- <dl class="section note"><dt>Note</dt><dd>Only needed for Intel(R) EPID 1.1 verification.</dd></dl>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>Dividend parameter. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Divisor parameter. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">q</td><td>Quotient of result. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>Remainder of result.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gaf0366e47226563b17fcbc8e3ed766084"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> BigNumIsEven </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> * </td>
- <td class="paramname"><em>is_even</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Checks if a BigNum is even. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The BigNum to check. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">is_even</td><td>The result of the check.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gacde6564a814617a96985b379be0dfabb"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> BigNumIsZero </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> * </td>
- <td class="paramname"><em>is_zero</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Checks if a BigNum is zero. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The BigNum to check. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">is_zero</td><td>The result of the check.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga7dd6038987210d10bf843602fef0c929"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> BigNumMod </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> * </td>
- <td class="paramname"><em>r</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Computes modular reduction for BigNum value by specified modulus. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The BigNum value. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The modulus. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>Modular reduction result.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga03c89b8b8dd87de2c0f4b5822145d317"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> BigNumMul </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> * </td>
- <td class="paramname"><em>r</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Multiplies two BigNum values. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The first operand to be multiplied. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The second operand to be multiplied. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>The result of multiplying a and b.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gafd64b66fc85dab0005f4a1bb67bdf7b4"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> BigNumPow2N </td>
- <td>(</td>
- <td class="paramtype">unsigned int </td>
- <td class="paramname"><em>n</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> * </td>
- <td class="paramname"><em>r</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Raises 2 to the given power. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">n</td><td>The power. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>The result of 2^n.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gacbec9669ab0fe768e2be74dcaca397ea"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> BigNumSub </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>a</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> * </td>
- <td class="paramname"><em>r</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Subtracts two BigNum values. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The first operand to use in subtraction. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The second operand to use in subtraction. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>The result of subtracting a and b.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga2d17600068b1d94000635c6644258a03"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void DeleteBigNum </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> ** </td>
- <td class="paramname"><em>bignum</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Deletes a previously allocated BigNum. </p>
- <p>Frees memory pointed to by bignum. Nulls the pointer.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">bignum</td><td>The BigNum. Can be NULL.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___big_num_primitives.html#gad5f6f262bfd780fed3678bcee16f0aed" title="Constructs a new BigNum. ">NewBigNum</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gad5f6f262bfd780fed3678bcee16f0aed"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> NewBigNum </td>
- <td>(</td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>data_size_bytes</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> ** </td>
- <td class="paramname"><em>bignum</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Constructs a new BigNum. </p>
- <p>Allocates memory and creates a new BigNum.</p>
- <p>Use <a class="el" href="group___big_num_primitives.html#ga2d17600068b1d94000635c6644258a03" title="Deletes a previously allocated BigNum. ">DeleteBigNum()</a> to free memory.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">data_size_bytes</td><td>The size in bytes of the new number. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">bignum</td><td>The BigNum.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a></dd></dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___big_num_primitives.html#ga2d17600068b1d94000635c6644258a03" title="Deletes a previously allocated BigNum. ">DeleteBigNum</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga808cf477b70ed06358b11756bfe36024"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> ReadBigNum </td>
- <td>(</td>
- <td class="paramtype">void const * </td>
- <td class="paramname"><em>bn_str</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>strlen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> * </td>
- <td class="paramname"><em>bn</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Deserializes a BigNum from a string. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">bn_str</td><td>The serialized value. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">strlen</td><td>The size of bn_str in bytes. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">bn</td><td>The target BigNum.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga79d86c872fe8da0f217e3ba069f98d38"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360">EpidStatus</a> WriteBigNum </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const * </td>
- <td class="paramname"><em>bn</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>strlen</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>bn_str</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Serializes a BigNum to a string. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">bn</td><td>The BigNum to be serialized. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">strlen</td><td>The size of bn_str in bytes. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">bn_str</td><td>The target string.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><a class="el" href="group___error_codes.html#gafdb27c77c2c4b32c807e326a8a0da360" title="Return status for SDK functions. ">EpidStatus</a> </dd></dl>
- </div>
- </div>
- </div>
- </div>
- <div id="nav-path" class="navpath">
- <ul>
- <li class="footer">
- © 2016 Intel Corporation
- </li>
- </ul>
- </div>
- </body>
- </html>
|