Commit Graph

35 Commits

Author SHA1 Message Date
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
Gregory Maxwell c37812f54c Add gen_context src/ecmult_static_context.h to CLEANFILES to fix distclean. 2015-07-16 00:05:32 +00: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
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 039723d5da Benchmarks for all internal operations 2015-02-02 20:02:39 -08:00
Pieter Wuille bbd5ba7cfa Use rfc6979 as default nonce generation function 2014-12-20 14:36:13 +01:00
Pieter Wuille 7277fd76e2 Remove GMP field implementation 2014-12-17 12:41:31 +01:00
Pieter Wuille 6558a26770 Make the benchmarks print out stats 2014-12-09 01:27:39 +01:00
Pieter Wuille 000bdf6dc3 Rename bench_verify to bench_recovery 2014-12-09 00:12:02 +01:00
Pieter Wuille 67935050e1 Convert YASM code into inline assembly 2014-12-04 13:54:01 +01:00
Cory Fields e2274c58e6 build: osx: attempt to work with homebrew keg-only packages 2014-11-24 11:49:22 -05:00
Gregory Maxwell 861f9a59cc field_gmp's negate doesn't need to use the magnitude argument. 2014-11-13 01:45:56 -08:00
kiwigb 6fac238f03 Use same build template as bitcoin. Add bitcoin_secp.m4. 2014-11-07 01:55:27 +13:00
kiwigb f9aac5b034 Remove INCLUDES. Obsolete, appears unused anyway. 2014-11-06 22:35:41 +13:00
Pieter Wuille 1d52a8b155 Implementations for scalar without data-dependent branches. 2014-11-04 03:01:55 -08:00
Peter Dettman e2d66a2c62 Fix build for 64bit field under OSX
- caused by 8881212ebc
- OSX's ar tool doesn't work for empty archives ("ar: no archive members specified")
- introduce COMMON_LIB variable; leave empty when not using asm
2014-11-03 09:50:05 +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 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 a9f5c8b875 Introduce secp256k1_scalar_t for future constant-time mod order operations 2014-10-28 04:33:23 -07:00
Pieter Wuille e2f71f1efe Move non-ECDSA operations from ecdsa to eckey 2014-10-27 02:58:09 -07:00
Pieter Wuille 949c1ebb5e Split up ecmult and ecmult_gen entirely 2014-10-26 03:42:24 -07:00
Pieter Wuille bae6a42be4 Make bench use external interface 2014-09-29 08:21:59 +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 8881212ebc Make tests and bench just use asm directly instead of library
Thanks to Cory Fields for the suggestion.
2014-08-19 13:40:19 +02:00
Cory Fields d40908763a build: add autogen. How was this missing? 2014-06-19 14:56:23 -04:00
Cory Fields 81b2faebd4 packaging: remove the --with-pkgconfigdir option
It was not necessary and would only confuse packagers.
2014-05-20 20:59:14 -04:00
Amir Taaki c7ee71f792 add pkg-config support 2014-05-20 20:39:46 -04:00
Pieter Wuille 920c243932 Merge pull request #7 from luke-jr/x32
Fix build on x32
2014-04-11 15:44:02 +02:00
Luke Dashjr 282ebc6dbd Fix build on x32 2014-04-10 13:33:55 +00:00
Pieter Wuille 11ab562203 Move implementations from impl/*.h to *_impl.h 2014-03-12 18:40:02 +01:00
Cory Fields 78cd96b151 autotools: autotools'ify libsecp256k1 2014-01-17 23:24:12 -05:00