rust-secp256k1-unsafe-fast/CHANGELOG.md

19 KiB

Unreleased

  • Deprecate ThirtyTwoByteHash

    This trait turned out to be problematic during upgrade because we support a ranged dependency for bitcoin_hashes. Consider implementing From<T> for Message for your type iff your type is a 32 byte hash (ie, output from a hash algorithm that produces a 32 byte digest like sha256). When using the impl, consider using Message::from instead of hash.into() because we will be introducing generics in a future version and the compiler will not be able to work out the target type.

  • Bump MSRV to Rust v1.56.1

  • Upgrade hashes using range dependency version = ">= 0.12, <= 0.14".

0.28.2 - 2024-01-30

  • Implement Hash for Scalar #674
  • Implement Ord and PartialOrd for RecoverableSignature #611
  • Add byte accessors to ElligatorSwiftSharedSecret #676

0.28.1 - 2024-01-03

  • Update secp265k1-sys to 0.9.2 (contains some fixes for WASM and a FFI binding fix)
  • Various improvements to the SerializedSignature type #658 #659

0.28.0 - 2023-10-23

  • Add bindings to the ElligatorSwift implementation #627
  • Depend on recent release of bitcoin_hashes v0.13.0 #621
  • Add a verify function to PublicKey #618
  • Add serialize function for schnorr::Signature #607
  • Bump MSRV to 1.48 #595
  • Remove implementations of PartialEq, Eq, PartialOrd, Ord, and Hash from the impl_array_newtype macro. Users will now need to derive these traits if they are wanted.

0.27.0 - 2023-03-15

0.26.0 - 2202-12-19

  • Update libsecp25k1 to v0.2.0

0.25.0 - 2022-12-07

0.24.1 - 2022-10-25

0.24.0 - 2022-07-20

0.23.4 - 2022-07-14

0.23.3 - 2022-06-29

0.23.2 - 2022-06-27

0.23.1 - 2022-06-24

Enable "rand/std_rng" feature when the crate's "rnd-std" feature is enabled.

0.23.0 - 2022-06-21

The major change in this version is the increase of the Minimum Supported Rust Version (MSRV) from 1.29 to 1.41.1, this is a big change because it introduces Rust Edition 2018 to the codebase along with all the benefits that brings.

Breaking changes

New features/APIs

Other improvements

  • global-context feature now activates global-context-less-secure.
  • githooks/ directory added for contributors
  • Clippy is now used in CI and the code is clippy-compliant
  • Various documentation improvements
  • Various CI/development improvements
  • Various code quality improvements/refactors

0.22.1 - 2022-03-10

  • Reintroduce accidentally removed possibility to create SharedSecret from byte serialization

0.22.0 - 2022-03-08

0.21.3 - 2022-01-31

0.21.0 - 2022-01-02

0.20.3 - 2021-06-10

0.20.2 - 2021-04-27

0.20.0 - 2020-12-21

0.19.0 - 2020-08-27

  • Update MSRV to 1.29.0

0.18.0 - 2020-08-26

0.17.2

  • Fix linking in the fuzztarget feature.

0.17.1

  • Correctly prefix the secp256k1-sys links field in Cargo.toml.

0.17.0

  • Move FFI into secp256k1-sys crate.
  • Add external-symbols feature for not building upstream.
  • Add functions to create a context from a raw pointer.
  • Support passing custom hash functions to ECDH.
  • Wrap Secp256k1 from raw context in a ManuallyDrop.

0.15.4 - 2019-09-06

  • Add rand-std feature.
  • Pin the cc build-dep version to < 1.0.42 to remain compatible with rustc 1.22.0.
  • Changed all as_*ptr() to a new safer CPtr trait

0.15.2 - 2019-08-08

  • Add feature lowmemory that reduces the EC mult window size to require significantly less memory for the validation context (~680B instead of ~520kB), at the cost of slower validation. It does not affect the speed of signing, nor the size of the signing context.

0.15.0 - 2019-07-25

  • Implement hex human-readable serde for PublicKey
  • Implement fmt::LowerHex for SecretKey and PublicKey
  • Relax cc dependency requirements
  • Add links manifest key to prevent cross-version linkage

0.14.1 - 2019-07-14

  • Implemented FFI functions: secp256k1_context_create and secp256k1_context_destroy in rust.

0.14.0 - 2019-07-08

  • Feature-gate endormorphism optimization because of a lack of clarity with respect to patents
  • Got full no-std support including eliminating all use of libc in C bindings. PR 1 PR 2. This library should be usable in bare-metal environments and with rust-wasm. Thanks to Elichai Turkel for driving this forward!
  • Update upstream libsecp256k1 version to 143dc6e9ee31852a60321b23eea407d2006171da

0.13.0 - 2019-05-21

  • Update minimum supported rust compiler 1.22.
  • Replace serialize_der function with SerializedSignature struct.
  • Allow building without a standard library (no_std). std feature is on by default.
  • Add human readable serialization to Signatures and SecretKeys.
  • Stop displaying 0 bytes if a Signature is less than 72 bytes.
  • Only compile recovery module if feature recovery is set (non-default).
  • Update rand dependency from 0.4 to 0.6 and add rand_core 0.4 dependency.
  • Relax cc dependency requirements.

0.12.2 - 2019-01-18

  • Fuzzer bug fix

0.12.1 - 2019-01-15

  • Minor bug fixes
  • Fixed cc crate version to maintain minimum compiler version without breakage
  • Removed libc dependency as it our uses have been subsumed into stdlib

0.12.0 - 2018-12-03

  • Overhaul API to remove context object when no precomputation is needed
  • Add ThirtyTwoByteHash trait which allows infallible conversions to Messages
  • Disallow 0-valued Message objects since signatures on them are forgeable for all keys
  • Remove ops::Index implementations for Signature
  • Remove depecated constants and unsafe ZERO_KEY constant

0.11.5 - 2018-11-09

  • Use pub extern crate to export dependencies whose types are exported

0.11.4 - 2018-11-04

  • Add FromStr and Display for Signature and both key types
  • Fix build.rs for Windows and rustfmt configuration for docs.rs
  • Correct endianness issue for Signature Debug output

0.11.3 - 2018-10-28

  • No changes, just fixed docs.rs configuration

0.11.2 - 2018-09-11

  • Correct endianness issue in RFC6979 nonce generation

0.11.1 - 2018-08-22

  • Put PublicKey::combine back because it is currently needed to implement Lightning BOLT 3

0.11.0 - 2018-08-22

  • Update rand to 0.4 and gcc 0.3 to cc 1.0. (rand 0.5 exists but has a lot of breaking changes and no longer compiles with 1.14.0.)
  • Remove PublicKey::combine from API since it cannot be used with anything else in the API
  • Detect whether 64-bit compilation is possible, and do it if we can (big performance improvement)

0.10.0 - 2018-07-25