5个版本
| 0.3.1 | 2021年6月1日 |
|---|---|
| 0.3.0 |
|
| 0.2.3 | 2020年7月23日 |
| 0.2.2 | 2020年4月11日 |
| 0.2.1 | 2020年2月10日 |
#24 in #prime-field
433 每月下载量
用于 18 个crate (11直接使用)
24KB
514 行
fff
优秀库ff的分支。
fff是用Rust编写的有限域库。
免责声明
- 此库不提供恒定时间保证。
fff包包含Field、PrimeField、PrimeFieldRepr和SqrtField特质。更多信息请参阅文档。
#![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现在实现了Field和PrimeField。如果支持,Fp还将实现SqrtField。该库自己实现了FpRepr并为它推导了PrimeFieldRepr。
许可协议
根据您的选择,在以下两者中许可
- Apache License,版本2.0,(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可(LICENSE-MIT或https://open-source.org.cn/licenses/MIT)
。
贡献
除非您明确表示,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可证定义,应按照上述方式双重许可,不附加任何额外条款或条件。
依赖项
~260–720KB
~15K SLoC