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或http://opensource.org/licenses/MIT)
。
贡献
除非您明确表示,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可证定义,应按照上述方式双重许可,不附加任何额外条款或条件。
依赖项
~260–720KB
~15K SLoC