|
UltrafastSecp256k1 3.68.0
Ultra high-performance secp256k1 elliptic curve cryptography library
|
#include <ufsecp.h>
Public Attributes | |
| uint8_t | msg [32] |
| uint8_t | sig_r [32] |
| uint8_t | sig_s [32] |
| uint8_t | pub_x [32] |
| uint8_t | r_y [32] |
| uint8_t | pub_y [32] |
| uint8_t | e [32] |
| ufsecp_ff_limbs_t | lmb_sig_r |
| ufsecp_ff_limbs_t | lmb_sig_s |
| ufsecp_ff_limbs_t | lmb_pub_x |
| ufsecp_ff_limbs_t | lmb_r_y |
| ufsecp_ff_limbs_t | lmb_pub_y |
| ufsecp_ff_limbs_t | lmb_e |
| int | valid |
Complete PLONK prover witness for one BIP-340 Schnorr verification.
BIP-340 verify steps: R = lift_x(sig_r) (even Y) P = lift_x(pubkey_x) (even Y) e = H("BIP0340/challenge" || R.x || P.x || msg) mod n valid = (s*G == R + e*P) AND (R.y is even)
| uint8_t ufsecp_schnorr_snark_witness_t::e[32] |
| ufsecp_ff_limbs_t ufsecp_schnorr_snark_witness_t::lmb_e |
| ufsecp_ff_limbs_t ufsecp_schnorr_snark_witness_t::lmb_pub_x |
| ufsecp_ff_limbs_t ufsecp_schnorr_snark_witness_t::lmb_pub_y |
| ufsecp_ff_limbs_t ufsecp_schnorr_snark_witness_t::lmb_r_y |
| ufsecp_ff_limbs_t ufsecp_schnorr_snark_witness_t::lmb_sig_r |
| ufsecp_ff_limbs_t ufsecp_schnorr_snark_witness_t::lmb_sig_s |
| uint8_t ufsecp_schnorr_snark_witness_t::msg[32] |
| uint8_t ufsecp_schnorr_snark_witness_t::pub_x[32] |
| uint8_t ufsecp_schnorr_snark_witness_t::pub_y[32] |
| uint8_t ufsecp_schnorr_snark_witness_t::r_y[32] |
| uint8_t ufsecp_schnorr_snark_witness_t::sig_r[32] |
| uint8_t ufsecp_schnorr_snark_witness_t::sig_s[32] |
| int ufsecp_schnorr_snark_witness_t::valid |