@@ -21,7 +21,7 @@ pub use catalyst_types::{
21
21
uuid:: { Uuid , UuidV4 , UuidV7 } ,
22
22
} ;
23
23
pub use content:: Content ;
24
- use coset:: { CborSerializable , Header } ;
24
+ use coset:: { CborSerializable , Header , TaggedCborSerializable } ;
25
25
pub use metadata:: {
26
26
Algorithm , ContentEncoding , ContentType , DocumentRef , ExtraFields , Metadata , Section ,
27
27
} ;
@@ -217,9 +217,11 @@ impl Decode<'_, ()> for CatalystSignedDocument {
217
217
. get ( start..end)
218
218
. ok_or ( minicbor:: decode:: Error :: end_of_input ( ) ) ?;
219
219
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
+ } ) ?;
223
225
224
226
let report = ProblemReport :: new ( PROBLEM_REPORT_CTX ) ;
225
227
let metadata = Metadata :: from_protected_header ( & cose_sign. protected , & report) ;
@@ -248,7 +250,7 @@ impl Encode<()> for CatalystSignedDocument {
248
250
) -> Result < ( ) , encode:: Error < W :: Error > > {
249
251
let cose_sign = self . as_cose_sign ( ) . map_err ( encode:: Error :: message) ?;
250
252
251
- let cose_bytes = cose_sign. to_vec ( ) . map_err ( |e| {
253
+ let cose_bytes = cose_sign. to_tagged_vec ( ) . map_err ( |e| {
252
254
minicbor:: encode:: Error :: message ( format ! ( "Failed to encode COSE Sign document: {e}" ) )
253
255
} ) ?;
254
256
0 commit comments