Commit Graph

630 Commits

Author SHA1 Message Date
25b35c7ecb Convert field code to strict C89 (+ long long, +__int128)
This makes the software more portable to embedded systems
 and static analysis tools.

Sadly, it can't result in identical binaries because C99 mixed
 declarations seem to make GCC emit superfluous stack-pointer
 updates. The compiler is also somewhat dependent on the
 declaration order.
2015-01-23 05:48:27 +00:00
3627437d80 C89 nits and dead code removal. 2015-01-23 04:17:12 +00:00
a9f350d309 Merge pull request #191
4732d26 Convert the field/group/ecdsa constant initialization to static consts (Pieter Wuille)
19f3e76 Remove unused secp256k1_fe_inner_{start, stop} functions (Pieter Wuille)
f1ebfe3 Convert the scalar constant initialization to static consts (Pieter Wuille)
2015-01-22 23:10:50 -05:00
4732d26069 Convert the field/group/ecdsa constant initialization to static consts 2015-01-22 22:44:52 -05:00
19f3e76002 Remove unused secp256k1_fe_inner_{start, stop} functions 2015-01-22 22:44:52 -05:00
f1ebfe399f Convert the scalar constant initialization to static consts 2015-01-22 22:44:48 -05:00
50cc6ab062 Merge pull request #178
941e221 Add tests for handling of the nonce function in signing. (Gregory Maxwell)
2015-01-05 15:08:12 +01:00
941e221f66 Add tests for handling of the nonce function in signing. 2015-01-04 17:28:39 -08:00
10c81ffb5d Merge pull request #177
7688e34 Add magnitude limits to secp256k1_fe_verify to ensure that it's own tests function correctly. (Gregory Maxwell)
70ae0d2 Use secp256k1_fe_equal_var in secp256k1_fe_sqrt_var. (Gregory Maxwell)
2015-01-04 15:24:23 +01:00
7688e341c5 Add magnitude limits to secp256k1_fe_verify to ensure that it's own tests function correctly. 2015-01-02 07:52:27 -08:00
4ee4f7ac3f Merge pull request #176
9ab9335 Add a reference consistency test to ge_tests. (Pieter Wuille)
60571c6 Rework group tests (Pieter Wuille)
2015-01-02 16:28:54 +01:00
70ae0d2851 Use secp256k1_fe_equal_var in secp256k1_fe_sqrt_var.
In theory this should be faster, since secp256k1_fe_equal_var is able to
 shortcut the normalization.  On x86_64 the improvement appears to be in
 the noise for me.  At least it makes the code cleaner.
2014-12-31 05:56:00 -08:00
7767b4d25b Merge pull request #175
d26e26f Avoid constructing an invalid signature with probability 1:2^256. (Gregory Maxwell)
2014-12-29 17:51:40 +01:00
9ab93355f2 Add a reference consistency test to ge_tests.
This adds all points used in the test together in random order, which
should result in infinity.

