Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/src/ecmult_gen.h
Show All 22 Lines | typedef struct { | ||||
* None of the resulting prec group elements have a known scalar, and neither do any of | * None of the resulting prec group elements have a known scalar, and neither do any of | ||||
* the intermediate sums while computing a*G. | * the intermediate sums while computing a*G. | ||||
*/ | */ | ||||
secp256k1_ge_storage (*prec)[64][16]; /* prec[j][i] = 16^j * i * G + U_i */ | secp256k1_ge_storage (*prec)[64][16]; /* prec[j][i] = 16^j * i * G + U_i */ | ||||
secp256k1_scalar blind; | secp256k1_scalar blind; | ||||
secp256k1_gej initial; | secp256k1_gej initial; | ||||
} secp256k1_ecmult_gen_context; | } secp256k1_ecmult_gen_context; | ||||
static const size_t SECP256K1_ECMULT_GEN_CONTEXT_PREALLOCATED_SIZE; | |||||
static void secp256k1_ecmult_gen_context_init(secp256k1_ecmult_gen_context* ctx); | static void secp256k1_ecmult_gen_context_init(secp256k1_ecmult_gen_context* ctx); | ||||
static void secp256k1_ecmult_gen_context_build(secp256k1_ecmult_gen_context* ctx, const secp256k1_callback* cb); | static void secp256k1_ecmult_gen_context_build(secp256k1_ecmult_gen_context* ctx, void **prealloc); | ||||
static void secp256k1_ecmult_gen_context_clone(secp256k1_ecmult_gen_context *dst, | static void secp256k1_ecmult_gen_context_finalize_memcpy(secp256k1_ecmult_gen_context *dst, const secp256k1_ecmult_gen_context* src); | ||||
const secp256k1_ecmult_gen_context* src, const secp256k1_callback* cb); | |||||
static void secp256k1_ecmult_gen_context_clear(secp256k1_ecmult_gen_context* ctx); | static void secp256k1_ecmult_gen_context_clear(secp256k1_ecmult_gen_context* ctx); | ||||
static int secp256k1_ecmult_gen_context_is_built(const secp256k1_ecmult_gen_context* ctx); | static int secp256k1_ecmult_gen_context_is_built(const secp256k1_ecmult_gen_context* ctx); | ||||
/** Multiply with the generator: R = a*G */ | /** Multiply with the generator: R = a*G */ | ||||
static void secp256k1_ecmult_gen(const secp256k1_ecmult_gen_context* ctx, secp256k1_gej *r, const secp256k1_scalar *a); | static void secp256k1_ecmult_gen(const secp256k1_ecmult_gen_context* ctx, secp256k1_gej *r, const secp256k1_scalar *a); | ||||
static void secp256k1_ecmult_gen_blind(secp256k1_ecmult_gen_context *ctx, const unsigned char *seed32); | static void secp256k1_ecmult_gen_blind(secp256k1_ecmult_gen_context *ctx, const unsigned char *seed32); | ||||
#endif /* SECP256K1_ECMULT_GEN_H */ | #endif /* SECP256K1_ECMULT_GEN_H */ |