Commit Graph

72 Commits

Author SHA1 Message Date
Jack Grigg cb43e87faf `criterion 0.4` 2023-03-02 17:23:42 +00:00
Jack Grigg ef9cc828f9 Bump MSRV to 1.60.0 2023-03-02 17:09:58 +00:00
Jack Grigg d43a16f8b2 `pasta_curves 0.5.1` 2023-03-02 16:47:32 +00:00
str4d 64b9d2476d
Merge pull request #58 from xxuejie/use_no_std_lazy_static
Configure lazy_static to use no_std setup
2023-03-02 16:44:49 +00:00
Jack Grigg 437d471b4d Restrict dev-dependencies to `csv < 1.2`
We only have this dependency for `criterion`, so it doesn't need to
affect the crate MSRV.
2023-03-02 14:29:36 +00:00
Xuejie Xiao 2ec5d9a9a3 Configure lazy_static to use no_std setup 2023-01-11 07:08:59 +00:00
Jack Grigg 78be37163b `pasta_curves 0.5.0` 2022-12-06 02:32:40 +00:00
Jack Grigg 9862b247d2 Migrate remaining `FieldExt` constants and methods into `ff` 2022-11-25 05:05:54 +00:00
Jack Grigg 1c21a8944c Migrate to `ff` revision with trait constants 2022-11-19 12:16:10 +00:00
Jack Grigg 6921efd8fd Migrate to `ff` revision with square root backports 2022-11-19 12:03:54 +00:00
str4d f8ba48de4e
Merge pull request #48 from filecoin-project/impl-serde
Implement Serde for fields and curves
2022-11-19 12:02:52 +00:00
str4d 191c416a76
Merge pull request #45 from filecoin-project/ec-gpu-020
Update to ec-gpu 0.2 release
2022-11-19 11:58:45 +00:00
Volker Mische 52902e6fdf Implement Serde for fields and curves
Currently Serde is only implemented for `Fp`, `Fq`, `EpAffine` and `EqAffine`.
Support can be enabled with the `serde` feature.
2022-10-14 15:32:57 +02:00
Sean Bowe e48f641f76
Release 0.4.1 2022-10-13 14:58:44 -06:00
Volker Mische fb04f7ad99 Update to ec-gpu 0.2 release
The traits of ec-gpu changed a bit, there's now also a `GpuName`
trait that needs to be implemented.

BREAKING CHANGE: `ec-gpu` v0.2 traits are not compatible with v0.1

All dependencies that use `ec-gpu` need to be on v0.2.
2022-09-07 15:44:48 +02:00
Tomas Krnak 378f5cfd08 Add `uninline-portable` feature 2022-08-17 17:39:04 +02:00
Jack Grigg 94a5039b13 `pasta_curves 0.4.0` 2022-05-04 23:22:15 +00:00
Jack Grigg 0b8ed00c84 Migrate to Rust 2021 2022-05-04 23:22:15 +00:00
Jack Grigg 3329b4de85 Migrate to `ff 0.12`, `group 0.12`
MSRV is now 1.56.0.
2022-05-04 23:22:15 +00:00
Jack Grigg 94d6a8be03 `pasta_curves 0.3.1` 2022-04-20 11:15:43 +00:00
ebfull a80ed3e8aa
Merge pull request #30 from dot-asm/repr-c
Add 'repr-c' feature to facilitate FFI.
2022-04-19 08:04:29 -06:00
Volker Mische 870939ab03 Implement ec_gpu:GpuField for Fp/Fq
This commit introduces a new feature called "gpu", which enables an
`ec_gpu:GpuField` implementation of `Fp` and `Fq`. This enables the
field arithmetics to be run on a GPU.

