-
Notifications
You must be signed in to change notification settings - Fork 275
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Downstream projects, such as `bitcoin` are using types from this crate and need to compile the C code even if they only use the types for checking validity of the data and don't perform cryptographic operations. Compiling C code is slow and unreliable so there was desire to avoid this. This commit introduces pure Rust implementation of basic non-cryptographic operations (is point on the curve, decompression of point, secret key constant time comparisons) and feature-gates cryptographic operations on `secp256k1-sys` which is now optional. To make use of this, downstream crates will have to deactivate the feature and possibly feature gate themselves. The implementation requires a U256 type which was copied from the `bitcoin` crate. We don't depend on a common crate to avoid needless compilation when the feature is turned on. This is a breaking change because users who did cryptographic operations with `default-features = false` will get compilation errors until they enable the feature.
- Loading branch information
Showing
12 changed files
with
1,409 additions
and
375 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.