Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
scalar.h
Go to the documentation of this file.
1
/***********************************************************************
2
* Copyright (c) 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_SCALAR_H
8
#define SECP256K1_SCALAR_H
9
10
#include "
util.h
"
11
12
#if defined(EXHAUSTIVE_TEST_ORDER)
13
#include "
scalar_low.h
"
14
#elif defined(SECP256K1_WIDEMUL_INT128)
15
#include "
scalar_4x64.h
"
16
#elif defined(SECP256K1_WIDEMUL_INT64)
17
#include "
scalar_8x32.h
"
18
#else
19
#error "Please select wide multiplication implementation"
20
#endif
21
23
static
void
secp256k1_scalar_clear(
secp256k1_scalar
*r);
24
26
static
unsigned
int
secp256k1_scalar_get_bits(
const
secp256k1_scalar
*
a
,
unsigned
int
offset,
unsigned
int
count);
27
29
static
unsigned
int
secp256k1_scalar_get_bits_var(
const
secp256k1_scalar
*
a
,
unsigned
int
offset,
unsigned
int
count);
30
36
static
void
secp256k1_scalar_set_b32(
secp256k1_scalar
*r,
const
unsigned
char
*bin,
int
*overflow);
37
40
static
int
secp256k1_scalar_set_b32_seckey(
secp256k1_scalar
*r,
const
unsigned
char
*bin);
41
43
static
void
secp256k1_scalar_set_int(
secp256k1_scalar
*r,
unsigned
int
v);
44
46
static
void
secp256k1_scalar_get_b32(
unsigned
char
*bin,
const
secp256k1_scalar
*
a
);
47
49
static
int
secp256k1_scalar_add(
secp256k1_scalar
*r,
const
secp256k1_scalar
*
a
,
const
secp256k1_scalar
*b);
50
52
static
void
secp256k1_scalar_cadd_bit(
secp256k1_scalar
*r,
unsigned
int
bit,
int
flag);
53
55
static
void
secp256k1_scalar_mul(
secp256k1_scalar
*r,
const
secp256k1_scalar
*
a
,
const
secp256k1_scalar
*b);
56
59
static
int
secp256k1_scalar_shr_int(
secp256k1_scalar
*r,
int
n);
60
62
static
void
secp256k1_scalar_inverse(
secp256k1_scalar
*r,
const
secp256k1_scalar
*
a
);
63
65
static
void
secp256k1_scalar_inverse_var(
secp256k1_scalar
*r,
const
secp256k1_scalar
*
a
);
66
68
static
void
secp256k1_scalar_negate(
secp256k1_scalar
*r,
const
secp256k1_scalar
*
a
);
69
71
static
int
secp256k1_scalar_is_zero(
const
secp256k1_scalar
*
a
);
72
74
static
int
secp256k1_scalar_is_one(
const
secp256k1_scalar
*
a
);
75
77
static
int
secp256k1_scalar_is_even(
const
secp256k1_scalar
*
a
);
78
80
static
int
secp256k1_scalar_is_high(
const
secp256k1_scalar
*
a
);
81
84
static
int
secp256k1_scalar_cond_negate(
secp256k1_scalar
*
a
,
int
flag);
85
87
static
int
secp256k1_scalar_eq(
const
secp256k1_scalar
*
a
,
const
secp256k1_scalar
*b);
88
90
static
void
secp256k1_scalar_split_128(
secp256k1_scalar
*r1,
secp256k1_scalar
*r2,
const
secp256k1_scalar
*k);
93
static
void
secp256k1_scalar_split_lambda(
secp256k1_scalar
*r1,
secp256k1_scalar
*r2,
const
secp256k1_scalar
*k);
94
96
static
void
secp256k1_scalar_mul_shift_var(
secp256k1_scalar
*r,
const
secp256k1_scalar
*
a
,
const
secp256k1_scalar
*b,
unsigned
int
shift);
97
99
static
void
secp256k1_scalar_cmov(
secp256k1_scalar
*r,
const
secp256k1_scalar
*
a
,
int
flag);
100
101
#endif
/* SECP256K1_SCALAR_H */
util.h
a
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition
pointer.h:1124
scalar_4x64.h
scalar_8x32.h
scalar_low.h
secp256k1_scalar
Definition
scalar_4x64.h:13
external
secp256k1
src
scalar.h
Generated on
for Electroneum by
1.17.0