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