Commit Graph

278 Commits

Author SHA1 Message Date
a099073a7e Enable warnings.
Wno-unused-function is used for the moment because of the checking
 functions which are currently only used by VERIFY but are not (yet?)
 ifdefed out in normal builds.
2014-11-13 01:45:57 -08:00
861f9a59cc field_gmp's negate doesn't need to use the magnitude argument. 2014-11-13 01:45:56 -08:00
f0709ac57e Avoid forward static decl of undefined functions, also fix a paren warning in the tests. 2014-11-13 01:45:49 -08:00
3276e7d4e2 Signed/unsigned comparisons in tests. 2014-11-12 15:47:12 -08:00
850562e3f1 Avoid unsigned comparison in scalar arith. 2014-11-12 15:47:12 -08:00
65a14abb48 Fix varrious signed/unsigned comparisons. 2014-11-12 15:47:12 -08:00
e9e0e21a6f Avoid a shadowed variable. 2014-11-12 15:47:12 -08:00
e28a8b86c7 Remove a VERIFY_CHECK for >=0ness on an unsigned type. 2014-11-12 15:47:12 -08:00
2cad067a36 Correct function prototypes and avoid unused parameter warnings. 2014-11-12 15:47:06 -08:00
a4a43d7543 Reorder static to comply with C99 and switch to the inline macro. 2014-11-12 13:07:55 -08:00
8563713a4f Add non-null and unused-result warnings for the external API.
GCC (and clang) supports extensions to annotate functions so that their
 results must be used and so that their arguments can't be statically
 provable to be null. If a caller violates these requirements they
 get a warning, so this helps them write correct code.

I deployed this in libopus a couple years ago with good success, and
 the implementation here is basically copied straight from that.

One consideration is that the non-null annotation teaches the optimizer
 and will actually compile out runtime non-nullness checks as dead-code.
 Since this is usually not whats wanted, the non-null annotations are
 disabled when compiling the library itself.

The commit also removes some dead inclusions of assert.h and introduces
 compatibility macros for restrict and inline in preparation for some
 portability improvements.
2014-11-12 12:23:09 -08:00
8ed7c33cd6 Merge pull request #96
6fac238 Use same build template as bitcoin. Add bitcoin_secp.m4. (kiwigb)
f9aac5b Remove INCLUDES. Obsolete, appears unused anyway. (kiwigb)
db72c18 Add autoreconf warnings. Replace obsolete AC_TRY_COMPILE. Remove redundant checks (already done by LT_INIT). (kiwigb)
2014-11-12 11:35:33 -08:00
28515b8848 Merge pull request #99
c27fdc0 Document some preconditions (Pieter Wuille)
2014-11-12 11:23:18 -08:00
c27fdc0b97 Document some preconditions 2014-11-12 03:20:15 -08:00
7ff4770e15 Merge pull request #98
fb1bb0b Rearrange _gej_add_ge to save an _fe_negate (Peter Dettman)
9338dbf Branch-free point addition (Pieter Wuille)
2014-11-12 02:44:56 -08:00
fb1bb0b445 Rearrange _gej_add_ge to save an _fe_negate 2014-11-12 02:16:36 -08:00
9338dbf791 Branch-free point addition 2014-11-11 14:28:22 -08:00
6fac238f03 Use same build template as bitcoin. Add bitcoin_secp.m4. 2014-11-07 01:55:27 +13:00
f9aac5b034 Remove INCLUDES. Obsolete, appears unused anyway. 2014-11-06 22:35:41 +13:00
db72c181bb Add autoreconf warnings. Replace obsolete AC_TRY_COMPILE.
Remove redundant checks (already done by LT_INIT).
2014-11-06 22:20:05 +13:00
ef6f677679 Merge pull request #95
79ad6d4 Remove some dead variables in the tests. (Gregory Maxwell)
9974d86 Misc. Warning and cosmetic error cleanups. (Gregory Maxwell)
2014-11-04 23:29:08 -08:00
985fd63a73 Merge pull request #77
1d52a8b Implementations for scalar without data-dependent branches. (Pieter Wuille)
2014-11-04 23:26:52 -08:00
79ad6d44ea Remove some dead variables in the tests. 2014-11-04 13:47:23 -08:00
9974d8693e Misc. Warning and cosmetic error cleanups.
This fixes a cosmetic precedence bug in the tests along with some
 type warnings.

It also adds a dummy cast to the CHECK macro to avoid hundreds
 of statement with no effect warnings on compilers that warn about
 such things.
2014-11-04 13:17:45 -08:00
1d52a8b155 Implementations for scalar without data-dependent branches. 2014-11-04 03:01:55 -08:00
0ce80ef47e Merge pull request #94
da55986 Label variable-time functions correctly and don't use those in sign (Pieter Wuille)
2014-11-04 03:01:38 -08:00
da55986fdf Label variable-time functions correctly and don't use those in sign 2014-11-04 02:50:06 -08:00
784e62f3b2 Fix typo 2014-11-04 02:28:34 -08:00
aee112a24e Merge pull request #92
137e77a Address 'constant-time' TODOs in field impls (Peter Dettman)
2014-11-04 02:27:25 -08:00
137e77afb4 Address 'constant-time' TODOs in field impls 2014-11-04 14:57:04 +07:00
112510dfab Merge pull request #93
5362875 warnings: enable quiet builds (Cory Fields)
2014-11-03 23:35:35 -08:00
53628757f3 warnings: enable quiet builds 2014-11-03 23:29:24 -08:00
cc20075ef7 Merge pull request #85
7a8e385 Fix interaction between magnitudes and negation (Pieter Wuille)
2014-11-03 01:44:27 -08:00
47ebd6b7fa Merge pull request #89
501d58f Get rid of {num,scalar,ecdsa_sig}_{init,free} (Pieter Wuille)
2014-11-03 01:41:54 -08:00
501d58f098 Get rid of {num,scalar,ecdsa_sig}_{init,free} 2014-11-03 01:31:04 -08:00
49596769d4 Merge pull request #70
e2d66a2 Fix build for 64bit field under OSX (Peter Dettman)
2014-11-03 00:44:44 -08:00
e2d66a2c62 Fix build for 64bit field under OSX
- caused by 8881212ebc
- OSX's ar tool doesn't work for empty archives ("ar: no archive members specified")
- introduce COMMON_LIB variable; leave empty when not using asm
2014-11-03 09:50:05 +07:00
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
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
36abcf5510 Merge pull request #83
7d681ac Add verification to 32bit field (Peter Dettman)
2014-11-02 01:16:16 -07:00
8f9a307818 Better .gitignore for bench binaries 2014-11-01 06:01:40 -07:00
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
fa5c13ff4c Add bench_sign tool 2014-10-31 08:23:34 -07:00
27aded3ccb Merge pull request #80
504c63d Rename bench to bench_verify (Pieter Wuille)
01097dd Make bench deterministic (Pieter Wuille)
2014-10-31 08:10:08 -07:00
504c63d72a Rename bench to bench_verify 2014-10-31 03:34:36 -07:00
01097ddf19 Make bench deterministic 2014-10-31 03:34:36 -07:00
81dc171604 Merge pull request #79
ae2679b Add bench_inv tool (Pieter Wuille)
2014-10-31 02:19:18 -07:00
66002cfa87 Merge pull request #78
520ba3c Remove OpenSSL bignum implementation (Pieter Wuille)
2014-10-31 02:17:31 -07:00
520ba3c921 Remove OpenSSL bignum implementation 2014-10-31 02:10:13 -07:00
ae2679b6e4 Add bench_inv tool 2014-10-30 06:26:05 -07:00