Cargo Features

[dependencies]
classic-mceliece-rust = { version = "3.0.0", default-features = false, features = ["alloc", "kem", "mceliece348864", "mceliece460896f", "mceliece6960119", "mceliece8192128", "mceliece8192128f", "zeroize"] }
default = alloc, zeroize

When adding features or changing the default features, remember to update the [package.metadata.docs.rs] section further down as well as the docs generation CI job alloc := enable, if the platform supports dynamic memory allocation zeroize := enable to nullify sensitive memory sections after they go out of scope

alloc default kem?

Affects classic-mceliece-rust::keypair_boxed, classic-mceliece-rust::encapsulate_boxed, classic-mceliece-rust::decapsulate_boxed, util::alloc_boxed_array

kem = alloc

The kem feature is currently depending on alloc due to how Encapsulator::try_encap can only take 'static public keys. So it's unergonomic to use without the heap for now.

Enables kem

Affects api::CryptoCiphertextBytesTypenum, api::CryptoCiphertextBytesTypenum, api::CryptoCiphertextBytesTypenum, api::CryptoCiphertextBytesTypenum, api::CryptoCiphertextBytesTypenum

mceliece348864

Select which variant of Classic McEliece to compile for.
Only one of these features can be enabled.

Affects api::CRYPTO_PRIMITIVE, api::CRYPTO_PUBLICKEYBYTES, api::CRYPTO_SECRETKEYBYTES, api::CRYPTO_CIPHERTEXTBYTES, params::GFBITS, params::SYS_N, params::SYS_T, api::CryptoCiphertextBytesTypenum

mceliece348864f mceliece460896 mceliece460896f

Affects api::CRYPTO_PRIMITIVE, api::CRYPTO_PUBLICKEYBYTES, api::CRYPTO_SECRETKEYBYTES, api::CRYPTO_CIPHERTEXTBYTES, params::GFBITS, params::SYS_N, params::SYS_T, api::CryptoCiphertextBytesTypenum

mceliece6688128 mceliece6688128f mceliece6960119

Affects api::CRYPTO_PRIMITIVE, api::CRYPTO_PUBLICKEYBYTES, api::CRYPTO_SECRETKEYBYTES, api::CRYPTO_CIPHERTEXTBYTES, params::GFBITS, params::SYS_N, params::SYS_T, api::CryptoCiphertextBytesTypenum

mceliece6960119f mceliece8192128

Affects api::CRYPTO_PRIMITIVE, api::CRYPTO_PUBLICKEYBYTES, api::CRYPTO_SECRETKEYBYTES, api::CRYPTO_CIPHERTEXTBYTES, params::GFBITS, params::SYS_N, params::SYS_T, api::CryptoCiphertextBytesTypenum

mceliece8192128f

Affects api::CRYPTO_PRIMITIVE, api::CRYPTO_PUBLICKEYBYTES, api::CRYPTO_SECRETKEYBYTES, api::CRYPTO_CIPHERTEXTBYTES, params::GFBITS, params::SYS_N, params::SYS_T, api::CryptoCiphertextBytesTypenum

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features.

zeroize default