#prime-field #procedural #proc-macro #derive #finite-fields #build #fff

fff_derive

用于构建自定义素域实现的程序宏库

4个版本

0.3.0 2021年6月1日
0.2.2 2020年4月11日
0.2.1 2020年2月10日
0.2.0 2020年2月6日

#30 in #prime-field

Download history 110/week @ 2024-03-11 87/week @ 2024-03-18 84/week @ 2024-03-25 129/week @ 2024-04-01 57/week @ 2024-04-08 80/week @ 2024-04-15 96/week @ 2024-04-22 70/week @ 2024-04-29 92/week @ 2024-05-06 102/week @ 2024-05-13 95/week @ 2024-05-20 76/week @ 2024-05-27 84/week @ 2024-06-03 76/week @ 2024-06-10 83/week @ 2024-06-17 82/week @ 2024-06-24

334 每月下载量
用于 15 个crate(通过 fff

MIT/Apache

41KB
985

fff

伟大的 ff 库的分支。

fff 是一个用Rust编写的有限域库。

免责声明

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

fff crate 包含 FieldPrimeFieldPrimeFieldReprSqrtField 特性。有关更多信息,请参阅 文档

#![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 现在实现了 FieldPrimeField。如果支持,Fp 还将实现 SqrtField。该库实现了 FpRepr 并为其派生 PrimeFieldRepr

许可证

根据您选择,许可以下任一项

贡献

除非您明确声明,否则根据Apache-2.0许可定义的,您有意提交以包含在作品中的任何贡献,均应按上述方式双重许可,不附加任何额外条款或条件。

依赖项

约2MB
约46K SLoC