use crate::crypto::{CanonPkcPublicKeyRef, CanonPkcSecretKeyRef};
use crate::utils::sync::DynBase;
pub trait DeviceAttestation: DynBase {
fn cert_declaration(&self) -> &[u8];
fn pai(&self) -> &[u8];
fn dac(&self) -> &[u8];
fn dac_pub_key(&self) -> CanonPkcPublicKeyRef<'_>;
fn dac_priv_key(&self) -> CanonPkcSecretKeyRef<'_>;
}
impl<T> DeviceAttestation for &T
where
T: DeviceAttestation,
{
fn cert_declaration(&self) -> &[u8] {
(*self).cert_declaration()
}
fn pai(&self) -> &[u8] {
(*self).pai()
}
fn dac(&self) -> &[u8] {
(*self).dac()
}
fn dac_pub_key(&self) -> CanonPkcPublicKeyRef<'_> {
(*self).dac_pub_key()
}
fn dac_priv_key(&self) -> CanonPkcSecretKeyRef<'_> {
(*self).dac_priv_key()
}
}