Commit Graph

800 Commits

Author SHA1 Message Date
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
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 4c63780710
Merge pull request #269
3e6f1e2 Change rfc6979 implementation to be a generic PRNG (Pieter Wuille)
2015-07-24 23:44:21 +02:00
Pieter Wuille 3e6f1e20dc Change rfc6979 implementation to be a generic PRNG 2015-07-24 22:07:14 +02:00
mlmikael ed5334a7fe Update configure.ac to make it build on OpenBSD
This update is to make libsecp256k1 build on OpenBSD (more specifically OpenBSD 5.7 with Autotools 2.69).

Without the "AM_PROG_CC_C_O" line in configure.ac, ./autogen.sh crashes with "Makefile.am: C objects in subdir but `AM_PROG_CC_C_O' not in `configure.ac'\nautoreconf-2.69: automake failed with exit status: 1".
2015-07-19 16:07:46 +02:00
Pieter Wuille 1b68366201
Merge pull request #274
a83bb48 Make ecmult static precomputation default (Pieter Wuille)
2015-07-15 22:39:16 -04:00
Pieter Wuille a83bb48068 Make ecmult static precomputation default 2015-07-15 21:41:51 -04:00
Pieter Wuille 166b32f70a
Merge pull request #276
c37812f Add gen_context src/ecmult_static_context.h to CLEANFILES to fix distclean. (Gregory Maxwell)
2015-07-15 21:40:55 -04:00
Gregory Maxwell c37812f54c Add gen_context src/ecmult_static_context.h to CLEANFILES to fix distclean. 2015-07-16 00:05:32 +00:00
Pieter Wuille 125c15de31
Merge pull request #275
76f6769 Fix build with static ecmult altroot and make dist. (Gregory Maxwell)
2015-07-15 18:51:55 -04:00
Gregory Maxwell 76f67697ec Fix build with static ecmult altroot and make dist.
Gen_context was unable to find the required headers without some
 autotools fixups.  Make dist was also broken without the extra
 sources for the host side table builder utility.
2015-07-15 22:08:00 +00: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