liboxyd 0.1.4

Coldwire's cryptographic library
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use chacha20poly1305::{aead::OsRng, XNonce};
use rand::RngCore;

pub const CHACHA_KEY_LENGTH: usize = 32;
pub const CHACHA_NONCE_LENGTH: usize = 24;
pub const CHACHA_STREAM_NONCE_LENGTH: usize = 19;
pub const CHACHA_TAG_LENGTH: usize = 16;

pub const CHACHA_NONCE_PLUS_TAG_LENGTH: usize = CHACHA_NONCE_LENGTH + CHACHA_TAG_LENGTH;

pub type XChaCha20Key = [u8; CHACHA_KEY_LENGTH];

pub fn generate_nonce() -> XNonce {
    let mut buf = [0u8; CHACHA_NONCE_LENGTH];
    OsRng.fill_bytes(&mut buf);
    *XNonce::from_slice(&buf)
}