3 stable releases

1.0.2 Jan 22, 2024
1.0.0 Jan 19, 2024

#771 in Magic Beans

Download history 94/week @ 2024-01-17 4399/week @ 2024-01-24 14861/week @ 2024-01-31 21051/week @ 2024-02-07 24737/week @ 2024-02-14 24449/week @ 2024-02-21 23573/week @ 2024-02-28 20304/week @ 2024-03-06 20514/week @ 2024-03-13 26477/week @ 2024-03-20 23771/week @ 2024-03-27 33259/week @ 2024-04-03 31172/week @ 2024-04-10 20467/week @ 2024-04-17

112,933 downloads per month
Used in 18 crates (via snowbridge-milagro-bls)

Apache-2.0

1MB
28K SLoC

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

Dependencies

~4MB
~88K SLoC