commit
de99732e20
|
@ -6,7 +6,14 @@ and this project adheres to Rust's notion of
|
|||
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.3.0] - 2022-01-03
|
||||
### Added
|
||||
- Support for `no-std` builds, via two new (default-enabled) feature flags:
|
||||
- `alloc` enables the `pasta_curves::arithmetic::{CurveAffine, CurveExt}`
|
||||
traits, as well as implementations of traits like `group::WnafGroup`.
|
||||
- `sqrt-table` depends on `alloc`, and enables the large precomputed tables
|
||||
(stored on the heap) that speed up square root computation.
|
||||
- `pasta_curves::arithmetic::SqrtRatio` trait, extending `ff::PrimeField` with
|
||||
square roots of ratios. This trait is likely to be moved into the `ff` crate
|
||||
in a future release (once we're satisfied with it).
|
||||
|
|
10
Cargo.toml
10
Cargo.toml
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "pasta_curves"
|
||||
description = "Implementation of the Pallas and Vesta (Pasta) curve cycle"
|
||||
version = "0.2.1"
|
||||
version = "0.3.0"
|
||||
authors = [
|
||||
"Sean Bowe <sean@electriccoin.co>",
|
||||
"Ying Tong Lai <yingtong@electriccoin.co>",
|
||||
|
@ -41,18 +41,20 @@ harness = false
|
|||
required-features = ["alloc"]
|
||||
|
||||
[dependencies]
|
||||
blake2b_simd = { version = "0.5", default-features = false }
|
||||
ff = { version = "0.11", default-features = false }
|
||||
group = { version = "0.11", default-features = false }
|
||||
rand = { version = "0.8", default-features = false }
|
||||
static_assertions = "1.1.0"
|
||||
subtle = { version = "2.3", default-features = false }
|
||||
|
||||
# std dependencies
|
||||
# alloc dependencies
|
||||
blake2b_simd = { version = "1", optional = true, default-features = false }
|
||||
|
||||
# sqrt-table dependencies
|
||||
lazy_static = { version = "1.4.0", optional = true }
|
||||
|
||||
[features]
|
||||
default = ["bits", "sqrt-table"]
|
||||
alloc = ["group/alloc"]
|
||||
alloc = ["group/alloc", "blake2b_simd"]
|
||||
bits = ["ff/bits"]
|
||||
sqrt-table = ["alloc", "lazy_static"]
|
||||
|
|
|
@ -474,7 +474,12 @@ macro_rules! new_curve_impl {
|
|||
// multiplication, moving from most significant to least
|
||||
// significant bit of the scalar.
|
||||
//
|
||||
// NOTE: We skip the leading bit because it's always unset.
|
||||
// We don't use `PrimeFieldBits::.to_le_bits` here, because that would
|
||||
// force users of this crate to depend on `bitvec` where they otherwise
|
||||
// might not need to.
|
||||
//
|
||||
// NOTE: We skip the leading bit because it's always unset (we are turning
|
||||
// the 32-byte repr into 256 bits, and $scalar::NUM_BITS = 255).
|
||||
for bit in other
|
||||
.to_repr()
|
||||
.iter()
|
||||
|
@ -585,7 +590,12 @@ macro_rules! new_curve_impl {
|
|||
// multiplication, moving from most significant to least
|
||||
// significant bit of the scalar.
|
||||
//
|
||||
// NOTE: We skip the leading bit because it's always unset.
|
||||
// We don't use `PrimeFieldBits::.to_le_bits` here, because that would
|
||||
// force users of this crate to depend on `bitvec` where they otherwise
|
||||
// might not need to.
|
||||
//
|
||||
// NOTE: We skip the leading bit because it's always unset (we are turning
|
||||
// the 32-byte repr into 256 bits, and $scalar::NUM_BITS = 255).
|
||||
for bit in other
|
||||
.to_repr()
|
||||
.iter()
|
||||
|
|
Loading…
Reference in New Issue