PRCYCoin
2.0.0.7rc1
P2P Digital Currency
src
secp256k1-mw
src
ecmult.h
Go to the documentation of this file.
1
/**********************************************************************
2
* Copyright (c) 2013, 2014, 2017 Pieter Wuille, Andrew Poelstra *
3
* Distributed under the MIT software license, see the accompanying *
4
* file COPYING or http://www.opensource.org/licenses/mit-license.php.*
5
**********************************************************************/
6
7
#ifndef SECP256K1_ECMULT_H
8
#define SECP256K1_ECMULT_H
9
10
#include "
num.h
"
11
#include "
group.h
"
12
#include "
scalar.h
"
13
#include "
scratch.h
"
14
15
typedef
struct
{
16
/* For accelerating the computation of a*P + b*G: */
17
secp256k1_ge_storage
(*pre_g)[];
/* odd multiples of the generator */
18
#ifdef USE_ENDOMORPHISM
19
secp256k1_ge_storage
(*pre_g_128)[];
/* odd multiples of 2^128*generator */
20
#endif
21
}
secp256k1_ecmult_context
;
22
23
static
void
secp256k1_ecmult_context_init(
secp256k1_ecmult_context
*ctx);
24
static
void
secp256k1_ecmult_context_build(
secp256k1_ecmult_context
*ctx,
const
secp256k1_callback
*cb);
25
static
void
secp256k1_ecmult_context_clone(
secp256k1_ecmult_context
*dst,
26
const
secp256k1_ecmult_context
*src,
const
secp256k1_callback
*cb);
27
static
void
secp256k1_ecmult_context_clear(
secp256k1_ecmult_context
*ctx);
28
static
int
secp256k1_ecmult_context_is_built(
const
secp256k1_ecmult_context
*ctx);
29
31
static
void
secp256k1_ecmult(
const
secp256k1_ecmult_context
*ctx,
secp256k1_gej
*
r
,
const
secp256k1_gej
*a,
const
secp256k1_scalar
*na,
const
secp256k1_scalar
*ng);
32
33
typedef
int (
secp256k1_ecmult_multi_callback
)(
secp256k1_scalar
*sc,
secp256k1_ge
*pt,
size_t
idx,
void
*data);
34
45
static
int
secp256k1_ecmult_multi_var(
const
secp256k1_ecmult_context
*ctx,
secp256k1_scratch
*scratch,
secp256k1_gej
*
r
,
const
secp256k1_scalar
*inp_g_sc,
secp256k1_ecmult_multi_callback
cb,
void
*cbdata,
size_t
n);
46
47
#endif
/* SECP256K1_ECMULT_H */
secp256k1_scratch_space_struct2
Definition:
scratch.h:14
secp256k1_ecmult_multi_callback
int() secp256k1_ecmult_multi_callback(secp256k1_scalar *sc, secp256k1_ge *pt, size_t idx, void *data)
Definition:
ecmult.h:33
scratch.h
num.h
r
void const uint64_t uint64_t * r
Definition:
field_5x52_asm_impl.h:10
secp256k1_scalar
A scalar modulo the group order of the secp256k1 curve.
Definition:
scalar_4x64.h:13
secp256k1_gej
A group element of the secp256k1 curve, in jacobian coordinates.
Definition:
group.h:24
group.h
secp256k1_ge_storage
Definition:
group.h:34
scalar.h
secp256k1_callback
Definition:
util.h:18
secp256k1_ecmult_context
Definition:
ecmult.h:15
secp256k1_ge
A group element of the secp256k1 curve, in affine coordinates.
Definition:
group.h:14
Generated on Tue Apr 28 2026 00:02:58 for PRCYCoin by
1.8.17