Commit graph

113 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
cc20075ef7
Merge pull request #85
7a8e385 Fix interaction between magnitudes and negation (Pieter Wuille)
2014-11-03 01:44:27 -08:00
Pieter Wuille
501d58f098 Get rid of {num,scalar,ecdsa_sig}_{init,free} 2014-11-03 01:31:04 -08: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
Pieter Wuille
b0295868f4
Merge pull request #82
8f9a307 Better .gitignore for bench binaries (Pieter Wuille)
fa5c13f Add bench_sign tool (Pieter Wuille)
2014-11-02 01:16:58 -07: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
fa5c13ff4c Add bench_sign tool 2014-10-31 08:23:34 -07:00
Pieter Wuille
504c63d72a Rename bench to bench_verify 2014-10-31 03:34:36 -07:00
Pieter Wuille
01097ddf19 Make bench deterministic 2014-10-31 03:34:36 -07:00
Pieter Wuille
81dc171604
Merge pull request #79
ae2679b Add bench_inv tool (Pieter Wuille)
2014-10-31 02:19:18 -07:00
Pieter Wuille
520ba3c921 Remove OpenSSL bignum implementation 2014-10-31 02:10:13 -07:00
Pieter Wuille
ae2679b6e4 Add bench_inv tool 2014-10-30 06:26:05 -07:00
Pieter Wuille
79359302fb Add unit tests for scalars.
Also add a secp256k1_scalar_is_one function.
2014-10-29 02:11:07 -07:00
Pieter Wuille
eca6cdb123 Switch scalar to use get/set 32-byte arrays 2014-10-29 00:40:56 -07:00
Pieter Wuille
a9f5c8b875 Introduce secp256k1_scalar_t for future constant-time mod order operations 2014-10-28 04:33:23 -07:00
Pieter Wuille
eb74c36bd2 Abstract out tweak logic to secp256k1_eckey_* functions 2014-10-27 03:27:55 -07:00
Pieter Wuille
ffffc87855 Use internal secp256k1_eckey_ prefix for functions in eckey 2014-10-27 03:01:51 -07:00
Pieter Wuille
e2f71f1efe Move non-ECDSA operations from ecdsa to eckey 2014-10-27 02:58:09 -07:00
Pieter Wuille
ae6bc76e32 [API CHANGE] Use secp256k1_ec_ prefix for non-ECDSA key operations 2014-10-27 02:51:58 -07:00
Pieter Wuille
dc407ed48c
Avoid valgrind complaints in OpenSSL initialization check 2014-10-27 02:27:58 -07:00
Pieter Wuille
79f599d37f
Tests take too long by default 2014-10-27 02:25:56 -07:00
Pieter Wuille
03bfc07b9e
Avoid uninitialized access in secp256k1_gej_double 2014-10-26 06:51:38 -07:00
Pieter Wuille
bff11e9112
Verify num=openssl initialization and check repeatability 2014-10-26 05:39:13 -07:00
Pieter Wuille
949c1ebb5e Split up ecmult and ecmult_gen entirely 2014-10-26 03:42:24 -07:00
Pieter Wuille
3fd6253e13 Better randomization for tests 2014-10-17 16:04:00 -07:00
Pieter Wuille
bae6a42be4 Make bench use external interface 2014-09-29 08:21:59 +02:00
Pieter Wuille
c259a7cbc0 Set precomputation table late and unset early.
Set the global pointer to the precomputation table only after initializing
it completely, and unset it before doing any uninitialization.

This causes fail-fast behavior in case of race conditions between
initialization and operations using it.
2014-09-13 17:19:30 +02:00
Pieter Wuille
04e34d18c3 Split up signing and verification initialization 2014-09-13 17:14:17 +02:00
Pieter Wuille
da556eb772
Merge pull request #62
1136bed Make secp256k1_ge_set_gej work with the point at infinity (Pieter Wuille)
2014-09-13 16:26:27 +02:00
Pieter Wuille
1136bedbc2 Make secp256k1_ge_set_gej work with the point at infinity 2014-09-13 00:46:32 +02:00
Pieter Wuille
62c3f55a9d Nothing-up-my-sleeving blinding for a*G 2014-09-01 14:56:12 +02:00
Pieter Wuille
fa492f059d Fix a signedness mistake in secp256k1_num_set_hex
We were using a potentially signed char as index in an array.
2014-08-27 01:21:57 +02:00
Pieter Wuille
e2beb0bd2d
Merge pull request #51
364fde6 fix unsigned warning in num_gmp_impl.h (caktux)
2014-08-27 01:20:19 +02:00
Pieter Wuille
1c7fa133a6 Add VERIFY_CHECK/DEBUG_CHECK and use CHECK macros more 2014-08-26 01:23:51 +02:00
Pieter Wuille
87c782f632
Merge pull request #53
2f6c801 Try to not leave secret data on the stack or heap. (Gregory Maxwell)
2014-08-23 14:13:10 +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
caktux
364fde65f6 fix unsigned warning in num_gmp_impl.h 2014-08-11 16:09:09 -04:00
Pieter Wuille
1a749b4a6e Add secp256k1_num_eq and use it in tests 2014-08-09 19:22:42 +02:00
Pieter Wuille
25f4aec02f Add high-level secp256k1.c tests 2014-08-03 19:54:41 +02: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
f16be77ffc Use batch inversion in G precomputation 2014-07-17 15:33:00 +07: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
Pieter Wuille
9849c6898c
Merge pull request #31
0592d11 Introduce CHECK() for tests that works with NDEBUG. (Pieter Wuille)
2014-06-20 23:25:38 +02:00
Pieter Wuille
0592d117da Introduce CHECK() for tests that works with NDEBUG. 2014-06-16 01:30:17 +02:00
Pieter Wuille
4d79bebdff Do not free endomorphism constants when disabled 2014-06-15 23:31:17 +02:00
Pieter Wuille
ebfa43b20a
Merge pull request #25
6d6102f A few improvements to the sqrt tests (Peter Dettman)
2014-06-03 22:01:47 +02:00
Peter Dettman
9037707720 Rewrite 5x52 normalize method to be faster 2014-06-03 18:59:21 +07:00
Peter Dettman
6d6102fee4 A few improvements to the sqrt tests 2014-06-03 17:50:27 +07:00
Pieter Wuille
7740eff28a
Merge pull request #19
09ca4f3 secp256k1_fe_sqrt checks for success (Peter Dettman)
2014-06-02 10:46:12 +02:00