Miscreant: Misuse resistant symmetric encryption library providing the
AES-SIV (RFC 5297), AES-PMAC-SIV, and STREAM constructions
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
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:
You can configure your
~/.cargo/config to always pass these flags:
[build] rustflags = ["-Ctarget-feature=+aes,+ssse3"]
The Synthetic Initialization Vector (SIV) misuse-resistant block cipher mode of operation.
An opaque error type, used for all errors in Miscreant
Size of the (synthetic) initialization vector in bytes