use super::{PortableEncodingError, decode_claims};
use ic_auth_protocol_types::PortableClaims;
use sha2::{Digest, Sha256};
#[derive(Debug)]
pub struct DecodedPortableClaims {
pub(crate) claims: PortableClaims,
pub(crate) fingerprint: [u8; 32],
#[cfg(feature = "certified-proof-verification")]
pub(crate) encoded_len: usize,
}
impl DecodedPortableClaims {
pub(crate) fn decode(bytes: &[u8]) -> Result<Self, PortableEncodingError> {
let claims = decode_claims(bytes)?;
Ok(Self {
claims,
fingerprint: Sha256::digest(bytes).into(),
#[cfg(feature = "certified-proof-verification")]
encoded_len: bytes.len(),
})
}
}