Commit ad879ad7 authored by Andy Gauge's avatar Andy Gauge
Browse files

AES (IGE) encryption documentation

parent afde5a84
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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