An IoT friendly, formally verified, crypto library based on libcrux.
The nucleo-l4r5zi crate is based on the app template found at [https://github.com/knurling-rs/app-template].
The library provides implementations of the following cryptographic algorithms:
The crate libcrux-iot-sha3 provides implementations of SHA3 and SHAKE family functions standardized in NIST publication FIPS 202.
The libcrux-iot-sha3 crate is not yet published on crates.io.
The crate libcrux-iot-ml-kem provides implementations of the lattice-based ML-KEM key encapsulation mechanism standardized in NIST publication FIPS 203.
The libcrux-iot-ml-kem crate is not yet published on crates.io.
The crate libcrux-iot-ml-dsa provides implementations of the lattice-based ML-DSA digital signature algorithm standardized in NIST publication FIPS 204.
The libcrux-iot-ml-dsa crate is not yet published on crates.io.
$ cargo install flip-linkYou need the following target toolchains installed, by board:
| Board | Target toolchain |
|---|---|
| nucleo-L4R5ZI | thumbv7em-none-eabihf |
$ # make sure to install v0.2.0 or later
$ cargo install probe-rs --features cliWith the device attached, run
$ cargo rrb mlkemfor a crude benchmark of ML-KEM 1024 and
$ cargo rrb mldsafor a crude benchmark of ML-DSA 87.
Other parameter sets are available behind mldsa44/65 and
mlkem512/768 features.
The implementations in this crate have received formal verification. For details on what was proven and the methodology employed, please refer to VERIFICATION.md.