Commit Graph

98 Commits

Author SHA1 Message Date
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
Pieter Wuille 3bc866b88f
Merge pull request #20
d7fd4d0 Use endomorphism in precomputations (Peter Dettman)
2014-06-02 10:45:44 +02:00
Peter Dettman 17eec032c8 Support 64bit_asm field on OSX 2014-06-02 15:33:35 +07:00
Peter Dettman d7fd4d0f6b Use endomorphism in precomputations 2014-05-22 10:17:30 +07:00
Peter Dettman 09ca4f32e2 secp256k1_fe_sqrt checks for success
- secp256k1_fe_sqrt now checks that the value it calculated is actually a square root.
- Add return values to secp256k1_fe_sqrt and secp256k1_ge_set_xo.
- Callers of secp256k1_ge_set_xo can use return value instead of explicit validity checks
- Add random value tests for secp256k1_fe_sqrt
2014-05-21 10:22:14 +07:00
Pieter Wuille 78fb796997
Merge pull request #8
ba8fc0e Check signature nonces for validity (William Swanson)
2014-05-08 20:09:09 +02:00
evoskuil ac274bff23 Fix x64 gmp init on platforms that define UL as 32 bits. 2014-05-08 10:28:20 -07:00
William Swanson ba8fc0e28f Check signature nonces for validity
The documentation implies that this check is happening, so make it so.
Without this check, passing an invalid nonce will trigger an internal assertion.
2014-04-24 14:18:44 -07:00
Pieter Wuille 11ab562203 Move implementations from impl/*.h to *_impl.h 2014-03-12 18:40:02 +01:00
Pieter Wuille 65a79b300c Slice bytes of G multiples to avoid cache timings 2014-03-07 00:32:41 +01:00
Peter Dettman bb7bb81d07 Fix addition chain entry in comments 2014-01-31 11:43:57 +07:00
Peter Dettman f8ccd9befd Re-write secp256k1_fe_sqrt and secp256k1_fe_inv to use a sliding window over blocks of 1s 2014-01-30 19:16:20 +07:00
Cory Fields 5a9989c52a add missing include 2014-01-17 23:24:12 -05:00
Cory Fields 78cd96b151 autotools: autotools'ify libsecp256k1 2014-01-17 23:24:12 -05:00
Pieter Wuille 60442b835f Remove 5x64 implementation - no actual benefits 2013-12-01 21:16:47 +01:00
Pieter Wuille 399c03f227 Make endomorphism optimization optional 2013-12-01 21:06:20 +01:00