mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 17:56:16 +00:00
1048 lines
62 KiB
HTML
1048 lines
62 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/scalar.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('scalar_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">scalar.h File Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="textblock"><code>#include "<a class="el" href="num_8h_source.html">num.h</a>"</code><br />
|
|
</div>
|
|
<p><a href="scalar_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:ad8fb9bc2a828903963bf37806d8edd11"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#ad8fb9bc2a828903963bf37806d8edd11">secp256k1_scalar_clear</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *r)</td></tr>
|
|
<tr class="separator:ad8fb9bc2a828903963bf37806d8edd11"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a70d7af05e9c9a579ed5cb20d9f22eeba"><td class="memItemLeft" align="right" valign="top">static unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a70d7af05e9c9a579ed5cb20d9f22eeba">secp256k1_scalar_get_bits</a> (const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a, unsigned int offset, unsigned int <a class="el" href="tests_8c.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a>)</td></tr>
|
|
<tr class="separator:a70d7af05e9c9a579ed5cb20d9f22eeba"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abede7dbe3b5a38a51b388d46f4c5b52d"><td class="memItemLeft" align="right" valign="top">static unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#abede7dbe3b5a38a51b388d46f4c5b52d">secp256k1_scalar_get_bits_var</a> (const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a, unsigned int offset, unsigned int <a class="el" href="tests_8c.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a>)</td></tr>
|
|
<tr class="separator:abede7dbe3b5a38a51b388d46f4c5b52d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a25cc2d45ae1d1765d07c3313cdf46fa0"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a25cc2d45ae1d1765d07c3313cdf46fa0">secp256k1_scalar_set_b32</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *r, const unsigned char *bin, int *overflow)</td></tr>
|
|
<tr class="separator:a25cc2d45ae1d1765d07c3313cdf46fa0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a41cb11650e4dea0fe7ac5b59b9fce9dc"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a41cb11650e4dea0fe7ac5b59b9fce9dc">secp256k1_scalar_set_int</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *r, unsigned int v)</td></tr>
|
|
<tr class="separator:a41cb11650e4dea0fe7ac5b59b9fce9dc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4fa08f8af5a23f505b44c9ef1bec1831"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a4fa08f8af5a23f505b44c9ef1bec1831">secp256k1_scalar_get_b32</a> (unsigned char *bin, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a)</td></tr>
|
|
<tr class="separator:a4fa08f8af5a23f505b44c9ef1bec1831"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a83257652850276cd74c7cdd1f9444d9c"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a83257652850276cd74c7cdd1f9444d9c">secp256k1_scalar_add</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *r, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *b)</td></tr>
|
|
<tr class="separator:a83257652850276cd74c7cdd1f9444d9c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad6596a0249548deb678f0b630204254f"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#ad6596a0249548deb678f0b630204254f">secp256k1_scalar_cadd_bit</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *r, unsigned int bit, int flag)</td></tr>
|
|
<tr class="separator:ad6596a0249548deb678f0b630204254f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a89db15f705c8eafcd10c08181523acd0"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a89db15f705c8eafcd10c08181523acd0">secp256k1_scalar_mul</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *r, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *b)</td></tr>
|
|
<tr class="separator:a89db15f705c8eafcd10c08181523acd0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae9fcdf1db22cb93c2a2f06b0a9c957d3"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#ae9fcdf1db22cb93c2a2f06b0a9c957d3">secp256k1_scalar_shr_int</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *r, int n)</td></tr>
|
|
<tr class="separator:ae9fcdf1db22cb93c2a2f06b0a9c957d3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2e65618baa17c59e89149a9f7e632f69"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a2e65618baa17c59e89149a9f7e632f69">secp256k1_scalar_sqr</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *r, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a)</td></tr>
|
|
<tr class="separator:a2e65618baa17c59e89149a9f7e632f69"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac048cded7c9731249ada44d489a258d5"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#ac048cded7c9731249ada44d489a258d5">secp256k1_scalar_inverse</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *r, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a)</td></tr>
|
|
<tr class="separator:ac048cded7c9731249ada44d489a258d5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a58e84d0cabe81139df5c71759f833855"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a58e84d0cabe81139df5c71759f833855">secp256k1_scalar_inverse_var</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *r, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a)</td></tr>
|
|
<tr class="separator:a58e84d0cabe81139df5c71759f833855"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa3f1c1d4536adf835ee256878c222968"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#aa3f1c1d4536adf835ee256878c222968">secp256k1_scalar_negate</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *r, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a)</td></tr>
|
|
<tr class="separator:aa3f1c1d4536adf835ee256878c222968"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3f0ac84fe49a1c1f51212582a2c149d4"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a3f0ac84fe49a1c1f51212582a2c149d4">secp256k1_scalar_is_zero</a> (const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a)</td></tr>
|
|
<tr class="separator:a3f0ac84fe49a1c1f51212582a2c149d4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa1118b3273d3c9d15541f29373b93e97"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#aa1118b3273d3c9d15541f29373b93e97">secp256k1_scalar_is_one</a> (const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a)</td></tr>
|
|
<tr class="separator:aa1118b3273d3c9d15541f29373b93e97"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3eb65cf9bfad7c430cbb3dc26d494a95"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a3eb65cf9bfad7c430cbb3dc26d494a95">secp256k1_scalar_is_even</a> (const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a)</td></tr>
|
|
<tr class="separator:a3eb65cf9bfad7c430cbb3dc26d494a95"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aab66620cbbe49bec3c7c02f4a1219c05"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#aab66620cbbe49bec3c7c02f4a1219c05">secp256k1_scalar_is_high</a> (const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a)</td></tr>
|
|
<tr class="separator:aab66620cbbe49bec3c7c02f4a1219c05"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a520b78be2bca742daa8d5efa5c343291"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a520b78be2bca742daa8d5efa5c343291">secp256k1_scalar_cond_negate</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a, int flag)</td></tr>
|
|
<tr class="separator:a520b78be2bca742daa8d5efa5c343291"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a75c8cc0159d53eefaf86a296ba882420"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a75c8cc0159d53eefaf86a296ba882420">secp256k1_scalar_get_num</a> (<a class="el" href="structsecp256k1__num.html">secp256k1_num</a> *r, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a)</td></tr>
|
|
<tr class="separator:a75c8cc0159d53eefaf86a296ba882420"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a54e25150a9e06c01bcc4518b68aa288c"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a54e25150a9e06c01bcc4518b68aa288c">secp256k1_scalar_order_get_num</a> (<a class="el" href="structsecp256k1__num.html">secp256k1_num</a> *r)</td></tr>
|
|
<tr class="separator:a54e25150a9e06c01bcc4518b68aa288c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4ba37c67745038e5ff23ca66f051837d"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a4ba37c67745038e5ff23ca66f051837d">secp256k1_scalar_eq</a> (const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *b)</td></tr>
|
|
<tr class="separator:a4ba37c67745038e5ff23ca66f051837d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8d19fb29bd4c9d863572eba08e97af20"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="scalar_8h.html#a8d19fb29bd4c9d863572eba08e97af20">secp256k1_scalar_mul_shift_var</a> (<a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *r, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *a, const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> *b, unsigned int shift)</td></tr>
|
|
<tr class="separator:a8d19fb29bd4c9d863572eba08e97af20"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="a83257652850276cd74c7cdd1f9444d9c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a83257652850276cd74c7cdd1f9444d9c">◆ </a></span>secp256k1_scalar_add()</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_scalar_add </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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__scalar.html">secp256k1_scalar</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__scalar.html">secp256k1_scalar</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>Add two scalars together (modulo the group order). Returns whether it overflowed. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00230">bench_ecmult_wnaf()</a>, <a class="el" href="bench__internal_8c_source.html#l00059">bench_scalar_add()</a>, <a class="el" href="bench__internal_8c_source.html#l00108">bench_scalar_inverse()</a>, <a class="el" href="bench__internal_8c_source.html#l00118">bench_scalar_inverse_var()</a>, <a class="el" href="bench__internal_8c_source.html#l00240">bench_wnaf_const()</a>, <a class="el" href="tests_8c_source.html#l02109">run_ecmult_chain()</a>, <a class="el" href="tests_8c_source.html#l00799">run_scalar_tests()</a>, <a class="el" href="tests_8c_source.html#l00514">scalar_test()</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#l00054">secp256k1_eckey_privkey_tweak_add()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00124">secp256k1_ecmult_gen()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00181">secp256k1_schnorr_sig_combine()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00062">secp256k1_schnorr_sig_sign()</a>, <a class="el" href="tests_8c_source.html#l02382">test_constant_wnaf()</a>, <a class="el" href="tests_8c_source.html#l02019">test_ec_combine()</a>, <a class="el" href="tests_8c_source.html#l03206">test_ecdsa_sign_verify()</a>, and <a class="el" href="tests_8c_source.html#l02333">test_wnaf()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad6596a0249548deb678f0b630204254f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad6596a0249548deb678f0b630204254f">◆ </a></span>secp256k1_scalar_cadd_bit()</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_scalar_cadd_bit </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned int </td>
|
|
<td class="paramname"><em>bit</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>Conditionally add a power of two to a scalar. The result is not allowed to overflow. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>, <a class="el" href="ecmult__const__impl_8h_source.html#l00057">secp256k1_wnaf_const()</a>, and <a class="el" href="tests_8c_source.html#l02382">test_constant_wnaf()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad8fb9bc2a828903963bf37806d8edd11"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad8fb9bc2a828903963bf37806d8edd11">◆ </a></span>secp256k1_scalar_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_scalar_clear </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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>Clear a scalar to prevent the leak of sensitive data. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="secp256k1_8c_source.html#l00432">secp256k1_ec_privkey_tweak_add()</a>, <a class="el" href="secp256k1_8c_source.html#l00480">secp256k1_ec_privkey_tweak_mul()</a>, <a class="el" href="secp256k1_8c_source.html#l00409">secp256k1_ec_pubkey_create()</a>, <a class="el" href="secp256k1_8c_source.html#l00395">secp256k1_ec_seckey_verify()</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="secp256k1_8c_source.html#l00349">secp256k1_ecdsa_sign()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00123">secp256k1_ecdsa_sign_recoverable()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00124">secp256k1_ecmult_gen()</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#l00115">secp256k1_ecmult_gen_context_clear()</a>, <a class="el" href="schnorr_2main__impl_8h_source.html#l00091">secp256k1_schnorr_generate_nonce_pair()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00181">secp256k1_schnorr_sig_combine()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00062">secp256k1_schnorr_sig_sign()</a>, and <a class="el" href="schnorr_2main__impl_8h_source.html#l00023">secp256k1_schnorr_sign()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a520b78be2bca742daa8d5efa5c343291"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a520b78be2bca742daa8d5efa5c343291">◆ </a></span>secp256k1_scalar_cond_negate()</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_scalar_cond_negate </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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>Conditionally negate a number, in constant time. Returns -1 if the number was negated, 1 otherwise </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l02427">run_wnaf()</a>, <a class="el" href="ecmult__const__impl_8h_source.html#l00057">secp256k1_wnaf_const()</a>, and <a class="el" href="tests_8c_source.html#l02367">test_constant_wnaf_negate()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4ba37c67745038e5ff23ca66f051837d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4ba37c67745038e5ff23ca66f051837d">◆ </a></span>secp256k1_scalar_eq()</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_scalar_eq </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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__scalar.html">secp256k1_scalar</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 scalars. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00799">run_scalar_tests()</a>, <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>, <a class="el" href="tests_8c_source.html#l02382">test_constant_wnaf()</a>, <a class="el" href="tests_8c_source.html#l02367">test_constant_wnaf_negate()</a>, <a class="el" href="tests_8c_source.html#l03811">test_ecdsa_edge_cases()</a>, <a class="el" href="tests_8c_source.html#l02488">test_ecmult_gen_blind()</a>, <a class="el" href="tests_8c_source.html#l02511">test_ecmult_gen_blind_reset()</a>, and <a class="el" href="tests_8c_source.html#l02333">test_wnaf()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4fa08f8af5a23f505b44c9ef1bec1831"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4fa08f8af5a23f505b44c9ef1bec1831">◆ </a></span>secp256k1_scalar_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_scalar_get_b32 </td>
|
|
<td>(</td>
|
|
<td class="paramtype">unsigned char * </td>
|
|
<td class="paramname"><em>bin</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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 scalar to a byte array. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>, <a class="el" href="secp256k1_8c_source.html#l00432">secp256k1_ec_privkey_tweak_add()</a>, <a class="el" href="secp256k1_8c_source.html#l00480">secp256k1_ec_privkey_tweak_mul()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00027">secp256k1_ecdsa_recoverable_signature_save()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00060">secp256k1_ecdsa_recoverable_signature_serialize_compact()</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#l00179">secp256k1_ecdsa_sig_serialize()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00203">secp256k1_ecdsa_sig_verify()</a>, <a class="el" href="secp256k1_8c_source.html#l00206">secp256k1_ecdsa_signature_save()</a>, <a class="el" href="secp256k1_8c_source.html#l00265">secp256k1_ecdsa_signature_serialize_compact()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00159">secp256k1_ecmult_gen_blind()</a>, <a class="el" href="scalar__impl_8h_source.html#l00028">secp256k1_scalar_get_num()</a>, <a class="el" href="scalar__impl_8h_source.html#l00242">secp256k1_scalar_inverse_var()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00181">secp256k1_schnorr_sig_combine()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00062">secp256k1_schnorr_sig_sign()</a>, <a class="el" href="ecdh_2tests__impl_8h_source.html#l00044">test_bad_scalar()</a>, <a class="el" href="ecdh_2tests__impl_8h_source.html#l00010">test_ecdh_generator_basepoint()</a>, <a class="el" href="tests_8c_source.html#l03288">test_ecdsa_end_to_end()</a>, <a class="el" href="recovery_2tests__impl_8h_source.html#l00010">test_ecdsa_recovery_end_to_end()</a>, and <a class="el" href="schnorr_2tests__impl_8h_source.html#l00012">test_schnorr_end_to_end()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a70d7af05e9c9a579ed5cb20d9f22eeba"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a70d7af05e9c9a579ed5cb20d9f22eeba">◆ </a></span>secp256k1_scalar_get_bits()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static unsigned int secp256k1_scalar_get_bits </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned int </td>
|
|
<td class="paramname"><em>offset</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned int </td>
|
|
<td class="paramname"><em>count</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>Access bits from a scalar. All requested bits must belong to the same 32-bit limb. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00124">secp256k1_ecmult_gen()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00218">secp256k1_ecmult_wnaf()</a>, and <a class="el" href="tests_8c_source.html#l02367">test_constant_wnaf_negate()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="abede7dbe3b5a38a51b388d46f4c5b52d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abede7dbe3b5a38a51b388d46f4c5b52d">◆ </a></span>secp256k1_scalar_get_bits_var()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static unsigned int secp256k1_scalar_get_bits_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> * </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned int </td>
|
|
<td class="paramname"><em>offset</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned int </td>
|
|
<td class="paramname"><em>count</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>Access bits from a scalar. Not constant time. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>, and <a class="el" href="ecmult__impl_8h_source.html#l00218">secp256k1_ecmult_wnaf()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a75c8cc0159d53eefaf86a296ba882420"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a75c8cc0159d53eefaf86a296ba882420">◆ </a></span>secp256k1_scalar_get_num()</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_scalar_get_num </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__num.html">secp256k1_num</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__scalar.html">secp256k1_scalar</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 scalar to a number. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00449">random_num_order()</a>, <a class="el" href="tests_8c_source.html#l00443">random_num_order_test()</a>, and <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac048cded7c9731249ada44d489a258d5"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac048cded7c9731249ada44d489a258d5">◆ </a></span>secp256k1_scalar_inverse()</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_scalar_inverse </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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__scalar.html">secp256k1_scalar</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>Compute the inverse of a scalar (modulo the group order). </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00108">bench_scalar_inverse()</a>, <a class="el" href="tests_8c_source.html#l00799">run_scalar_tests()</a>, <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00257">secp256k1_ecdsa_sig_sign()</a>, and <a class="el" href="tests_8c_source.html#l03811">test_ecdsa_edge_cases()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a58e84d0cabe81139df5c71759f833855"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a58e84d0cabe81139df5c71759f833855">◆ </a></span>secp256k1_scalar_inverse_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_scalar_inverse_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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__scalar.html">secp256k1_scalar</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>Compute the inverse of a scalar (modulo the group order), without constant-time guarantee. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00118">bench_scalar_inverse_var()</a>, <a class="el" href="tests_8c_source.html#l00799">run_scalar_tests()</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="schnorr__impl_8h_source.html#l00144">secp256k1_schnorr_sig_recover()</a>, and <a class="el" href="tests_8c_source.html#l03811">test_ecdsa_edge_cases()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3eb65cf9bfad7c430cbb3dc26d494a95"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3eb65cf9bfad7c430cbb3dc26d494a95">◆ </a></span>secp256k1_scalar_is_even()</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_scalar_is_even </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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 whether a scalar, considered as an nonnegative integer, is even. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="ecmult__const__impl_8h_source.html#l00057">secp256k1_wnaf_const()</a>, and <a class="el" href="tests_8c_source.html#l02367">test_constant_wnaf_negate()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aab66620cbbe49bec3c7c02f4a1219c05"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aab66620cbbe49bec3c7c02f4a1219c05">◆ </a></span>secp256k1_scalar_is_high()</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_scalar_is_high </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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 whether a scalar is higher than the group order divided by 2. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00257">secp256k1_ecdsa_sig_sign()</a>, <a class="el" href="secp256k1_8c_source.html#l00278">secp256k1_ecdsa_signature_normalize()</a>, <a class="el" href="secp256k1_8c_source.html#l00297">secp256k1_ecdsa_verify()</a>, and <a class="el" href="ecmult__const__impl_8h_source.html#l00057">secp256k1_wnaf_const()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa1118b3273d3c9d15541f29373b93e97"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa1118b3273d3c9d15541f29373b93e97">◆ </a></span>secp256k1_scalar_is_one()</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_scalar_is_one </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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 whether a scalar equals one. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00799">run_scalar_tests()</a>, <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>, <a class="el" href="scalar__impl_8h_source.html#l00242">secp256k1_scalar_inverse_var()</a>, and <a class="el" href="ecmult__const__impl_8h_source.html#l00057">secp256k1_wnaf_const()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a3f0ac84fe49a1c1f51212582a2c149d4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a3f0ac84fe49a1c1f51212582a2c149d4">◆ </a></span>secp256k1_scalar_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_scalar_is_zero </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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 whether a scalar equals zero. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00123">random_scalar_order()</a>, <a class="el" href="tests_8c_source.html#l00110">random_scalar_order_test()</a>, <a class="el" href="tests_8c_source.html#l00799">run_scalar_tests()</a>, <a class="el" href="tests_8c_source.html#l02427">run_wnaf()</a>, <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>, <a class="el" href="secp256k1_8c_source.html#l00409">secp256k1_ec_pubkey_create()</a>, <a class="el" href="secp256k1_8c_source.html#l00395">secp256k1_ec_seckey_verify()</a>, <a class="el" href="ecdh_2main__impl_8h_source.html#l00013">secp256k1_ecdh()</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#l00257">secp256k1_ecdsa_sig_sign()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00203">secp256k1_ecdsa_sig_verify()</a>, <a class="el" href="secp256k1_8c_source.html#l00349">secp256k1_ecdsa_sign()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00123">secp256k1_ecdsa_sign_recoverable()</a>, <a class="el" href="eckey__impl_8h_source.html#l00054">secp256k1_eckey_privkey_tweak_add()</a>, <a class="el" href="eckey__impl_8h_source.html#l00076">secp256k1_eckey_privkey_tweak_mul()</a>, <a class="el" href="eckey__impl_8h_source.html#l00085">secp256k1_eckey_pubkey_tweak_mul()</a>, <a class="el" href="ecmult__const__impl_8h_source.html#l00125">secp256k1_ecmult_const()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00159">secp256k1_ecmult_gen_blind()</a>, <a class="el" href="schnorr_2main__impl_8h_source.html#l00091">secp256k1_schnorr_generate_nonce_pair()</a>, <a class="el" href="schnorr_2main__impl_8h_source.html#l00133">secp256k1_schnorr_partial_sign()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00181">secp256k1_schnorr_sig_combine()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00144">secp256k1_schnorr_sig_recover()</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>, <a class="el" href="schnorr_2main__impl_8h_source.html#l00023">secp256k1_schnorr_sign()</a>, and <a class="el" href="ecmult__const__impl_8h_source.html#l00057">secp256k1_wnaf_const()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a89db15f705c8eafcd10c08181523acd0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a89db15f705c8eafcd10c08181523acd0">◆ </a></span>secp256k1_scalar_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_scalar_mul </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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__scalar.html">secp256k1_scalar</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__scalar.html">secp256k1_scalar</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>Multiply two scalars (modulo the group order). </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00086">bench_scalar_mul()</a>, <a class="el" href="tests_8c_source.html#l02109">run_ecmult_chain()</a>, <a class="el" href="tests_8c_source.html#l00799">run_scalar_tests()</a>, <a class="el" href="tests_8c_source.html#l00514">scalar_test()</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#l00257">secp256k1_ecdsa_sig_sign()</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#l00076">secp256k1_eckey_privkey_tweak_mul()</a>, <a class="el" href="scalar__impl_8h_source.html#l00046">secp256k1_scalar_inverse()</a>, <a class="el" href="scalar__impl_8h_source.html#l00242">secp256k1_scalar_inverse_var()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00144">secp256k1_schnorr_sig_recover()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00062">secp256k1_schnorr_sig_sign()</a>, <a class="el" href="tests_8c_source.html#l02382">test_constant_wnaf()</a>, and <a class="el" href="tests_8c_source.html#l02333">test_wnaf()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8d19fb29bd4c9d863572eba08e97af20"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8d19fb29bd4c9d863572eba08e97af20">◆ </a></span>secp256k1_scalar_mul_shift_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_scalar_mul_shift_var </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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__scalar.html">secp256k1_scalar</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__scalar.html">secp256k1_scalar</a> * </td>
|
|
<td class="paramname"><em>b</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned int </td>
|
|
<td class="paramname"><em>shift</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>Multiply a and b (without taking the modulus!), divide by 2**shift, and round to the nearest integer. Shift must be at least 256. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa3f1c1d4536adf835ee256878c222968"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa3f1c1d4536adf835ee256878c222968">◆ </a></span>secp256k1_scalar_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_scalar_negate </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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__scalar.html">secp256k1_scalar</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>Compute the complement of a scalar (modulo the group order). </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00068">bench_scalar_negate()</a>, <a class="el" href="tests_8c_source.html#l02278">ecmult_const_mult_zero_one()</a>, <a class="el" href="tests_8c_source.html#l00799">run_scalar_tests()</a>, <a class="el" href="tests_8c_source.html#l00514">scalar_test()</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#l00257">secp256k1_ecdsa_sig_sign()</a>, <a class="el" href="secp256k1_8c_source.html#l00278">secp256k1_ecdsa_signature_normalize()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00159">secp256k1_ecmult_gen_blind()</a>, <a class="el" href="ecmult__impl_8h_source.html#l00218">secp256k1_ecmult_wnaf()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00144">secp256k1_schnorr_sig_recover()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00062">secp256k1_schnorr_sig_sign()</a>, <a class="el" href="ecmult__const__impl_8h_source.html#l00057">secp256k1_wnaf_const()</a>, <a class="el" href="tests_8c_source.html#l02382">test_constant_wnaf()</a>, <a class="el" href="tests_8c_source.html#l02367">test_constant_wnaf_negate()</a>, <a class="el" href="tests_8c_source.html#l03811">test_ecdsa_edge_cases()</a>, <a class="el" href="tests_8c_source.html#l03288">test_ecdsa_end_to_end()</a>, <a class="el" href="tests_8c_source.html#l02451">test_ecmult_constants()</a>, <a class="el" href="tests_8c_source.html#l02173">test_point_times_order()</a>, and <a class="el" href="tests_8c_source.html#l02333">test_wnaf()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a54e25150a9e06c01bcc4518b68aa288c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a54e25150a9e06c01bcc4518b68aa288c">◆ </a></span>secp256k1_scalar_order_get_num()</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_scalar_order_get_num </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__num.html">secp256k1_num</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>Get the order of the group as a number. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00799">run_scalar_tests()</a>, and <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a25cc2d45ae1d1765d07c3313cdf46fa0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a25cc2d45ae1d1765d07c3313cdf46fa0">◆ </a></span>secp256k1_scalar_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 void secp256k1_scalar_set_b32 </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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>bin</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int * </td>
|
|
<td class="paramname"><em>overflow</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 scalar from a big endian byte array. </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#l00123">random_scalar_order()</a>, <a class="el" href="tests_8c_source.html#l00110">random_scalar_order_test()</a>, <a class="el" href="tests_8c_source.html#l00799">run_scalar_tests()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00101">secp256k1_der_parse_integer()</a>, <a class="el" href="secp256k1_8c_source.html#l00432">secp256k1_ec_privkey_tweak_add()</a>, <a class="el" href="secp256k1_8c_source.html#l00480">secp256k1_ec_privkey_tweak_mul()</a>, <a class="el" href="secp256k1_8c_source.html#l00409">secp256k1_ec_pubkey_create()</a>, <a class="el" href="secp256k1_8c_source.html#l00456">secp256k1_ec_pubkey_tweak_add()</a>, <a class="el" href="secp256k1_8c_source.html#l00503">secp256k1_ec_pubkey_tweak_mul()</a>, <a class="el" href="secp256k1_8c_source.html#l00395">secp256k1_ec_seckey_verify()</a>, <a class="el" href="ecdh_2main__impl_8h_source.html#l00013">secp256k1_ecdh()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00170">secp256k1_ecdsa_recover()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00012">secp256k1_ecdsa_recoverable_signature_load()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00038">secp256k1_ecdsa_recoverable_signature_parse_compact()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00257">secp256k1_ecdsa_sig_sign()</a>, <a class="el" href="secp256k1_8c_source.html#l00349">secp256k1_ecdsa_sign()</a>, <a class="el" href="recovery_2main__impl_8h_source.html#l00123">secp256k1_ecdsa_sign_recoverable()</a>, <a class="el" href="secp256k1_8c_source.html#l00192">secp256k1_ecdsa_signature_load()</a>, <a class="el" href="secp256k1_8c_source.html#l00232">secp256k1_ecdsa_signature_parse_compact()</a>, <a class="el" href="secp256k1_8c_source.html#l00297">secp256k1_ecdsa_verify()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00159">secp256k1_ecmult_gen_blind()</a>, <a class="el" href="scalar__impl_8h_source.html#l00242">secp256k1_scalar_inverse_var()</a>, <a class="el" href="schnorr_2main__impl_8h_source.html#l00091">secp256k1_schnorr_generate_nonce_pair()</a>, <a class="el" href="schnorr_2main__impl_8h_source.html#l00133">secp256k1_schnorr_partial_sign()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00181">secp256k1_schnorr_sig_combine()</a>, <a class="el" href="schnorr__impl_8h_source.html#l00144">secp256k1_schnorr_sig_recover()</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>, <a class="el" href="schnorr_2main__impl_8h_source.html#l00023">secp256k1_schnorr_sign()</a>, and <a class="el" href="tests_8c_source.html#l03811">test_ecdsa_edge_cases()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a41cb11650e4dea0fe7ac5b59b9fce9dc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a41cb11650e4dea0fe7ac5b59b9fce9dc">◆ </a></span>secp256k1_scalar_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_scalar_set_int </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</a> * </td>
|
|
<td class="paramname"><em>r</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned int </td>
|
|
<td class="paramname"><em>v</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 scalar to an unsigned integer. </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00799">run_scalar_tests()</a>, <a class="el" href="tests_8c_source.html#l02427">run_wnaf()</a>, <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>, <a class="el" href="ecdsa__impl_8h_source.html#l00101">secp256k1_der_parse_integer()</a>, <a class="el" href="eckey__impl_8h_source.html#l00062">secp256k1_eckey_pubkey_tweak_add()</a>, <a class="el" href="eckey__impl_8h_source.html#l00085">secp256k1_eckey_pubkey_tweak_mul()</a>, <a class="el" href="ecmult__gen__impl_8h_source.html#l00159">secp256k1_ecmult_gen_blind()</a>, <a class="el" href="tests_8c_source.html#l02382">test_constant_wnaf()</a>, <a class="el" href="tests_8c_source.html#l03811">test_ecdsa_edge_cases()</a>, <a class="el" href="tests_8c_source.html#l03206">test_ecdsa_sign_verify()</a>, <a class="el" href="tests_8c_source.html#l02451">test_ecmult_constants()</a>, and <a class="el" href="tests_8c_source.html#l02333">test_wnaf()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae9fcdf1db22cb93c2a2f06b0a9c957d3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae9fcdf1db22cb93c2a2f06b0a9c957d3">◆ </a></span>secp256k1_scalar_shr_int()</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_scalar_shr_int </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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>n</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>Shift a scalar right by some amount strictly between 0 and 16, returning the low bits that were shifted off </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>, <a class="el" href="ecmult__const__impl_8h_source.html#l00057">secp256k1_wnaf_const()</a>, and <a class="el" href="tests_8c_source.html#l02382">test_constant_wnaf()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2e65618baa17c59e89149a9f7e632f69"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2e65618baa17c59e89149a9f7e632f69">◆ </a></span>secp256k1_scalar_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_scalar_sqr </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structsecp256k1__scalar.html">secp256k1_scalar</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__scalar.html">secp256k1_scalar</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>Compute the square of a scalar (modulo the group order). </p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bench__internal_8c_source.html#l00077">bench_scalar_sqr()</a>, <a class="el" href="tests_8c_source.html#l00799">run_scalar_tests()</a>, <a class="el" href="tests_8c_source.html#l00514">scalar_test()</a>, and <a class="el" href="scalar__impl_8h_source.html#l00046">secp256k1_scalar_inverse()</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="scalar_8h.html">scalar.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>
|