mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 09:46:12 +00:00
1433 lines
71 KiB
HTML
1433 lines
71 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.14"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Dash Core: src/secp256k1/src/group_impl.h File Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="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">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(document).ready(initResizable);
|
|
/* @license-end */</script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectlogo"><img alt="Logo" src="bitcoin_logo_doxygen.png"/></td>
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">Dash Core
|
|
 <span id="projectnumber">0.12.2.1</span>
|
|
</div>
|
|
<div id="projectbrief">P2P Digital Currency</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.14 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */</script>
|
|
<div id="main-nav"></div>
|
|
</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">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(document).ready(function(){initNavTree('group__impl_8h.html','');});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#func-members">Functions</a> |
|
|
<a href="#var-members">Variables</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">group_impl.h File Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="textblock"><code>#include <string.h></code><br />
|
|
<code>#include "<a class="el" href="num_8h_source.html">num.h</a>"</code><br />
|
|
<code>#include "<a class="el" href="field_8h_source.html">field.h</a>"</code><br />
|
|
<code>#include "<a class="el" href="group_8h_source.html">group.h</a>"</code><br />
|
|
</div>
|
|
<p><a href="group__impl_8h_source.html">Go to the source code of this file.</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:a6492f6aad16e545239c0ec52780d2e1f"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a6492f6aad16e545239c0ec52780d2e1f">secp256k1_ge_set_gej_zinv</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *zi)</td></tr>
|
|
<tr class="separator:a6492f6aad16e545239c0ec52780d2e1f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a34ab3d1a9a0a7ff0ed1cedff9db5f73c"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a34ab3d1a9a0a7ff0ed1cedff9db5f73c">secp256k1_ge_set_xy</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *x, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *y)</td></tr>
|
|
<tr class="separator:a34ab3d1a9a0a7ff0ed1cedff9db5f73c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac83592db46af97faf7ba9b9a39a1f6ff"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#ac83592db46af97faf7ba9b9a39a1f6ff">secp256k1_ge_is_infinity</a> (const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *a)</td></tr>
|
|
<tr class="separator:ac83592db46af97faf7ba9b9a39a1f6ff"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abcb34de0cfdf82a125e059f4f98de1d9"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#abcb34de0cfdf82a125e059f4f98de1d9">secp256k1_ge_neg</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *a)</td></tr>
|
|
<tr class="separator:abcb34de0cfdf82a125e059f4f98de1d9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa511eebf8cd7419763f06555ed4fb62d"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#aa511eebf8cd7419763f06555ed4fb62d">secp256k1_ge_set_gej</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a)</td></tr>
|
|
<tr class="separator:aa511eebf8cd7419763f06555ed4fb62d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aea803cf52c0f33c2cb3bfb82d5790d71"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#aea803cf52c0f33c2cb3bfb82d5790d71">secp256k1_ge_set_gej_var</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a)</td></tr>
|
|
<tr class="separator:aea803cf52c0f33c2cb3bfb82d5790d71"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ada58b0cf328a74cfdd1f8b35083668a1"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#ada58b0cf328a74cfdd1f8b35083668a1">secp256k1_ge_set_all_gej_var</a> (size_t len, <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__callback.html">secp256k1_callback</a> *cb)</td></tr>
|
|
<tr class="separator:ada58b0cf328a74cfdd1f8b35083668a1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1cf9611464711ed63bde94d92ecc70de"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a1cf9611464711ed63bde94d92ecc70de">secp256k1_ge_set_table_gej_var</a> (size_t len, <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *zr)</td></tr>
|
|
<tr class="separator:a1cf9611464711ed63bde94d92ecc70de"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5391d63ab98be9202d5f14611133fe35"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a5391d63ab98be9202d5f14611133fe35">secp256k1_ge_globalz_set_table_gej</a> (size_t len, <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *globalz, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *zr)</td></tr>
|
|
<tr class="separator:a5391d63ab98be9202d5f14611133fe35"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2c6b24a2db08260d89e891eab7035b2c"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a2c6b24a2db08260d89e891eab7035b2c">secp256k1_gej_set_infinity</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r)</td></tr>
|
|
<tr class="separator:a2c6b24a2db08260d89e891eab7035b2c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2454dfbe1e75eba118d2c0a4184a9acc"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a2454dfbe1e75eba118d2c0a4184a9acc">secp256k1_gej_clear</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r)</td></tr>
|
|
<tr class="separator:a2454dfbe1e75eba118d2c0a4184a9acc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a34793cf48794f089bb28597d1a9f23b2"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a34793cf48794f089bb28597d1a9f23b2">secp256k1_ge_clear</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r)</td></tr>
|
|
<tr class="separator:a34793cf48794f089bb28597d1a9f23b2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a767d4255b822bcd84f84d9b440b3af86"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a767d4255b822bcd84f84d9b440b3af86">secp256k1_ge_set_xquad_var</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *x)</td></tr>
|
|
<tr class="separator:a767d4255b822bcd84f84d9b440b3af86"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3c3d9154b093bb4ed48ba55e4c28a0b5"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a3c3d9154b093bb4ed48ba55e4c28a0b5">secp256k1_ge_set_xo_var</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *x, int odd)</td></tr>
|
|
<tr class="separator:a3c3d9154b093bb4ed48ba55e4c28a0b5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad5f813e26afb239f03e83f0e61e05498"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#ad5f813e26afb239f03e83f0e61e05498">secp256k1_gej_set_ge</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *a)</td></tr>
|
|
<tr class="separator:ad5f813e26afb239f03e83f0e61e05498"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa32fc177f081f16d5979045d3632cf8b"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#aa32fc177f081f16d5979045d3632cf8b">secp256k1_gej_eq_x_var</a> (const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *x, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a)</td></tr>
|
|
<tr class="separator:aa32fc177f081f16d5979045d3632cf8b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af9194949a7aaf18aceab1dee73fe4027"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#af9194949a7aaf18aceab1dee73fe4027">secp256k1_gej_neg</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a)</td></tr>
|
|
<tr class="separator:af9194949a7aaf18aceab1dee73fe4027"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a33786d5853579c92d46fac51f6a40093"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a33786d5853579c92d46fac51f6a40093">secp256k1_gej_is_infinity</a> (const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a)</td></tr>
|
|
<tr class="separator:a33786d5853579c92d46fac51f6a40093"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aaf14c34acab0a279530f58c7e7d50749"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#aaf14c34acab0a279530f58c7e7d50749">secp256k1_gej_is_valid_var</a> (const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a)</td></tr>
|
|
<tr class="separator:aaf14c34acab0a279530f58c7e7d50749"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a83600b0c4d8e95a8b2e730b4e2f207dc"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a83600b0c4d8e95a8b2e730b4e2f207dc">secp256k1_ge_is_valid_var</a> (const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *a)</td></tr>
|
|
<tr class="separator:a83600b0c4d8e95a8b2e730b4e2f207dc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a033aa434a4d0838f649ad757dd44db46"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a033aa434a4d0838f649ad757dd44db46">secp256k1_gej_double_var</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *rzr)</td></tr>
|
|
<tr class="separator:a033aa434a4d0838f649ad757dd44db46"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:accf4e481cd660b1df01b4b90f5d28bb4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="secp256k1_8h.html#a7ddc487fd46aee88f21cabedb7268b1e">SECP256K1_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#accf4e481cd660b1df01b4b90f5d28bb4">secp256k1_gej_double_nonzero</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *rzr)</td></tr>
|
|
<tr class="separator:accf4e481cd660b1df01b4b90f5d28bb4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8df21f3ef7412e6c4d39fb67dc0140c6"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a8df21f3ef7412e6c4d39fb67dc0140c6">secp256k1_gej_add_var</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *b, <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *rzr)</td></tr>
|
|
<tr class="separator:a8df21f3ef7412e6c4d39fb67dc0140c6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4d0338f50b08d082caa32f8e72707b55"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a4d0338f50b08d082caa32f8e72707b55">secp256k1_gej_add_ge_var</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *b, <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *rzr)</td></tr>
|
|
<tr class="separator:a4d0338f50b08d082caa32f8e72707b55"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a180d4e54e906f101ce0f1e74563ce5f6"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a180d4e54e906f101ce0f1e74563ce5f6">secp256k1_gej_add_zinv_var</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *b, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *bzinv)</td></tr>
|
|
<tr class="separator:a180d4e54e906f101ce0f1e74563ce5f6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a586b55d5921edcd68799f584c0a3c58d"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a586b55d5921edcd68799f584c0a3c58d">secp256k1_gej_add_ge</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *a, const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *b)</td></tr>
|
|
<tr class="separator:a586b55d5921edcd68799f584c0a3c58d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9ca39d1f8a0d1d833dc682f0fc318137"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a9ca39d1f8a0d1d833dc682f0fc318137">secp256k1_gej_rescale</a> (<a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *s)</td></tr>
|
|
<tr class="separator:a9ca39d1f8a0d1d833dc682f0fc318137"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad6499ae629f998e50d8614869ee3c67f"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#ad6499ae629f998e50d8614869ee3c67f">secp256k1_ge_to_storage</a> (<a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> *r, const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *a)</td></tr>
|
|
<tr class="separator:ad6499ae629f998e50d8614869ee3c67f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8c1e7f328284d9ba56404bb8d99bf765"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#a8c1e7f328284d9ba56404bb8d99bf765">secp256k1_ge_from_storage</a> (<a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> *r, const <a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> *a)</td></tr>
|
|
<tr class="separator:a8c1e7f328284d9ba56404bb8d99bf765"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae6d54bcae540118ce4190f457db78ca8"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="secp256k1_8h.html#a7ddc487fd46aee88f21cabedb7268b1e">SECP256K1_INLINE</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#ae6d54bcae540118ce4190f457db78ca8">secp256k1_ge_storage_cmov</a> (<a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> *r, const <a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> *a, int flag)</td></tr>
|
|
<tr class="separator:ae6d54bcae540118ce4190f457db78ca8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
|
|
Variables</h2></td></tr>
|
|
<tr class="memitem:ac2075a99877abe469ea60a119fe68e6c"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__impl_8h.html#ac2075a99877abe469ea60a119fe68e6c">secp256k1_ge_const_g</a></td></tr>
|
|
<tr class="separator:ac2075a99877abe469ea60a119fe68e6c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="a34793cf48794f089bb28597d1a9f23b2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a34793cf48794f089bb28597d1a9f23b2">◆ </a></span>secp256k1_ge_clear()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_ge_clear </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>r</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00162">162</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8c1e7f328284d9ba56404bb8d99bf765"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8c1e7f328284d9ba56404bb8d99bf765">◆ </a></span>secp256k1_ge_from_storage()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_ge_from_storage </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> * </td>
|
|
<td class="paramname"><em>a</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00604">604</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5391d63ab98be9202d5f14611133fe35"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5391d63ab98be9202d5f14611133fe35">◆ </a></span>secp256k1_ge_globalz_set_table_gej()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_ge_globalz_set_table_gej </td>
|
|
<td>(</td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>len</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>globalz</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>zr</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00125">125</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac83592db46af97faf7ba9b9a39a1f6ff"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac83592db46af97faf7ba9b9a39a1f6ff">◆ </a></span>secp256k1_ge_is_infinity()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static int secp256k1_ge_is_infinity </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>a</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00042">42</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a83600b0c4d8e95a8b2e730b4e2f207dc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a83600b0c4d8e95a8b2e730b4e2f207dc">◆ </a></span>secp256k1_ge_is_valid_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static int secp256k1_ge_is_valid_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>a</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00239">239</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="abcb34de0cfdf82a125e059f4f98de1d9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abcb34de0cfdf82a125e059f4f98de1d9">◆ </a></span>secp256k1_ge_neg()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_ge_neg </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>a</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00046">46</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ada58b0cf328a74cfdd1f8b35083668a1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ada58b0cf328a74cfdd1f8b35083668a1">◆ </a></span>secp256k1_ge_set_all_gej_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_ge_set_all_gej_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>len</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__callback.html">secp256k1_callback</a> * </td>
|
|
<td class="paramname"><em>cb</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00081">81</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa511eebf8cd7419763f06555ed4fb62d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa511eebf8cd7419763f06555ed4fb62d">◆ </a></span>secp256k1_ge_set_gej()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_ge_set_gej </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00052">52</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aea803cf52c0f33c2cb3bfb82d5790d71"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aea803cf52c0f33c2cb3bfb82d5790d71">◆ </a></span>secp256k1_ge_set_gej_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_ge_set_gej_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00065">65</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="recovery_2main__impl_8h_source.html#l00087">secp256k1_ecdsa_sig_recover()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00106">secp256k1_schnorr_sig_verify()</a>, <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>, and <a class="el" href="schnorr_2tests__impl_8h_source.html#l00050">test_schnorr_sign_verify()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a6492f6aad16e545239c0ec52780d2e1f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6492f6aad16e545239c0ec52780d2e1f">◆ </a></span>secp256k1_ge_set_gej_zinv()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_ge_set_gej_zinv </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>zi</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00026">26</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="ecmult__impl_8h_source.html#l00035">secp256k1_ecmult_odd_multiples_table()</a>, <a class="el" href="group__impl_8h_source.html#l00125">secp256k1_ge_globalz_set_table_gej()</a>, <a class="el" href="group__impl_8h_source.html#l00081">secp256k1_ge_set_all_gej_var()</a>, and <a class="el" href="group__impl_8h_source.html#l00107">secp256k1_ge_set_table_gej_var()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1cf9611464711ed63bde94d92ecc70de"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1cf9611464711ed63bde94d92ecc70de">◆ </a></span>secp256k1_ge_set_table_gej_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_ge_set_table_gej_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>len</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>zr</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00107">107</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3c3d9154b093bb4ed48ba55e4c28a0b5"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3c3d9154b093bb4ed48ba55e4c28a0b5">◆ </a></span>secp256k1_ge_set_xo_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static int secp256k1_ge_set_xo_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>x</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>odd</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00179">179</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a767d4255b822bcd84f84d9b440b3af86"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a767d4255b822bcd84f84d9b440b3af86">◆ </a></span>secp256k1_ge_set_xquad_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static int secp256k1_ge_set_xquad_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>x</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00168">168</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="group__impl_8h_source.html#l00179">secp256k1_ge_set_xo_var()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a34ab3d1a9a0a7ff0ed1cedff9db5f73c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a34ab3d1a9a0a7ff0ed1cedff9db5f73c">◆ </a></span>secp256k1_ge_set_xy()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_ge_set_xy </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>x</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>y</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00036">36</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae6d54bcae540118ce4190f457db78ca8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae6d54bcae540118ce4190f457db78ca8">◆ </a></span>secp256k1_ge_storage_cmov()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="secp256k1_8h.html#a7ddc487fd46aee88f21cabedb7268b1e">SECP256K1_INLINE</a> void secp256k1_ge_storage_cmov </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>flag</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00610">610</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad6499ae629f998e50d8614869ee3c67f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad6499ae629f998e50d8614869ee3c67f">◆ </a></span>secp256k1_ge_to_storage()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_ge_to_storage </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__ge__storage.html">secp256k1_ge_storage</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>a</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00593">593</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a586b55d5921edcd68799f584c0a3c58d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a586b55d5921edcd68799f584c0a3c58d">◆ </a></span>secp256k1_gej_add_ge()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_gej_add_ge </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>b</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>In: Eric Brier and Marc Joye, Weierstrass Elliptic Curves and Side-Channel Attacks. In D. Naccache and P. Paillier, Eds., Public Key Cryptography, vol. 2274 of Lecture Notes in Computer Science, pages 335-345. Springer-Verlag, 2002. we find as solution for a unified addition/doubling formula: lambda = ((x1 + x2)^2 - x1 * x2 + a) / (y1 + y2), with a = 0 for secp256k1's curve equation. x3 = lambda^2 - (x1 + x2) 2*y3 = lambda * (x1 + x2 - 2 * x3) - (y1 + y2).</p>
|
|
<p>Substituting x_i = Xi / Zi^2 and yi = Yi / Zi^3, for i=1,2,3, gives: U1 = X1*Z2^2, U2 = X2*Z1^2 S1 = Y1*Z2^3, S2 = Y2*Z1^3 Z = Z1*Z2 T = U1+U2 M = S1+S2 Q = T*M^2 R = T^2-U1*U2 X3 = 4*(R^2-Q) Y3 = 4*(R*(3*Q-2*R^2)-M^4) Z3 = 2*M*Z (Note that the paper uses xi = Xi / Zi and yi = Yi / Zi instead.)</p>
|
|
<p>This formula has the benefit of being the same for both addition of distinct points and doubling. However, it breaks down in the case that either point is infinity, or that y1 = -y2. We handle these cases in the following ways:</p>
|
|
<ul>
|
|
<li>If b is infinity we simply bail by means of a VERIFY_CHECK.</li>
|
|
<li>If a is infinity, we detect this, and at the end of the computation replace the result (which will be meaningless, but we compute to be constant-time) with b.x : b.y : 1.</li>
|
|
<li>If a = -b, we have y1 = -y2, which is a degenerate case. But here the answer is infinity, so we simply set the infinity flag of the result, overriding the computed values without even needing to cmov.</li>
|
|
<li>If y1 = -y2 but x1 != x2, which does occur thanks to certain properties of our curve (specifically, 1 has nontrivial cube roots in our field, and the curve equation has no x coefficient) then the answer is not infinity but also not given by the above equation. In this case, we cmov in place an alternate expression for lambda. Specifically (y1 - y2)/(x1 - x2). Where both these expressions for lambda are defined, they are equal, and can be obtained from each other by multiplication by (y1 + y2)/(y1 + y2) then substitution of x^3 + 7 for y^2 (using the curve equation). For all pairs of nonzero points (a, b) at least one is defined, so this covers everything.</li>
|
|
</ul>
|
|
<p>If lambda = R/M = 0/0 we have a problem (except in the "trivial" case that Z = z1z2 = 0, and this is special-cased later on). <br />
|
|
In case a->infinity == 1, replace r with (b->x, b->y, 1). </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00460">460</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4d0338f50b08d082caa32f8e72707b55"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4d0338f50b08d082caa32f8e72707b55">◆ </a></span>secp256k1_gej_add_ge_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_gej_add_ge_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>b</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>rzr</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00354">354</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8df21f3ef7412e6c4d39fb67dc0140c6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8df21f3ef7412e6c4d39fb67dc0140c6">◆ </a></span>secp256k1_gej_add_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_gej_add_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>b</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>rzr</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00301">301</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a180d4e54e906f101ce0f1e74563ce5f6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a180d4e54e906f101ce0f1e74563ce5f6">◆ </a></span>secp256k1_gej_add_zinv_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_gej_add_zinv_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>b</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>bzinv</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>We need to calculate (rx,ry,rz) = (ax,ay,az) + (bx,by,1/bzinv). Due to secp256k1's isomorphism we can multiply the Z coordinates on both sides by bzinv, and get: (rx,ry,rz*bzinv) = (ax,ay,az*bzinv) + (bx,by,1). This means that (rx,ry,rz) can be calculated as (ax,ay,az*bzinv) + (bx,by,1), when not applying the bzinv factor to rz. The variable az below holds the modified Z coordinate for a, which is used for the computation of rx and ry, but not for rz.</p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00403">403</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2454dfbe1e75eba118d2c0a4184a9acc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2454dfbe1e75eba118d2c0a4184a9acc">◆ </a></span>secp256k1_gej_clear()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_gej_clear </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>r</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00155">155</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="accf4e481cd660b1df01b4b90f5d28bb4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#accf4e481cd660b1df01b4b90f5d28bb4">◆ </a></span>secp256k1_gej_double_nonzero()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="secp256k1_8h.html#a7ddc487fd46aee88f21cabedb7268b1e">SECP256K1_INLINE</a> void secp256k1_gej_double_nonzero </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>rzr</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00296">296</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a033aa434a4d0838f649ad757dd44db46"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a033aa434a4d0838f649ad757dd44db46">◆ </a></span>secp256k1_gej_double_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_gej_double_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>rzr</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>For secp256k1, 2Q is infinity if and only if Q is infinity. This is because if 2Q = infinity, Q must equal -Q, or that Q.y == -(Q.y), or Q.y is 0. For a point on y^2 = x^3 + 7 to have y=0, x^3 must be -7 mod p. However, -7 has no cube root mod p.</p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00253">253</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="group__impl_8h_source.html#l00354">secp256k1_gej_add_ge_var()</a>, <a class="el" href="group__impl_8h_source.html#l00301">secp256k1_gej_add_var()</a>, <a class="el" href="group__impl_8h_source.html#l00403">secp256k1_gej_add_zinv_var()</a>, and <a class="el" href="group__impl_8h_source.html#l00296">secp256k1_gej_double_nonzero()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa32fc177f081f16d5979045d3632cf8b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa32fc177f081f16d5979045d3632cf8b">◆ </a></span>secp256k1_gej_eq_x_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static int secp256k1_gej_eq_x_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>x</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00198">198</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a33786d5853579c92d46fac51f6a40093"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a33786d5853579c92d46fac51f6a40093">◆ </a></span>secp256k1_gej_is_infinity()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static int secp256k1_gej_is_infinity </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00215">215</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="group__impl_8h_source.html#l00296">secp256k1_gej_double_nonzero()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aaf14c34acab0a279530f58c7e7d50749"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aaf14c34acab0a279530f58c7e7d50749">◆ </a></span>secp256k1_gej_is_valid_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static int secp256k1_gej_is_valid_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>y^2 = x^3 + 7 (Y/Z^3)^2 = (X/Z^2)^3 + 7 Y^2 / Z^6 = X^3 / Z^6 + 7 Y^2 = X^3 + 7*Z^6</p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00219">219</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l02208">run_point_times_order()</a>, and <a class="el" href="tests_8c_source.html#l02173">test_point_times_order()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af9194949a7aaf18aceab1dee73fe4027"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af9194949a7aaf18aceab1dee73fe4027">◆ </a></span>secp256k1_gej_neg()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_gej_neg </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>a</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00206">206</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9ca39d1f8a0d1d833dc682f0fc318137"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9ca39d1f8a0d1d833dc682f0fc318137">◆ </a></span>secp256k1_gej_rescale()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_gej_rescale </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>s</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00582">582</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad5f813e26afb239f03e83f0e61e05498"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad5f813e26afb239f03e83f0e61e05498">◆ </a></span>secp256k1_gej_set_ge()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_gej_set_ge </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> * </td>
|
|
<td class="paramname"><em>a</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00191">191</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="group__impl_8h_source.html#l00354">secp256k1_gej_add_ge_var()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2c6b24a2db08260d89e891eab7035b2c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2c6b24a2db08260d89e891eab7035b2c">◆ </a></span>secp256k1_gej_set_infinity()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void secp256k1_gej_set_infinity </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__gej.html">secp256k1_gej</a> * </td>
|
|
<td class="paramname"><em>r</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00148">148</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Variable Documentation</h2>
|
|
<a id="ac2075a99877abe469ea60a119fe68e6c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac2075a99877abe469ea60a119fe68e6c">◆ </a></span>secp256k1_ge_const_g</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const <a class="el" href="structsecp256k1__ge.html">secp256k1_ge</a> secp256k1_ge_const_g</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Initial value:</b><div class="fragment"><div class="line">= <a class="code" href="group_8h.html#adb0cb248ca6d0aabe3a82423233e6ce3">SECP256K1_GE_CONST</a>(</div><div class="line"> 0x79BE667EUL, 0xF9DCBBACUL, 0x55A06295UL, 0xCE870B07UL,</div><div class="line"> 0x029BFCDBUL, 0x2DCE28D9UL, 0x59F2815BUL, 0x16F81798UL,</div><div class="line"> 0x483ADA77UL, 0x26A3C465UL, 0x5DA4FBFCUL, 0x0E1108A8UL,</div><div class="line"> 0xFD17B448UL, 0xA6855419UL, 0x9C47D08FUL, 0xFB10D4B8UL</div><div class="line">)</div><div class="ttc" id="group_8h_html_adb0cb248ca6d0aabe3a82423233e6ce3"><div class="ttname"><a href="group_8h.html#adb0cb248ca6d0aabe3a82423233e6ce3">SECP256K1_GE_CONST</a></div><div class="ttdeci">#define SECP256K1_GE_CONST(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)</div><div class="ttdef"><b>Definition:</b> <a href="group_8h_source.html#l00020">group.h:20</a></div></div>
|
|
</div><!-- fragment --><p>Generator for secp256k1, value 'g' defined in "Standards for Efficient Cryptography" (SEC2) 2.7.1. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="group__impl_8h_source.html#l00019">19</a> of file <a class="el" href="group__impl_8h_source.html">group_impl.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l02300">ecmult_const_chain_multiply()</a>, <a class="el" href="tests_8c_source.html#l02257">ecmult_const_commutativity()</a>, <a class="el" href="tests_8c_source.html#l02636">run_ec_pubkey_parse_test()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00147">secp256k1_ecmult_context_build()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00159">secp256k1_ecmult_gen_blind()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00021">secp256k1_ecmult_gen_context_build()</a>, <a class="el" href="tests_8c_source.html#l02451">test_ecmult_constants()</a>, and <a class="el" href="tests_8c_source.html#l02173">test_point_times_order()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_44f34d1e62fda08bdb4ca69ab2d205ae.html">secp256k1</a></li><li class="navelem"><a class="el" href="dir_8db2ef784512d48b2a7d00369dfaac28.html">src</a></li><li class="navelem"><a class="el" href="group__impl_8h.html">group_impl.h</a></li>
|
|
<li class="footer">Generated on Thu Dec 14 2017 13:15:11 for Dash Core by
|
|
<a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|