Bitcoin Core  0.20.99
P2P Digital Currency
Functions
main_impl.h File Reference
#include "include/secp256k1_recovery.h"
Include dependency graph for main_impl.h:

Go to the source code of this file.

Functions

static void secp256k1_ecdsa_recoverable_signature_load (const secp256k1_context *ctx, secp256k1_scalar *r, secp256k1_scalar *s, int *recid, const secp256k1_ecdsa_recoverable_signature *sig)
 
static void secp256k1_ecdsa_recoverable_signature_save (secp256k1_ecdsa_recoverable_signature *sig, const secp256k1_scalar *r, const secp256k1_scalar *s, int recid)
 
int secp256k1_ecdsa_recoverable_signature_parse_compact (const secp256k1_context *ctx, secp256k1_ecdsa_recoverable_signature *sig, const unsigned char *input64, int recid)
 Parse a compact ECDSA signature (64 bytes + recovery id). More...
 
int secp256k1_ecdsa_recoverable_signature_serialize_compact (const secp256k1_context *ctx, unsigned char *output64, int *recid, const secp256k1_ecdsa_recoverable_signature *sig)
 Serialize an ECDSA signature in compact format (64 bytes + recovery id). More...
 
int secp256k1_ecdsa_recoverable_signature_convert (const secp256k1_context *ctx, secp256k1_ecdsa_signature *sig, const secp256k1_ecdsa_recoverable_signature *sigin)
 Convert a recoverable signature into a normal signature. More...
 
static int secp256k1_ecdsa_sig_recover (const secp256k1_ecmult_context *ctx, const secp256k1_scalar *sigr, const secp256k1_scalar *sigs, secp256k1_ge *pubkey, const secp256k1_scalar *message, int recid)
 
int secp256k1_ecdsa_sign_recoverable (const secp256k1_context *ctx, secp256k1_ecdsa_recoverable_signature *signature, const unsigned char *msg32, const unsigned char *seckey, secp256k1_nonce_function noncefp, const void *noncedata)
 Create a recoverable ECDSA signature. More...
 
int secp256k1_ecdsa_recover (const secp256k1_context *ctx, secp256k1_pubkey *pubkey, const secp256k1_ecdsa_recoverable_signature *signature, const unsigned char *msg32)
 Recover an ECDSA public key from a signature. More...
 

Function Documentation

◆ secp256k1_ecdsa_recover()

int secp256k1_ecdsa_recover ( const secp256k1_context ctx,
secp256k1_pubkey pubkey,
const secp256k1_ecdsa_recoverable_signature sig,
const unsigned char *  msg32 
)

Recover an ECDSA public key from a signature.

Returns: 1: public key successfully recovered (which guarantees a correct signature). 0: otherwise. Args: ctx: pointer to a context object, initialized for verification (cannot be NULL) Out: pubkey: pointer to the recovered public key (cannot be NULL) In: sig: pointer to initialized signature that supports pubkey recovery (cannot be NULL) msg32: the 32-byte message hash assumed to be signed (cannot be NULL)

Definition at line 137 of file main_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ secp256k1_ecdsa_recoverable_signature_convert()

int secp256k1_ecdsa_recoverable_signature_convert ( const secp256k1_context ctx,
secp256k1_ecdsa_signature sig,
const secp256k1_ecdsa_recoverable_signature sigin 
)

Convert a recoverable signature into a normal signature.

Returns: 1 Out: sig: a pointer to a normal signature (cannot be NULL). In: sigin: a pointer to a recoverable signature (cannot be NULL).

Definition at line 74 of file main_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ secp256k1_ecdsa_recoverable_signature_load()

static void secp256k1_ecdsa_recoverable_signature_load ( const secp256k1_context ctx,
secp256k1_scalar r,
secp256k1_scalar s,
int *  recid,
const secp256k1_ecdsa_recoverable_signature sig 
)
static

Definition at line 12 of file main_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ secp256k1_ecdsa_recoverable_signature_parse_compact()

int secp256k1_ecdsa_recoverable_signature_parse_compact ( const secp256k1_context ctx,
secp256k1_ecdsa_recoverable_signature sig,
const unsigned char *  input64,
int  recid 
)

Parse a compact ECDSA signature (64 bytes + recovery id).

Returns: 1 when the signature could be parsed, 0 otherwise Args: ctx: a secp256k1 context object Out: sig: a pointer to a signature object In: input64: a pointer to a 64-byte compact signature recid: the recovery id (0, 1, 2 or 3)

Definition at line 38 of file main_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ secp256k1_ecdsa_recoverable_signature_save()

static void secp256k1_ecdsa_recoverable_signature_save ( secp256k1_ecdsa_recoverable_signature sig,
const secp256k1_scalar r,
const secp256k1_scalar s,
int  recid 
)
static

Definition at line 27 of file main_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ secp256k1_ecdsa_recoverable_signature_serialize_compact()

int secp256k1_ecdsa_recoverable_signature_serialize_compact ( const secp256k1_context ctx,
unsigned char *  output64,
int *  recid,
const secp256k1_ecdsa_recoverable_signature sig 
)

Serialize an ECDSA signature in compact format (64 bytes + recovery id).

Returns: 1 Args: ctx: a secp256k1 context object Out: output64: a pointer to a 64-byte array of the compact signature (cannot be NULL) recid: a pointer to an integer to hold the recovery id (can be NULL). In: sig: a pointer to an initialized signature object (cannot be NULL)

Definition at line 60 of file main_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ secp256k1_ecdsa_sig_recover()

static int secp256k1_ecdsa_sig_recover ( const secp256k1_ecmult_context ctx,
const secp256k1_scalar sigr,
const secp256k1_scalar sigs,
secp256k1_ge pubkey,
const secp256k1_scalar message,
int  recid 
)
static

Definition at line 87 of file main_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ secp256k1_ecdsa_sign_recoverable()

int secp256k1_ecdsa_sign_recoverable ( const secp256k1_context ctx,
secp256k1_ecdsa_recoverable_signature sig,
const unsigned char *  msg32,
const unsigned char *  seckey,
secp256k1_nonce_function  noncefp,
const void *  ndata 
)

Create a recoverable ECDSA signature.

Returns: 1: signature created 0: the nonce generation function failed, or the secret key was invalid. Args: ctx: pointer to a context object, initialized for signing (cannot be NULL) Out: sig: pointer to an array where the signature will be placed (cannot be NULL) In: msg32: the 32-byte message hash being signed (cannot be NULL) seckey: pointer to a 32-byte secret key (cannot be NULL) noncefp:pointer to a nonce generation function. If NULL, secp256k1_nonce_function_default is used ndata: pointer to arbitrary data used by the nonce generation function (can be NULL)

Definition at line 123 of file main_impl.h.

Here is the call graph for this function:
Here is the caller graph for this function: