1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078 |
- <!-- HTML header for doxygen 1.8.10-->
- <!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: ecgroup</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"><!-- 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"><a
- onclick="storeLink('index.html')"
- id="projectlink"
- class="index.html"
- href="index.html">Intel® Enhanced Privacy ID SDK</a>
-  <span id="projectnumber">2.0.0</span>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.8.11 -->
- </div><!-- top -->
- <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___ec_group_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">ecgroup<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><!--header-->
- <div class="contents">
- <p>Elliptic curve group 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:gac91c5a7623c17a868dd15b2e9aaf7159"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac91c5a7623c17a868dd15b2e9aaf7159"></a>
- typedef struct <a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a></td></tr>
- <tr class="memdesc:gac91c5a7623c17a868dd15b2e9aaf7159"><td class="mdescLeft"> </td><td class="mdescRight">Elliptic curve group over finite field. <br /></td></tr>
- <tr class="separator:gac91c5a7623c17a868dd15b2e9aaf7159"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga85c1d5e106031b385a6e23e598ac98fa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga85c1d5e106031b385a6e23e598ac98fa"></a>
- typedef struct <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a></td></tr>
- <tr class="memdesc:ga85c1d5e106031b385a6e23e598ac98fa"><td class="mdescLeft"> </td><td class="mdescRight">Point on elliptic curve over finite field. <br /></td></tr>
- <tr class="separator:ga85c1d5e106031b385a6e23e598ac98fa"><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:gaf4e23677dd378ef2e0cf55df79cbdb62"><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___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62">NewEcGroup</a> (<a class="el" href="group___finite_field_primitives.html#gab281b24e336a8b3d7d90079d862d969e">FiniteField</a> const *ff, <a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</a> const *a, <a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</a> const *b, <a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</a> const *x, <a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</a> const *y, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *order, <a class="el" href="group___big_num_primitives.html#ga2bf153e27be2683f0fb26f0f7ff1f718">BigNum</a> const *cofactor, <a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> **g)</td></tr>
- <tr class="memdesc:gaf4e23677dd378ef2e0cf55df79cbdb62"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new EcGroup. <a href="#gaf4e23677dd378ef2e0cf55df79cbdb62">More...</a><br /></td></tr>
- <tr class="separator:gaf4e23677dd378ef2e0cf55df79cbdb62"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gab7af276256c27610eda85ff432b846ea"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___ec_group_primitives.html#gab7af276256c27610eda85ff432b846ea">DeleteEcGroup</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> **g)</td></tr>
- <tr class="memdesc:gab7af276256c27610eda85ff432b846ea"><td class="mdescLeft"> </td><td class="mdescRight">Deletes a previously allocated EcGroup. <a href="#gab7af276256c27610eda85ff432b846ea">More...</a><br /></td></tr>
- <tr class="separator:gab7af276256c27610eda85ff432b846ea"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga6417b0ce72ba96de00c329e322fec7fb"><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___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb">NewEcPoint</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> const *g, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> **p)</td></tr>
- <tr class="memdesc:ga6417b0ce72ba96de00c329e322fec7fb"><td class="mdescLeft"> </td><td class="mdescRight">Creates a new EcPoint. <a href="#ga6417b0ce72ba96de00c329e322fec7fb">More...</a><br /></td></tr>
- <tr class="separator:ga6417b0ce72ba96de00c329e322fec7fb"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga8cb086d792bffb79b3ca07e6ca4ce0e7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___ec_group_primitives.html#ga8cb086d792bffb79b3ca07e6ca4ce0e7">DeleteEcPoint</a> (<a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> **p)</td></tr>
- <tr class="memdesc:ga8cb086d792bffb79b3ca07e6ca4ce0e7"><td class="mdescLeft"> </td><td class="mdescRight">Deletes a previously allocated EcPoint. <a href="#ga8cb086d792bffb79b3ca07e6ca4ce0e7">More...</a><br /></td></tr>
- <tr class="separator:ga8cb086d792bffb79b3ca07e6ca4ce0e7"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga2d433f567fa2419465a49604f4da21ad"><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___ec_group_primitives.html#ga2d433f567fa2419465a49604f4da21ad">ReadEcPoint</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, void const *p_str, size_t strlen, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> *p)</td></tr>
- <tr class="memdesc:ga2d433f567fa2419465a49604f4da21ad"><td class="mdescLeft"> </td><td class="mdescRight">Deserializes an EcPoint from a string. <a href="#ga2d433f567fa2419465a49604f4da21ad">More...</a><br /></td></tr>
- <tr class="separator:ga2d433f567fa2419465a49604f4da21ad"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga4bb7d6691ffbb6e947c1068453e27fbd"><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___ec_group_primitives.html#ga4bb7d6691ffbb6e947c1068453e27fbd">WriteEcPoint</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const *p, void *p_str, size_t strlen)</td></tr>
- <tr class="memdesc:ga4bb7d6691ffbb6e947c1068453e27fbd"><td class="mdescLeft"> </td><td class="mdescRight">Serializes an EcPoint to a string. <a href="#ga4bb7d6691ffbb6e947c1068453e27fbd">More...</a><br /></td></tr>
- <tr class="separator:ga4bb7d6691ffbb6e947c1068453e27fbd"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga25c9013cc76907d73765eb7a96aa8c96"><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___ec_group_primitives.html#ga25c9013cc76907d73765eb7a96aa8c96">EcMul</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const *a, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const *b, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> *r)</td></tr>
- <tr class="memdesc:ga25c9013cc76907d73765eb7a96aa8c96"><td class="mdescLeft"> </td><td class="mdescRight">Multiplies two elements in an elliptic curve group. <a href="#ga25c9013cc76907d73765eb7a96aa8c96">More...</a><br /></td></tr>
- <tr class="separator:ga25c9013cc76907d73765eb7a96aa8c96"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga01bf8d6fa60a2e445490966b3a06c270"><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___ec_group_primitives.html#ga01bf8d6fa60a2e445490966b3a06c270">EcExp</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const *a, <a class="el" href="struct_big_num_str.html">BigNumStr</a> const *b, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> *r)</td></tr>
- <tr class="memdesc:ga01bf8d6fa60a2e445490966b3a06c270"><td class="mdescLeft"> </td><td class="mdescRight">Raises a point in an elliptic curve group to a power. <a href="#ga01bf8d6fa60a2e445490966b3a06c270">More...</a><br /></td></tr>
- <tr class="separator:ga01bf8d6fa60a2e445490966b3a06c270"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gaf3b6a548aa6f0d4f028a14feca251f57"><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___ec_group_primitives.html#gaf3b6a548aa6f0d4f028a14feca251f57">EcSscmExp</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const *a, <a class="el" href="struct_big_num_str.html">BigNumStr</a> const *b, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> *r)</td></tr>
- <tr class="memdesc:gaf3b6a548aa6f0d4f028a14feca251f57"><td class="mdescLeft"> </td><td class="mdescRight">Software side-channel mitigated implementation of EcExp. <a href="#gaf3b6a548aa6f0d4f028a14feca251f57">More...</a><br /></td></tr>
- <tr class="separator:gaf3b6a548aa6f0d4f028a14feca251f57"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gae96c38e004ccd2211290ad6e66415ec4"><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___ec_group_primitives.html#gae96c38e004ccd2211290ad6e66415ec4">EcMultiExp</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const **a, <a class="el" href="struct_big_num_str.html">BigNumStr</a> const **b, size_t m, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> *r)</td></tr>
- <tr class="memdesc:gae96c38e004ccd2211290ad6e66415ec4"><td class="mdescLeft"> </td><td class="mdescRight">Multi-exponentiates elements in elliptic curve group. <a href="#gae96c38e004ccd2211290ad6e66415ec4">More...</a><br /></td></tr>
- <tr class="separator:gae96c38e004ccd2211290ad6e66415ec4"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga40e3431d3dbe8cf7a65ada7b7811cba4"><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___ec_group_primitives.html#ga40e3431d3dbe8cf7a65ada7b7811cba4">EcSscmMultiExp</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const **a, <a class="el" href="struct_big_num_str.html">BigNumStr</a> const **b, size_t m, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> *r)</td></tr>
- <tr class="memdesc:ga40e3431d3dbe8cf7a65ada7b7811cba4"><td class="mdescLeft"> </td><td class="mdescRight">Software side-channel mitigated implementation of EcMultiExp. <a href="#ga40e3431d3dbe8cf7a65ada7b7811cba4">More...</a><br /></td></tr>
- <tr class="separator:ga40e3431d3dbe8cf7a65ada7b7811cba4"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga3f96c43d14d24de0f7a5e214aef64196"><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___ec_group_primitives.html#ga3f96c43d14d24de0f7a5e214aef64196">EcGetRandom</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, <a class="el" href="group___epid_common.html#ga6119a2c0323a3fca9e502b24bc378c2c">BitSupplier</a> rnd_func, void *rnd_func_param, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> *r)</td></tr>
- <tr class="memdesc:ga3f96c43d14d24de0f7a5e214aef64196"><td class="mdescLeft"> </td><td class="mdescRight">Generates a random element from an elliptic curve group. <a href="#ga3f96c43d14d24de0f7a5e214aef64196">More...</a><br /></td></tr>
- <tr class="separator:ga3f96c43d14d24de0f7a5e214aef64196"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga4d0f32aede3066eae500241b387bd970"><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___ec_group_primitives.html#ga4d0f32aede3066eae500241b387bd970">EcInGroup</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, void const *p_str, size_t strlen, <a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> *in_group)</td></tr>
- <tr class="memdesc:ga4d0f32aede3066eae500241b387bd970"><td class="mdescLeft"> </td><td class="mdescRight">Checks if a point is in an elliptic curve group. <a href="#ga4d0f32aede3066eae500241b387bd970">More...</a><br /></td></tr>
- <tr class="separator:ga4d0f32aede3066eae500241b387bd970"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gadc22ee07864a7ee681a881029b69d76a"><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___ec_group_primitives.html#gadc22ee07864a7ee681a881029b69d76a">EcHash</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, void const *msg, size_t msg_len, <a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a> hash_alg, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> *r)</td></tr>
- <tr class="memdesc:gadc22ee07864a7ee681a881029b69d76a"><td class="mdescLeft"> </td><td class="mdescRight">Hashes an arbitrary message to an element in an elliptic curve group. <a href="#gadc22ee07864a7ee681a881029b69d76a">More...</a><br /></td></tr>
- <tr class="separator:gadc22ee07864a7ee681a881029b69d76a"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga8a6114a48214a327d4ec04fd25e5940e"><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___ec_group_primitives.html#ga8a6114a48214a327d4ec04fd25e5940e">EcMakePoint</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, <a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</a> const *x, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> *r)</td></tr>
- <tr class="memdesc:ga8a6114a48214a327d4ec04fd25e5940e"><td class="mdescLeft"> </td><td class="mdescRight">Sets an EcPoint variable to a point on a curve. <a href="#ga8a6114a48214a327d4ec04fd25e5940e">More...</a><br /></td></tr>
- <tr class="separator:ga8a6114a48214a327d4ec04fd25e5940e"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga0b6d7a3398251e9352fb29ef4abef466"><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___ec_group_primitives.html#ga0b6d7a3398251e9352fb29ef4abef466">EcInverse</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const *p, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> *r)</td></tr>
- <tr class="memdesc:ga0b6d7a3398251e9352fb29ef4abef466"><td class="mdescLeft"> </td><td class="mdescRight">Computes the additive inverse of an EcPoint. <a href="#ga0b6d7a3398251e9352fb29ef4abef466">More...</a><br /></td></tr>
- <tr class="separator:ga0b6d7a3398251e9352fb29ef4abef466"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:gad3b3c63c48fa24e8dea07837b05bc061"><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___ec_group_primitives.html#gad3b3c63c48fa24e8dea07837b05bc061">EcIsEqual</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const *a, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const *b, <a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> *is_equal)</td></tr>
- <tr class="memdesc:gad3b3c63c48fa24e8dea07837b05bc061"><td class="mdescLeft"> </td><td class="mdescRight">Checks if two EcPoints are equal. <a href="#gad3b3c63c48fa24e8dea07837b05bc061">More...</a><br /></td></tr>
- <tr class="separator:gad3b3c63c48fa24e8dea07837b05bc061"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ga9cf15b34bc4ff12e58b169dd989d8210"><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___ec_group_primitives.html#ga9cf15b34bc4ff12e58b169dd989d8210">EcIsIdentity</a> (<a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> *g, <a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const *p, <a class="el" href="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> *is_identity)</td></tr>
- <tr class="memdesc:ga9cf15b34bc4ff12e58b169dd989d8210"><td class="mdescLeft"> </td><td class="mdescRight">Checks if an EcPoint is the identity element. <a href="#ga9cf15b34bc4ff12e58b169dd989d8210">More...</a><br /></td></tr>
- <tr class="separator:ga9cf15b34bc4ff12e58b169dd989d8210"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <p>Elliptic curve group operations. </p>
- <p>Provides APIs for working with Elliptic curve groups. Elliptic curve groups allow simple mathematical operations based on points that lie on a defined elliptic curve. The results of these operations also lie on the same curve.</p>
- <p>Curves themselves are defined based on elements (<a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa" title="An element in a finite field. ">FfElement</a>) of a finite field (<a class="el" href="group___finite_field_primitives.html#gab281b24e336a8b3d7d90079d862d969e" title="A finite field. ">FiniteField</a>). </p>
- <h2 class="groupheader">Function Documentation</h2>
- <a class="anchor" id="gab7af276256c27610eda85ff432b846ea"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void DeleteEcGroup </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> ** </td>
- <td class="paramname"><em>g</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Deletes a previously allocated EcGroup. </p>
- <p>Frees memory pointed to by elliptic curve group. Nulls the pointer.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. Can be NULL.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62" title="Constructs a new EcGroup. ">NewEcGroup</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga8cb086d792bffb79b3ca07e6ca4ce0e7"></a>
- <div class="memitem">
- <div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void DeleteEcPoint </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> ** </td>
- <td class="paramname"><em>p</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Deletes a previously allocated EcPoint. </p>
- <p>Frees memory used by a point on elliptic curve group. Nulls the pointer.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>The EcPoint. Can be NULL.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga01bf8d6fa60a2e445490966b3a06c270"></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> EcExp </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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="struct_big_num_str.html">BigNumStr</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___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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 a point in an elliptic curve group to a power. </p>
- <p>This exponentiation operation is also known as element multiplication for elliptic curve groups. </p><dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The base. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The power. Power must be less than the order of the elliptic curve group. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>The result of raising a to the power 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>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62" title="Constructs a new EcGroup. ">NewEcGroup</a> </dd>
- <dd>
- <a class="el" href="group___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga3f96c43d14d24de0f7a5e214aef64196"></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> EcGetRandom </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___epid_common.html#ga6119a2c0323a3fca9e502b24bc378c2c">BitSupplier</a> </td>
- <td class="paramname"><em>rnd_func</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>rnd_func_param</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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>Generates a random element from an elliptic curve group. </p>
- <p>This function is only available for G1 and GT.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">rnd_func</td><td>Random number generator. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">rnd_func_param</td><td>Pass through context data for rnd_func. </td></tr>
- <tr><td class="paramdir">[in,out]</td><td class="paramname">r</td><td>Output random elliptic curve element.</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___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd>
- <dd>
- <a class="el" href="group___epid_common.html#ga6119a2c0323a3fca9e502b24bc378c2c" title="Generates random data. ">BitSupplier</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gadc22ee07864a7ee681a881029b69d76a"></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> EcHash </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void const * </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>msg_len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___epid_types.html#ga5e450438f6f9a5eacd0cf5ce354ec890">HashAlg</a> </td>
- <td class="paramname"><em>hash_alg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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>Hashes an arbitrary message to an element in an elliptic curve group. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">msg_len</td><td>The size of msg in bytes. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">hash_alg</td><td>The hash algorithm. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>The hashed value.</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___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62" title="Constructs a new EcGroup. ">NewEcGroup</a> </dd>
- <dd>
- <a class="el" href="group___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga4d0f32aede3066eae500241b387bd970"></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> EcInGroup </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void const * </td>
- <td class="paramname"><em>p_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="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> * </td>
- <td class="paramname"><em>in_group</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Checks if a point is in an elliptic curve group. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">p_str</td><td>A serialized point. Must be a <a class="el" href="struct_g1_elem_str.html" title="Serialized G1 element. ">G1ElemStr</a> or <a class="el" href="struct_g2_elem_str.html" title="Serialized G2 element. ">G2ElemStr</a>. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">strlen</td><td>The size of p_str in bytes. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">in_group</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>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga0b6d7a3398251e9352fb29ef4abef466"></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> EcInverse </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const * </td>
- <td class="paramname"><em>p</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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 the additive inverse of an EcPoint. </p>
- <p>This inverse operation is also known as element negation for elliptic curve groups.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>The point. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>The inverted point.</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___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62" title="Constructs a new EcGroup. ">NewEcGroup</a> </dd>
- <dd>
- <a class="el" href="group___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gad3b3c63c48fa24e8dea07837b05bc061"></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> EcIsEqual </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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="stdtypes_8h.html#ad5c9d4ba3dc37783a528b0925dc981a0">bool</a> * </td>
- <td class="paramname"><em>is_equal</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Checks if two EcPoints are equal. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>A point to check. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>Another point to check. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">is_equal</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>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62" title="Constructs a new EcGroup. ">NewEcGroup</a> </dd>
- <dd>
- <a class="el" href="group___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga9cf15b34bc4ff12e58b169dd989d8210"></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> EcIsIdentity </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const * </td>
- <td class="paramname"><em>p</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_identity</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Checks if an EcPoint is the identity element. </p>
- <p>Takes a group element P as input. It outputs true if P is the identity element of G. Otherwise, it outputs false.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>The point to check. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">is_identity</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>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62" title="Constructs a new EcGroup. ">NewEcGroup</a> </dd>
- <dd>
- <a class="el" href="group___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga8a6114a48214a327d4ec04fd25e5940e"></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> EcMakePoint </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</a> const * </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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>Sets an EcPoint variable to a point on a curve. </p>
- <p>This function is only available for G1.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The x coordinate. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>The point.</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___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62" title="Constructs a new EcGroup. ">NewEcGroup</a> </dd>
- <dd>
- <a class="el" href="group___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd>
- <dd>
- <a class="el" href="group___finite_field_primitives.html#gacc54f315ede2dbeb8c5990c024a0de6c" title="Creates a new finite field element. ">NewFfElement</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga25c9013cc76907d73765eb7a96aa8c96"></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> EcMul </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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 elements in an elliptic curve group. </p>
- <p>This multiplication operation is also known as element addition for elliptic curve groups.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The left hand parameter. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The right hand parameter. </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>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62" title="Constructs a new EcGroup. ">NewEcGroup</a> </dd>
- <dd>
- <a class="el" href="group___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gae96c38e004ccd2211290ad6e66415ec4"></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> EcMultiExp </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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="struct_big_num_str.html">BigNumStr</a> const ** </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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>Multi-exponentiates elements in elliptic curve group. </p>
- <p>Takes a group elements a[0], ... , a[m-1] in G and positive integers b[0], ..., b[m-1], where m is a small positive integer. Outputs r (in G) = EcExp(a[0],b[0]) * ... * EcExp(a[m-1],b[m-1]).</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The bases. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The powers. Power must be less than the order of the elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>Number of entries in a and b. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>The result of raising each a to the corresponding power b and multiplying the results.</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___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62" title="Constructs a new EcGroup. ">NewEcGroup</a> </dd>
- <dd>
- <a class="el" href="group___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gaf3b6a548aa6f0d4f028a14feca251f57"></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> EcSscmExp </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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="struct_big_num_str.html">BigNumStr</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___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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>Software side-channel mitigated implementation of EcExp. </p>
- <p>This exponentiation operation is also known as element multiplication for elliptic curve groups.</p>
- <dl class="section attention"><dt>Attention</dt><dd>The reference implementation of EcSscmExp calls EcExp directly because the implementation of EcExp is already side channel mitigated. Implementers providing their own versions of this function are responsible for ensuring that EcSscmExp is side channel mitigated per section 8 of the Intel(R) EPID 2.0 spec.</dd></dl>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The base. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The power. Power must be less than the order of the elliptic curve group. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>The result of raising a to the power 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>
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="group___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62" title="Constructs a new EcGroup. ">NewEcGroup</a> </dd>
- <dd>
- <a class="el" href="group___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga40e3431d3dbe8cf7a65ada7b7811cba4"></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> EcSscmMultiExp </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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="struct_big_num_str.html">BigNumStr</a> const ** </td>
- <td class="paramname"><em>b</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">size_t </td>
- <td class="paramname"><em>m</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</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>Software side-channel mitigated implementation of EcMultiExp. </p>
- <p>Takes a group elements a[0], ... , a[m-1] in G and positive integers b[0], ..., b[m-1], where m is a small positive integer. Outputs r (in G) = EcExp(a[0],b[0]) * ... * EcExp(a[m-1],b[m-1]).</p>
- <dl class="section attention"><dt>Attention</dt><dd>The reference implementation of EcSscmMultiExp calls EcMultiExp directly because the implementation of EcMultiExp is already side channel mitigated. Implementers providing their own versions of this function are responsible for ensuring that EcSscmMultiExp is side channel mitigated per section 8 of the Intel(R) EPID 2.0 spec.</dd></dl>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The bases. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The powers. Power must be less than the order of the elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">m</td><td>Number of entries in a and b. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">r</td><td>The result of raising each a to the corresponding power b and multiplying the results.</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___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62" title="Constructs a new EcGroup. ">NewEcGroup</a> </dd>
- <dd>
- <a class="el" href="group___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="gaf4e23677dd378ef2e0cf55df79cbdb62"></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> NewEcGroup </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___finite_field_primitives.html#gab281b24e336a8b3d7d90079d862d969e">FiniteField</a> const * </td>
- <td class="paramname"><em>ff</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</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___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</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___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</a> const * </td>
- <td class="paramname"><em>x</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___finite_field_primitives.html#ga6cff5c7c06b07a87442b810ccc0a86fa">FfElement</a> const * </td>
- <td class="paramname"><em>y</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>order</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>cofactor</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> ** </td>
- <td class="paramname"><em>g</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Constructs a new EcGroup. </p>
- <p>Allocates memory and creates a new elliptic curve group.</p>
- <p>Use <a class="el" href="group___finite_field_primitives.html#gacbdd2871ecf93dadaac9d2c5b16e1e5f" title="Frees a previously allocated FiniteField. ">DeleteFiniteField()</a> to free memory.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">ff</td><td>The finite field on which the curve is based. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>The A value of the elliptic curve. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">b</td><td>The B value of the elliptic curve. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The X co-ordinate of the base point of the elliptic curve. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">y</td><td>The Y co-ordinate of the base point of the elliptic curve. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">order</td><td>The order of the elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">cofactor</td><td>The co-factor of the elliptic curve. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">g</td><td>The newly constructed elliptic curve group.</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___ec_group_primitives.html#gab7af276256c27610eda85ff432b846ea" title="Deletes a previously allocated EcGroup. ">DeleteEcGroup</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga6417b0ce72ba96de00c329e322fec7fb"></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> NewEcPoint </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> const * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> ** </td>
- <td class="paramname"><em>p</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Creates a new EcPoint. </p>
- <p>Allocates memory and creates a new point on elliptic curve group.</p>
- <p>Use <a class="el" href="group___ec_group_primitives.html#ga8cb086d792bffb79b3ca07e6ca4ce0e7" title="Deletes a previously allocated EcPoint. ">DeleteEcPoint()</a> to free memory.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>Elliptic curve group. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">p</td><td>Newly constructed point on the elliptic curve group g.</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___ec_group_primitives.html#gaf4e23677dd378ef2e0cf55df79cbdb62" title="Constructs a new EcGroup. ">NewEcGroup</a> </dd>
- <dd>
- <a class="el" href="group___ec_group_primitives.html#ga8cb086d792bffb79b3ca07e6ca4ce0e7" title="Deletes a previously allocated EcPoint. ">DeleteEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga2d433f567fa2419465a49604f4da21ad"></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> ReadEcPoint </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void const * </td>
- <td class="paramname"><em>p_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___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> * </td>
- <td class="paramname"><em>p</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Deserializes an EcPoint from a string. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">p_str</td><td>The serialized value. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">strlen</td><td>The size of p_str in bytes. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">p</td><td>The target EcPoint.</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___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- <a class="anchor" id="ga4bb7d6691ffbb6e947c1068453e27fbd"></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> WriteEcPoint </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#gac91c5a7623c17a868dd15b2e9aaf7159">EcGroup</a> * </td>
- <td class="paramname"><em>g</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="group___ec_group_primitives.html#ga85c1d5e106031b385a6e23e598ac98fa">EcPoint</a> const * </td>
- <td class="paramname"><em>p</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>p_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></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Serializes an EcPoint to a string. </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">g</td><td>The elliptic curve group. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>The EcPoint to be serialized. </td></tr>
- <tr><td class="paramdir">[out]</td><td class="paramname">p_str</td><td>The target string. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">strlen</td><td>the size of p_str in bytes.</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___ec_group_primitives.html#ga6417b0ce72ba96de00c329e322fec7fb" title="Creates a new EcPoint. ">NewEcPoint</a> </dd></dl>
- </div>
- </div>
- </div><!-- contents -->
- </div><!-- doc-content -->
- <!-- HTML footer for doxygen 1.8.10-->
- <!-- start footer part -->
- <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">
- © 2016 Intel Corporation
- </li>
- </ul>
- </div>
- </body>
- </html>
|