Skip to content

Commit 3fecdfd

Browse files
ctap2::get_info: Fix field order for canonical CBOR
This patch fixes the field order of the CtapOptions and Certifications struct so that we produce canonical CBOR when serializing them with cbor-smol.
1 parent c0aadea commit 3fecdfd

2 files changed

Lines changed: 11 additions & 11 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88

99
[Unreleased]: https://github.com/trussed-dev/ctap-types/compare/0.5.0...HEAD
1010

11-
-
11+
- `ctap2::get_info`: Fix field order of the `CtapOptions` and `Certifications` structs to produce canonical CBOR
1212

1313
## [0.5.0] 2026-03-23
1414

src/ctap2/get_info.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -358,11 +358,11 @@ pub struct CtapOptions {
358358
#[cfg(feature = "get-info-full")]
359359
#[serde(skip_serializing_if = "Option::is_none")]
360360
pub uv_bio_enroll: Option<bool>,
361+
#[serde(skip_serializing_if = "Option::is_none")]
362+
pub pin_uv_auth_token: Option<bool>,
361363
#[cfg(feature = "get-info-full")]
362364
#[serde(rename = "setMinPINLength", skip_serializing_if = "Option::is_none")]
363365
pub set_min_pin_length: Option<bool>, // default false
364-
#[serde(skip_serializing_if = "Option::is_none")]
365-
pub pin_uv_auth_token: Option<bool>,
366366
#[cfg(feature = "get-info-full")]
367367
#[serde(skip_serializing_if = "Option::is_none")]
368368
pub make_cred_uv_not_rqd: Option<bool>,
@@ -418,6 +418,14 @@ impl Default for CtapOptions {
418418
#[derive(Copy, Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
419419
#[non_exhaustive]
420420
pub struct Certifications {
421+
#[serde(rename = "FIDO")]
422+
#[serde(skip_serializing_if = "Option::is_none")]
423+
pub fido: Option<u8>,
424+
425+
#[serde(rename = "CC-EAL")]
426+
#[serde(skip_serializing_if = "Option::is_none")]
427+
pub cc_eal: Option<u8>,
428+
421429
#[serde(rename = "FIPS-CMVP-2")]
422430
#[serde(skip_serializing_if = "Option::is_none")]
423431
pub fips_cmpv2: Option<u8>,
@@ -433,14 +441,6 @@ pub struct Certifications {
433441
#[serde(rename = "FIPS-CMVP-3-PHY")]
434442
#[serde(skip_serializing_if = "Option::is_none")]
435443
pub fips_cmpv3_phy: Option<u8>,
436-
437-
#[serde(rename = "CC-EAL")]
438-
#[serde(skip_serializing_if = "Option::is_none")]
439-
pub cc_eal: Option<u8>,
440-
441-
#[serde(rename = "FIDO")]
442-
#[serde(skip_serializing_if = "Option::is_none")]
443-
pub fido: Option<u8>,
444444
}
445445

446446
#[cfg(test)]

0 commit comments

Comments
 (0)