#curve #elliptic-curve #ed25519 #apache #version #milagro

amcl-milagro

Apache Milagro 密码库(版本 3)

1 个稳定版本

使用旧的Rust 2015

3.2.6 2020年4月13日

#2285 in 密码学


用于 amcl_wrapper_ml

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位环境,可以遵循rust的Web Assembly(wasm)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文件中添加依赖项。例如,要使用curve 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

无运行时依赖

功能