#post-quantum-cryptography #post-quantum #security

yanked pqcrypto-classicmceliece-wasi

Post-Quantum Key-Encapsulation Mechanism classicmceliece with WASM/WASI support

0.1.8 Oct 17, 2021
0.1.7 Oct 17, 2021
0.1.6 Oct 16, 2021
0.1.5 Oct 13, 2021

#66 in #post-quantum-cryptography


Used in pqcrypto-wasi

MIT/Apache

31MB
816K SLoC

GNU Style Assembly 446K SLoC // 0.0% comments C 309K SLoC // 0.2% comments Bitbake 56K SLoC // 0.0% comments Rust 4K SLoC // 0.0% comments Python 1.5K SLoC // 0.1% comments Objective-C 223 SLoC // 0.0% comments Jinja2 201 SLoC INI 5 SLoC

classicmceliece

This crate contains bindings to the C implementations of the following schemes, from PQClean.

This project packages Post-Quantum cryptographic algorithms that participate in the NIST PQC standardization effort. It is currently a collection of wrappers around C implementations from the PQClean project.

Serialization

If you want serde support, enable the serialization feature.

Included implementations from PQClean

Below is a list of the included schemes and the corresponding implementations sourced from PQClean. The "default" implementation is used in the Rust-friendly interface, alternative implementations are exposed as ffi methods only.

  • mceliece348864
    • avx (if supported)
    • vec (default)
    • clean (included as ffi only)
  • mceliece348864f
    • avx (if supported)
    • vec (default)
    • clean (included as ffi only)
  • mceliece460896
    • avx (if supported)
    • vec (default)
    • clean (included as ffi only)
  • mceliece460896f
    • avx (if supported)
    • vec (default)
    • clean (included as ffi only)
  • mceliece6688128
    • avx (if supported)
    • vec (default)
    • clean (included as ffi only)
  • mceliece6688128f
    • avx (if supported)
    • vec (default)
    • clean (included as ffi only)
  • mceliece6960119
    • avx (if supported)
    • vec (default)
    • clean (included as ffi only)
  • mceliece6960119f
    • avx (if supported)
    • vec (default)
    • clean (included as ffi only)
  • mceliece8192128
    • avx (if supported)
    • vec (default)
    • clean (included as ffi only)
  • mceliece8192128f
    • avx (if supported)
    • vec (default)
    • clean (included as ffi only)

Notes

This implementation requires a lot of stack space. You need to specify RUST_MIN_STACK=800000000, probably.

License

The wrappers and wrapper generation scripts in this project are covered by the MIT or Apache 2.0 licenses, at your choice.

The implementations we link to are not, however. Please see the PQClean project for the appropriate licenses.

Dependencies