Suggested by Greg Maxwell.
2014-12-29 17:21:39 +01:00
60571c6e45 Rework group tests 2014-12-29 15:38:17 +01:00
d26e26f2f4 Avoid constructing an invalid signature with probability 1:2^256. 2014-12-28 19:40:40 -08:00
b450c34843 Merge pull request #163
bbd5ba7 Use rfc6979 as default nonce generation function (Pieter Wuille)
b37fbc2 Implement SHA256 / HMAC-SHA256 / RFC6979. (Pieter Wuille)
c6e7f4e [API BREAK] Use a nonce-generation function instead of a nonce (Pieter Wuille)
2014-12-23 14:40:47 +01:00
d57cae9473 Merge pull request #154
49ee0db Add _normalizes_to_zero_var variant (Peter Dettman)
eed599d Add _fe_normalizes_to_zero method (Peter Dettman)
d7174ed Weak normalization for secp256k1_fe_equal (Pieter Wuille)
0295f0a weak normalization (Pieter Wuille)
2014-12-22 22:19:00 +01:00
49ee0dbe16 Add _normalizes_to_zero_var variant 2014-12-20 14:38:29 +01:00
eed599dd72 Add _fe_normalizes_to_zero method 2014-12-20 14:38:24 +01:00
d7174edf5f Weak normalization for secp256k1_fe_equal 2014-12-20 14:38:20 +01:00
0295f0a33d weak normalization 2014-12-20 14:38:07 +01:00
bbd5ba7cfa Use rfc6979 as default nonce generation function 2014-12-20 14:36:13 +01:00
b37fbc280e Implement SHA256 / HMAC-SHA256 / RFC6979. 2014-12-20 14:36:13 +01:00
c6e7f4e8d8 [API BREAK] Use a nonce-generation function instead of a nonce 2014-12-20 14:36:11 +01:00
cf0c48bea5 Merge pull request #169
603c33b Make signing fail if a too small buffer is passed. (Pieter Wuille)
2014-12-18 21:59:15 +01:00
603c33bc80 Make signing fail if a too small buffer is passed.
Bug discovered by Sergio Demian Lerner.
2014-12-18 01:28:06 +01:00
6d1660663f Merge pull request #168
7277fd7 Remove GMP field implementation (Pieter Wuille)
2014-12-18 01:20:56 +01:00
7277fd76e2 Remove GMP field implementation 2014-12-17 12:41:31 +01:00
e99c4c461c Merge pull request #123
13278f6 Add explanation about how inversion can be avoided (Pieter Wuille)
ce7eb6f Optimize verification: avoid field inverse (Pieter Wuille)
2014-12-16 23:29:58 +01:00
13278f642c Add explanation about how inversion can be avoided 2014-12-16 22:52:07 +01:00
ce7eb6fb3d Optimize verification: avoid field inverse
Suggested by Greg Maxwell.
2014-12-16 22:38:17 +01:00
a098f783fc Merge pull request #160
1ba4a60 Configure options reorganization (Pieter Wuille)
2014-12-16 13:59:19 +01:00
38acd0167b Merge pull request #165
6a59012 Make git ignore bench_recover when configured with benchmark enabled (Pavel Janík)
2014-12-16 13:57:11 +01:00
6a59012f04 Make git ignore bench_recover when configured with benchmark enabled 2014-12-16 07:43:19 +01:00
1ba4a60a51 Configure options reorganization 2014-12-13 15:04:28 +01:00
3c0f246e7e Merge pull request #157
5190079 build: use subdir-objects for automake (Cory Fields)
2014-12-12 15:48:28 +01:00
808dd9b3f5 Merge pull request #156
8336040 build: disable benchmark by default (Cory Fields)
2014-12-12 15:46:50 +01:00
8dc75e98af Merge pull request #158
28ade27 build: nuke bashisms (Cory Fields)
2014-12-12 14:50:17 +01:00
28ade27da1 build: nuke bashisms 2014-12-11 21:24:35 -05:00
5190079e31 build: use subdir-objects for automake 2014-12-11 20:18:54 -05:00
8336040f79 build: disable benchmark by default 2014-12-11 20:09:22 -05:00
bccaf86caa Merge pull request #150
cf7b2b4 Fix ECDSA message hashes to 32 bytes (Pieter Wuille)
2014-12-11 01:39:34 +01:00
2a53a472f2 Merge pull request #151
a3e0611 Enable tests in x86 travis builds (Pieter Wuille)
45da235 x86 builder (Cory Fields)
2014-12-11 01:23:37 +01:00
5f5a31fe0a Merge pull request #149
056ad31 Really compile with -O3 by default (Pieter Wuille)
2014-12-11 00:50:21 +01:00
3907277dcf Merge pull request #142
f22d73e Explicitly access %0..%2 as 64-bit so we use the right registers for x32 ABI (Luke Dashjr)
e66d4d6 Avoid the stack in assembly and use explicit registers (Pieter Wuille)
2014-12-11 00:49:31 +01:00
a3e0611014 Enable tests in x86 travis builds 2014-12-11 00:41:53 +01:00
45da235e93 x86 builder 2014-12-11 00:41:53 +01:00
8bb0e93045 Merge pull request #155
971fe81 build: fix openssl detection for cross builds (Cory Fields)
2014-12-11 00:41:22 +01:00
971fe8151b build: fix openssl detection for cross builds
Make sure that the detected openssl successfully links before enabling support.
2014-12-10 13:21:50 -05:00