Commit Graph

450 Commits

Author SHA1 Message Date
f0d851ee6a Merge pull request #201
f735446 Convert the rest of the codebase to C89. (Gregory Maxwell)
2015-01-25 14:23:22 -04:00
a0ea88456f Merge pull request #200
bf2e1ac Convert tests to C89. (also fixes a use of bare "inline" in field) (Gregory Maxwell)
2015-01-25 13:59:31 -04:00
f735446c4d Convert the rest of the codebase to C89.
Update build system to enforce -std=c89 -pedantic.
2015-01-25 17:44:10 +00:00
bf2e1ac7cd Convert tests to C89. (also fixes a use of bare "inline" in field) 2015-01-25 15:47:04 +00:00
fc8285f18a Merge pull request #199
fcc48c4 Remove the non-storage cmov (Pieter Wuille)
55422b6 Switch ecmult_gen to use storage types (Pieter Wuille)
41f8455 Use group element storage type in EC multiplications (Pieter Wuille)
e68d720 Add group element storage type (Pieter Wuille)
ff889f7 Field storage type (Pieter Wuille)
2015-01-25 09:16:11 -04:00
fff412e10c Merge pull request #197
4be8d6f Centralize the definition of uint128_t and use it uniformly. (Gregory Maxwell)
d9543c9 Switch scalar code to C89. (Gregory Maxwell)
2015-01-25 01:38:24 -04:00
4be8d6fc42 Centralize the definition of uint128_t and use it uniformly.
This needs to be renamed along with the other _t types, because _t
 is reserved.  But that will be done later.
2015-01-25 05:10:40 +00:00
d9543c904f Switch scalar code to C89. 2015-01-25 05:09:57 +00:00
fcc48c4561 Remove the non-storage cmov 2015-01-25 00:56:22 -04:00
55422b6aaf Switch ecmult_gen to use storage types 2015-01-25 00:46:31 -04:00
41f8455434 Use group element storage type in EC multiplications 2015-01-25 00:32:22 -04:00
e68d7208ec Add group element storage type 2015-01-25 00:31:56 -04:00
ff889f7d90 Field storage type 2015-01-25 00:11:20 -04:00
7137be8110 Merge pull request #196
0768bd5 Get rid of variable-length hex string conversions (Pieter Wuille)
2015-01-24 22:15:36 -04:00
0768bd55a1 Get rid of variable-length hex string conversions 2015-01-24 21:52:48 -04:00
e84e761915 Merge pull request #195
792bcdb Covert several more files to C89. (Gregory Maxwell)
2015-01-24 21:36:12 -04:00
792bcdb015 Covert several more files to C89. 2015-01-24 23:34:09 +00:00
45cdf4479d Merge pull request #193
25b35c7 Convert field code to strict C89 (+ long long, +__int128) (Gregory Maxwell)
3627437 C89 nits and dead code removal. (Gregory Maxwell)
2015-01-24 18:51:50 -04:00
17db09e3af Merge pull request #194
402878a fix ifdef/ifndef (mb300sd)
2015-01-24 15:26:15 -04:00
402878ae11 fix ifdef/ifndef 2015-01-23 17:09:50 -05:00
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