#prime-field #finite-fields #zeroize #derive #feature #interfacing

ff-zeroize

用于构建和接口有限域的库

3个版本

0.6.3 2020年3月26日
0.6.2 2020年3月26日
0.6.1 2020年3月26日

#9 in #prime-field

Download history 1619/week @ 2023-11-23 1270/week @ 2023-11-30 1403/week @ 2023-12-07 910/week @ 2023-12-14 534/week @ 2023-12-21 512/week @ 2023-12-28 940/week @ 2024-01-04 1041/week @ 2024-01-11 864/week @ 2024-01-18 938/week @ 2024-01-25 1288/week @ 2024-02-01 1016/week @ 2024-02-08 1719/week @ 2024-02-15 1231/week @ 2024-02-22 1575/week @ 2024-02-29 1656/week @ 2024-03-07

6,446 每月下载量
用于 36 个crate (9 直接)

MIT/Apache

16KB
238

ff-zeroize

  • ff-zeroize 是一个临时crate,它为 ffcrate 启用 zeroize 功能。
  • ff 是一个纯Rust编写的有限域库,没有任何 unsafe 代码。

免责声明

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

使用方法

ff crate 添加到您的 Cargo.toml

[dependencies]
ff_zeroize = "0.6.1"

ff crate 包含 FieldPrimeFieldPrimeFieldReprSqrtField 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 现在实现了 FieldPrimeField。如果支持,Fp 还将实现 SqrtField。该库实现了 FpRepr 并为它推导出 PrimeFieldRepr

许可证

根据以下之一许可

您可以选择。

贡献

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

依赖关系

~0.5–1.1MB
~25K SLoC