diff --git a/src/main.rs b/src/main.rs index a018dcf..6c505e2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,7 +5,7 @@ use ccatoken::store::{ use ccatoken::token; use clap::Parser; use ear::claim::TRUSTWORTHY_INSTANCE; -use ear::{TrustTier, TrustVector}; +use ear::TrustVector; use serde_json::value::RawValue; use std::error::Error; use std::fs; @@ -104,9 +104,7 @@ fn appraise(args: &AppraiseArgs) -> Result<(TrustVector, TrustVector), Box = fs::read(&args.evidence)?; - - let mut e: token::Evidence = token::Evidence::decode(&c)?; + let mut e: token::Evidence = token::Evidence::decode(fs::File::open(&args.evidence)?)?; e.appraise(&rvs)?; @@ -119,32 +117,15 @@ fn verify(args: &VerifyArgs) -> Result<(TrustVector, TrustVector), Box = fs::read(&args.evidence)?; - - let mut e: token::Evidence = token::Evidence::decode(&c)?; + let mut e: token::Evidence = token::Evidence::decode(fs::File::open(&args.evidence)?)?; e.verify(&tas)?; Ok(e.get_trust_vectors()) } -fn trust_vector_status(tv: TrustVector) -> TrustTier { - let mut status = TrustTier::None; - - for claim in tv { - let claim_tier = claim.tier(); - if status < claim_tier { - status = claim_tier - } - } - - status -} - fn golden(args: &GoldenArgs) -> Result<(), Box> { - let c: Vec = fs::read(&args.evidence)?; - - let mut e: token::Evidence = token::Evidence::decode(&c)?; + let mut e: token::Evidence = token::Evidence::decode(fs::File::open(&args.evidence)?)?; let j = fs::read_to_string(&args.cpak)?; diff --git a/src/store/memo_trustanchorstore.rs b/src/store/memo_trustanchorstore.rs index 9c8adf8..221f4cd 100644 --- a/src/store/memo_trustanchorstore.rs +++ b/src/store/memo_trustanchorstore.rs @@ -1,10 +1,9 @@ -// Copyright 2023 Contributors to the Veraison project. +// Copyright 2023-2025 Contributors to the Veraison project. // SPDX-License-Identifier: Apache-2.0 use super::cpak::Cpak; use super::errors::Error; use super::ITrustAnchorStore; -use jsonwebtoken::jwk; use std::collections::HashMap; use std::sync::RwLock; @@ -54,6 +53,8 @@ impl ITrustAnchorStore for MemoTrustAnchorStore { #[cfg(test)] mod tests { use super::*; + use jsonwebtoken::jwk; + const TEST_JSON_TA_OK_0: &str = include_str!("../../testdata/ta.json"); const TEST_INST_ID_0: &[u8; 33] = include_bytes!("../../testdata/inst-id.bin"); const TEST_IMPL_ID_0: &[u8; 32] = include_bytes!("../../testdata/impl-id.bin"); diff --git a/src/token/base64.rs b/src/token/base64.rs index 9242b8f..360bfe0 100644 --- a/src/token/base64.rs +++ b/src/token/base64.rs @@ -75,8 +75,7 @@ impl<'de> Deserialize<'de> for Bytes { struct BytesVisitor; -#[allow(clippy::needless_lifetimes)] -impl<'de> Visitor<'de> for BytesVisitor { +impl Visitor<'_> for BytesVisitor { type Value = Bytes; fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result { diff --git a/src/token/evidence.rs b/src/token/evidence.rs index f0e41eb..c64e60d 100644 --- a/src/token/evidence.rs +++ b/src/token/evidence.rs @@ -1,4 +1,4 @@ -// Copyright 2023 Contributors to the Veraison project. +// Copyright 2023-2025 Contributors to the Veraison project. // SPDX-License-Identifier: Apache-2.0 use super::base64; @@ -69,8 +69,8 @@ impl CBORCollection { Ok(()) } - fn decode(buf: &Vec) -> Result { - let v: Value = from_reader(buf.as_slice()).map_err(|e| Error::Syntax(e.to_string()))?; + fn decode(buf: R) -> Result { + let v: Value = from_reader(buf).map_err(|e| Error::Syntax(e.to_string()))?; let mut collection = CBORCollection::new(); @@ -152,7 +152,7 @@ impl Evidence { } /// Decode a CBOR-encoded CCA Token and instantiate an Evidence object. - pub fn decode(buf: &Vec) -> Result { + pub fn decode(buf: R) -> Result { let collection = CBORCollection::decode(buf)?; let mut t = Evidence::new(); @@ -615,6 +615,7 @@ fn make_cose_key(cose_message: &CoseMessage, pkey: jwk::Jwk) -> Result