Crate miscreant[][src]

Miscreant: Misuse resistant symmetric encryption library providing the AES-SIV (RFC 5297), AES-PMAC-SIV, and STREAM constructions

Build Notes

miscreant.rs works on stable rust since 1.27. By default it is built with aesni support which requires an x86 instruction set. You can disable this with the aes-soft feature flag which enables usage on other architectures.

The default configuration uses the core::arch API for stable access to CPU intrinsics, namely the [Intel AES-NI] instructions which provide a hardware implementation of AES.

To access these features, you will need both a relatively recent Rust nightly and to pass the following as RUSTFLAGS:

RUSTFLAGS=-Ctarget-feature=+aes

You can configure your ~/.cargo/config to always pass these flags:

[build]
rustflags = ["-Ctarget-feature=+aes"]

Modules

aead

aead.rs: Authenticated Encryption with Associated Data (AEAD): Symmetric encryption which ensures message confidentiality, integrity, and authenticity.

error

error.rs: Miscreant's error type

ffi

ffi.rs: Foreign Function Interface providing C ABI

siv

siv.rs: The SIV misuse resistant block cipher mode of operation

stream

stream.rs: The STREAM online authenticated encryption construction. See https://eprint.iacr.org/2015/189.pdf for definition.