pub const CWT_PREFIX: &[u8] = &[0xd8, 0x3d];
pub const ENCRYPT0_PREFIX: &[u8] = &[0xd0];
pub const MAC0_PREFIX: &[u8] = &[0xd1];
pub const SIGN1_PREFIX: &[u8] = &[0xd2];
pub const ENCRYPT_PREFIX: &[u8] = &[0xd8, 0x60];
pub const MAC_PREFIX: &[u8] = &[0xd8, 0x61];
pub const SIGN_PREFIX: &[u8] = &[0xd8, 0x62];
pub const CBOR_SELF_PREFIX: &[u8] = &[0xd9, 0xd9, 0xf7];
pub(crate) const CWT_ENCRYPT0_PREFIX: &[u8] = &[0xd8, 0x3d, 0xd0];
pub(crate) const CWT_MAC0_PREFIX: &[u8] = &[0xd8, 0x3d, 0xd1];
pub(crate) const CWT_SIGN1_PREFIX: &[u8] = &[0xd8, 0x3d, 0xd2];
pub(crate) const CWT_ENCRYPT_PREFIX: &[u8] = &[0xd8, 0x3d, 0xd8, 0x60];
pub(crate) const CWT_MAC_PREFIX: &[u8] = &[0xd8, 0x3d, 0xd8, 0x61];
pub(crate) const CWT_SIGN_PREFIX: &[u8] = &[0xd8, 0x3d, 0xd8, 0x62];
pub fn with_tag(tag: &[u8], data: &[u8]) -> Vec<u8> {
let mut out = Vec::with_capacity(tag.len() + data.len());
out.extend_from_slice(tag);
out.extend_from_slice(data);
out
}
pub fn skip_tag<'a>(tag: &[u8], data: &'a [u8]) -> &'a [u8] {
match data.strip_prefix(tag) {
Some(rest) => rest,
None => data,
}
}
pub fn remove_cbor_tag(data: &[u8]) -> &[u8] {
crate::strict::remove_known_tags(data).unwrap_or(data)
}
pub(crate) fn message_body(data: &[u8], expected_tag: u64) -> Result<&[u8], crate::Error> {
crate::strict::message_body(data, expected_tag)
}