Skip to content

Commit 32a5982

Browse files
committed
Fixing double-tagging on some serialization.
Signed-off-by: Larry Dewey <[email protected]>
1 parent 54c83b8 commit 32a5982

File tree

2 files changed

+12
-53
lines changed

2 files changed

+12
-53
lines changed

src/core.rs

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1257,8 +1257,8 @@ impl<'a> Serialize for CoseKeySetOrKey<'a> {
12571257
S: Serializer,
12581258
{
12591259
match self {
1260-
CoseKeySetOrKey::KeySet(key_set) => Ok(key_set.serialize(serializer)?),
1261-
CoseKeySetOrKey::Key(key) => Ok(key.serialize(serializer)?),
1260+
CoseKeySetOrKey::KeySet(key_set) => key_set.serialize(serializer),
1261+
CoseKeySetOrKey::Key(key) => key.serialize(serializer),
12621262
}
12631263
}
12641264
}
@@ -1447,19 +1447,12 @@ impl Serialize for RawValueTypeChoice {
14471447
where
14481448
S: Serializer,
14491449
{
1450-
let mut seq = serializer.serialize_seq(Some(2))?;
1451-
14521450
match self {
1453-
Self::TaggedBytes(tagged) => {
1454-
seq.serialize_element(&560u16)?; // Tag 560 for TaggedBytes.
1455-
seq.serialize_element(&tagged.0 .0)?;
1456-
}
1457-
Self::TaggedMaskedRawValue(tagged) => {
1458-
seq.serialize_element(&563u16)?; // Tag 563 for TaggedMaskedRawValue.
1459-
seq.serialize_element(&tagged.0 .0)?;
1451+
Self::TaggedBytes(tagged_bytes) => tagged_bytes.serialize(serializer),
1452+
Self::TaggedMaskedRawValue(tagged_masked_raw_value) => {
1453+
tagged_masked_raw_value.serialize(serializer)
14601454
}
14611455
}
1462-
seq.end()
14631456
}
14641457
}
14651458

src/corim.rs

Lines changed: 7 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ use crate::{
8989
use derive_more::{Constructor, From, TryFrom};
9090
use serde::{
9191
de::{self, Visitor},
92-
ser::SerializeSeq,
9392
Deserialize, Deserializer, Serialize, Serializer,
9493
};
9594
/// Represents a Concise Reference Integrity Manifest (CoRIM)
@@ -130,20 +129,10 @@ impl<'a> Serialize for ConciseRimTypeChoice<'a> {
130129
where
131130
S: Serializer,
132131
{
133-
let mut seq = serializer.serialize_seq(Some(2))?;
134-
135132
match self {
136-
Self::TaggedUnsignedCorimMap(tagged) => {
137-
seq.serialize_element(&501u16)?; // Tag 501 for TaggedUnsignedCorimMap
138-
seq.serialize_element(&tagged.0 .0)?;
139-
}
140-
Self::SignedCorim(tagged) => {
141-
seq.serialize_element(&18u16)?; // Tag 18 for TaggedCOSESign1Corim or SignedCorim
142-
seq.serialize_element(&tagged.0 .0)?;
143-
}
133+
Self::TaggedUnsignedCorimMap(tagged) => tagged.serialize(serializer),
134+
Self::SignedCorim(tagged) => tagged.serialize(serializer),
144135
}
145-
146-
seq.end()
147136
}
148137
}
149138

@@ -338,25 +327,11 @@ impl<'a> Serialize for ConciseTagTypeChoice<'a> {
338327
where
339328
S: Serializer,
340329
{
341-
// CBOR tags are represented as a 2-element sequence: [tag, value]
342-
let mut seq = serializer.serialize_seq(Some(2))?;
343-
344330
match self {
345-
ConciseTagTypeChoice::Swid(tagged) => {
346-
seq.serialize_element(&505u16)?; // Tag 505 for Swid
347-
seq.serialize_element(&tagged.0 .0)?; // Inner ConciseSwidTag
348-
}
349-
ConciseTagTypeChoice::Mid(tagged) => {
350-
seq.serialize_element(&506u16)?; // Tag 506 for Mid
351-
seq.serialize_element(&tagged.0 .0)?; // Inner ConciseMidTag
352-
}
353-
ConciseTagTypeChoice::Tl(tagged) => {
354-
seq.serialize_element(&507u16)?; // Tag 507 for Tl
355-
seq.serialize_element(&tagged.0 .0)?; // Inner ConciseTlTag
356-
}
331+
Self::Swid(tagged_concise_swid_tag) => tagged_concise_swid_tag.serialize(serializer),
332+
Self::Mid(tagged_concise_mid_tag) => tagged_concise_mid_tag.serialize(serializer),
333+
Self::Tl(tagged_concise_tl_tag) => tagged_concise_tl_tag.serialize(serializer),
357334
}
358-
359-
seq.end()
360335
}
361336
}
362337
impl<'de, 'a> Deserialize<'de> for ConciseTagTypeChoice<'a> {
@@ -526,19 +501,10 @@ impl<'a> Serialize for ProfileTypeChoice<'a> {
526501
where
527502
S: Serializer,
528503
{
529-
let mut seq = serializer.serialize_seq(Some(2))?;
530-
531504
match self {
532-
ProfileTypeChoice::Uri(tagged) => {
533-
seq.serialize_element(&32u16)?; // Tag 32 for Uri
534-
seq.serialize_element(&tagged.0 .0)?;
535-
}
536-
ProfileTypeChoice::OidType(tagged) => {
537-
seq.serialize_element(&111u16)?; // Tag 111 for OidType
538-
seq.serialize_element(&tagged.0 .0)?;
539-
}
505+
Self::Uri(uri) => uri.serialize(serializer),
506+
Self::OidType(oid) => oid.serialize(serializer),
540507
}
541-
seq.end()
542508
}
543509
}
544510

0 commit comments

Comments
 (0)