f79d80a724
Merge pull request #101
...
8563713
Add non-null and unused-result warnings for the external API. (Gregory Maxwell)
2014-11-12 14:06:04 -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
9c698f16d6
Merge pull request #76
...
7935930
Add unit tests for scalars. (Pieter Wuille)
eca6cdb
Switch scalar to use get/set 32-byte arrays (Pieter Wuille)
2014-10-30 06:09:29 -07:00
79359302fb
Add unit tests for scalars.
...
Also add a secp256k1_scalar_is_one function.
2014-10-29 02:11:07 -07:00
eca6cdb123
Switch scalar to use get/set 32-byte arrays
2014-10-29 00:40:56 -07:00
774594e979
Merge pull request #75
...
a9f5c8b
Introduce secp256k1_scalar_t for future constant-time mod order operations (Pieter Wuille)
2014-10-29 00:33:12 -07:00
a9f5c8b875
Introduce secp256k1_scalar_t for future constant-time mod order operations
2014-10-28 04:33:23 -07:00
b2bfdabdeb
Merge pull request #72
...
eb74c36
Abstract out tweak logic to secp256k1_eckey_* functions (Pieter Wuille)
ffffc87
Use internal secp256k1_eckey_ prefix for functions in eckey (Pieter Wuille)
e2f71f1
Move non-ECDSA operations from ecdsa to eckey (Pieter Wuille)
ae6bc76
[API CHANGE] Use secp256k1_ec_ prefix for non-ECDSA key operations (Pieter Wuille)
2014-10-27 05:18:25 -07:00
eb74c36bd2
Abstract out tweak logic to secp256k1_eckey_* functions
2014-10-27 03:27:55 -07:00
ffffc87855
Use internal secp256k1_eckey_ prefix for functions in eckey
2014-10-27 03:01:51 -07:00
e2f71f1efe
Move non-ECDSA operations from ecdsa to eckey
2014-10-27 02:58:09 -07:00