use packtool::Packet;
use crate::packet::{InitHeader, Mac1Key, RespHeader};
pub(crate) fn frame_init(sender_index: u32, msg1: &[u8], peer_mac1: &Mac1Key) -> Vec<u8> {
let header = Packet::pack(&InitHeader::new(sender_index));
let header: &[u8] = header.as_ref();
let mut out = Vec::with_capacity(header.len() + msg1.len() + crate::constants::MAC1_LEN);
out.extend_from_slice(header);
out.extend_from_slice(msg1);
let tag = peer_mac1.tag(&out);
out.extend_from_slice(&tag);
out
}
pub(crate) fn frame_resp(
our_index: u32,
their_index: u32,
msg2: &[u8],
peer_mac1: &Mac1Key,
) -> Vec<u8> {
let header = Packet::pack(&RespHeader::new(our_index, their_index));
let header: &[u8] = header.as_ref();
let mut out = Vec::with_capacity(header.len() + msg2.len() + crate::constants::MAC1_LEN);
out.extend_from_slice(header);
out.extend_from_slice(msg2);
let tag = peer_mac1.tag(&out);
out.extend_from_slice(&tag);
out
}