use crate::crypto::packet_protection;
use hex_literal::hex;
pub const INTEGRITY_TAG_LEN: usize = 16;
pub type IntegrityTag = [u8; INTEGRITY_TAG_LEN];
pub trait RetryKey {
fn generate_tag(payload: &[u8]) -> IntegrityTag;
fn validate(payload: &[u8], tag: IntegrityTag) -> Result<(), packet_protection::Error>;
}
pub const SECRET_KEY_BYTES: [u8; 16] = hex!("be0c690b9f66575a1d766b54e368c84e");
pub const NONCE_BYTES: [u8; 12] = hex!("461599d35d632bf2239825bb");
pub mod example {
use super::*;
pub const INVALID_PACKET_NO_TOKEN_LEN: usize = 31;
pub const INVALID_PACKET_NO_TOKEN: [u8; INVALID_PACKET_NO_TOKEN_LEN] = hex!(
"
ff 00000001 00 08 f067a5502a4262b5 59756519dd6cc85bd90e33a9
34d2ff85
"
);
pub const PACKET_LEN: usize = 36;
pub const PACKET: [u8; PACKET_LEN] = hex!(
"
ff000000010008f067a5502a4262b574 6f6b656e04a265ba2eff4d829058fb3f
0f2496ba
"
);
pub const PSEUDO_PACKET: [u8; 29] =
hex!("088394c8f03e515708 ff00000001 00 08f067a5502a4262b5 746f6b656e");
pub const EXPECTED_TAG: [u8; 16] = hex!("04a265ba2eff4d829058fb3f0f2496ba");
pub const DCID: [u8; 0] = hex!("");
pub const SCID: [u8; 8] = hex!("f067a5502a4262b5");
pub const ODCID: [u8; 8] = hex!("8394c8f03e515708");
pub const VERSION: u32 = 0x1;
pub const TOKEN: [u8; 5] = hex!("746f6b656e");
pub const TOKEN_LEN: usize = 5;
}