Bitcoin Core 28.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
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
7extern "C" {
8#endif
9
22typedef struct {
23 unsigned char data[64];
25
33typedef struct {
34 unsigned char data[96];
36
48 const secp256k1_context *ctx,
50 const unsigned char *input32
52
62 const secp256k1_context *ctx,
63 unsigned char *output32,
64 const secp256k1_xonly_pubkey *pubkey
66
77 const secp256k1_context *ctx,
78 const secp256k1_xonly_pubkey *pk1,
79 const secp256k1_xonly_pubkey *pk2
81
94 const secp256k1_context *ctx,
95 secp256k1_xonly_pubkey *xonly_pubkey,
96 int *pk_parity,
97 const secp256k1_pubkey *pubkey
99
121 const secp256k1_context *ctx,
122 secp256k1_pubkey *output_pubkey,
123 const secp256k1_xonly_pubkey *internal_pubkey,
124 const unsigned char *tweak32
126
151 const secp256k1_context *ctx,
152 const unsigned char *tweaked_pubkey32,
153 int tweaked_pk_parity,
154 const secp256k1_xonly_pubkey *internal_pubkey,
155 const unsigned char *tweak32
157
167 const secp256k1_context *ctx,
168 secp256k1_keypair *keypair,
169 const unsigned char *seckey
171
180 const secp256k1_context *ctx,
181 unsigned char *seckey,
182 const secp256k1_keypair *keypair
184
193 const secp256k1_context *ctx,
194 secp256k1_pubkey *pubkey,
195 const secp256k1_keypair *keypair
197
212 const secp256k1_context *ctx,
214 int *pk_parity,
215 const secp256k1_keypair *keypair
217
238 const secp256k1_context *ctx,
239 secp256k1_keypair *keypair,
240 const unsigned char *tweak32
242
243#ifdef __cplusplus
244}
245#endif
246
247#endif /* SECP256K1_EXTRAKEYS_H */
#define SECP256K1_ARG_NONNULL(_x)
Definition secp256k1.h:179
#define SECP256K1_API
Definition secp256k1.h:164
#define SECP256K1_WARN_UNUSED_RESULT
Definition secp256k1.h:174
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:59
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:224
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:214
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:44
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_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:196
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:99
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:255
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:118
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:234
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:22
Opaque data structure that holds a keypair consisting of a secret and a public key.
Opaque data structure that holds a parsed and valid public key.
Definition secp256k1.h:74
Opaque data structure that holds a parsed and valid "x-only" public key.