60 Commits

Author SHA1 Message Date
Peter Dettman
137e77afb4 Address 'constant-time' TODOs in field impls 2014-11-04 14:57:04 +07:00
Pieter Wuille
7a8e385d74 Fix interaction between magnitudes and negation
Magnitude m means values are allowed to be up to 2 * 0xFFF...FFF * m,
while the argument passed to secp256k1_fe_negate didn't take the 2 into
account. Fix this.
2014-11-02 01:25:07 -08:00
Peter Dettman
7d681ac636 Add verification to 32bit field
- implement _fe_verify for 10x26
- fe is normalized after _fe_clear
- a few corresponding changes in 64bit field
2014-11-01 16:58:42 +07:00
Pieter Wuille
1c7fa133a6 Add VERIFY_CHECK/DEBUG_CHECK and use CHECK macros more 2014-08-26 01:23:51 +02:00
Gregory Maxwell
2f6c801911
Try to not leave secret data on the stack or heap.
This makes a basic effort and has not been audited.
Doesn't appear to have a measurable performance impact on bench.

It also adds a secp256k1_num_free to secp256k1_ecdsa_pubkey_create.
2014-08-14 07:06:36 -07:00
Pieter Wuille
21f81a8469 Correct secp256k1_fe_verify and use it everywhere 2014-07-17 21:07:40 +02:00
Peter Dettman
59447da38d Test demonstrating discrepancy in sqr output 2014-07-17 21:07:38 +02:00
Peter Dettman
42822baaa8 Improve normalization performance for 32bit
- Uses a similar approach to the latest 64bit _normalize.
- Add one useful optimization back into the 64bit _normalize too.

Performance of 'bench' improved by around 0.5% for the 32bit field (but tested on a 64-bit machine).
2014-06-23 12:12:58 +07:00
Peter Dettman
9037707720 Rewrite 5x52 normalize method to be faster 2014-06-03 18:59:21 +07:00
Pieter Wuille
11ab562203 Move implementations from impl/*.h to *_impl.h 2014-03-12 18:40:02 +01:00