Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
ecmult_gen.h
Go to the documentation of this file.
1
/***********************************************************************
2
* Copyright (c) 2013, 2014 Pieter Wuille *
3
* Distributed under the MIT software license, see the accompanying *
4
* file COPYING or https://www.opensource.org/licenses/mit-license.php.*
5
***********************************************************************/
6
7
#ifndef SECP256K1_ECMULT_GEN_H
8
#define SECP256K1_ECMULT_GEN_H
9
10
#include "
scalar.h
"
11
#include "
group.h
"
12
13
#ifndef ECMULT_GEN_PREC_BITS
14
# define ECMULT_GEN_PREC_BITS 4
15
# ifdef DEBUG_CONFIG
16
# pragma message DEBUG_CONFIG_MSG("ECMULT_GEN_PREC_BITS undefined, assuming default value")
17
# endif
18
#endif
19
20
#ifdef DEBUG_CONFIG
21
# pragma message DEBUG_CONFIG_DEF(ECMULT_GEN_PREC_BITS)
22
#endif
23
24
#if ECMULT_GEN_PREC_BITS != 2 && ECMULT_GEN_PREC_BITS != 4 && ECMULT_GEN_PREC_BITS != 8
25
# error "Set ECMULT_GEN_PREC_BITS to 2, 4 or 8."
26
#endif
27
28
#define ECMULT_GEN_PREC_G(bits) (1 << bits)
29
#define ECMULT_GEN_PREC_N(bits) (256 / bits)
30
31
typedef
struct
{
32
/* Whether the context has been built. */
33
int
built
;
34
35
/* Blinding values used when computing (n-b)G + bG. */
36
secp256k1_scalar
blind
;
/* -b */
37
secp256k1_gej
initial
;
/* bG */
38
}
secp256k1_ecmult_gen_context
;
39
40
static
void
secp256k1_ecmult_gen_context_build(
secp256k1_ecmult_gen_context
* ctx);
41
static
void
secp256k1_ecmult_gen_context_clear(
secp256k1_ecmult_gen_context
* ctx);
42
44
static
void
secp256k1_ecmult_gen(
const
secp256k1_ecmult_gen_context
* ctx,
secp256k1_gej
*r,
const
secp256k1_scalar
*
a
);
45
46
static
void
secp256k1_ecmult_gen_blind(
secp256k1_ecmult_gen_context
*ctx,
const
unsigned
char
*seed32);
47
48
#endif
/* SECP256K1_ECMULT_GEN_H */
group.h
a
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition
pointer.h:1124
scalar.h
secp256k1_ecmult_gen_context
Definition
ecmult_gen.h:31
secp256k1_ecmult_gen_context::initial
secp256k1_gej initial
Definition
ecmult_gen.h:37
secp256k1_ecmult_gen_context::built
int built
Definition
ecmult_gen.h:33
secp256k1_ecmult_gen_context::blind
secp256k1_scalar blind
Definition
ecmult_gen.h:36
secp256k1_gej
Definition
group.h:28
secp256k1_scalar
Definition
scalar_4x64.h:13
external
secp256k1
src
ecmult_gen.h
Generated on
for Electroneum by
1.17.0