2021-01-22 15:54:31 -08:00
|
|
|
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
|
and this project adheres to Rust's notion of
|
|
|
|
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
|
|
|
|
## [Unreleased]
|
2023-03-02 07:51:58 -08:00
|
|
|
### Changed
|
|
|
|
- MSRV is now 1.60.0.
|
|
|
|
|
2023-03-02 08:47:32 -08:00
|
|
|
## [0.5.1] - 2023-03-02
|
2023-02-23 14:15:08 -08:00
|
|
|
### Fixed
|
|
|
|
- Fix a bug on 32-bit platforms that could cause the square root implementation
|
|
|
|
to return an incorrect result.
|
2023-03-02 08:47:32 -08:00
|
|
|
- The `sqrt-table` feature now works without `std` and only requires `alloc`.
|
2022-12-05 18:31:50 -08:00
|
|
|
|
|
|
|
## [0.5.0] - 2022-12-06
|
|
|
|
### Added
|
|
|
|
- `serde` feature flag, which enables Serde compatibility to the crate types.
|
|
|
|
Field elements and points are serialized to their canonical byte encoding
|
|
|
|
(encoded as hexadecimal if the data format is human readable).
|
|
|
|
|
2022-10-28 03:36:06 -07:00
|
|
|
### Changed
|
2022-12-05 18:31:50 -08:00
|
|
|
- Migrated to `ff 0.13`, `group 0.13`, `ec-gpu 0.2`.
|
|
|
|
- `pasta_curves::arithmetic`:
|
|
|
|
- `FieldExt` bounds on associated types of `CurveExt` and `CurveAffine` have
|
|
|
|
been replaced by bounds on `ff::WithSmallOrderMulGroup<3>` (and `Ord` in the
|
|
|
|
case of `CurveExt`).
|
|
|
|
- `pasta_curves::hashtocurve`:
|
|
|
|
- `FieldExt` bounds on the module functions have been replaced by equivalent
|
|
|
|
`ff` trait bounds.
|
2022-10-28 03:36:06 -07:00
|
|
|
|
|
|
|
### Removed
|
2022-11-24 01:41:35 -08:00
|
|
|
- `pasta_curves::arithmetic`:
|
2022-11-24 12:51:46 -08:00
|
|
|
- `FieldExt` (use `ff::PrimeField` or `ff::WithSmallOrderMulGroup` instead).
|
2022-11-24 01:41:35 -08:00
|
|
|
- `Group`
|
|
|
|
- `SqrtRatio` (use `ff::Field::{sqrt_ratio, sqrt_alt}` instead).
|
|
|
|
- `SqrtTables` (from public API, as it isn't suitable for generic usage).
|
2022-10-13 13:58:44 -07:00
|
|
|
|
|
|
|
## [0.4.1] - 2022-10-13
|
2022-08-17 08:39:04 -07:00
|
|
|
### Added
|
|
|
|
- `uninline-portable` feature flag, which disables inlining of some functions.
|
|
|
|
This is useful for tiny microchips (such as ARM Cortex-M0), where inlining
|
|
|
|
can hurt performance and blow up binary size.
|
2022-05-04 16:18:10 -07:00
|
|
|
|
|
|
|
## [0.4.0] - 2022-05-05
|
2022-05-04 16:11:59 -07:00
|
|
|
### Changed
|
|
|
|
- MSRV is now 1.56.0.
|
|
|
|
- Migrated to `ff 0.12`, `group 0.12`.
|
2022-04-20 04:15:43 -07:00
|
|
|
|
|
|
|
## [0.3.1] - 2022-04-20
|
2022-04-18 15:12:55 -07:00
|
|
|
### Added
|
2022-04-20 04:15:43 -07:00
|
|
|
- `gpu` feature flag, which exposes implementations of the `GpuField` trait from
|
|
|
|
the `ec-gpu` crate for `pasta_curves::{Fp, Fq}`. This flag will eventually
|
|
|
|
control all GPU functionality.
|
|
|
|
- `repr-c` feature flag, which helps to facilitate usage of this crate's types
|
|
|
|
across FFI by conditionally adding `repr(C)` attribute to point structures.
|
|
|
|
- `pasta_curves::arithmetic::Coordinates::from_xy`
|
2022-04-18 15:12:55 -07:00
|
|
|
|
|
|
|
### Changed
|
2022-04-20 04:15:43 -07:00
|
|
|
- `pasta_curves::{Fp, Fq}` are now declared as `repr(transparent)`, to enable
|
|
|
|
their use across FFI. They remain opaque structs in Rust code.
|
2022-01-03 05:57:42 -08:00
|
|
|
|
|
|
|
## [0.3.0] - 2022-01-03
|
2021-09-20 12:02:57 -07:00
|
|
|
### Added
|
2022-01-03 05:51:04 -08:00
|
|
|
- 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.
|
2021-09-20 12:02:57 -07:00
|
|
|
- `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).
|
|
|
|
|
2021-09-20 08:46:54 -07:00
|
|
|
### Removed
|
|
|
|
- `pasta_curves::arithmetic`:
|
2021-09-20 11:35:44 -07:00
|
|
|
- `Field` re-export (`pasta_curves::group::ff::Field` is equivalent).
|
2021-09-20 08:46:54 -07:00
|
|
|
- `FieldExt::ROOT_OF_UNITY` (use `ff::PrimeField::root_of_unity` instead).
|
2021-09-30 05:22:15 -07:00
|
|
|
- `FieldExt::{T_MINUS1_OVER2, pow_by_t_minus1_over2, get_lower_32, sqrt_alt,`
|
|
|
|
`sqrt_ratio}` (moved to `SqrtRatio` trait).
|
2021-09-20 13:35:41 -07:00
|
|
|
- `FieldExt::{RESCUE_ALPHA, RESCUE_INVALPHA}`
|
2021-09-20 13:43:31 -07:00
|
|
|
- `FieldExt::from_u64` (use `From<u64> for ff::PrimeField` instead).
|
2021-09-20 14:09:45 -07:00
|
|
|
- `FieldExt::{from_bytes, read, to_bytes, write}`
|
|
|
|
(use `ff::PrimeField::{from_repr, to_repr}` instead).
|
2021-12-21 21:15:06 -08:00
|
|
|
- `FieldExt::rand` (use `ff::Field::random` instead).
|
2021-12-21 21:22:56 -08:00
|
|
|
- `CurveAffine::{read, write}`
|
|
|
|
(use `group::GroupEncoding::{from_bytes, to_bytes}` instead).
|
2021-09-17 08:37:00 -07:00
|
|
|
|
|
|
|
## [0.2.1] - 2021-09-17
|
2021-09-17 08:31:30 -07:00
|
|
|
### Changed
|
|
|
|
- The crate is now licensed as `MIT OR Apache-2.0`.
|
2021-09-02 10:37:13 -07:00
|
|
|
|
|
|
|
## [0.2.0] - 2021-09-02
|
2021-09-02 10:06:21 -07:00
|
|
|
### Changed
|
|
|
|
- Migrated to `ff 0.11`, `group 0.11`.
|
2021-06-04 10:54:09 -07:00
|
|
|
|
2021-08-06 05:29:03 -07:00
|
|
|
## [0.1.2] - 2021-08-06
|
2021-09-02 10:06:21 -07:00
|
|
|
### Added
|
2021-08-06 05:29:03 -07:00
|
|
|
- Implementation of `group::WnafGroup` for Pallas and Vesta, enabling them to be
|
|
|
|
used with `group::Wnaf` for targeted performance improvements.
|
|
|
|
|
2021-06-04 10:54:09 -07:00
|
|
|
## [0.1.1] - 2021-06-04
|
2021-09-02 10:06:21 -07:00
|
|
|
### Added
|
2021-06-03 16:44:26 -07:00
|
|
|
- Implementations of `group::cofactor::{CofactorCurve, CofactorCurveAffine}` for
|
|
|
|
Pallas and Vesta, enabling them to be used in cofactor-aware protocols that
|
|
|
|
also want to leverage the affine point representation.
|
2021-06-01 15:40:21 -07:00
|
|
|
|
|
|
|
## [0.1.0] - 2021-06-01
|
2021-01-22 15:54:31 -08:00
|
|
|
Initial release!
|