#![allow(unknown_lints, renamed_and_removed_lints, too_many_arguments)]
mod objects;
mod payload;
pub(crate) use self::objects::Objects;
pub(crate) use self::payload::Payload;
use crate::{Algorithm, ObjectInfo};
const WRAPPED_DATA_MAC_SIZE: usize = 16;
const DEFAULT_AUTHENTICATION_KEY_LABEL: &str = "DEFAULT AUTHKEY CHANGE THIS ASAP";
#[derive(Debug)]
pub(crate) struct Object {
pub object_info: ObjectInfo,
pub payload: Payload,
}
impl Object {
pub fn algorithm(&self) -> Algorithm {
self.payload.algorithm()
}
pub fn info(&self) -> &ObjectInfo {
&self.object_info
}
}
#[derive(Serialize, Deserialize, Debug)]
pub(crate) struct WrappedObject {
pub object_info: ObjectInfo,
pub data: Vec<u8>,
}
impl<'a> From<&'a Object> for WrappedObject {
fn from(obj: &'a Object) -> Self {
Self {
object_info: obj.object_info.clone(),
data: obj.payload.as_ref().into(),
}
}
}