Commit Graph

593 Commits

Author SHA1 Message Date
6da1446dcf build: fix parallel build 2015-08-31 23:22:13 -04:00
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
9f443be086 Move pubkey recovery code to separate module 2015-08-28 01:51:52 +02:00
d49abbd5a0 Separate ECDSA recovery tests 2015-08-27 22:47:24 +02:00
439d34adc6 Separate recoverable and normal signatures 2015-08-27 22:47:24 +02:00
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
f66907f220 Improve/reformat API documentation secp256k1.h 2015-08-27 01:14:28 +02:00
2f77487012 Add context building benchmarks 2015-08-27 01:14:28 +02:00
cc623d50e4 Merge pull request #287
de7e398 small typo fix (Veres Lajos)
2015-08-11 21:29:51 +02:00
de7e398dfa small typo fix 2015-08-10 22:05:52 +01:00
9d96e362a5 Merge pull request #280
ed5334a Update configure.ac to make it build on OpenBSD (mlmikael)
2015-08-04 16:32:39 +02:00
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
14727fd9e1 Use correct name in gitignore 2015-08-03 22:40:00 +02:00
356b0e9c77 Actually test static precomputation in Travis 2015-08-03 22:39:20 +02:00
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
258720851e Merge pull request #212
a5a66c7 Add support for custom EC-Schnorr-SHA256 signatures (Pieter Wuille)
2015-08-03 22:34:12 +02:00
a5a66c70b6 Add support for custom EC-Schnorr-SHA256 signatures 2015-08-03 20:08:51 +02:00
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
72ae443afb Improve perf. of cmov-based table lookup 2015-08-01 10:57:36 -05:00
92e53fc4c8 Implement endomorphism optimization for secp256k1_ecmult_const 2015-08-01 10:57:36 -05:00
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
91c0ce95ca Add benchmarks for ECDH and const-time multiplication 2015-08-01 10:57:36 -05:00
0739bbb6f0 Add ECDH module which works by hashing the output of ecmult_const 2015-08-01 10:57:33 -05:00
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
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
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
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
ae4f0c6eec Merge pull request #278
995c548 Introduce callback functions for dealing with errors. (Pieter Wuille)
2015-07-29 17:52:38 +02:00
995c548771 Introduce callback functions for dealing with errors. 2015-07-26 18:08:38 +02:00
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
18c329c506 Remove the internal secp256k1_ecdsa_sig_t type 2015-07-26 16:52:17 +02:00
74a2acdb8a Add a secp256k1_ecdsa_signature_t type 2015-07-26 16:02:20 +02:00
23cfa914d2 Introduce secp256k1_pubkey_t type 2015-07-26 15:59:07 +02:00
4c63780710 Merge pull request #269
3e6f1e2 Change rfc6979 implementation to be a generic PRNG (Pieter Wuille)
2015-07-24 23:44:21 +02:00
3e6f1e20dc Change rfc6979 implementation to be a generic PRNG 2015-07-24 22:07:14 +02:00
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
1b68366201 Merge pull request #274
a83bb48 Make ecmult static precomputation default (Pieter Wuille)
2015-07-15 22:39:16 -04:00
a83bb48068 Make ecmult static precomputation default 2015-07-15 21:41:51 -04:00
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
c37812f54c Add gen_context src/ecmult_static_context.h to CLEANFILES to fix distclean. 2015-07-16 00:05:32 +00:00
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
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
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
b0a60e6d33 Merge pull request #258
e2a07c7 Fix compilation with C++ (Vinnie Falco)
2015-07-13 21:03:47 -04:00
733c1e695e Add travis build to test the static context. 2015-07-13 18:00:03 -07:00
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
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
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
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
31d0c1fd12 Merge pull request #273
eb2c8ff Add missing casts to SECP256K1_FE_CONST_INNER (Andrew Poelstra)
2015-07-13 19:21:12 -04:00