From ad879ad7dea7548385277cbce8c6dd35284df4b0 Mon Sep 17 00:00:00 2001 From: Andy Gauge Date: Tue, 26 Sep 2017 16:51:37 -0700 Subject: [PATCH] AES (IGE) encryption documentation --- openssl/src/aes.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/openssl/src/aes.rs b/openssl/src/aes.rs index c7e744ae..d128a666 100644 --- a/openssl/src/aes.rs +++ b/openssl/src/aes.rs @@ -49,9 +49,11 @@ use libc::c_int; use symm::Mode; +/// Provides Error handling for parsing keys. #[derive(Debug)] pub struct KeyError(()); +/// The key used to encrypt or decrypt cipher blocks. pub struct AesKey(ffi::AES_KEY); impl AesKey { @@ -105,6 +107,14 @@ impl AesKey { /// Performs AES IGE encryption or decryption /// +/// AES IGE (Infinite Garble Extension) is the form of AES block cipher utilized in +/// OpenSSL. Infinite Garble referes to propogating forward errors. IGE, like other +/// block ciphers implemented for AES requires an initalization vector. The IGE mode +/// allows a stream of blocks to be encrypted or decrypted without having the entire +/// plaintext available. For more information, visit [AES IGE Encryption]. +/// +/// [AES IGE Encryption]: http://www.links.org/files/openssl-ige.pdf +/// /// # Panics /// /// Panics if `in_` is not the same length as `out`, if that length is not a multiple of 16, or if