3个版本
0.6.3 | 2020年3月26日 |
---|---|
0.6.2 | 2020年3月26日 |
0.6.1 | 2020年3月26日 |
#9 in #prime-field
6,446 每月下载量
用于 36 个crate (9 直接)
16KB
238 行
ff-zeroize
ff-zeroize
是一个临时crate,它为ff
crate 启用zeroize
功能。ff
是一个纯Rust编写的有限域库,没有任何unsafe
代码。
免责声明
- 此库不提供恒等时间保证。
使用方法
将 ff
crate 添加到您的 Cargo.toml
[dependencies]
ff_zeroize = "0.6.1"
ff
crate 包含 Field
、PrimeField
、PrimeFieldRepr
和 SqrtField
trait。有关更多信息,请参阅 文档。
#![derive(PrimeField)]
如果您需要一个素域的实现,此库还提供了一种过程宏,当提供模数时,将扩展为一个高效的素域实现。 PrimeFieldGenerator
必须是 Fp 的 p-1 次元素,也是二次非剩余。
首先,启用 derive
crate 功能
[dependencies]
ff_zeroize = { version = "0.6.1", features = ["derive"] }
然后像这样使用宏
extern crate rand;
#[macro_use]
extern crate ff;
#[derive(PrimeField)]
#[PrimeFieldModulus = "52435875175126190479447740508185965837690552500527637822603658699938581184513"]
#[PrimeFieldGenerator = "7"]
struct Fp(FpRepr);
这就完成了!Fp
现在实现了 Field
和 PrimeField
。如果支持,Fp
还将实现 SqrtField
。该库实现了 FpRepr
并为它推导出 PrimeFieldRepr
。
许可证
根据以下之一许可
- Apache许可证第2版,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您可以选择。
贡献
除非您明确说明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在本工作中的任何贡献,都应如上所述双重许可,不附加任何额外的条款或条件。
依赖关系
~0.5–1.1MB
~25K SLoC