Gregory Maxwell
e9e0e21a6f
Avoid a shadowed variable.
2014-11-12 15:47:12 -08:00
Gregory Maxwell
e28a8b86c7
Remove a VERIFY_CHECK for >=0ness on an unsigned type.
2014-11-12 15:47:12 -08:00
Gregory Maxwell
2cad067a36
Correct function prototypes and avoid unused parameter warnings.
2014-11-12 15:47:06 -08:00
Gregory Maxwell
a4a43d7543
Reorder static to comply with C99 and switch to the inline macro.
2014-11-12 13:07:55 -08:00
Gregory Maxwell
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
Peter Dettman
fb1bb0b445
Rearrange _gej_add_ge to save an _fe_negate
2014-11-12 02:16:36 -08:00
Pieter Wuille
9338dbf791
Branch-free point addition
2014-11-11 14:28:22 -08:00
Pieter Wuille
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
Gregory Maxwell
79ad6d44ea
Remove some dead variables in the tests.
2014-11-04 13:47:23 -08:00
Gregory Maxwell
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
Pieter Wuille
1d52a8b155
Implementations for scalar without data-dependent branches.
2014-11-04 03:01:55 -08:00
Pieter Wuille
da55986fdf
Label variable-time functions correctly and don't use those in sign
2014-11-04 02:50:06 -08:00
Pieter Wuille
784e62f3b2
Fix typo
2014-11-04 02:28:34 -08:00
Peter Dettman
137e77afb4
Address 'constant-time' TODOs in field impls
2014-11-04 14:57:04 +07:00
Pieter Wuille
cc20075ef7
Merge pull request #85
...
7a8e385
Fix interaction between magnitudes and negation (Pieter Wuille)
2014-11-03 01:44:27 -08:00
Pieter Wuille
501d58f098
Get rid of {num,scalar,ecdsa_sig}_{init,free}
2014-11-03 01:31:04 -08:00
Pieter Wuille
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
Pieter Wuille
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
Peter Dettman
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
Pieter Wuille
fa5c13ff4c
Add bench_sign tool
2014-10-31 08:23:34 -07:00
Pieter Wuille
504c63d72a
Rename bench to bench_verify
2014-10-31 03:34:36 -07:00
Pieter Wuille
01097ddf19
Make bench deterministic
2014-10-31 03:34:36 -07:00
Pieter Wuille
81dc171604
Merge pull request #79
...
ae2679b
Add bench_inv tool (Pieter Wuille)
2014-10-31 02:19:18 -07:00
Pieter Wuille
520ba3c921
Remove OpenSSL bignum implementation
2014-10-31 02:10:13 -07:00
Pieter Wuille
ae2679b6e4
Add bench_inv tool
2014-10-30 06:26:05 -07:00
Pieter Wuille
79359302fb
Add unit tests for scalars.
...
Also add a secp256k1_scalar_is_one function.
2014-10-29 02:11:07 -07:00
Pieter Wuille
eca6cdb123
Switch scalar to use get/set 32-byte arrays
2014-10-29 00:40:56 -07:00
Pieter Wuille
a9f5c8b875
Introduce secp256k1_scalar_t for future constant-time mod order operations
2014-10-28 04:33:23 -07:00
Pieter Wuille
eb74c36bd2
Abstract out tweak logic to secp256k1_eckey_* functions
2014-10-27 03:27:55 -07:00
Pieter Wuille
ffffc87855
Use internal secp256k1_eckey_ prefix for functions in eckey
2014-10-27 03:01:51 -07:00
Pieter Wuille
e2f71f1efe
Move non-ECDSA operations from ecdsa to eckey
2014-10-27 02:58:09 -07:00
Pieter Wuille
ae6bc76e32
[API CHANGE] Use secp256k1_ec_ prefix for non-ECDSA key operations
2014-10-27 02:51:58 -07:00
Pieter Wuille
dc407ed48c
Avoid valgrind complaints in OpenSSL initialization check
2014-10-27 02:27:58 -07:00
Pieter Wuille
79f599d37f
Tests take too long by default
2014-10-27 02:25:56 -07:00
Pieter Wuille
03bfc07b9e
Avoid uninitialized access in secp256k1_gej_double
2014-10-26 06:51:38 -07:00
Pieter Wuille
bff11e9112
Verify num=openssl initialization and check repeatability
2014-10-26 05:39:13 -07:00
Pieter Wuille
949c1ebb5e
Split up ecmult and ecmult_gen entirely
2014-10-26 03:42:24 -07:00
Pieter Wuille
3fd6253e13
Better randomization for tests
2014-10-17 16:04:00 -07:00
Pieter Wuille
bae6a42be4
Make bench use external interface
2014-09-29 08:21:59 +02:00
Pieter Wuille
c259a7cbc0
Set precomputation table late and unset early.
...
Set the global pointer to the precomputation table only after initializing
it completely, and unset it before doing any uninitialization.
This causes fail-fast behavior in case of race conditions between
initialization and operations using it.
2014-09-13 17:19:30 +02:00
Pieter Wuille
04e34d18c3
Split up signing and verification initialization
2014-09-13 17:14:17 +02:00
Pieter Wuille
da556eb772
Merge pull request #62
...
1136bed
Make secp256k1_ge_set_gej work with the point at infinity (Pieter Wuille)
2014-09-13 16:26:27 +02:00
Pieter Wuille
1136bedbc2
Make secp256k1_ge_set_gej work with the point at infinity
2014-09-13 00:46:32 +02:00
Pieter Wuille
62c3f55a9d
Nothing-up-my-sleeving blinding for a*G
2014-09-01 14:56:12 +02:00
Pieter Wuille
fa492f059d
Fix a signedness mistake in secp256k1_num_set_hex
...
We were using a potentially signed char as index in an array.
2014-08-27 01:21:57 +02:00
Pieter Wuille
e2beb0bd2d
Merge pull request #51
...
364fde6
fix unsigned warning in num_gmp_impl.h (caktux)
2014-08-27 01:20:19 +02:00
Pieter Wuille
1c7fa133a6
Add VERIFY_CHECK/DEBUG_CHECK and use CHECK macros more
2014-08-26 01:23:51 +02:00
Pieter Wuille
87c782f632
Merge pull request #53
...
2f6c801
Try to not leave secret data on the stack or heap. (Gregory Maxwell)
2014-08-23 14:13:10 +02:00
Gregory Maxwell
2f6c801911
Try to not leave secret data on the stack or heap.
...
This makes a basic effort and has not been audited.
Doesn't appear to have a measurable performance impact on bench.
It also adds a secp256k1_num_free to secp256k1_ecdsa_pubkey_create.
2014-08-14 07:06:36 -07:00
caktux
364fde65f6
fix unsigned warning in num_gmp_impl.h
2014-08-11 16:09:09 -04:00