Bitcoin ABC
0.26.3
P2P Digital Currency
Loading...
Searching...
No Matches
src
secp256k1
include
secp256k1_extrakeys.h
Go to the documentation of this file.
1
#ifndef SECP256K1_EXTRAKEYS_H
2
#define SECP256K1_EXTRAKEYS_H
3
4
#include "
secp256k1.h
"
5
6
#ifdef __cplusplus
7
extern
"C"
{
8
#endif
9
22
typedef
struct
{
23
unsigned
char
data[64];
24
}
secp256k1_xonly_pubkey
;
25
33
typedef
struct
{
34
unsigned
char
data[96];
35
}
secp256k1_keypair
;
36
48
SECP256K1_API
SECP256K1_WARN_UNUSED_RESULT
int
secp256k1_xonly_pubkey_parse
(
49
const
secp256k1_context
*
ctx
,
50
secp256k1_xonly_pubkey
* pubkey,
51
const
unsigned
char
*
input32
52
)
SECP256K1_ARG_NONNULL
(1)
SECP256K1_ARG_NONNULL
(2)
SECP256K1_ARG_NONNULL
(3);
53
64
SECP256K1_API
int
secp256k1_xonly_pubkey_serialize
(
65
const
secp256k1_context
*
ctx
,
66
unsigned
char
*
output32
,
67
const
secp256k1_xonly_pubkey
* pubkey
68
)
SECP256K1_ARG_NONNULL
(1)
SECP256K1_ARG_NONNULL
(2)
SECP256K1_ARG_NONNULL
(3);
69
79
SECP256K1_API
int
secp256k1_xonly_pubkey_cmp
(
80
const
secp256k1_context
*
ctx
,
81
const
secp256k1_xonly_pubkey
*
pk1
,
82
const
secp256k1_xonly_pubkey
*
pk2
83
)
SECP256K1_ARG_NONNULL
(1)
SECP256K1_ARG_NONNULL
(2)
SECP256K1_ARG_NONNULL
(3);
84
98
SECP256K1_API
SECP256K1_WARN_UNUSED_RESULT
int
secp256k1_xonly_pubkey_from_pubkey
(
99
const
secp256k1_context
*
ctx
,
100
secp256k1_xonly_pubkey
*
xonly_pubkey
,
101
int
*
pk_parity
,
102
const
secp256k1_pubkey
*pubkey
103
)
SECP256K1_ARG_NONNULL
(1)
SECP256K1_ARG_NONNULL
(2)
SECP256K1_ARG_NONNULL
(4);
104
129
SECP256K1_API
SECP256K1_WARN_UNUSED_RESULT
int
secp256k1_xonly_pubkey_tweak_add
(
130
const
secp256k1_context
*
ctx
,
131
secp256k1_pubkey
*
output_pubkey
,
132
const
secp256k1_xonly_pubkey
*
internal_pubkey
,
133
const
unsigned
char
*
tweak32
134
)
SECP256K1_ARG_NONNULL
(1)
SECP256K1_ARG_NONNULL
(2)
SECP256K1_ARG_NONNULL
(3)
SECP256K1_ARG_NONNULL
(4);
135
161
SECP256K1_API
SECP256K1_WARN_UNUSED_RESULT
int
secp256k1_xonly_pubkey_tweak_add_check
(
162
const
secp256k1_context
*
ctx
,
163
const
unsigned
char
*
tweaked_pubkey32
,
164
int
tweaked_pk_parity
,
165
const
secp256k1_xonly_pubkey
*
internal_pubkey
,
166
const
unsigned
char
*
tweak32
167
)
SECP256K1_ARG_NONNULL
(1)
SECP256K1_ARG_NONNULL
(2)
SECP256K1_ARG_NONNULL
(4)
SECP256K1_ARG_NONNULL
(5);
168
177
SECP256K1_API
SECP256K1_WARN_UNUSED_RESULT
int
secp256k1_keypair_create
(
178
const
secp256k1_context
*
ctx
,
179
secp256k1_keypair
*
keypair
,
180
const
unsigned
char
*
seckey
181
)
SECP256K1_ARG_NONNULL
(1)
SECP256K1_ARG_NONNULL
(2)
SECP256K1_ARG_NONNULL
(3);
182
190
SECP256K1_API
SECP256K1_WARN_UNUSED_RESULT
int
secp256k1_keypair_sec
(
191
const
secp256k1_context
*
ctx
,
192
unsigned
char
*
seckey
,
193
const
secp256k1_keypair
*
keypair
194
)
SECP256K1_ARG_NONNULL
(1)
SECP256K1_ARG_NONNULL
(2)
SECP256K1_ARG_NONNULL
(3);
195
205
SECP256K1_API
SECP256K1_WARN_UNUSED_RESULT
int
secp256k1_keypair_pub
(
206
const
secp256k1_context
*
ctx
,
207
secp256k1_pubkey
*pubkey,
208
const
secp256k1_keypair
*
keypair
209
)
SECP256K1_ARG_NONNULL
(1)
SECP256K1_ARG_NONNULL
(2)
SECP256K1_ARG_NONNULL
(3);
210
226
SECP256K1_API
SECP256K1_WARN_UNUSED_RESULT
int
secp256k1_keypair_xonly_pub
(
227
const
secp256k1_context
*
ctx
,
228
secp256k1_xonly_pubkey
*pubkey,
229
int
*
pk_parity
,
230
const
secp256k1_keypair
*
keypair
231
)
SECP256K1_ARG_NONNULL
(1)
SECP256K1_ARG_NONNULL
(2)
SECP256K1_ARG_NONNULL
(4);
232
254
SECP256K1_API
SECP256K1_WARN_UNUSED_RESULT
int
secp256k1_keypair_xonly_tweak_add
(
255
const
secp256k1_context
*
ctx
,
256
secp256k1_keypair
*
keypair
,
257
const
unsigned
char
*
tweak32
258
)
SECP256K1_ARG_NONNULL
(1)
SECP256K1_ARG_NONNULL
(2)
SECP256K1_ARG_NONNULL
(3);
259
260
#ifdef __cplusplus
261
}
262
#endif
263
264
#endif
/* SECP256K1_EXTRAKEYS_H */
ctx
secp256k1_context * ctx
Definition
bench_multiset.c:12
GetRand
T GetRand(T nMax=std::numeric_limits< T >::max()) noexcept
Generate a uniform random integer of type T in the range [0..nMax) nMax defaults to std::numeric_limi...
Definition
random.h:85
secp256k1.h
SECP256K1_ARG_NONNULL
#define SECP256K1_ARG_NONNULL(_x)
Definition
secp256k1.h:158
SECP256K1_API
#define SECP256K1_API
Definition
secp256k1.h:143
SECP256K1_WARN_UNUSED_RESULT
#define SECP256K1_WARN_UNUSED_RESULT
Warning attributes NONNULL is not used if SECP256K1_BUILD is set to avoid the compiler optimizing out...
Definition
secp256k1.h:153
secp256k1_xonly_pubkey_cmp
SECP256K1_API int secp256k1_xonly_pubkey_cmp(const secp256k1_context *ctx, const secp256k1_xonly_pubkey *pk1, const secp256k1_xonly_pubkey *pk2) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3)
Compare two x-only public keys using lexicographic order.
Definition
main_impl.h:58
secp256k1_keypair_pub
SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_keypair_pub(const secp256k1_context *ctx, secp256k1_pubkey *pubkey, const secp256k1_keypair *keypair) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3)
Get the public key from a keypair.
Definition
main_impl.h:225
secp256k1_keypair_sec
SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_keypair_sec(const secp256k1_context *ctx, unsigned char *seckey, const secp256k1_keypair *keypair) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3)
Get the secret key from a keypair.
Definition
main_impl.h:215
secp256k1_xonly_pubkey_serialize
SECP256K1_API int secp256k1_xonly_pubkey_serialize(const secp256k1_context *ctx, unsigned char *output32, const secp256k1_xonly_pubkey *pubkey) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3)
Serialize an xonly_pubkey object into a 32-byte sequence.
Definition
main_impl.h:43
secp256k1_xonly_pubkey_tweak_add_check
SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_xonly_pubkey_tweak_add_check(const secp256k1_context *ctx, const unsigned char *tweaked_pubkey32, int tweaked_pk_parity, const secp256k1_xonly_pubkey *internal_pubkey, const unsigned char *tweak32) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(4) SECP256K1_ARG_NONNULL(5)
Checks that a tweaked pubkey is the result of calling secp256k1_xonly_pubkey_tweak_add with internal_...
Definition
main_impl.h:135
secp256k1_keypair_create
SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_keypair_create(const secp256k1_context *ctx, secp256k1_keypair *keypair, const unsigned char *seckey) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3)
Compute the keypair for a secret key.
Definition
main_impl.h:197
secp256k1_xonly_pubkey_from_pubkey
SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_xonly_pubkey_from_pubkey(const secp256k1_context *ctx, secp256k1_xonly_pubkey *xonly_pubkey, int *pk_parity, const secp256k1_pubkey *pubkey) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(4)
Converts a secp256k1_pubkey into a secp256k1_xonly_pubkey.
Definition
main_impl.h:98
secp256k1_keypair_xonly_tweak_add
SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_keypair_xonly_tweak_add(const secp256k1_context *ctx, secp256k1_keypair *keypair, const unsigned char *tweak32) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3)
Tweak a keypair by adding tweak32 to the secret key and updating the public key accordingly.
Definition
main_impl.h:256
secp256k1_xonly_pubkey_tweak_add
SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_xonly_pubkey_tweak_add(const secp256k1_context *ctx, secp256k1_pubkey *output_pubkey, const secp256k1_xonly_pubkey *internal_pubkey, const unsigned char *tweak32) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4)
Tweak an x-only public key by adding the generator multiplied with tweak32 to it.
Definition
main_impl.h:117
secp256k1_keypair_xonly_pub
SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_keypair_xonly_pub(const secp256k1_context *ctx, secp256k1_xonly_pubkey *pubkey, int *pk_parity, const secp256k1_keypair *keypair) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(4)
Get the x-only public key from a keypair.
Definition
main_impl.h:235
secp256k1_xonly_pubkey_parse
SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_xonly_pubkey_parse(const secp256k1_context *ctx, secp256k1_xonly_pubkey *pubkey, const unsigned char *input32) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3)
Parse a 32-byte sequence into a xonly_pubkey object.
Definition
main_impl.h:21
secp256k1_context_struct
Definition
secp256k1.c:69
secp256k1_keypair
Opaque data structure that holds a keypair consisting of a secret and a public key.
Definition
secp256k1_extrakeys.h:33
secp256k1_pubkey
Opaque data structure that holds a parsed and valid public key.
Definition
secp256k1.h:70
secp256k1_xonly_pubkey
Opaque data structure that holds a parsed and valid "x-only" public key.
Definition
secp256k1_extrakeys.h:22
Generated on Thu Dec 26 2024 02:38:05 for Bitcoin ABC by
1.9.8