This is a rebased/combined version of the following pull requests/commits with minor changes:
- #825 Switch to our own memcmp function
- Modification:
secp256k1_memcmp_var
is marked static inline - Modification: also replace
memcmp
withsecp256k1_memcmp_var
in exhaustive tests - Modification: add reference to GCC bug 95189
- Modification:
- #822 Increase precision of g1 and g2
- Modification: use the new
secp256k1_memcmp_var
function instead ofmemcmp
(see #822 (comment)) - Modification: drop the " Allow secp256k1_split_lambda_verify to pass even in the presence of GCC bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95189." commit, as it’s dealt with using
secp256k1_memcmp_var
. - Modification: rename secp256k1_gej_mul_lambda -> secp256k1_ge_mul_lambda
- Modification: use the new
- A new commit that moves the
lambda
constant out ofsecp256k1_scalar_split_lambda
and (_verify
). - The test commit suggested here: #822 (comment)
- Modification: use the new accessible
secp256k1_const_lambda
instead of duplicating it.
- Modification: use the new accessible
- #826 Rip out non-endomorphism code
- A new commit that reduces the size of the WNAF output to 129, as we now have proof that the split output is always 128 bits or less.
- A new commit to more consistently use input:
k
, integer outputs:k1
,k2
, modulo n outputs:r1
,r2