17个不稳定版本
0.14.3 | 2022年11月30日 |
---|---|
0.14.1 | 2022年6月23日 |
0.13.1 | 2021年5月14日 |
0.12.0 | 2020年8月10日 |
0.6.0 | 2019年3月31日 |
#469 在 Rust模式
38,777 每月下载量
用于 82 个crate(8个直接使用)
31KB
590 行
"FF社区版"
此库是Sean Bowe原始ff
库的社区维护分支。库的名称已更改,以便在crates.io
发布。
原始ff
ff
是一个用纯Rust编写的有限域库,没有使用unsafe{}
代码。
免责声明
- 此库不提供恒定时间的保证。
用法
将ff_ce
crate添加到您的Cargo.toml
[dependencies]
ff_ce = "0.6"
ff_ce
crate包含Field
,PrimeField
,PrimeFieldRepr
和SqrtField
特质。有关更多信息,请参阅[文档](https://docs.rs/ff/0.4.0/ff/)。
#![derive(PrimeField)]
如果您需要一个素域的实现,此库还提供了一个过程宏,当提供模数时,会扩展为一个高效的素域实现。PrimeFieldGenerator
必须是Fp中p-1阶的元素,并且是二次非剩余。
首先,启用derive
crate功能
[dependencies]
ff = { ..., features = ["derive"] }
然后像这样使用宏
extern crate rand;
#[macro_use]
extern crate ff_ce;
#[derive(PrimeField)]
#[PrimeFieldModulus = "52435875175126190479447740508185965837690552500527637822603658699938581184513"]
#[PrimeFieldGenerator = "7"]
struct Fp(FpRepr);
就是这样!Fp
现在实现了Field
和PrimeField
。如果支持,Fp
还将实现SqrtField
。该库实现了FpRepr
本身,并为它推导出PrimeFieldRepr
。
许可证
根据以下任一许可证授权:
- Apache许可证,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任由您选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在作品中的任何贡献,将按照上述方式双许可,不附加任何额外条款或条件。
依赖项
~0.5–1MB
~18K SLoC