Skip to content
  1. Sep 18, 2015
    • Andrew Poelstra's avatar
      Fix for upstream API changes; add ECDH support · 016d781f
      Andrew Poelstra authored
      I didn't mean for both of these to go into the same commit, but given how
      small the ECDH code was, and the fact that no commit prior to this one will
      compile (as both libsecp256k1 and rustc have changed so much), I'm letting
      it slide.
      016d781f
  2. Jul 28, 2015
  3. May 04, 2015
  4. May 03, 2015
  5. Apr 30, 2015
  6. Apr 28, 2015
  7. Apr 16, 2015
  8. Apr 14, 2015
  9. Apr 12, 2015
    • Andrew Poelstra's avatar
      [API BREAK] Remove Rng from Secp256k1 and associated code · fb75373b
      Andrew Poelstra authored
      The Rng was only used for key generation, and for BIP32 users not even then;
      thus hauling around a Rng is a waste of space in addition to causing a
      massive amount of syntactic noise. For example rust-bitcoin almost always
      uses `()` as the Rng; having `Secp256k1` default to a `Secp256k1<Fortuna>`
      then means even more syntactic noise, rather than less.
      
      Now key generation functions take a Rng as a parameter, and the rest can
      forget about having a Rng. This also means that the Secp256k1 context
      never needs a mutable reference and can be easily put into an Arc if so
      desired.
      fb75373b
    • Andrew Poelstra's avatar
      [minor API BREAK] Add unit tests to cover all error cases · 83823379
      Andrew Poelstra authored
      This comes with a couple bugfixes and the following API changes:
      
        - Secp256k1::sign and ::sign_compact no longer return Result;
          it is impossible to trigger their failure modes with safe
          code since the `Message` and `SecretKey` types validate when
          they are created.
      
        - constants::MAX_COMPACT_SIGNATURE_SIZE loses the MAX_; signatures
          are always constant size
      
        - the Debug output for everything is now hex-encoded rather than
          being a list of base-10 ints. It's just easier to read this way.
      
      kcov v26 now reports 100% test coverage; however, this does not
      guarantee that test coverage is actually complete. Patches are
      always welcome for improved unit tests.
      83823379
    • Andrew Poelstra's avatar
    • Andrew Poelstra's avatar
      Change `Secp256k1::with_rng` to not return a Result · edab2568
      Andrew Poelstra authored
      This function can't fail, so no need to return a Result.
      edab2568
  10. Apr 11, 2015
  11. Apr 10, 2015
  12. Apr 09, 2015
  13. Apr 06, 2015
    • Andrew Poelstra's avatar
      Update bindings to current secp256k1 library · 1591bba3
      Andrew Poelstra authored
      rust-secp256k1 was based off of https://github.com/sipa/secp256k1,
      which has been inactive nearly as long as this repository (prior to
      a couple days ago anyway). The correct repository is
      
         https://github.com/bitcoin/secp256k1
      
      This is a major breaking change to the library for one reason: there
      are no longer any Nonce types in the safe interface. The signing functions
      do not take a nonce; this is generated internally.
      
      This also means that I was able to drop all my RFC6979 code, since
      libsecp256k1 has its own implementation.
      
      If you need to generate your own nonces, you need to create an unsafe
      function of type `ffi::NonceFn`, then pass it to the appropriate
      functions in the `ffi` module. There is no safe interface for doing
      this, deliberately: there is basically no need to directly fiddle
      with nonces ever.
      1591bba3
    • Andrew Poelstra's avatar
  14. Apr 05, 2015
  15. Apr 04, 2015
  16. Mar 26, 2015
  17. Mar 25, 2015