The code to convert from a u64 to a u32 vector was taken from
07a84f9727/src/lib.rs (L102-L108)
2022-03-02 14:44:11 +01:00
Andy Polyakov 872065c8a1 Add 'repr-c' feature to facilitate FFI. 2022-02-17 17:06:02 +01:00
Jack Grigg 6b2090ff2c `pasta_curves 0.3.0` 2022-01-03 13:57:42 +00:00
Jack Grigg 61fac8a5af `blake2b_simd 1`
We also move this dependency behind the `alloc` feature flag, as it is
only required for `crate::hashtocurve`.
2022-01-03 13:56:07 +00:00
Jack Grigg 53f65f7e6d Changelog and comment cleanups 2022-01-03 13:56:07 +00:00
Jack Grigg 21fd9e2c1b Remove `std` feature flag
Closes zcash/pasta_curves#27.
2021-12-22 05:41:04 +00:00
Jack Grigg f874d29238 Remove `FieldExt::rand`
This removes a dependency on the `getrandom` crate in no-std mode, which
doesn't work on some no-std targets that `getrandom` doesn't support.
2021-12-22 05:15:06 +00:00
Jack Grigg ab03c3d5e1 Remove field traits from behind `std` feature flag
Now that we have a default implementation of `SqrtRatio::sqrt_ratio`, we
can use it and `FieldExt` in no-std environments.

We introduce an `alloc` feature flag to form a common feature dependency
between `std` and `sqrt-table`. It is currently unused directly, but
will be used after `CurveAffine` is refactored to remove the `std`
dependency.

Closes zcash/pasta_curves#25.
2021-12-22 05:06:16 +00:00
Jack Grigg 314b1bcb94 Place `SqrtTables` behind a `sqrt-tables` feature flag
This enables the crate to be compiled without the tables, instead using
a simple fallback for `SqrtRatio::sqrt_ratio`.
2021-12-22 04:38:14 +00:00
Jack Grigg 9999964d17 Add no-std support
We re-introduce the Tonelli-Shank square root algoritm that was removed
in zcash/halo2#120, to use in no-std mode (the table-based impl requires
allocations, and also uses 29kiB of memory which is a problem for
constrained environments that typically need no-std).
2021-09-20 18:56:23 +01:00
Jack Grigg bb2564d586 pasta_curves 0.2.1 2021-09-17 16:37:00 +01:00
Jack Grigg f747efc6ff Relicense `pasta_curves` as MIT OR Apache-2.0 2021-09-17 16:32:36 +01:00
Jack Grigg 6a28a85d8b pasta_curves 0.2.0 2021-09-02 18:37:13 +01:00
Jack Grigg fd7a6edbb1 ff 0.11, group 0.11 2021-09-02 18:10:05 +01:00
Daira Hopwood 329f59493c Add benchmarks for point operations.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-08-11 15:09:34 +01:00
Jack Grigg 1bac885af5 Release 0.1.2 2021-08-06 13:29:03 +01:00
Jack Grigg 15e16839b3 Release 0.1.1 2021-06-04 18:54:09 +01:00
Jack Grigg 084d57ab10 Release 0.1.0 2021-06-01 23:40:45 +01:00
Jack Grigg 17b2e5275b Exclude contributor agreement from published crate
Can't contribute to hash-pinned binaries! This file is only needed in
the repo itself.
2021-06-01 23:38:30 +01:00
Jack Grigg bc20c5826b Migrate to ff 0.10.0 2021-06-01 23:31:00 +01:00
Steven 376ba4eeca
Merge pull request #9 from steven-ecc/change-tgppl-to-bosl
Adding BOSL and changing TGPPL references to BOSL
2021-04-26 16:43:21 -07:00
Steven e6a7d68a3e
Update Cargo.toml
Co-authored-by: ebfull <ewillbefull@gmail.com>
2021-04-26 16:43:07 -07:00
Steven Smith 82ddc0ebee Changing TGPPL references to BOSL 2021-04-16 09:50:44 -07:00
dignifiedquire 9e65e3a67d bench: add baseline benches for Fp and Fq 2021-03-10 14:46:28 +01:00
Jack Grigg b36356667f Rename crate to pasta_curves and remove halo2 code 2021-03-03 21:59:08 +00:00
Jack Grigg b4ed5295fe Migrate to group traits
The `Curve` trait is now `CurveExt: group::prime::PrimeCurve`, and
`CurveAffine` is now `CurveAffine: group::prime::PrimeCurveAffine`.

There is no `CurveAffine` trait in `group`, and it's a widely-used
trait in this crate, so we don't rename it to `CurveAffineExt`.
2021-02-22 20:20:23 +00:00
Daira Hopwood 704a6c3637 Remove unneeded sha3 dependency.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-02-21 00:45:33 +00:00
Sean Bowe c48229ce0f Remove dependency on byteorder crate 2021-02-19 15:52:11 +00:00
Daira Hopwood fa3afc29bb Add an implementation of simplified SWU hash-to-curve.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-02-19 15:52:11 +00:00