mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 17:56:16 +00:00
1105 lines
66 KiB
HTML
1105 lines
66 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/field.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('field_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> </div>
|
|
<div class="headertitle">
|
|
<div class="title">field.h File Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p><a href="field_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:a8e925e94d5a7330d2ae68f6642d0c7b9"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a8e925e94d5a7330d2ae68f6642d0c7b9">secp256k1_fe_normalize</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r)</td></tr>
|
|
<tr class="separator:a8e925e94d5a7330d2ae68f6642d0c7b9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0aaec7df2f708a451a8e1f41a943d8b1"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a0aaec7df2f708a451a8e1f41a943d8b1">secp256k1_fe_normalize_weak</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r)</td></tr>
|
|
<tr class="separator:a0aaec7df2f708a451a8e1f41a943d8b1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2d45c987537eadb2923c93aa3af9db71"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a2d45c987537eadb2923c93aa3af9db71">secp256k1_fe_normalize_var</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r)</td></tr>
|
|
<tr class="separator:a2d45c987537eadb2923c93aa3af9db71"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac91a9780fb4f20634c2d5040e9f44936"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#ac91a9780fb4f20634c2d5040e9f44936">secp256k1_fe_normalizes_to_zero</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r)</td></tr>
|
|
<tr class="separator:ac91a9780fb4f20634c2d5040e9f44936"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a67adb176b8e6efd2d2475a9d0a199e18"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a67adb176b8e6efd2d2475a9d0a199e18">secp256k1_fe_normalizes_to_zero_var</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r)</td></tr>
|
|
<tr class="separator:a67adb176b8e6efd2d2475a9d0a199e18"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4bfba9980b6d6960ad623f1ddbbc547e"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a4bfba9980b6d6960ad623f1ddbbc547e">secp256k1_fe_set_int</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, int a)</td></tr>
|
|
<tr class="separator:a4bfba9980b6d6960ad623f1ddbbc547e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a619ec4805df6cc54d70e6682ceebd098"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a619ec4805df6cc54d70e6682ceebd098">secp256k1_fe_is_zero</a> (const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a)</td></tr>
|
|
<tr class="separator:a619ec4805df6cc54d70e6682ceebd098"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4657d3eea1cc59c7a20cc2d19663bf02"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a4657d3eea1cc59c7a20cc2d19663bf02">secp256k1_fe_is_odd</a> (const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a)</td></tr>
|
|
<tr class="separator:a4657d3eea1cc59c7a20cc2d19663bf02"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a16ab4d0dd8bcb5da1b888288063014f3"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a16ab4d0dd8bcb5da1b888288063014f3">secp256k1_fe_equal_var</a> (const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *b)</td></tr>
|
|
<tr class="separator:a16ab4d0dd8bcb5da1b888288063014f3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af372f2088796ef5338bb43dbb6dd5277"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#af372f2088796ef5338bb43dbb6dd5277">secp256k1_fe_cmp_var</a> (const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *b)</td></tr>
|
|
<tr class="separator:af372f2088796ef5338bb43dbb6dd5277"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5c86a65052e3b135919c00fe2233a43d"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a5c86a65052e3b135919c00fe2233a43d">secp256k1_fe_set_b32</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, const unsigned char *a)</td></tr>
|
|
<tr class="separator:a5c86a65052e3b135919c00fe2233a43d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abb1017649be14b9ac1823be3c573e542"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#abb1017649be14b9ac1823be3c573e542">secp256k1_fe_get_b32</a> (unsigned char *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a)</td></tr>
|
|
<tr class="separator:abb1017649be14b9ac1823be3c573e542"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4543ff08a66fc870acd56c921f2b30f7"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a4543ff08a66fc870acd56c921f2b30f7">secp256k1_fe_negate</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a, int m)</td></tr>
|
|
<tr class="separator:a4543ff08a66fc870acd56c921f2b30f7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3f7b55267ed0d5135530283da6314416"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a3f7b55267ed0d5135530283da6314416">secp256k1_fe_mul_int</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, int a)</td></tr>
|
|
<tr class="separator:a3f7b55267ed0d5135530283da6314416"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7512f80b60598e4af89c004890880fc7"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a7512f80b60598e4af89c004890880fc7">secp256k1_fe_add</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a)</td></tr>
|
|
<tr class="separator:a7512f80b60598e4af89c004890880fc7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a542b97d2574d9687c563d002587cf9a2"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a542b97d2574d9687c563d002587cf9a2">secp256k1_fe_mul</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *<a class="el" href="secp256k1_2src_2util_8h.html#ad3e284f8cb00286e85a753265f6b17b8">SECP256K1_RESTRICT</a> b)</td></tr>
|
|
<tr class="separator:a542b97d2574d9687c563d002587cf9a2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6cbe550ca5eb35e683b1c8d68d8de26b"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a6cbe550ca5eb35e683b1c8d68d8de26b">secp256k1_fe_sqr</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a)</td></tr>
|
|
<tr class="separator:a6cbe550ca5eb35e683b1c8d68d8de26b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:adeed9551ce946187f98c5e3d789e9575"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#adeed9551ce946187f98c5e3d789e9575">secp256k1_fe_sqrt_var</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a)</td></tr>
|
|
<tr class="separator:adeed9551ce946187f98c5e3d789e9575"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3a071aa04ce0d88003b059c0a8ee0c0e"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a3a071aa04ce0d88003b059c0a8ee0c0e">secp256k1_fe_inv</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a)</td></tr>
|
|
<tr class="separator:a3a071aa04ce0d88003b059c0a8ee0c0e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0090ecfb39b34a8965cc16ae1feca5aa"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a0090ecfb39b34a8965cc16ae1feca5aa">secp256k1_fe_inv_var</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a)</td></tr>
|
|
<tr class="separator:a0090ecfb39b34a8965cc16ae1feca5aa"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a728a757d8960973603be6f3b2aa13f4e"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a728a757d8960973603be6f3b2aa13f4e">secp256k1_fe_inv_all_var</a> (size_t len, <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a)</td></tr>
|
|
<tr class="separator:a728a757d8960973603be6f3b2aa13f4e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab2813c5c17c63e222d5a15a60f239b12"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#ab2813c5c17c63e222d5a15a60f239b12">secp256k1_fe_to_storage</a> (<a class="el" href="structsecp256k1__fe__storage.html">secp256k1_fe_storage</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a)</td></tr>
|
|
<tr class="separator:ab2813c5c17c63e222d5a15a60f239b12"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a644783b01d20445b5b2f3c9c2abfbae3"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a644783b01d20445b5b2f3c9c2abfbae3">secp256k1_fe_from_storage</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, const <a class="el" href="structsecp256k1__fe__storage.html">secp256k1_fe_storage</a> *a)</td></tr>
|
|
<tr class="separator:a644783b01d20445b5b2f3c9c2abfbae3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae9d61c6568f3a63bcea9146c056b18dc"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#ae9d61c6568f3a63bcea9146c056b18dc">secp256k1_fe_storage_cmov</a> (<a class="el" href="structsecp256k1__fe__storage.html">secp256k1_fe_storage</a> *r, const <a class="el" href="structsecp256k1__fe__storage.html">secp256k1_fe_storage</a> *a, int flag)</td></tr>
|
|
<tr class="separator:ae9d61c6568f3a63bcea9146c056b18dc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3e9ecf6eef0181f8f086611253f6776f"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="field_8h.html#a3e9ecf6eef0181f8f086611253f6776f">secp256k1_fe_cmov</a> (<a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *r, const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> *a, int flag)</td></tr>
|
|
<tr class="separator:a3e9ecf6eef0181f8f086611253f6776f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="a7512f80b60598e4af89c004890880fc7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7512f80b60598e4af89c004890880fc7">◆ </a></span>secp256k1_fe_add()</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_fe_add </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>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>Adds a field element to another. The result has the sum of the inputs' magnitudes as magnitude. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00164">bench_field_inverse()</a>, <a class="el" href="bench__internal_8c_source.html#l00174">bench_field_inverse_var()</a>, <a class="el" href="bench__internal_8c_source.html#l00184">bench_field_sqrt_var()</a>, <a class="el" href="tests_8c_source.html#l00070">random_field_element_magnitude()</a>, <a class="el" href="tests_8c_source.html#l01508">run_field_misc()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00087">secp256k1_ecdsa_sig_recover()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00203">secp256k1_ecdsa_sig_verify()</a>, <a class="el" href="field__impl_8h_source.html#l00024">secp256k1_fe_equal_var()</a>, <a class="el" href="field__impl_8h_source.html#l00219">secp256k1_fe_inv_var()</a>, <a class="el" href="group__impl_8h_source.html#l00239">secp256k1_ge_is_valid_var()</a>, <a class="el" href="group__impl_8h_source.html#l00168">secp256k1_ge_set_xquad_var()</a>, <a class="el" href="group__impl_8h_source.html#l00460">secp256k1_gej_add_ge()</a>, <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>, <a class="el" href="group__impl_8h_source.html#l00253">secp256k1_gej_double_var()</a>, <a class="el" href="group__impl_8h_source.html#l00219">secp256k1_gej_is_valid_var()</a>, and <a class="el" href="tests_8c_source.html#l01642">test_sqrt()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3e9ecf6eef0181f8f086611253f6776f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3e9ecf6eef0181f8f086611253f6776f">◆ </a></span>secp256k1_fe_cmov()</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_fe_cmov </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>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>If flag is true, set *r equal to *a; otherwise leave it. Constant-time. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01508">run_field_misc()</a>, and <a class="el" href="group__impl_8h_source.html#l00460">secp256k1_gej_add_ge()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af372f2088796ef5338bb43dbb6dd5277"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af372f2088796ef5338bb43dbb6dd5277">◆ </a></span>secp256k1_fe_cmp_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_fe_cmp_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>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>Compare two field elements. Requires both inputs to be normalized </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01702">gej_xyz_equals_gej()</a>, <a class="el" href="tests_8c_source.html#l01508">run_field_misc()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00087">secp256k1_ecdsa_sig_recover()</a>, and <a class="el" href="ecdsa__impl_8h_source.html#l00203">secp256k1_ecdsa_sig_verify()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a16ab4d0dd8bcb5da1b888288063014f3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a16ab4d0dd8bcb5da1b888288063014f3">◆ </a></span>secp256k1_fe_equal_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_fe_equal_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>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>Compare two field elements. Requires magnitude-1 inputs. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01454">check_fe_equal()</a>, <a class="el" href="tests_8c_source.html#l01692">ge_equals_ge()</a>, <a class="el" href="tests_8c_source.html#l01723">ge_equals_gej()</a>, <a class="el" href="tests_8c_source.html#l01469">run_field_convert()</a>, <a class="el" href="tests_8c_source.html#l01508">run_field_misc()</a>, <a class="el" href="tests_8c_source.html#l02208">run_point_times_order()</a>, <a class="el" href="group__impl_8h_source.html#l00239">secp256k1_ge_is_valid_var()</a>, <a class="el" href="group__impl_8h_source.html#l00198">secp256k1_gej_eq_x_var()</a>, <a class="el" href="group__impl_8h_source.html#l00219">secp256k1_gej_is_valid_var()</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="tests_8c_source.html#l02051">test_group_decompress()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a644783b01d20445b5b2f3c9c2abfbae3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a644783b01d20445b5b2f3c9c2abfbae3">◆ </a></span>secp256k1_fe_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_fe_from_storage </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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__storage.html">secp256k1_fe_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>Convert a field element back from the storage type. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01469">run_field_convert()</a>, <a class="el" href="tests_8c_source.html#l01508">run_field_misc()</a>, and <a class="el" href="group__impl_8h_source.html#l00604">secp256k1_ge_from_storage()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="abb1017649be14b9ac1823be3c573e542"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abb1017649be14b9ac1823be3c573e542">◆ </a></span>secp256k1_fe_get_b32()</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_fe_get_b32 </td>
|
|
<td>(</td>
|
|
<td class="paramtype">unsigned char * </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>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>Convert a field element to a 32-byte big endian value. Requires the input to be normalized </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01469">run_field_convert()</a>, <a class="el" href="ecdh_2main__impl_8h_source.html#l00013">secp256k1_ecdh()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00257">secp256k1_ecdsa_sig_sign()</a>, <a class="el" href="eckey__impl_8h_source.html#l00036">secp256k1_eckey_pubkey_serialize()</a>, <a class="el" href="field__impl_8h_source.html#l00219">secp256k1_fe_inv_var()</a>, <a class="el" href="secp256k1_8c_source.html#l00138">secp256k1_pubkey_save()</a>, and <a class="el" href="schnorr__impl_8h_source.html#l00062">secp256k1_schnorr_sig_sign()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3a071aa04ce0d88003b059c0a8ee0c0e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3a071aa04ce0d88003b059c0a8ee0c0e">◆ </a></span>secp256k1_fe_inv()</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_fe_inv </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>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>Sets a field element to be the (modular) inverse of another. Requires the input's magnitude to be at most 8. The output magnitude is 1 (but not guaranteed to be normalized). </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00164">bench_field_inverse()</a>, <a class="el" href="tests_8c_source.html#l01580">run_field_inv()</a>, <a class="el" href="group__impl_8h_source.html#l00052">secp256k1_ge_set_gej()</a>, and <a class="el" href="group__impl_8h_source.html#l00107">secp256k1_ge_set_table_gej_var()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a728a757d8960973603be6f3b2aa13f4e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a728a757d8960973603be6f3b2aa13f4e">◆ </a></span>secp256k1_fe_inv_all_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_fe_inv_all_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__fe.html">secp256k1_fe</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>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>Calculate the (modular) inverses of a batch of field elements. Requires the inputs' magnitudes to be at most 8. The output magnitudes are 1 (but not guaranteed to be normalized). The inputs and outputs must not overlap in memory. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01604">run_field_inv_all_var()</a>, <a class="el" href="group__impl_8h_source.html#l00081">secp256k1_ge_set_all_gej_var()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0090ecfb39b34a8965cc16ae1feca5aa"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0090ecfb39b34a8965cc16ae1feca5aa">◆ </a></span>secp256k1_fe_inv_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_fe_inv_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>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>Potentially faster version of secp256k1_fe_inv, without constant-time guarantee. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00174">bench_field_inverse_var()</a>, <a class="el" href="tests_8c_source.html#l01592">run_field_inv_var()</a>, <a class="el" href="group__impl_8h_source.html#l00065">secp256k1_ge_set_gej_var()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4657d3eea1cc59c7a20cc2d19663bf02"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4657d3eea1cc59c7a20cc2d19663bf02">◆ </a></span>secp256k1_fe_is_odd()</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_fe_is_odd </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>Check the "oddness" of a field element. Requires the input to be normalized. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="ecdh_2main__impl_8h_source.html#l00013">secp256k1_ecdh()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00257">secp256k1_ecdsa_sig_sign()</a>, <a class="el" href="eckey__impl_8h_source.html#l00017">secp256k1_eckey_pubkey_parse()</a>, <a class="el" href="eckey__impl_8h_source.html#l00036">secp256k1_eckey_pubkey_serialize()</a>, <a class="el" href="group__impl_8h_source.html#l00179">secp256k1_ge_set_xo_var()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00062">secp256k1_schnorr_sig_sign()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00106">secp256k1_schnorr_sig_verify()</a>, and <a class="el" href="tests_8c_source.html#l02051">test_group_decompress()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a619ec4805df6cc54d70e6682ceebd098"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a619ec4805df6cc54d70e6682ceebd098">◆ </a></span>secp256k1_fe_is_zero()</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_fe_is_zero </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>Verify whether a field element is zero. Requires the input to be normalized. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01433">random_fe_non_zero()</a>, <a class="el" href="tests_8c_source.html#l00095">random_group_element_jacobian_test()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00159">secp256k1_ecmult_gen_blind()</a>, <a class="el" href="group__impl_8h_source.html#l00582">secp256k1_gej_rescale()</a>, <a class="el" href="secp256k1_8c_source.html#l00119">secp256k1_pubkey_load()</a>, <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>, and <a class="el" href="tests_8c_source.html#l01642">test_sqrt()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a542b97d2574d9687c563d002587cf9a2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a542b97d2574d9687c563d002587cf9a2">◆ </a></span>secp256k1_fe_mul()</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_fe_mul </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>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> *<a class="el" href="secp256k1_2src_2util_8h.html#ad3e284f8cb00286e85a753265f6b17b8">SECP256K1_RESTRICT</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>Sets a field element to be the product of two others. Requires the inputs' magnitudes to be at most 8. The output magnitude is 1 (but not guaranteed to be normalized). </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00146">bench_field_mul()</a>, <a class="el" href="tests_8c_source.html#l01462">check_fe_inverse()</a>, <a class="el" href="tests_8c_source.html#l01723">ge_equals_gej()</a>, <a class="el" href="tests_8c_source.html#l00095">random_group_element_jacobian_test()</a>, <a class="el" href="tests_8c_source.html#l01508">run_field_misc()</a>, <a class="el" href="tests_8c_source.html#l01656">run_sqrt()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00269">secp256k1_ecmult()</a>, <a class="el" href="ecmult__const__impl_8h_source.html#l00125">secp256k1_ecmult_const()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00035">secp256k1_ecmult_odd_multiples_table()</a>, <a class="el" href="field__impl_8h_source.html#l00129">secp256k1_fe_inv()</a>, <a class="el" href="field__impl_8h_source.html#l00256">secp256k1_fe_inv_all_var()</a>, <a class="el" href="field__impl_8h_source.html#l00219">secp256k1_fe_inv_var()</a>, <a class="el" href="field__impl_8h_source.html#l00031">secp256k1_fe_sqrt_var()</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#l00239">secp256k1_ge_is_valid_var()</a>, <a class="el" href="group__impl_8h_source.html#l00052">secp256k1_ge_set_gej()</a>, <a class="el" href="group__impl_8h_source.html#l00065">secp256k1_ge_set_gej_var()</a>, <a class="el" href="group__impl_8h_source.html#l00026">secp256k1_ge_set_gej_zinv()</a>, <a class="el" href="group__impl_8h_source.html#l00107">secp256k1_ge_set_table_gej_var()</a>, <a class="el" href="group__impl_8h_source.html#l00168">secp256k1_ge_set_xquad_var()</a>, <a class="el" href="group__impl_8h_source.html#l00460">secp256k1_gej_add_ge()</a>, <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>, <a class="el" href="group__impl_8h_source.html#l00253">secp256k1_gej_double_var()</a>, <a class="el" href="group__impl_8h_source.html#l00198">secp256k1_gej_eq_x_var()</a>, <a class="el" href="group__impl_8h_source.html#l00219">secp256k1_gej_is_valid_var()</a>, <a class="el" href="group__impl_8h_source.html#l00582">secp256k1_gej_rescale()</a>, and <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3f7b55267ed0d5135530283da6314416"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3f7b55267ed0d5135530283da6314416">◆ </a></span>secp256k1_fe_mul_int()</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_fe_mul_int </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </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>Multiplies the passed field element with a small integer constant. Multiplies the magnitude by that small integer. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00070">random_field_element_magnitude()</a>, <a class="el" href="tests_8c_source.html#l01508">run_field_misc()</a>, <a class="el" href="tests_8c_source.html#l01626">run_sqr()</a>, <a class="el" href="group__impl_8h_source.html#l00460">secp256k1_gej_add_ge()</a>, <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>, <a class="el" href="group__impl_8h_source.html#l00253">secp256k1_gej_double_var()</a>, and <a class="el" href="group__impl_8h_source.html#l00219">secp256k1_gej_is_valid_var()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4543ff08a66fc870acd56c921f2b30f7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4543ff08a66fc870acd56c921f2b30f7">◆ </a></span>secp256k1_fe_negate()</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_fe_negate </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>m</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>Set a field element equal to the additive inverse of another. Takes a maximum magnitude of the input as an argument. The magnitude of the output is one higher. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01446">random_fe_non_square()</a>, <a class="el" href="tests_8c_source.html#l00070">random_field_element_magnitude()</a>, <a class="el" href="tests_8c_source.html#l01508">run_field_misc()</a>, <a class="el" href="tests_8c_source.html#l01626">run_sqr()</a>, <a class="el" href="tests_8c_source.html#l01656">run_sqrt()</a>, <a class="el" href="field__impl_8h_source.html#l00024">secp256k1_fe_equal_var()</a>, <a class="el" href="group__impl_8h_source.html#l00046">secp256k1_ge_neg()</a>, <a class="el" href="group__impl_8h_source.html#l00179">secp256k1_ge_set_xo_var()</a>, <a class="el" href="group__impl_8h_source.html#l00460">secp256k1_gej_add_ge()</a>, <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>, <a class="el" href="group__impl_8h_source.html#l00253">secp256k1_gej_double_var()</a>, <a class="el" href="group__impl_8h_source.html#l00206">secp256k1_gej_neg()</a>, and <a class="el" href="tests_8c_source.html#l01642">test_sqrt()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8e925e94d5a7330d2ae68f6642d0c7b9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8e925e94d5a7330d2ae68f6642d0c7b9">◆ </a></span>secp256k1_fe_normalize()</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_fe_normalize </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>Field element module.</p>
|
|
<p>Field elements can be represented in several ways, but code accessing it (and implementations) need to take certain properties into account:</p><ul>
|
|
<li>Each field element can be normalized or not.</li>
|
|
<li>Each field element has a magnitude, which represents how far away its representation is away from normalization. Normalized elements always have a magnitude of 1, but a magnitude of 1 doesn't imply normality.Normalize a field element. </li>
|
|
</ul>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00128">bench_field_normalize()</a>, <a class="el" href="tests_8c_source.html#l01702">gej_xyz_equals_gej()</a>, <a class="el" href="tests_8c_source.html#l01433">random_fe_non_zero()</a>, <a class="el" href="tests_8c_source.html#l00070">random_field_element_magnitude()</a>, <a class="el" href="tests_8c_source.html#l00084">random_group_element_test()</a>, <a class="el" href="tests_8c_source.html#l01626">run_sqr()</a>, <a class="el" href="ecdh_2main__impl_8h_source.html#l00013">secp256k1_ecdh()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00257">secp256k1_ecdsa_sig_sign()</a>, <a class="el" href="group__impl_8h_source.html#l00593">secp256k1_ge_to_storage()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00062">secp256k1_schnorr_sig_sign()</a>, and <a class="el" href="tests_8c_source.html#l01642">test_sqrt()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2d45c987537eadb2923c93aa3af9db71"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2d45c987537eadb2923c93aa3af9db71">◆ </a></span>secp256k1_fe_normalize_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_fe_normalize_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>Normalize a field element, without constant-time guarantee. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01454">check_fe_equal()</a>, <a class="el" href="tests_8c_source.html#l01508">run_field_misc()</a>, <a class="el" href="tests_8c_source.html#l02208">run_point_times_order()</a>, <a class="el" href="eckey__impl_8h_source.html#l00036">secp256k1_eckey_pubkey_serialize()</a>, <a class="el" href="field__impl_8h_source.html#l00219">secp256k1_fe_inv_var()</a>, <a class="el" href="group__impl_8h_source.html#l00179">secp256k1_ge_set_xo_var()</a>, <a class="el" href="secp256k1_8c_source.html#l00138">secp256k1_pubkey_save()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00106">secp256k1_schnorr_sig_verify()</a>, and <a class="el" href="tests_8c_source.html#l02051">test_group_decompress()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0aaec7df2f708a451a8e1f41a943d8b1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0aaec7df2f708a451a8e1f41a943d8b1">◆ </a></span>secp256k1_fe_normalize_weak()</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_fe_normalize_weak </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>Weakly normalize a field element: reduce it magnitude to 1, but don't fully normalize. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00137">bench_field_normalize_weak()</a>, <a class="el" href="tests_8c_source.html#l01454">check_fe_equal()</a>, <a class="el" href="tests_8c_source.html#l01723">ge_equals_gej()</a>, <a class="el" href="ecmult__const__impl_8h_source.html#l00125">secp256k1_ecmult_const()</a>, <a class="el" href="group__impl_8h_source.html#l00239">secp256k1_ge_is_valid_var()</a>, <a class="el" href="group__impl_8h_source.html#l00046">secp256k1_ge_neg()</a>, <a class="el" href="group__impl_8h_source.html#l00460">secp256k1_gej_add_ge()</a>, <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#l00403">secp256k1_gej_add_zinv_var()</a>, <a class="el" href="group__impl_8h_source.html#l00253">secp256k1_gej_double_var()</a>, <a class="el" href="group__impl_8h_source.html#l00198">secp256k1_gej_eq_x_var()</a>, <a class="el" href="group__impl_8h_source.html#l00219">secp256k1_gej_is_valid_var()</a>, and <a class="el" href="group__impl_8h_source.html#l00206">secp256k1_gej_neg()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac91a9780fb4f20634c2d5040e9f44936"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac91a9780fb4f20634c2d5040e9f44936">◆ </a></span>secp256k1_fe_normalizes_to_zero()</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_fe_normalizes_to_zero </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>Verify whether a field element represents zero i.e. would normalize to a zero value. The field implementation may optionally normalize the input, but this should not be relied upon. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="group__impl_8h_source.html#l00460">secp256k1_gej_add_ge()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a67adb176b8e6efd2d2475a9d0a199e18"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a67adb176b8e6efd2d2475a9d0a199e18">◆ </a></span>secp256k1_fe_normalizes_to_zero_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_fe_normalizes_to_zero_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>Verify whether a field element represents zero i.e. would normalize to a zero value. The field implementation may optionally normalize the input, but this should not be relied upon. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="field__impl_8h_source.html#l00024">secp256k1_fe_equal_var()</a>, <a class="el" href="field__impl_8h_source.html#l00219">secp256k1_fe_inv_var()</a>, <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>, and <a class="el" href="group__impl_8h_source.html#l00403">secp256k1_gej_add_zinv_var()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5c86a65052e3b135919c00fe2233a43d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5c86a65052e3b135919c00fe2233a43d">◆ </a></span>secp256k1_fe_set_b32()</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_fe_set_b32 </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const unsigned char * </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>Set a field element equal to 32-byte big endian value. If successful, the resulting field element is normalized. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00030">bench_setup()</a>, <a class="el" href="tests_8c_source.html#l01413">random_fe()</a>, <a class="el" href="tests_8c_source.html#l01423">random_fe_test()</a>, <a class="el" href="tests_8c_source.html#l00060">random_field_element_test()</a>, <a class="el" href="tests_8c_source.html#l01469">run_field_convert()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00087">secp256k1_ecdsa_sig_recover()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00203">secp256k1_ecdsa_sig_verify()</a>, <a class="el" href="eckey__impl_8h_source.html#l00017">secp256k1_eckey_pubkey_parse()</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="field__impl_8h_source.html#l00219">secp256k1_fe_inv_var()</a>, <a class="el" href="secp256k1_8c_source.html#l00119">secp256k1_pubkey_load()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00144">secp256k1_schnorr_sig_recover()</a>, and <a class="el" href="schnorr__impl_8h_source.html#l00106">secp256k1_schnorr_sig_verify()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4bfba9980b6d6960ad623f1ddbbc547e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4bfba9980b6d6960ad623f1ddbbc547e">◆ </a></span>secp256k1_fe_set_int()</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_fe_set_int </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </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>Set a field element equal to a small integer. Resulting field element is normalized. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01626">run_sqr()</a>, <a class="el" href="tests_8c_source.html#l01656">run_sqrt()</a>, <a class="el" href="group__impl_8h_source.html#l00239">secp256k1_ge_is_valid_var()</a>, <a class="el" href="group__impl_8h_source.html#l00052">secp256k1_ge_set_gej()</a>, <a class="el" href="group__impl_8h_source.html#l00065">secp256k1_ge_set_gej_var()</a>, <a class="el" href="group__impl_8h_source.html#l00168">secp256k1_ge_set_xquad_var()</a>, <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>, <a class="el" href="group__impl_8h_source.html#l00253">secp256k1_gej_double_var()</a>, <a class="el" href="group__impl_8h_source.html#l00191">secp256k1_gej_set_ge()</a>, and <a class="el" href="group__impl_8h_source.html#l00148">secp256k1_gej_set_infinity()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a6cbe550ca5eb35e683b1c8d68d8de26b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6cbe550ca5eb35e683b1c8d68d8de26b">◆ </a></span>secp256k1_fe_sqr()</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_fe_sqr </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>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>Sets a field element to be the square of another. Requires the input's magnitude to be at most 8. The output magnitude is 1 (but not guaranteed to be normalized). </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00155">bench_field_sqr()</a>, <a class="el" href="tests_8c_source.html#l01723">ge_equals_gej()</a>, <a class="el" href="tests_8c_source.html#l00095">random_group_element_jacobian_test()</a>, <a class="el" href="tests_8c_source.html#l02208">run_point_times_order()</a>, <a class="el" href="tests_8c_source.html#l01626">run_sqr()</a>, <a class="el" href="tests_8c_source.html#l01656">run_sqrt()</a>, <a class="el" href="field__impl_8h_source.html#l00129">secp256k1_fe_inv()</a>, <a class="el" href="field__impl_8h_source.html#l00031">secp256k1_fe_sqrt_var()</a>, <a class="el" href="group__impl_8h_source.html#l00239">secp256k1_ge_is_valid_var()</a>, <a class="el" href="group__impl_8h_source.html#l00052">secp256k1_ge_set_gej()</a>, <a class="el" href="group__impl_8h_source.html#l00065">secp256k1_ge_set_gej_var()</a>, <a class="el" href="group__impl_8h_source.html#l00026">secp256k1_ge_set_gej_zinv()</a>, <a class="el" href="group__impl_8h_source.html#l00168">secp256k1_ge_set_xquad_var()</a>, <a class="el" href="group__impl_8h_source.html#l00460">secp256k1_gej_add_ge()</a>, <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>, <a class="el" href="group__impl_8h_source.html#l00253">secp256k1_gej_double_var()</a>, <a class="el" href="group__impl_8h_source.html#l00198">secp256k1_gej_eq_x_var()</a>, <a class="el" href="group__impl_8h_source.html#l00219">secp256k1_gej_is_valid_var()</a>, <a class="el" href="group__impl_8h_source.html#l00582">secp256k1_gej_rescale()</a>, <a class="el" href="tests_8c_source.html#l01740">test_ge()</a>, and <a class="el" href="tests_8c_source.html#l02051">test_group_decompress()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="adeed9551ce946187f98c5e3d789e9575"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#adeed9551ce946187f98c5e3d789e9575">◆ </a></span>secp256k1_fe_sqrt_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_fe_sqrt_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe.html">secp256k1_fe</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>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>If a has a square root, it is computed in r and 1 is returned. If a does not have a square root, the root of its negation is computed and 0 is returned. The input's magnitude can be at most 8. The output magnitude is 1 (but not guaranteed to be normalized). The result in r will always be a square itself. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00184">bench_field_sqrt_var()</a>, <a class="el" href="tests_8c_source.html#l01446">random_fe_non_square()</a>, <a class="el" href="group__impl_8h_source.html#l00168">secp256k1_ge_set_xquad_var()</a>, <a class="el" href="tests_8c_source.html#l02051">test_group_decompress()</a>, and <a class="el" href="tests_8c_source.html#l01642">test_sqrt()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae9d61c6568f3a63bcea9146c056b18dc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae9d61c6568f3a63bcea9146c056b18dc">◆ </a></span>secp256k1_fe_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 void secp256k1_fe_storage_cmov </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe__storage.html">secp256k1_fe_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__fe__storage.html">secp256k1_fe_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>If flag is true, set *r equal to *a; otherwise leave it. Constant-time. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01508">run_field_misc()</a>, and <a class="el" href="group__impl_8h_source.html#l00610">secp256k1_ge_storage_cmov()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab2813c5c17c63e222d5a15a60f239b12"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab2813c5c17c63e222d5a15a60f239b12">◆ </a></span>secp256k1_fe_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_fe_to_storage </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__fe__storage.html">secp256k1_fe_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__fe.html">secp256k1_fe</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>Convert a field element to the storage type. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l01469">run_field_convert()</a>, <a class="el" href="tests_8c_source.html#l01508">run_field_misc()</a>, and <a class="el" href="group__impl_8h_source.html#l00593">secp256k1_ge_to_storage()</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="field_8h.html">field.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>
|