Struct aesstream::AesReader [] [src]

pub struct AesReader<D: BlockDecryptor, R: Read> { /* fields omitted */ }

Wraps a Read implementation with CBC based on given BlockDecryptor

Examples

Read encrypted file.

let key: [u8; 16] = OsRng::new()?.gen();
let file = File::open("...")?;
let decryptor = AesSafe128Decryptor::new(&key);
let mut reader = AesReader::new(file, decryptor)?;
let mut decrypted = Vec::new();
reader.read_to_end(&mut decrypted)?;

Decrypt in-memory.

let encrypted = vec![];
let key: [u8; 16] = OsRng::new()?.gen();
let decryptor = AesSafe128Decryptor::new(&key);
let mut reader = AesReader::new(Cursor::new(encrypted), decryptor)?;
let mut decrypted = Vec::new();
reader.read_to_end(&mut decrypted)?;

Methods

impl<D: BlockDecryptor, R: Read> AesReader<D, R>
[src]

Creates a new AesReader.

Assumes that the first block of given reader is the IV.

Parameters

  • reader: Reader to read encrypted data from
  • dec: BlockDecryptor to use for decyrption

Examples

let key: [u8; 16] = OsRng::new()?.gen();
let decryptor = AesSafe128Decryptor::new(&key);
let file = File::open("...")?;
let mut reader = AesReader::new(file, decryptor)?;

Trait Implementations

impl<D: BlockDecryptor, R: Read> Read for AesReader<D, R>
[src]

Reads encrypted data from the underlying reader, decrypts it and writes the result into the passed buffer.

Read all bytes until EOF in this source, placing them into buf. Read more

Read all bytes until EOF in this source, placing them into buf. Read more

Read the exact number of bytes required to fill buf. Read more

Creates a "by reference" adaptor for this instance of Read. Read more

Transforms this Read instance to an Iterator over its bytes. Read more

🔬 This is a nightly-only experimental API. (io)

the semantics of a partial read/write of where errors happen is currently unclear and may change

Transforms this Read instance to an Iterator over chars. Read more

Creates an adaptor which will chain this stream with another. Read more

Creates an adaptor which will read at most limit bytes from it. Read more

impl<D: BlockDecryptor, R: Read + Seek> Seek for AesReader<D, R>
[src]

Seek to an offset, in bytes, in a stream. Read more

When seeking, this reader takes care of reinitializing the CbcDecryptor with the correct IV. The passed position does not need to be aligned to the blocksize.