aead-io

Provides a wrapper around a Write/Read object and a StreamPrimitive to provide an easy interface for doing correct encryption.

```rust let key = b"my very super super secret key!!".into(); let plaintext = b"hello world!";

let ciphertext = { let mut ciphertext = Vec::default(); let mut writer = EncryptBE32BufWriter::::new( key, &Default::default(), // please use a better nonce ;) Vec::withcapacity(128), &mut ciphertext, ) .unwrap(); writer.writeall(plaintext)?; writer.flush()?; ciphertext };

let decrypted = { let mut reader = DecryptBE32BufReader::::new( key, Vec::withcapacity(256), ciphertext.asslice(), ) .unwrap(); let mut out = Vec::new(); let _ = reader.readtoend(&mut out).unwrap(); out };

assert_eq!(decrypted, plaintext); # ```

no_std

This package is compatible with no_std environments. Just disable the default features, and implement the Buffer, CappedBuffer, ResizeBuffer, Write and Read accordingly. There should be some default implementations for Vec<u8> and byte slices

License: MIT OR Apache-2.0