Merge pull request #45 from sigp/bls-v4

Update to bls signatures standard v4
tree: e314c3533f0de7b7f29d8c38b33df948d4b5d01b
  1. benches/
  2. fuzz/
  3. src/
  4. .gitignore
  5. Cargo.lock
  6. Cargo.toml
  7. deploy.token
  8. LICENSE
  9. README.md
README.md

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