1 2 3 4 5 6 7 8 9 10 11 12 13 14
use holochain_serialized_bytes::prelude::*;
/// Key refs are the same length as the keys themselves.
/// The key ref is just a sha256 of the key. There are no benefits, only downsides, to having
/// either a larger or smaller set of outputs (ref size) vs. the set of inputs (key size).
pub const KEY_REF_BYTES: usize = 32;
#[derive(Clone, Copy, SerializedBytes)]
pub struct XSalsa20Poly1305KeyRef([u8; KEY_REF_BYTES]);
pub type SecretBoxKeyRef = XSalsa20Poly1305KeyRef;
// Key refs need to be exactly the length of the key ref bytes hash, not doing so could cause
// problems.
crate::secure_primitive!(XSalsa20Poly1305KeyRef, KEY_REF_BYTES);