@@ -21,7 +21,7 @@ pub use catalyst_types::{
2121 uuid:: { Uuid , UuidV4 , UuidV7 } ,
2222} ;
2323pub use content:: Content ;
24- use coset:: { CborSerializable , Header } ;
24+ use coset:: { CborSerializable , Header , TaggedCborSerializable } ;
2525pub use metadata:: {
2626 Algorithm , ContentEncoding , ContentType , DocumentRef , ExtraFields , Metadata , Section ,
2727} ;
@@ -217,9 +217,11 @@ impl Decode<'_, ()> for CatalystSignedDocument {
217217 . get ( start..end)
218218 . ok_or ( minicbor:: decode:: Error :: end_of_input ( ) ) ?;
219219
220- let cose_sign = coset:: CoseSign :: from_slice ( cose_bytes) . map_err ( |e| {
221- minicbor:: decode:: Error :: message ( format ! ( "Invalid COSE Sign document: {e}" ) )
222- } ) ?;
220+ let cose_sign = coset:: CoseSign :: from_tagged_slice ( cose_bytes)
221+ . or_else ( |_| coset:: CoseSign :: from_slice ( cose_bytes) )
222+ . map_err ( |e| {
223+ minicbor:: decode:: Error :: message ( format ! ( "Invalid COSE Sign document: {e}" ) )
224+ } ) ?;
223225
224226 let report = ProblemReport :: new ( PROBLEM_REPORT_CTX ) ;
225227 let metadata = Metadata :: from_protected_header ( & cose_sign. protected , & report) ;
@@ -248,7 +250,7 @@ impl Encode<()> for CatalystSignedDocument {
248250 ) -> Result < ( ) , encode:: Error < W :: Error > > {
249251 let cose_sign = self . as_cose_sign ( ) . map_err ( encode:: Error :: message) ?;
250252
251- let cose_bytes = cose_sign. to_vec ( ) . map_err ( |e| {
253+ let cose_bytes = cose_sign. to_tagged_vec ( ) . map_err ( |e| {
252254 minicbor:: encode:: Error :: message ( format ! ( "Failed to encode COSE Sign document: {e}" ) )
253255 } ) ?;
254256
0 commit comments