Gregory Maxwell
9f6993f370
Remove some dead code.
2015-09-28 05:43:51 +00:00
Gregory Maxwell
4e64608082
Include public module headers when compiling modules.
...
Also fix the nullness requirements for schnorr nonce-pair generation.
2015-09-24 21:50:06 +00:00
Pieter Wuille
1f414378b8
Merge pull request #316
...
2b199de
Use the explicit NULL macro for pointer comparisons. (Gregory Maxwell)
2015-09-24 19:36:54 +02:00
Gregory Maxwell
cfe0ed916a
Fix miscellaneous style nits that irritate overactive static analysis.
...
Also increase consistency with how overflow && zero is tested, and
avoid some mixed declarations and code that GCC wasn't detecting.
2015-09-24 08:42:37 +00:00
Gregory Maxwell
2b199de888
Use the explicit NULL macro for pointer comparisons.
...
This makes it more clear that a null check is intended. Avoiding the
use of a pointer as a test condition alse increases the type-safety
of the comparisons.
(This is also MISRA C 2012 rules 14.4 and 11.9)
2015-09-23 22:00:43 +00:00
Pieter Wuille
dd891e0ed5
Get rid of _t as it is POSIX reserved
2015-09-21 21:03:37 +02:00
Gregory Maxwell
912f203fc5
Eliminate a few unbraced statements that crept into the code.
...
Also avoids some easily avoided multiple-returns.
2015-09-21 17:21:35 +00:00
Pieter Wuille
eeab823b70
Merge pull request #299
...
486b9bb
Use a flags bitfield for compressed option to secp256k1_ec_pubkey_serialize and secp256k1_ec_privkey_export (Luke Dashjr)
05732c5
Callback data: Accept pointers to either const or non-const data (Luke Dashjr)
1973c73
Bugfix: Reinitialise buffer lengths that have been used as outputs (Luke Dashjr)
788038d
Use size_t for lengths (at least in external API) (Luke Dashjr)
c9d7c2a
secp256k1_context_set_{error,illegal}_callback: Restore default handler by passing NULL as function argument (Luke Dashjr)
9aac008
secp256k1_context_destroy: Allow NULL argument as a no-op (Luke Dashjr)
64b730b
secp256k1_context_create: Use unsigned type for flags bitfield (Luke Dashjr)
2015-09-20 04:59:30 +02:00
Luke Dashjr
486b9bb8ce
Use a flags bitfield for compressed option to secp256k1_ec_pubkey_serialize and secp256k1_ec_privkey_export
2015-09-19 19:33:30 +00:00
Luke Dashjr
05732c5a5f
Callback data: Accept pointers to either const or non-const data
2015-09-19 19:33:28 +00:00
Luke Dashjr
1973c7379e
Bugfix: Reinitialise buffer lengths that have been used as outputs
2015-09-19 19:33:24 +00:00
Luke Dashjr
788038d323
Use size_t for lengths (at least in external API)
2015-09-19 19:33:21 +00:00
Luke Dashjr
c9d7c2a484
secp256k1_context_set_{error,illegal}_callback: Restore default handler by passing NULL as function argument
2015-09-19 19:32:52 +00:00
Luke Dashjr
9aac008038
secp256k1_context_destroy: Allow NULL argument as a no-op
2015-09-19 19:32:48 +00:00
Luke Dashjr
64b730bc3f
secp256k1_context_create: Use unsigned type for flags bitfield
2015-09-19 19:32:21 +00:00
Pieter Wuille
cb04ab5e3c
Merge pull request #309
...
81e45ff
Update group_impl.h (GSongHashrate)
2015-09-19 21:25:51 +02:00
Pieter Wuille
a55166950f
Merge pull request #295
...
c996d53
Print success (Pieter Wuille)
2015-09-19 21:24:31 +02:00
GSongHashrate
81e45ff9d1
Update group_impl.h
2015-09-17 22:38:21 +01:00
Pieter Wuille
dc0ce9fc41
[API BREAK] Change argument order to out/outin/in
2015-09-04 17:45:57 +02:00
Pieter Wuille
c822693eff
Merge pull request #301
...
b183b41
bugfix: "ARG_CHECK(ctx != NULL)" makes no sense (Cory Fields)
2015-09-04 16:17:20 +02:00
Pieter Wuille
6d043505b0
Merge pull request #303
...
263dcbc
remove unused assignment (Cory Fields)
2015-09-04 16:15:14 +02:00
Gregory Maxwell
5fb32296af
Fixes a bug where bench_sign would fail due to passing in too small a buffer.
...
This was introduced by the recent API change when the signature types were split.
2015-09-03 18:47:30 +00:00
Cory Fields
263dcbca4a
remove unused assignment
2015-09-02 23:52:09 -04:00
Cory Fields
b183b41122
bugfix: "ARG_CHECK(ctx != NULL)" makes no sense
...
Move all context checks to VERIFY_CHECK and be sure they come before all
ARG_CHECKs.
2015-09-02 23:42:51 -04:00
Pieter Wuille
c996d53ab1
Print success
2015-08-28 02:29:08 +02:00
Pieter Wuille
9f443be086
Move pubkey recovery code to separate module
2015-08-28 01:51:52 +02:00
Pieter Wuille
d49abbd5a0
Separate ECDSA recovery tests
2015-08-27 22:47:24 +02:00
Pieter Wuille
439d34adc6
Separate recoverable and normal signatures
2015-08-27 22:47:24 +02:00
Pieter Wuille
2f77487012
Add context building benchmarks
2015-08-27 01:14:28 +02:00
Veres Lajos
de7e398dfa
small typo fix
2015-08-10 22:05:52 +01:00
Pieter Wuille
a5a66c70b6
Add support for custom EC-Schnorr-SHA256 signatures
2015-08-03 20:08:51 +02:00
Peter Dettman
72ae443afb
Improve perf. of cmov-based table lookup
2015-08-01 10:57:36 -05:00
Andrew Poelstra
92e53fc4c8
Implement endomorphism optimization for secp256k1_ecmult_const
2015-08-01 10:57:36 -05:00
Andrew Poelstra
ed35d43a0c
Make secp256k1_scalar_add_bit
conditional; make secp256k1_scalar_split_lambda_var
constant time
...
This has the effect of making `secp256k1_scalar_mul_shift_var` constant
time in both input scalars. Keep the _var name because it is NOT constant
time in the shift amount.
As used in `secp256k1_scalar_split_lambda_var`, the shift is always
the constant 272, so this function becomes constant time, and it
loses the `_var` suffix.
2015-08-01 10:57:36 -05:00
Andrew Poelstra
91c0ce95ca
Add benchmarks for ECDH and const-time multiplication
2015-08-01 10:57:36 -05:00
Andrew Poelstra
0739bbb6f0
Add ECDH module which works by hashing the output of ecmult_const
2015-08-01 10:57:33 -05:00
Andrew Poelstra
4401500060
Add constant-time multiply secp256k1_ecmult_const
for ECDH
...
Designed with clear separation of the wNAF conversion, precomputation
and exponentiation (since the precomp at least we will probably want
to separate in the API for users who reuse points a lot.
Future work:
- actually separate precomp in the API
- do multiexp rather than single exponentiation
2015-07-31 12:39:09 -05:00
Andrew Poelstra
baa75da59d
tests: add a couple tests
...
- Add zero/one sanity check tests for ecmult
- Add unit test for secp256k1_scalar_split_lambda_var
- Typo fix in `ge_equals_ge`; was comparing b->y to itself, should
have been comparing a->y to b->y
- Normalize y-coordinate in `random_group_element_test`; this is
needed to pass random group elements as the first argument to
`ge_equals_ge`, which I will do in a future commit.
2015-07-29 13:26:12 -05:00
Pieter Wuille
995c548771
Introduce callback functions for dealing with errors.
2015-07-26 18:08:38 +02:00
Pieter Wuille
18c329c506
Remove the internal secp256k1_ecdsa_sig_t type
2015-07-26 16:52:17 +02:00
Pieter Wuille
74a2acdb8a
Add a secp256k1_ecdsa_signature_t type
2015-07-26 16:02:20 +02:00
Pieter Wuille
23cfa914d2
Introduce secp256k1_pubkey_t type
2015-07-26 15:59:07 +02:00
Pieter Wuille
3e6f1e20dc
Change rfc6979 implementation to be a generic PRNG
2015-07-24 22:07:14 +02:00
Pieter Wuille
5133f78651
Merge pull request #254
...
733c1e6
Add travis build to test the static context. (Thomas Daede)
fbecc38
Add ability to use a statically generated ecmult context. (Thomas Daede)
2015-07-14 11:28:55 -04:00
Pieter Wuille
b0a60e6d33
Merge pull request #258
...
e2a07c7
Fix compilation with C++ (Vinnie Falco)
2015-07-13 21:03:47 -04:00
Thomas Daede
fbecc38a89
Add ability to use a statically generated ecmult context.
...
This vastly shrinks the size of the context required for signing on devices with
memory-mapped Flash.
Tables are generated by the new gen_context tool into a header.
2015-07-13 18:00:03 -07:00
Pieter Wuille
4fb174df08
Merge pull request #263
...
99fd963
Add secp256k1_ec_pubkey_compress(), with test similar to the related decompress() function. (Thomas Kerin)
2015-07-13 20:55:34 -04:00
Pieter Wuille
4ab8990c52
Merge pull request #270
...
36b305a
Verify the result of GMP modular inverse using non-GMP code (Pieter Wuille)
2015-07-13 20:27:29 -04:00
Pieter Wuille
bdf0e0c268
Merge pull request #271
...
55399c2 Further performance improvements to _ecmult_wnaf (Peter Dettman)
145cc6e
Improve performance of _ecmult_wnaf (Peter Dettman)
2015-07-13 20:25:18 -04:00
Pieter Wuille
31d0c1fd12
Merge pull request #273
...
eb2c8ff
Add missing casts to SECP256K1_FE_CONST_INNER (Andrew Poelstra)
2015-07-13 19:21:12 -04:00