5 个稳定版本

使用旧的 Rust 2015

3.2.5 2019 年 7 月 23 日
3.2.4 2019 年 7 月 19 日
3.2.2 2019 年 6 月 23 日
3.2.1 2019 年 6 月 22 日
3.2.0 2019 年 6 月 18 日

#1652 in 密码学

Download history 117/week @ 2024-03-13 134/week @ 2024-03-20 114/week @ 2024-03-27 156/week @ 2024-04-03 138/week @ 2024-04-10 126/week @ 2024-04-17 101/week @ 2024-04-24 129/week @ 2024-05-01 133/week @ 2024-05-08 145/week @ 2024-05-15 109/week @ 2024-05-22 106/week @ 2024-05-29 151/week @ 2024-06-05 134/week @ 2024-06-12 165/week @ 2024-06-19 62/week @ 2024-06-26

531 每月下载量

Apache-2.0

1MB
27K SLoC

注意:已更新到 Rust 2018

注意:此库版本需要 Rust 1.31+ 版本以支持 64 位整数和 Rust 2018。

现在 AMCL 版本 3 以 cargo crate 的形式分发。

使用命名空间来区分不同的曲线。

要构建库并查看其实际效果,请将此目录及其子目录中的所有文件复制到一个新的根目录。

然后例如执行

cargo rustc --release --features "bn254 bls383 bls24 bls48 ed25519 nist256 goldilocks rsa2048"

这将创建一个针对当前默认目标(32位或64位)的库构建。

(要测试32位环境,您可以遵循 Web Assembly(wasm)的 rust readme 指令)

接下来,将库从 target/release/libamcl.rlib 复制到根目录并执行

rustc TestALL.rs --extern amcl=libamcl.rlib

rustc TestBLS.rs --extern amcl=libamcl.rlib

rustc BenchtestALL.rs --extern amcl=libamcl.rlib

rustc TestNHS.rs --extern amcl=libamcl.rlib

最后执行这些程序。

要将 amcl 功能添加到您自己的程序中,在 Cargo.toml 文件中添加依赖项。例如,要使用曲线 bls48,添加以下依赖项

[dependencies]

amcl = { version = "0.2.0", optional = true, default-features = false, features = ["bls48"]}

如果已发布到 crates.io,或

amcl = { version = "0.2.0", optional = true, default-features = false, features = ["bls48"], path="your_amcl_location" }

并在源代码中使用所需曲线的原始数据

use amcl::bls48::{ECP, ECP8}; //您需要的任何原始数据

功能列表

  • 椭圆曲线

    • ed25519
    • c25519
    • nist256
    • brainpool
    • anssi
    • hifive
    • goldilocks
    • nist384
    • c41417
    • nist521
    • nums256w
    • nums256e
    • nums384w
    • nums384e
    • nums512w
    • nums512e
    • secp256k1
  • 配对友好椭圆曲线

    • bn254
    • bn254CX
    • bls383
    • bls381
    • fp256BN
    • fp512BN
    • bls461
    • bls24
    • bls48
  • RSA

    • rsa2048
    • rsa3072
    • rsa4096

无运行时依赖

功能