Commit Graph

119 Commits

Author SHA1 Message Date
Pieter Wuille bbd5ba7cfa Use rfc6979 as default nonce generation function 2014-12-20 14:36:13 +01:00
Pieter Wuille c6e7f4e8d8 [API BREAK] Use a nonce-generation function instead of a nonce 2014-12-20 14:36:11 +01:00
Pieter Wuille cf7b2b4647 Fix ECDSA message hashes to 32 bytes 2014-12-09 12:50:47 +01:00
Pieter Wuille be82e92fc4 Require that r and b are different for field multiplication.
Suggested by Peter Dettman, this prepares for slightly faster muitiplication
which writes results immediately to r before finishing reading b.
2014-12-01 13:40:34 +01:00
Gregory Maxwell 8563713a4f Add non-null and unused-result warnings for the external API.
GCC (and clang) supports extensions to annotate functions so that their
 results must be used and so that their arguments can't be statically
 provable to be null. If a caller violates these requirements they
 get a warning, so this helps them write correct code.

I deployed this in libopus a couple years ago with good success, and
 the implementation here is basically copied straight from that.

One consideration is that the non-null annotation teaches the optimizer
 and will actually compile out runtime non-nullness checks as dead-code.
 Since this is usually not whats wanted, the non-null annotations are
 disabled when compiling the library itself.

The commit also removes some dead inclusions of assert.h and introduces
 compatibility macros for restrict and inline in preparation for some
 portability improvements.
2014-11-12 12:23:09 -08:00
Pieter Wuille c27fdc0b97 Document some preconditions 2014-11-12 03:20:15 -08:00
Pieter Wuille ae6bc76e32 [API CHANGE] Use secp256k1_ec_ prefix for non-ECDSA key operations 2014-10-27 02:51:58 -07:00
Pieter Wuille 04e34d18c3 Split up signing and verification initialization 2014-09-13 17:14:17 +02:00
HaltingState 315d2560b0 updated documentation 2013-11-04 02:50:59 -08:00
Pieter Wuille 86d3cce2a9 Add support for multiplicative tweaking 2013-07-14 17:58:23 +02:00
Pieter Wuille 194eea065f Public inclue improvements 2013-05-11 23:37:48 +02:00
Pieter Wuille da3038c757 Privkey import/export 2013-05-05 05:12:43 +02:00
Pieter Wuille 50eb498ece Compact signatures/pubkey recovery 2013-05-05 02:46:07 +02:00
Pieter Wuille 42cccdaf55 More public implementations 2013-05-05 01:02:05 +02:00
Pieter Wuille 7823916781 Add signing to public interface 2013-05-05 00:21:03 +02:00
Pieter Wuille b2966ce852 public interface docs 2013-04-14 22:44:45 +02:00
Pieter Wuille eb0be8eec6 Final step in converting to C 2013-04-01 07:52:58 +02:00
Pieter Wuille 254327e49a Begin group C interface + start/stop 2013-03-31 06:36:03 +02:00
Pieter Wuille 2d93809255 Source tree reorganization 2013-03-31 05:03:27 +02:00