pasta_curves/CHANGELOG.md

111 lines
4.3 KiB
Markdown
Raw Permalink Normal View History

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
### 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).
### 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.
### Removed
- `pasta_curves::arithmetic`:
- `FieldExt` (use `ff::PrimeField` or `ff::WithSmallOrderMulGroup` instead).
- `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
### 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
### 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`
### 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
### 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.
- `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).
### Removed
- `pasta_curves::arithmetic`:
- `Field` re-export (`pasta_curves::group::ff::Field` is equivalent).
- `FieldExt::ROOT_OF_UNITY` (use `ff::PrimeField::root_of_unity` instead).
- `FieldExt::{T_MINUS1_OVER2, pow_by_t_minus1_over2, get_lower_32, sqrt_alt,`
`sqrt_ratio}` (moved to `SqrtRatio` trait).
- `FieldExt::{RESCUE_ALPHA, RESCUE_INVALPHA}`
2021-09-20 13:43:31 -07:00
- `FieldExt::from_u64` (use `From<u64> for ff::PrimeField` instead).
- `FieldExt::{from_bytes, read, to_bytes, write}`
(use `ff::PrimeField::{from_repr, to_repr}` instead).
- `FieldExt::rand` (use `ff::Field::random` instead).
- `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
### 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
- 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!