From bc52d5563be02407f5eef2a02a62443185d50fcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sosth=C3=A8ne=20Gu=C3=A9don?= Date: Mon, 15 Jan 2024 17:19:46 +0100 Subject: [PATCH] Fix default card capabilities value The 53 tag was included twice --- src/constants.rs | 18 ++++++++++++++++++ src/state.rs | 6 +----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/constants.rs b/src/constants.rs index a2472ea..657e4d7 100644 --- a/src/constants.rs +++ b/src/constants.rs @@ -50,6 +50,24 @@ pub const DISCOVERY_OBJECT: [u8; 18] = hex!( 4000" ); +pub const CARD_CAP: [u8; 27] = hex!( + " + F0 00 // card identifier + F1 00 // capability container version + F2 00 // capability container grammar + F3 00 // application card url + F4 00 // pkcs15 + F5 01 10 // registereddata model number + F6 00 // access control rule table + F7 00 // card apdus + FA 00 // redirection tag + FB 00 // capability tuples + FC 00 // status tuples + FD 00 // next ccc + FE 00 // Error detection code +" +); + use crate::Container; pub const RETIRED_CERTS: [Container; 20] = [ Container::RetiredCert01, diff --git a/src/state.rs b/src/state.rs index 0980ff2..83f8eb9 100644 --- a/src/state.rs +++ b/src/state.rs @@ -715,11 +715,7 @@ impl ContainerStorage { fn default(self) -> Option> { match self.0 { Container::CardHolderUniqueIdentifier => panic!("CHUID should alway be set"), - Container::CardCapabilityContainer => Some( - crate::piv_types::CardCapabilityContainer::default() - .to_heapless_vec() - .unwrap(), - ), + Container::CardCapabilityContainer => Some(Vec::from_slice(&CARD_CAP).unwrap()), Container::DiscoveryObject => Some(Vec::from_slice(&DISCOVERY_OBJECT).unwrap()), _ => None, }