aes/x86/ni.rs
1//! AES block ciphers implementation using AES-NI instruction set.
2//!
3//! Ciphers functionality is accessed using `BlockCipher` trait from the
4//! [`cipher`](https://docs.rs/cipher) crate.
5//!
6//! # Vulnerability
7//! Lazy FP state restory vulnerability can allow local process to leak content
8//! of the FPU register, in which round keys are stored. This vulnerability
9//! can be mitigated at the operating system level by installing relevant
10//! patches. (i.e. keep your OS updated!) More info:
11//! - [Intel advisory](https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00145.html)
12//! - [Wikipedia](https://en.wikipedia.org/wiki/Lazy_FP_state_restore)
13//!
14//! # Related documents
15//! - [Intel AES-NI whitepaper](https://software.intel.com/sites/default/files/article/165683/aes-wp-2012-09-22-v01.pdf)
16//! - [Use of the AES Instruction Set](https://www.cosic.esat.kuleuven.be/ecrypt/AESday/slides/Use_of_the_AES_Instruction_Set.pdf)
17
18pub(super) mod encdec;
19pub(super) mod expand;
20#[cfg(test)]
21mod test_expand;
22
23#[cfg(feature = "hazmat")]
24pub(crate) mod hazmat;