Apache Milagro Crypto Library - Rust Version

Clone this repo:
  1. 4e0d0c6 Merge pull request #47 from sigp/sk-0 by Kealan McCusker · 8 days ago develop
  2. 2436d2f Reject secret key zero by Kirk Baird · 3 weeks ago
  3. 09c7699 Merge pull request #45 from sigp/bls-v4 by Kealan McCusker · 3 weeks ago
  4. 1c0299d Resolve conflicts by Kirk Baird · 3 weeks ago
  5. 7c65ce1 Merge pull request #43 from sigp/tests-big by Kealan McCusker · 3 weeks ago

Apache Milagro Crypto Library - Rust Version

Updates

BLS12-381 has been updated to the the most recent standards being bls-signatures-04 and hash-to-curve-09.

Updated to Rust 2018.

This version of the library requires Version 1.31+ of Rust for the 2018 edition.

AMCL version 2 is distributed as a cargo crate.

Modulues (namespaces) are used to separate different curves.

Testing

Unit testing can be done using cargo testing framework.

Note: --all-features may be replaced by --features xx where xx is the desired feature e.g. bls381.

cargo test --all --all-features --release

Benchmarking

cargo bench --features bench

Features and Protocol

  • Elliptic Curves
    • ed25519
    • c25519
    • nist256
    • brainpool
    • anssi
    • hifive
    • goldilocks
    • nist384
    • c41417
    • nist521
    • nums256w
    • nums256e
    • nums384w
    • nums384e
    • nums512w
    • nums512e
    • secp256k1
  • Pairing-Friendly Elliptic Curves
    • bn254
    • bn254cx
    • fp256bn
    • fp512bn
    • bls383
    • bls381
    • bls461
    • bls24
    • bls48
  • RSA
    • rsa2048
    • rsa3072
    • rsa4096
  • SHA-2
    • SHA2-256
    • SHA2-384
    • SHA2-512
  • SHA-3
    • SHA3-224
    • SHA3-256
    • SHA3-384
    • SHA3-512
    • SHAKE-128
    • SHAKE-256

Note SHA-2 and SHA-3 features will always be compiled however all other features require the feature flag --features xx