1 个稳定版本
使用旧的Rust 2015
3.2.6 | 2020年4月13日 |
---|
#2285 in 密码学
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