Commit Graph

714 Commits

Author SHA1 Message Date
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
85e3a2cc08
Merge pull request #112
2b4cf41 Use pkg-config always when possible, with failover to manual checks for libcrypto (Luke Dashjr)
2015-09-04 20:24:42 +02:00
Pieter Wuille
b2eb63b2d7
Merge pull request #293
dc0ce9f [API BREAK] Change argument order to out/outin/in (Pieter Wuille)
2015-09-04 20:22:49 +02:00
Pieter Wuille
dc0ce9fc41 [API BREAK] Change argument order to out/outin/in 2015-09-04 17:45:57 +02:00
Pieter Wuille
6d947cadcc
Merge pull request #298
6da1446 build: fix parallel build (Cory Fields)
2015-09-04 17:29:00 +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
Pieter Wuille
7ab311cbb3
Merge pull request #304
5fb3229 Fixes a bug where bench_sign would fail due to passing in too small a buffer. (Gregory Maxwell)
2015-09-04 16:13:54 +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
Cory Fields
6da1446dcf build: fix parallel build 2015-08-31 23:22:13 -04:00
Pieter Wuille
5eb435694e
Merge pull request #291
9f443be Move pubkey recovery code to separate module (Pieter Wuille)
d49abbd Separate ECDSA recovery tests (Pieter Wuille)
439d34a Separate recoverable and normal signatures (Pieter Wuille)
2015-08-28 05:03:13 +02: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
a7b046e554
Merge pull request #289
f66907f Improve/reformat API documentation secp256k1.h (Pieter Wuille)
2f77487 Add context building benchmarks (Pieter Wuille)
2015-08-27 22:46:54 +02:00
Pieter Wuille
f66907f220 Improve/reformat API documentation secp256k1.h 2015-08-27 01:14:28 +02:00
Pieter Wuille
2f77487012 Add context building benchmarks 2015-08-27 01:14:28 +02:00
Pieter Wuille
cc623d50e4
Merge pull request #287
de7e398 small typo fix (Veres Lajos)
2015-08-11 21:29:51 +02:00
Veres Lajos
de7e398dfa small typo fix 2015-08-10 22:05:52 +01:00
Pieter Wuille
9d96e362a5
Merge pull request #280
ed5334a Update configure.ac to make it build on OpenBSD (mlmikael)
2015-08-04 16:32:39 +02:00
Pieter Wuille
432e1ceca0
Merge pull request #283
14727fd Use correct name in gitignore (Pieter Wuille)
356b0e9 Actually test static precomputation in Travis (Pieter Wuille)
2015-08-03 22:43:52 +02:00
Pieter Wuille
14727fd9e1 Use correct name in gitignore 2015-08-03 22:40:00 +02:00
Pieter Wuille
356b0e9c77 Actually test static precomputation in Travis 2015-08-03 22:39:20 +02:00
Pieter Wuille
ff3a5dfc97
Merge pull request #284
e4ce393 build: fix hard-coded usage of "gen_context" (Cory Fields)
b8e39ac build: don't use BUILT_SOURCES for the static context header (Cory Fields)
2015-08-03 22:37:27 +02:00
Pieter Wuille
258720851e
Merge pull request #212
a5a66c7 Add support for custom EC-Schnorr-SHA256 signatures (Pieter Wuille)
2015-08-03 22:34:12 +02:00
Pieter Wuille
a5a66c70b6 Add support for custom EC-Schnorr-SHA256 signatures 2015-08-03 20:08:51 +02:00
Pieter Wuille
d84a3784f4
Merge pull request #252
72ae443 Improve perf. of cmov-based table lookup (Peter Dettman)
92e53fc Implement endomorphism optimization for secp256k1_ecmult_const (Andrew Poelstra)
ed35d43 Make `secp256k1_scalar_add_bit` conditional; make `secp256k1_scalar_split_lambda_var` constant time (Andrew Poelstra)
91c0ce9 Add benchmarks for ECDH and const-time multiplication (Andrew Poelstra)
0739bbb Add ECDH module which works by hashing the output of ecmult_const (Andrew Poelstra)
4401500 Add constant-time multiply `secp256k1_ecmult_const` for ECDH (Andrew Poelstra)
baa75da tests: add a couple tests (Andrew Poelstra)
2015-08-02 19:33:05 +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
Cory Fields
e4ce393683 build: fix hard-coded usage of "gen_context"
The binary needs an extension on some platforms.
2015-07-31 13:34:01 -04:00
Cory Fields
b8e39ac5e4 build: don't use BUILT_SOURCES for the static context header
BUILT_SOURCES simply forces the header to be built first.

Use real dependencies instead. This fixes builds with dependency tracking
disabled where a real target is specified.

As a bonus, this also fixes the issue of gen_context and the header not being
rebuilt when gen_context.c is touched.
2015-07-31 13:26:30 -04: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
ae4f0c6eec
Merge pull request #278
995c548 Introduce callback functions for dealing with errors. (Pieter Wuille)
2015-07-29 17:52:38 +02:00
Pieter Wuille
995c548771 Introduce callback functions for dealing with errors. 2015-07-26 18:08:38 +02:00
Pieter Wuille
c33307495b
Merge pull request #282
18c329c Remove the internal secp256k1_ecdsa_sig_t type (Pieter Wuille)
74a2acd Add a secp256k1_ecdsa_signature_t type (Pieter Wuille)
23cfa91 Introduce secp256k1_pubkey_t type (Pieter Wuille)
2015-07-26 17:42:29 +02:00