Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/src/modules/schnorrsig/main_impl.h
Show First 20 Lines • Show All 173 Lines • ▼ Show 20 Lines | int secp256k1_schnorrsig_sign(const secp256k1_context* ctx, unsigned char *sig64, const unsigned char *msg32, const secp256k1_keypair *keypair, secp256k1_nonce_function_hardened noncefp, void *ndata) { | ||||
secp256k1_fe_normalize_var(&r.x); | secp256k1_fe_normalize_var(&r.x); | ||||
secp256k1_fe_get_b32(&sig64[0], &r.x); | secp256k1_fe_get_b32(&sig64[0], &r.x); | ||||
secp256k1_schnorrsig_challenge(&e, &sig64[0], msg32, pk_buf); | secp256k1_schnorrsig_challenge(&e, &sig64[0], msg32, pk_buf); | ||||
secp256k1_scalar_mul(&e, &e, &sk); | secp256k1_scalar_mul(&e, &e, &sk); | ||||
secp256k1_scalar_add(&e, &e, &k); | secp256k1_scalar_add(&e, &e, &k); | ||||
secp256k1_scalar_get_b32(&sig64[32], &e); | secp256k1_scalar_get_b32(&sig64[32], &e); | ||||
memczero(sig64, 64, !ret); | secp256k1_memczero(sig64, 64, !ret); | ||||
secp256k1_scalar_clear(&k); | secp256k1_scalar_clear(&k); | ||||
secp256k1_scalar_clear(&sk); | secp256k1_scalar_clear(&sk); | ||||
memset(seckey, 0, sizeof(seckey)); | memset(seckey, 0, sizeof(seckey)); | ||||
return ret; | return ret; | ||||
} | } | ||||
int secp256k1_schnorrsig_verify(const secp256k1_context* ctx, const unsigned char *sig64, const unsigned char *msg32, const secp256k1_xonly_pubkey *pubkey) { | int secp256k1_schnorrsig_verify(const secp256k1_context* ctx, const unsigned char *sig64, const unsigned char *msg32, const secp256k1_xonly_pubkey *pubkey) { | ||||
▲ Show 20 Lines • Show All 49 Lines • Show Last 20 Lines |