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