enigma_aead/
types.rs

1use zeroize::{Zeroize, ZeroizeOnDrop};
2
3#[derive(Clone, Zeroize, ZeroizeOnDrop)]
4pub struct AeadKey([u8; 32]);
5
6impl AeadKey {
7    pub fn new(bytes: [u8; 32]) -> Self {
8        Self(bytes)
9    }
10
11    pub fn as_bytes(&self) -> &[u8; 32] {
12        &self.0
13    }
14}
15
16#[derive(Clone, Copy, Debug, PartialEq, Eq)]
17pub struct Nonce24(pub [u8; 24]);
18
19impl Nonce24 {
20    pub fn new(bytes: [u8; 24]) -> Self {
21        Self(bytes)
22    }
23
24    pub fn as_slice(&self) -> &[u8] {
25        &self.0
26    }
27}
28
29#[derive(Clone, Copy, Debug, PartialEq, Eq)]
30pub struct KeyId(pub [u8; 8]);
31
32impl KeyId {
33    pub fn zero() -> Self {
34        Self([0u8; 8])
35    }
36}