5个版本

0.3.1 2021年6月1日
0.3.0 2021年6月1日
0.2.3 2020年7月23日
0.2.2 2020年4月11日
0.2.1 2020年2月10日

#24 in #prime-field

Download history 125/week @ 2024-03-11 106/week @ 2024-03-18 144/week @ 2024-03-25 164/week @ 2024-04-01 81/week @ 2024-04-08 100/week @ 2024-04-15 126/week @ 2024-04-22 88/week @ 2024-04-29 123/week @ 2024-05-06 114/week @ 2024-05-13 116/week @ 2024-05-20 100/week @ 2024-05-27 99/week @ 2024-06-03 100/week @ 2024-06-10 113/week @ 2024-06-17 110/week @ 2024-06-24

433 每月下载量
用于 18 个crate (11直接使用)

MIT/Apache

24KB
514

fff

优秀库ff的分支。

fff是用Rust编写的有限域库。

免责声明

  • 此库不提供恒定时间保证。

fff包包含FieldPrimeFieldPrimeFieldReprSqrtField特质。更多信息请参阅文档

#![derive(PrimeField)]

如果您需要一个素域实现,此库还提供了一个过程宏,当提供模数时,将扩展为一个高效的素域实现。需要PrimeFieldGenerator为Fp的p-1阶元素,也是二次非剩余。

首先,启用derive crate功能

[dependencies]
fff = { version = "0.2", features = ["derive"] }

然后按如下使用宏

extern crate rand;
#[macro_use]
extern crate fff;

#[derive(PrimeField)]
#[PrimeFieldModulus = "52435875175126190479447740508185965837690552500527637822603658699938581184513"]
#[PrimeFieldGenerator = "7"]
struct Fp(FpRepr);

就这样!Fp现在实现了FieldPrimeField。如果支持,Fp还将实现SqrtField。该库自己实现了FpRepr并为它推导了PrimeFieldRepr

许可协议

根据您的选择,在以下两者中许可

贡献

除非您明确表示,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可证定义,应按照上述方式双重许可,不附加任何额外条款或条件。

依赖项

~260–720KB
~15K SLoC