<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY SELF "RFCthis">
]>

<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-suit-report-13" category="info" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Secure Reporting of Update Status">Secure Reporting of Update Status</title>

    <author initials="B." surname="Moran" fullname="Brendan Moran">
      <organization>Arm Limited</organization>
      <address>
        <email>brendan.moran.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>

    <date year="2025" month="July" day="07"/>

    <area>Security</area>
    <workgroup>SUIT</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 57?>

<t>The Software Update for the Internet of Things (SUIT) manifest provides
a way for many different update and boot
workflows to be described by a common format.
This specification describes a lightweight feedback mechanism that
allows a developer in possession of a manifest to reconstruct the
decisions made and actions performed by a manifest processor.</t>



    </abstract>



  </front>

  <middle>


<?line 66?>

<section anchor="introduction"><name>Introduction</name>

<t>This specification describes a SUIT-specific
logging container that creates a lightweight feedback mechanism for
developers in the event that an update or boot fails in the manifest
processor.</t>

<t>A SUIT manifest processor can fail to install or boot an update for many
reasons. Frequently, the error codes generated by such systems fail to
provide developers with enough information to find root causes and
produce corrective actions, resulting in extra effort to reproduce
failures. Logging the results of each SUIT command can simplify this
process.</t>

<t>While it is possible to report the results of SUIT commands through
existing logging or attestation mechanisms, this comes with several
drawbacks:</t>

<t><list style="symbols">
  <t>data inflation, particularly when designed for text-based logging</t>
  <t>missing information elements</t>
  <t>missing support for multiple components</t>
</list></t>

<t>The CBOR objects defined in this document allow devices to:</t>

<t><list style="symbols">
  <t>report a trace of how an update was performed</t>
  <t>report expected vs. actual values for critical checks</t>
  <t>describe the installation of complex multi-component architectures</t>
  <t>describe the measured properties of a system</t>
  <t>report the exact reason for a parsing failure</t>
</list></t>

</section>
<section anchor="terminology"><name>Conventions and Terminology</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>Terms used in this specification include:</t>

<t><list style="symbols">
  <t>Boot: initialization of an executable image. Although this
specification refers to boot, any boot-specific operations described
are equally applicable to starting an executable in an OS context.</t>
</list></t>

</section>
<section anchor="suit-record"><name>The SUIT_Record</name>

<t>If the developer has a copy of the
manifest, then they need little information to reconstruct what the
manifest processor has done. They simply need any data that influences
the control flow of the manifest. The manifest only supports the
following control flow primitives:</t>

<t><list style="symbols">
  <t>Set Component</t>
  <t>Set/Override Parameters</t>
  <t>Try-Each</t>
  <t>Run Sequence</t>
  <t>Conditions</t>
</list></t>

<t>Of these, only conditions change the behavior of the processor from the
default, and then only when the condition fails.</t>

<t>To reconstruct the flow of a manifest, a developer needs
a list of metadata about failed conditions:</t>

<t><list style="symbols">
  <t>the current manifest</t>
  <t>the current section</t>
  <t>the offset into the current section</t>
  <t>the current component index</t>
  <t>the "reason" for failure</t>
</list></t>

<t>Most conditions compare a parameter to an actual value, so the "reason"
is typically the actual value.</t>

<t>Since it is possible that a non-condition command (directive) may fail in an
exceptional circumstance,
a failure code for a non condition command must be included as well. However,
a failed directive will terminate processing of the manifest. To accommodate
for a failed command and for explicit "completion," an additional "result"
element is included as well, however this is included in the SUIT_Report, see <xref target="suit-report"/>.
In the case of a command failure,
the failure reason is typically a numeric error code. However, these error
codes need to be standardised in order to be useful.</t>

<t>This approach effectively compacts the log of operations taken using the SUIT Manifest
as a dictionary. This enables a full reconstruction of the log using a matching
decompaction tool.</t>

<figure><sourcecode type="CDDL"><![CDATA[
SUIT_Record = [
    suit-record-manifest-id        : [* uint ],
    suit-record-manifest-section   : int,
    suit-record-section-offset     : uint,
    suit-record-component-index    : uint,
    suit-record-properties         : SUIT_Parameters,
    $$SUIT_Record_Extensions
]
]]></sourcecode></figure>

<t>suit-record-manifest-id is used to identify which manifest contains the
command that caused the record to be generated. The manifest id is a
list of integers that form a walk of the manifest tree, starting at the
root. An empty list indicates that the command was contained in the
root manifest. If the list is not empty, the command was contained in
one of the root manifest's dependencies, or nested even further below
that.</t>

<t>For example, suppose that the root manifest has 3 dependencies
and each of those dependencies has 2 dependencies of its own:</t>

<t><list style="symbols">
  <t>Root  <list style="symbols">
      <t>Dependency A (index 0)      <list style="symbols">
          <t>Dependency AA (index 0,0)</t>
          <t>Dependency AB (index 0,1)</t>
        </list></t>
      <t>Dependency B (index 1)      <list style="symbols">
          <t>Dependency BA (index 1,0)</t>
          <t>Dependency BB (index 1,1)</t>
        </list></t>
      <t>Dependency C (index 2)      <list style="symbols">
          <t>Dependency CA (index 2,0)</t>
          <t>Dependency CB (index 2,1)</t>
        </list></t>
    </list></t>
</list></t>

<t>A manifest-id of [1,0] would indicate that the current command was
contained within Dependency BA. Similarly, a manifest-id of [2,1]
would indicate Dependency CB</t>

<t>suit-record-manifest-section indicates which section of the manifest was
active. This is used in addition to an offset so that the developer can
index into severable sections in a predictable way. The value of this
element is the value of the key that identified the section in the
manifest.</t>

<t>suit-record-section-offset is the number of bytes into the current
section at which the current command is located.</t>

<t>suit-record-component-index is the index of the component that was
specified at the time that the report was generated. This field is
necessary due to the availability of set-current-component values of
True and a list of components. Both of these values cause the manifest
processor to loop over commands using a series of component-ids, so the
developer needs to know which was selected when the command executed.</t>

<t>suit-record-properties contains any measured properties that led to the
command failure.
For example, this could be the actual value of a SUIT_Digest or
class identifier. This is encoded in a SUIT_Parameters block as defined
in <xref target="I-D.ietf-suit-manifest"/>.</t>

</section>
<section anchor="suit-report"><name>The SUIT_Report</name>

<t>Some metadata is common to all records, such as the root manifest:
the manifest that is the entry-point for the manifest processor. This
metadata is aggregated with a list of SUIT_Records. The SUIT_Report
may also contain a list of any system properties that were measured
and reported, and a reason for a failure if one occurred.</t>

<figure><sourcecode type="CDDL"><![CDATA[
SUIT_Report = {
  suit-reference              => SUIT_Reference,
  ? suit-report-nonce         => bstr,
  suit-report-records         => \
        \[ * SUIT_Record / system-property-claims \],
  suit-report-result          => true / {
    suit-report-result-code   => int,
    suit-report-result-record => SUIT_Record,
    suit-report-result-reason => SUIT_Report_Reasons,
  },
  ? suit-report-capability-report => SUIT_Capability_Report,
  $$SUIT_Report_Extensions
}
system-property-claims = {
  system-component-id => SUIT_Component_Identifier,
  + SUIT_Parameters,
}
]]></sourcecode></figure>

<t>The suit-reference provides a reference URI and digest for a suit
manifest. The URI <bcp14>MUST</bcp14> be the canonical URI that is provided in the
manifest. The digest is the digest of the manifest.</t>

<t>NOTE: The digest is used
in preference to other identifiers in the manifest because it allows
a manifest to be uniquely identified (collision resistance) whereas
other identifiers, such as the sequence number, can collide,
particularly in scenarios with multiple trusted signers.</t>

<t>The following CDDL describes a SUIT_Reference.</t>

<figure><sourcecode type="CDDL"><![CDATA[
SUIT_Reference = {
    suit-report-manifest-uri  : tstr,
    suit-report-manifest-digest : SUIT_Digest,
}
]]></sourcecode></figure>

<t>suit-report-manifest-digest provides a SUIT_Digest (as defined in
<xref target="I-D.ietf-suit-manifest"/>) that is the characteristic digest of the
Root manifest.</t>

<t>suit-report-manifest-uri provides the reference URI that was provided in
the root manifest.</t>

<t>suit-report-nonce provides a container for freshness or replay
protection information. This field <bcp14>MAY</bcp14> be omitted where the suit-report
is authenticated within a container that provides freshness already.
For example, attestation evidence typically contains a proof of
freshness.</t>

<section anchor="suit-report-records"><name>SUIT_Report_Records</name>

<t>suit-report-records is a list of 0 or more SUIT_Records or
system-property-claims. Because SUIT_Records are only generated on failure,
in simple cases this can be an empty list. SUIT_Records and
suit-system-property-claims are merged into a single list because this
reduces the overhead for a constrained node that generates this report.
The use of a single append-only log allows report generators to use simple
memory management. 
The concept of append-only logs for software supply chains
is explained in <xref target="I-D.ietf-scitt-architecture"/>. Because the system-property-claims
are encoded as maps and SUIT_Records are encoded as lists, a recipient need
only filter the CBOR Type-5 entries from suit-report-records to obtain all 
system-property-claims.</t>

<t>System Properties can be extracted from suit-report-records by filtering
suit-report-records for maps. System Properties are a list of measured
or asserted properties
of the system that creates the SUIT_Report. These properties are scoped by
component identifier. Because this list is expected to be constructed on
the fly by a constrained node, component identifiers may appear more than
once. A recipient may convert the result to a more conventional structure:</t>

<figure><sourcecode type="CDDL"><![CDATA[
SUIT_Record_System_Properties = {
  * component-id => {
    + SUIT_Parameters,
  }
}
]]></sourcecode></figure>

</section>
<section anchor="suit-report-result"><name>SUIT_Report Result</name>

<t>suit-report-result provides a mechanism to show that the SUIT procedure
completed successfully (value is true) or why it failed (value is a map
of an error code and a SUIT_Record).</t>

<t>suit-report-result-reason gives a high-level explanation of the failure.
These reasons are intended for interoperable implementations. The reasons
are divided into a small number of groups:</t>

<t><list style="symbols">
  <t>suit-report-reason-cbor-parse: a parsing error was encountered by the
CBOR parser.</t>
  <t>suit-report-reason-cose-unsupported: an unusupported COSE structure or
header was encountered.</t>
  <t>suit-report-reason-alg-unsupported: an unsupported COSE algorithm was
encountered.</t>
  <t>suit-report-reason-unauthorised: Signature/MAC verification failed.</t>
  <t>suit-report-reason-command-unsupported: an unsupported command was
encountered.</t>
  <t>suit-report-reason-component-unsupported: The manifest declared a
component/prefix that does not exist.</t>
  <t>suit-report-reason-component-unauthorised: The manifest declared a
component that is not accessible by the signer.</t>
  <t>suit-report-reason-parameter-unsupported: The manifest used a
parameter that does not exist.</t>
  <t>suit-report-severing-unsupported: The manifest uses severable fields
but the Manifest Processor doesn't support them.</t>
  <t>suit-report-reason-condition-failed: A condition failed with soft-
failure off.</t>
  <t>suit-report-reason-operation-failed: A command failed (e.g.,
download/copy/swap/write)</t>
</list></t>

<t>The suit-report-result-code reports an internal error code that is
provided for debugging reasons. This code is not intended for
interoperability.</t>

<t>The suit-report-result-record indicates the exact point in the manifest
or manifest dependency tree where the error occurred.</t>

<t>suit-report-capability-report provides a mechanism to report the capabilities of the Manifest Processor. The SUIT_Capability_Report is described in <xref target="capabilities"/>. The capability report is optional to include in the SUIT_Report, according to an application-specific policy. While the SUIT_Capability_Report is not expected to be very large, applications should ensure that they only report capabilities when necessary in order to conserve bandwidth. A capability report is not necessary except when:</t>

<t><list style="numbers" type="1">
  <t>A client explicitly requests the capability report, or</t>
  <t>A manifest attempts to use a capability that the Manifest Processor does not implement.</t>
</list></t>

</section>
</section>
<section anchor="attestation"><name>Attestation</name>

<t>Where Remote Attestation (see <xref target="RFC9334"/>, the RATS Architecture) is in use, the RATS Verifier (Verifier hereafter) requires a set of
Attestation Evidence. Attestation Evidence contains Evidence Claims about the Attester. These Evidence Claims
contain measurements about the Attester. Many of these measurements are the same measurements that are generated in SUIT,
which means that a SUIT_Report contains most of the Claims and some of the Endorsements that a Verifier requires.</t>

<t>Using a SUIT_Manifest and a SUIT_Report, improves a well-informed Verifier's ability to appraise the trustworthiness of a remote device. Remote attestation is done by using the SUIT_Manifest_Envelope along with the SUIT_Report to reconstruct the state of the device at boot time. By embedding data used for remote attestation in the SUIT_Report, a remote device can use a verifiable data structure, such as an append-only log,  to notarize both measurements and debug/failure information via the same document. This document can then be conveyed to a Verifier as a part of the Attestation Evidence. A Remote Attestation format to convey Attestation Evidence, such as an Entity Attestation Token (EAT, see <xref target="RFC9711"/>), that contains a SUIT_Report <bcp14>MUST</bcp14> also include an integrity measurement of the Manifest Processor &amp; Report Generator.</t>

<t>When a Concise Reference Integrity Manifest (CoRIM, see <xref target="I-D.birkholz-rats-corim"/>) is delivered in a SUIT_Manifest_Envelope, this codifies the delivery of appraisal information to the Verifier:</t>

<t><list style="symbols">
  <t>The Firmware Distributor:
  <list style="symbols">
      <t>sends the SUIT_Manifest_Envelope to the Verifier without payload or text, but with CoRIM</t>
      <t>sends the SUIT_Manifest_Envelope to the recipient without CoRIM, or text, but with payload</t>
    </list></t>
  <t>The Recipient:
  <list style="symbols">
      <t>Installs the firmware as described in the SUIT_Manifest and generates a SUIT_report, which is encapsulated in an EAT by the installer and sent to the Firmware Distributor.</t>
      <t>Boots the firmware as described in the SUIT_Manifest and creates a SUIT_report, which is encapsulated in an EAT by the installer and sent to the Firmware Distributor.</t>
    </list></t>
  <t>The Firmware Distributor sends both reports to the Verifier (separately or together)</t>
  <t>The Verifier:
  <list style="symbols">
      <t>Reconstructs the state of the device using the manifest</t>
      <t>Compares this state to the CoRIM</t>
      <t>Returns an Attestation Report to the Firmware Distributor</t>
    </list></t>
</list></t>

<t>This approach simplifies the design of the bootloader since it is able to use an append-only log. It allows a Verifier to validate this report against a signed CoRIM that is provided by the firmware author, which simplifies the delivery chain of verification information to the Verifier.</t>

<t>This information is not intended as Attestation Evidence and while an Attestation Report <bcp14>MAY</bcp14> provide this information for conveying error codes and/or failure reports, it <bcp14>SHOULD</bcp14> be translated into general-purpose claims for use by the Relying Party.</t>

</section>
<section anchor="capabilities"><name>Capability Reporting</name>

<t>Because SUIT is extensible, a manifest author must know what capabilities a device has available. To enable this, a capability report is a set of lists that define which commands, parameters, algorithms, and component IDs are supported by a manifest processor.</t>

<t>The CDDL for a SUIT_Capability_Report follows:</t>

<figure><sourcecode type="~CDDL"><![CDATA[
SUIT_Capability_Report = {
  suit-component-capabilities  => [+ SUIT_Component_Capability ]
  suit-command-capabilities          => [+ int],
  suit-parameters-capabilities       => [+ int],
  suit-crypt-algo-capabilities       => [+ int],
  ? suit-envelope-capabilities       => [+ int],
  ? suit-manifest-capabilities       => [+ int],
  ? suit-common-capabilities         => [+ int],
  ? suit-text-capabilities           => [+ int],
  ? suit-text-component-capabilities => [+ int],
  ? suit-dependency-capabilities     => [+ int],
  * [+int]                           => [+ int],
  $$SUIT_Capability_Report_Extensions
}

SUIT_Component_Capability = [*bstr,?true]
]]></sourcecode></figure>

<t>A SUIT_Component_Capability is similar to a SUIT_Component_ID, with one difference: it may optionally be terminated by a CBOR 'true' which acts as a wild-card match for any component with a prefix matching the SUIT_Component_Capability leading up to the 'true.' This feature is for use with filesystem storage, key value stores, or any other arbitrary-component-id storage systems.</t>

<t>When reporting capabilities, it is <bcp14>OPTIONAL</bcp14> to report capabilities that are declared mandatory by the SUIT Manifest <xref target="I-D.ietf-suit-manifest"/>. Capabilities defined by extensions <bcp14>MUST</bcp14> be reported.</t>

<t>Additional capability reporting can be added as follows: if a manifest element does not exist in this map, it can be added by specifying the CBOR path to the manifest element in an array and using this as the key. For example SUIT_Dependencies, as described in <xref target="I-D.ietf-suit-trust-domains"/> could have an extension added, which was key 3 in the SUIT_Dependencies map. This capability would be reported as: [3, 3, 1] =&gt; [3], where the key consists of the key for SUIT_Manifest (3), the key for SUIT_Common (3), and the key for SUIT_Dependencies (1). Then the value indicates that this manifest processor supports the extension (3).</t>

</section>
<section anchor="eat"><name>EAT Claim</name>

<t>The SUIT_Report is a form of measurement done by the SUIT Manifest Processor as it attempts to invoke a manifest or install a manifest. As a result, the SUIT_Report can be captured in an EAT measurements type.
The Verifier <bcp14>MAY</bcp14> convert a SUIT_Report into a more consumable version of the EAT claim by, for example, constructing a measurement results claim that contains the digest of a component, the vendor ID &amp; class ID of a component, etc.</t>

</section>
<section anchor="container"><name>SUIT_Report Container</name>

<t>The SUIT_Report <bcp14>MUST</bcp14> be transported using one of the following methods:</t>

<t><list style="symbols">
  <t>As part of a larger document that provides authenticity guarantees, such as within a <spanx style="verb">measurements</spanx> claim in an Entity Attestation Token (EAT <xref target="RFC9711"/>).</t>
  <t>As the payload of a message transmitted over a communication security protocol, such as DTLS <xref target="RFC9147"/>.</t>
  <t>Encapsulated within a secure container, such as a COSE structure. In the case of COSE, the container <bcp14>MUST</bcp14> be either a <spanx style="verb">COSE_Encrypt0</spanx> or <spanx style="verb">COSE_Sign1</spanx> structure. The SUIT_Report <bcp14>MUST</bcp14> be the sole payload, as illustrated by the CDDL fragment below.</t>
</list></t>

<figure><sourcecode type="CDDL"><![CDATA[
SUIT_Report_Protected /= SUIT_Report_COSE_Sign1 \
                         .and SUIT_COSE_Profiles
SUIT_Report_Protected /= SUIT_Report_COSE_Sign1_Tagged \
                         .and SUIT_COSE_Profiles
SUIT_Report_Protected /= SUIT_Report_COSE_MAC0 \
                         .and SUIT_COSE_Profiles
SUIT_Report_Protected /= SUIT_Report_COSE_MAC0_Tagged \
                         .and SUIT_COSE_Profiles

SUIT_Report_COSE_Sign1_Tagged = #6.18(SUIT_Report_COSE_Sign1)
SUIT_Report_COSE_Sign1 = [
    protected : bstr,
    unprotected : {* int => any},
    payload : bstr .cbor SUIT_Report_Unprotected,
    signature : bstr
]
SUIT_Report_COSE_MAC0_Tagged = #6.17(SUIT_Report_COSE_MAC0)
SUIT_Report_COSE_MAC0 = [
    protected : bstr,
    unprotected : {* int => any},
    payload : bstr .cbor SUIT_Report_Unprotected,
    tag : bstr
]
SUIT_Report_Unprotected = SUIT_Report / SUIT_Report_COSE_Encrypt0
SUIT_Report_COSE_Encrypt0 = COSE_Encrypt0
]]></sourcecode></figure>

<t>Note that SUIT_Report_COSE_Sign1 and SUIT_Report_COSE_MAC0 <bcp14>MUST</bcp14> be combined with a SUIT_COSE_Profile from <xref target="I-D.ietf-suit-mti"/> using the CDDL .and directive. The SUIT_Report_COSE_Encrypt0 carries a ciphertext payload that <bcp14>MUST</bcp14> contain just the ciphertext obtained by encrypting the following CDDL:</t>

<figure><sourcecode type="CDDL"><![CDATA[
SUIT_Report_plaintext = bstr .cbor SUIT_Report
]]></sourcecode></figure>

<t>SUIT_COSE_Profiles, which use AES-CTR encryption, are not integrity protected and authenticated. For this purpose, SUIT_Report_Protected defines authenticated containers with an encrypted payload.</t>

</section>
<section anchor="iana"><name>IANA Considerations</name>

<t>IANA is requested to name the overall SUIT registry group "Software Update for the Internet of Things (SUIT)".</t>

<t>IANA is requested to allocate a CBOR tag for each of:</t>

<t><list style="symbols">
  <t>SUIT_Report_Protected</t>
  <t>SUIT_Reference</t>
  <t>SUIT_Capability_Report</t>
</list></t>

<t>IANA is requested to allocate a CoAP content-type <xref target="RFC7252"/> and a media-type for SUIT_Report.</t>

<t>IANA is also requested to add the following registries to the SUIT registry group:</t>

<t><list style="symbols">
  <t>SUIT_Report Elements</t>
  <t>SUIT_Record Elements</t>
  <t>SUIT_Report Reasons</t>
  <t>SUIT Capability Report Elements</t>
</list></t>

<t>For each of these registries, registration policy is:</t>

<t><list style="symbols">
  <t>-256 to 255: Standards Action</t>
  <t>-65536 to 257, 256 to 65535: Specification Required</t>
  <t>-4294967296 to -65537, 65536 to 4294967295: First Come, First Served</t>
</list></t>

<section anchor="expert-review-instructions"><name>Expert Review Instructions</name>
<t>The IANA registries established in this document allow values to be added based on expert review. This section gives some general guidelines for what the experts should be looking for, but they are being designated as experts for a reason, so they should be given substantial latitude.</t>

<t>Expert reviewers should take into consideration the following points:</t>

<t><list style="symbols">
  <t>Point squatting should be discouraged. Reviewers are encouraged to get sufficient information for registration requests to ensure that the usage is not going to duplicate one that is already registered, and that the point is likely to be used in deployments. The zones tagged as private use are intended for testing purposes and closed environments; code points in other ranges should not be assigned for testing.</t>
  <t>Specifications are required for the standards track range of point assignment. Specifications should exist for all other ranges, but early assignment before a specification is available is considered to be permissible. When specifications are not provided, the description provided needs to have sufficient information to identify what the point is being used for.</t>
  <t>Experts should take into account the expected usage of fields when approving point assignment. The fact that there is a range for standards track documents does not mean that a standards track document cannot have points assigned outside of that range. The length of the encoded value should be weighed against how many code points of that length are left, the size of device it will be used on, and the number of code points left that encode to that size.</t>
</list></t>

</section>
<section anchor="media-type-registration"><name>Media Type Registration</name>

<section anchor="applicationsuit-reportcose"><name>application/suit-report+cose</name>

<dl spacing="compact">
  <dt>Type name:</dt>
  <dd>
    <t>application</t>
  </dd>
  <dt>Subtype name:</dt>
  <dd>
    <t>suit-report+cose</t>
  </dd>
  <dt>Required parameters:</dt>
  <dd>
    <t>n/a</t>
  </dd>
  <dt>Encoding considerations:</dt>
  <dd>
    <t>binary (CBOR)</t>
  </dd>
  <dt>Security considerations:</dt>
  <dd>
    <t><xref target="seccons"/> of &SELF;</t>
  </dd>
  <dt>Interoperability considerations:</dt>
  <dd>
    <t>n/a</t>
  </dd>
  <dt>Published specification:</dt>
  <dd>
    <t>&SELF;</t>
  </dd>
  <dt>Applications that use this media type:</dt>
  <dd>
    <t>SUIT Manifest Processor, SUIT Manifest Distributor, SUIT Manifest Author, RATS Attesters, RATS Verifiers</t>
  </dd>
  <dt>Fragment identifier considerations:</dt>
  <dd>
    <t>The syntax and semantics of fragment identifiers are as specified for "application/cose".</t>
  </dd>
  <dt>Person &amp; email address to contact for further information:</dt>
  <dd>
    <t>SUIT WG mailing list (suit@ietf.org)</t>
  </dd>
  <dt>Intended usage:</dt>
  <dd>
    <t>COMMON</t>
  </dd>
  <dt>Restrictions on usage:</dt>
  <dd>
    <t>none</t>
  </dd>
  <dt>Author/Change controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
  <dt>Provisional registration:</dt>
  <dd>
    <t>no</t>
  </dd>
</dl>

</section>
</section>
<section anchor="coap-content-format-registration"><name>CoAP Content-Format Registration</name>

<t>IANA is requested to assign a CoAP Content-Format ID for the CoSWID media type in the "CoAP Content-Formats" sub-registry, from the "IETF Review or IESG Approval" space (256..999), within the "CoRE Parameters" registry <xref target="RFC7252"/> <xref target="IANA.core-parameters"/>:</t>

<texttable>
      <ttcol align='left'>Media type</ttcol>
      <ttcol align='left'>Encoding</ttcol>
      <ttcol align='left'>ID</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>application/suit-report+cose</c>
      <c>cbor+cose</c>
      <c>TBA</c>
      <c>&SELF;</c>
</texttable>

</section>
<section anchor="cbor-tag-registration"><name>CBOR Tag Registration</name>

<t>IANA is requested to allocate a tag in the "CBOR Tags" registry <xref target="IANA.cbor-tags"/>, preferably in the Specification Required range:</t>

<texttable>
      <ttcol align='left'>Tag</ttcol>
      <ttcol align='left'>Data Item</ttcol>
      <ttcol align='left'>Semantics</ttcol>
      <c>TBA</c>
      <c>array</c>
      <c>SUIT_Report_Protected</c>
      <c>TBA</c>
      <c>map</c>
      <c>SUIT_Reference</c>
      <c>TBA</c>
      <c>map</c>
      <c>SUIT_Capability_Report</c>
</texttable>

</section>
<section anchor="suitreport-elements"><name>SUIT_Report Elements</name>

<t>IANA is requested to create a new registry for SUIT_Report Elements.</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>2</c>
      <c>Nonce</c>
      <c><xref target="suit-report"/></c>
      <c>3</c>
      <c>Records</c>
      <c><xref target="suit-report"/></c>
      <c>4</c>
      <c>Result</c>
      <c><xref target="suit-report"/></c>
      <c>5</c>
      <c>Result Code</c>
      <c><xref target="suit-report"/></c>
      <c>6</c>
      <c>Result Record</c>
      <c><xref target="suit-report"/></c>
      <c>7</c>
      <c>Result Reason</c>
      <c><xref target="suit-report"/></c>
      <c>8</c>
      <c>Capability Report</c>
      <c><xref target="suit-report"/></c>
      <c>99</c>
      <c>Reference</c>
      <c><xref target="suit-report"/></c>
</texttable>

</section>
<section anchor="suitrecord-elements"><name>SUIT_Record Elements</name>

<t>IANA is requested to create a new registry for SUIT_Record Elements.</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>0</c>
      <c>Manifest ID</c>
      <c><xref target="suit-record"/></c>
      <c>1</c>
      <c>Manifest Section</c>
      <c><xref target="suit-record"/></c>
      <c>2</c>
      <c>Section Offset</c>
      <c><xref target="suit-record"/></c>
      <c>3</c>
      <c>Component Index</c>
      <c><xref target="suit-record"/></c>
      <c>4</c>
      <c>Dependency Index</c>
      <c><xref target="suit-record"/></c>
      <c>5</c>
      <c>Record Properties</c>
      <c><xref target="suit-record"/></c>
</texttable>

</section>
<section anchor="suitreport-reasons"><name>SUIT_Report Reasons</name>

<t>IANA is requested to create a new registry for SUIT_Report Reasons.</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>0</c>
      <c>Result OK</c>
      <c><xref target="suit-report-result"/></c>
      <c>1</c>
      <c>CBOR Parse Failure</c>
      <c><xref target="suit-report-result"/></c>
      <c>2</c>
      <c>Unsupported COSE Structure or Header</c>
      <c><xref target="suit-report-result"/></c>
      <c>3</c>
      <c>Unsupported COSE Algorithm</c>
      <c><xref target="suit-report-result"/></c>
      <c>4</c>
      <c>Signature / MAC verification failed</c>
      <c><xref target="suit-report-result"/></c>
      <c>5</c>
      <c>Unsupported SUIT Command</c>
      <c><xref target="suit-report-result"/></c>
      <c>6</c>
      <c>Unsupported SUIT Component</c>
      <c><xref target="suit-report-result"/></c>
      <c>7</c>
      <c>Unauthorized SUIT Component</c>
      <c><xref target="suit-report-result"/></c>
      <c>8</c>
      <c>Unsupported SUIT Parameter</c>
      <c><xref target="suit-report-result"/></c>
      <c>9</c>
      <c>Severing Unsupported</c>
      <c><xref target="suit-report-result"/></c>
      <c>10</c>
      <c>Condition Failed</c>
      <c><xref target="suit-report-result"/></c>
      <c>11</c>
      <c>Operation Failed</c>
      <c><xref target="suit-report-result"/></c>
</texttable>

</section>
<section anchor="suit-capability-report-elements"><name> SUIT Capability Report Elements</name>

<t>IANA is requested to create a new registry for SUIT Capability Report Elements.</t>

<texttable>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>1</c>
      <c>Components</c>
      <c><xref target="capabilities"/></c>
      <c>2</c>
      <c>Commands</c>
      <c><xref target="capabilities"/></c>
      <c>3</c>
      <c>Parameters</c>
      <c><xref target="capabilities"/></c>
      <c>4</c>
      <c>Cryptographic Algorithms</c>
      <c><xref target="capabilities"/></c>
      <c>5</c>
      <c>Envelope Elements</c>
      <c><xref target="capabilities"/></c>
      <c>6</c>
      <c>Manifest Elements</c>
      <c><xref target="capabilities"/></c>
      <c>7</c>
      <c>Common Elements</c>
      <c><xref target="capabilities"/></c>
      <c>8</c>
      <c>Text Elements</c>
      <c><xref target="capabilities"/></c>
      <c>9</c>
      <c>Component Text Elements</c>
      <c><xref target="capabilities"/></c>
</texttable>

</section>
</section>
<section anchor="seccons"><name>Security Considerations</name>

<t>The SUIT_Report serves four primary security objectives:</t>

<t><list style="symbols">
  <t>Validated Identity</t>
  <t>Integrity</t>
  <t>Replay protection</t>
  <t>Confidentiality</t>
</list></t>

<t>The mechanisms for achieving these protections are outlined in <xref target="container"/>.</t>

<t>Ideally, a SUIT_Report <bcp14>SHOULD</bcp14> be conveyed as part of a remote attestation procedure,
such as embeding it in EAT tokens that represent RATS conceptual messages. This approach ensures that the SUIT_Report
is cryptographically bound to the environment (hardware, software, or both) in
which it was generated, thereby strengthening its authenticity.</t>

<t>A SUIT_Report may disclose sensitive information about the device on which it
were produced. In such cases, the SUIT_Report <bcp14>MUST</bcp14> be encrypted, as specified in
<xref target="container"/>.</t>

<t>Furthermore, failure reports, particularly those involving cryptographic operations,
can unintentionally reveal insights into system weaknesses or vulnerabilities. As such,
SUIT_Reports <bcp14>SHOULD</bcp14> be encrypted whenever possible, to minimize the risk of information
leakage.</t>

<t>In addition to these core security requirements, operational considerations must be taken
into account. When a SUIT_Report is included within another protocol message (e.g., inside
an encrypted EAT), care must be taken to avoid inadvertently leaking information and
to uphold the principle of least privilege. For example, in many EAT-based remote attestation flows,
the Verifier may not require the full SUIT_Report. Similarly, the Relying Party might not
need access to it either.</t>

<t>To support least-privilege access, the SUIT_Report should be independently encrypted, even
when the transport or enclosing token is also encrypted. This layered encryption ensures that
only authorized entities can access the contents of the SUIT_Report.</t>

<t>In other scenarios, the EAT Verifier might require full access to a SUIT_Report.
For example, the SUIT_Report must be accessible in its entirety for the EAT Verifier
to extract or convert the SUIT_Report content into specific EAT claims, such as <spanx style="verb">measres</spanx>
(Measurement Results). A typical case
involves translating a successful <spanx style="verb">suit-condition-image</spanx> check into a digest-based claim within
the EAT.</t>

<t>When applying cryptographic protection to the SUIT_Report, the same algorithm profile used for
the corresponding SUIT manifest <bcp14>SHOULD</bcp14> be reused. The available algorithm profiles are detailed
in <xref target="I-D.ietf-suit-mti"/>. If using the same profile is not feasible (e.g., due to constraints
imposed by <spanx style="verb">suit-sha256-hsslms-a256kw-a256ctr</spanx>), then a profile offering comparable security
strength <bcp14>SHOULD</bcp14> be selected—for instance, <spanx style="verb">suit-sha256-esp256-ecdh-a128ctr</spanx>.</t>

<t>In exceptional cases, if no suitable profile can be applied, the necessity of disabling a SUIT_Report functionality altogether might arise.</t>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>The authors would like to thank Dave Thaler for his feedback.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">




<reference anchor="I-D.ietf-suit-manifest">
   <front>
      <title>A Concise Binary Object Representation (CBOR)-based Serialization Format for the Software Updates for Internet of Things (SUIT) Manifest</title>
      <author fullname="Brendan Moran" initials="B." surname="Moran">
         <organization>Arm Limited</organization>
      </author>
      <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
      </author>
      <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Koen Zandberg" initials="K." surname="Zandberg">
         <organization>Inria</organization>
      </author>
      <author fullname="Øyvind Rønningstad" initials="O." surname="Rønningstad">
         <organization>Nordic Semiconductor</organization>
      </author>
      <date day="28" month="May" year="2025"/>
      <abstract>
	 <t>   This specification describes the format of a manifest.  A manifest is
   a bundle of metadata about code/data obtained by a recipient (chiefly
   the firmware for an Internet of Things (IoT) device), where to find
   the code/data, the devices to which it applies, and cryptographic
   information protecting the manifest.  Software updates and Trusted
   Invocation both tend to use sequences of common operations, so the
   manifest encodes those sequences of operations, rather than declaring
   the metadata.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-suit-manifest-34"/>
   
</reference>
<reference anchor="RFC9052">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="96"/>
  <seriesInfo name="RFC" value="9052"/>
  <seriesInfo name="DOI" value="10.17487/RFC9052"/>
</reference>
<reference anchor="RFC9711">
  <front>
    <title>The Entity Attestation Token (EAT)</title>
    <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
    <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
    <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
    <author fullname="C. Wallace" initials="C." surname="Wallace"/>
    <date month="April" year="2025"/>
    <abstract>
      <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
      <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9711"/>
  <seriesInfo name="DOI" value="10.17487/RFC9711"/>
</reference>

<reference anchor="I-D.ietf-suit-mti">
   <front>
      <title>Cryptographic Algorithms for Internet of Things (IoT) Devices</title>
      <author fullname="Brendan Moran" initials="B." surname="Moran">
         <organization>Arm Limited</organization>
      </author>
      <author fullname="Øyvind Rønningstad" initials="O." surname="Rønningstad">
         <organization>Nordic Semiconductor</organization>
      </author>
      <author fullname="Akira Tsukamoto" initials="A." surname="Tsukamoto">
         <organization>Openchip &amp; Software Technologies, S.L.</organization>
      </author>
      <date day="6" month="July" year="2025"/>
      <abstract>
	 <t>   This document defines cryptographic algorithm profiles for use with
   the Software Updates for Internet of Things (SUIT) manifest.  These
   profiles specify sets of algorithms to promote interoperability
   across implementations.

   The SUIT manifest, as defined in &quot;A Manifest Information Model for
   Firmware Updates in Internet of Things (IoT) Devices&quot; (RFC 9124),
   provides a flexible and extensible format for describing how firmware
   and software updates are to be fetched, verified, decrypted, and
   installed on resource-constrained devices.  To ensure the security of
   these update processes, the manifest relies on cryptographic
   algorithms for functions such as digital signature verification,
   integrity checking, and confidentiality.

   Given the diversity of IoT deployments and the evolving cryptographic
   landscape, algorithm agility is essential.  This document groups
   algorithms into named profiles to accommodate varying levels of
   device capabilities and security requirements.  These profiles
   support the use cases laid out in the SUIT architecture, published in
   &quot;A Firmware Update Architecture for Internet of Things&quot; (RFC 9019).

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-suit-mti-21"/>
   
</reference>
<reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
  <front>
    <title>Concise Binary Object Representation (CBOR) Tags</title>
    <author>
      <organization>IANA</organization>
    </author>
  </front>
</reference>
<reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
  <front>
    <title>Constrained RESTful Environments (CoRE) Parameters</title>
    <author>
      <organization>IANA</organization>
    </author>
  </front>
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">




<reference anchor="I-D.birkholz-rats-corim">
   <front>
      <title>Concise Reference Integrity Manifest</title>
      <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Thomas Fossati" initials="T." surname="Fossati">
         <organization>arm</organization>
      </author>
      <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
         <organization>arm</organization>
      </author>
      <author fullname="Ned Smith" initials="N." surname="Smith">
         <organization>Intel</organization>
      </author>
      <author fullname="Wei Pan" initials="W." surname="Pan">
         <organization>Huawei Technologies</organization>
      </author>
      <date day="11" month="July" year="2022"/>
      <abstract>
	 <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether to engage in secure interactions with it.  Evidence about
   trustworthiness can be rather complex and it is deemed unrealistic
   that every Relying Party is capable of the appraisal of Evidence.
   Therefore that burden is typically offloaded to a Verifier.  In order
   to conduct Evidence appraisal, a Verifier requires not only fresh
   Evidence from an Attester, but also trusted Endorsements and
   Reference Values from Endorsers and Reference Value Providers, such
   as manufacturers, distributors, or device owners.  This document
   specifies Concise Reference Integrity Manifests (CoRIM) that
   represent Endorsements and Reference Values in CBOR format.
   Composite devices or systems are represented by a collection of
   Concise Module Identifiers (CoMID) and Concise Software Identifiers
   (CoSWID) bundled in a CoRIM document.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-birkholz-rats-corim-03"/>
   
</reference>

<reference anchor="I-D.ietf-suit-trust-domains">
   <front>
      <title>SUIT Manifest Extensions for Multiple Trust Domains</title>
      <author fullname="Brendan Moran" initials="B." surname="Moran">
         <organization>Arm Limited</organization>
      </author>
      <author fullname="Ken Takayama" initials="K." surname="Takayama">
         <organization>SECOM CO., LTD.</organization>
      </author>
      <date day="3" month="March" year="2025"/>
      <abstract>
	 <t>   This specification describes extensions to the SUIT Manifest format
   for use in deployments with multiple trust domains.  A device has
   more than one trust domain when it enables delegation of different
   rights to mutually distrusting entities for use for different
   purposes or Components in the context of firmware or software update.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-suit-trust-domains-10"/>
   
</reference>

<reference anchor="I-D.ietf-scitt-architecture">
   <front>
      <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
      <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Antoine Delignat-Lavaud" initials="A." surname="Delignat-Lavaud">
         <organization>Microsoft Research</organization>
      </author>
      <author fullname="Cedric Fournet" initials="C." surname="Fournet">
         <organization>Microsoft Research</organization>
      </author>
      <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
         <organization>ARM</organization>
      </author>
      <author fullname="Steve Lasker" initials="S." surname="Lasker">
         </author>
      <date day="4" month="July" year="2025"/>
      <abstract>
	 <t>   Traceability in supply chains is a growing security concern.  While
   verifiable data structures have addressed specific issues, such as
   equivocation over digital certificates, they lack a universal
   architecture for all supply chains.  This document proposes a
   scalable architecture for single-issuer signed statement transparency
   applicable to any supply chain.  It ensures flexibility,
   interoperability between different transparency services, and
   compliance with various auditing procedures and regulatory
   requirements.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-architecture-14"/>
   
</reference>
<reference anchor="RFC9334">
  <front>
    <title>Remote ATtestation procedureS (RATS) Architecture</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="D. Thaler" initials="D." surname="Thaler"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="N. Smith" initials="N." surname="Smith"/>
    <author fullname="W. Pan" initials="W." surname="Pan"/>
    <date month="January" year="2023"/>
    <abstract>
      <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9334"/>
  <seriesInfo name="DOI" value="10.17487/RFC9334"/>
</reference>
<reference anchor="RFC9147">
  <front>
    <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
    <date month="April" year="2022"/>
    <abstract>
      <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
      <t>This document obsoletes RFC 6347.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9147"/>
  <seriesInfo name="DOI" value="10.17487/RFC9147"/>
</reference>
<reference anchor="RFC7252">
  <front>
    <title>The Constrained Application Protocol (CoAP)</title>
    <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
    <author fullname="K. Hartke" initials="K." surname="Hartke"/>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <date month="June" year="2014"/>
    <abstract>
      <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
      <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7252"/>
  <seriesInfo name="DOI" value="10.17487/RFC7252"/>
</reference>



    </references>

</references>


<?line 694?>

<section anchor="full-cddl"><name>Full CDDL</name>
<t>In order to create a valid SUIT_Report document the structure of the corresponding CBOR message <bcp14>MUST</bcp14> adhere to the following CDDL data definition.</t>

<t>To be valid, the following CDDL <bcp14>MUST</bcp14> have the COSE CDDL appended to it. The COSE CDDL can be obtained by following the directions in <xref section="1.4" sectionFormat="comma" target="RFC9052"/>. It must also have the CDDL from <xref target="I-D.ietf-suit-mti"/> appended to it.</t>

<figure><sourcecode type="CDDL"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

SUIT_Report_Tool_Tweak /= SUIT_start
SUIT_Report_Tool_Tweak /= SUIT_Report_Protected
SUIT_Report_Protected /= SUIT_COSE_tool_tweak

SUIT_Report_Protected /= SUIT_Report_COSE_Sign1 .and \
                                                   SUIT_COSE_Profiles
SUIT_Report_Protected /= SUIT_Report_COSE_Sign1_Tagged .and \
                                                   SUIT_COSE_Profiles
SUIT_Report_Protected /= SUIT_Report_COSE_MAC0 .and \
                                                   SUIT_COSE_Profiles
SUIT_Report_Protected /= SUIT_Report_COSE_MAC0_Tagged .and \
                                                   SUIT_COSE_Profiles

SUIT_Report_COSE_Sign1_Tagged = #6.18(SUIT_Report_COSE_Sign1)
SUIT_Report_COSE_Sign1 = [
    protected : bstr,
    unprotected : {* int => any},
    payload : bstr .cbor SUIT_Report_Unprotected,
    signature : bstr
]
SUIT_Report_COSE_MAC0_Tagged = #6.17(SUIT_Report_COSE_MAC0)
SUIT_Report_COSE_MAC0 = [
    protected : bstr,
    unprotected : {* int => any},
    payload : bstr .cbor SUIT_Report_Unprotected,
    tag : bstr
]
SUIT_Report_Unprotected = SUIT_Report / SUIT_Report_COSE_Encrypt0
SUIT_Report_COSE_Encrypt0 = COSE_Encrypt0

SUIT_Report = {
  suit-reference              => SUIT_Reference,
  ? suit-report-nonce         => bstr,
  suit-report-records         => [
    * SUIT_Record / system-property-claims ],
  suit-report-result          => true / {
    suit-report-result-code   => int,
    suit-report-result-record => SUIT_Record,
    suit-report-result-reason => SUIT_Report_Reasons,
  },
  ? suit-report-capability-report => SUIT_Capability_Report,
  $$SUIT_Report_Extensions
}

SUIT_Reference = [
    suit-report-manifest-uri : tstr,
    suit-report-manifest-digest : SUIT_Digest
]

SUIT_Record = [
    suit-record-manifest-id        : [* uint ],
    suit-record-manifest-section   : int,
    suit-record-section-offset     : uint,
    suit-record-component-index    : uint,
    suit-record-properties         : {*$$SUIT_Parameters},
    $$SUIT_Record_Extensions
]

system-property-claims = {
  system-component-id => SUIT_Component_Identifier,
  + $$SUIT_Parameters,
}

SUIT_Capability_Report = {
  suit-component-capabilities  => [+ SUIT_Component_Capability]
  suit-command-capabilities          => [+ int],
  suit-parameters-capabilities       => [+ int],
  suit-crypt-algo-capabilities       => [+ int],
  ? suit-envelope-capabilities       => [+ int],
  ? suit-manifest-capabilities       => [+ int],
  ? suit-common-capabilities         => [+ int],
  ? suit-text-capabilities           => [+ int],
  ? suit-text-component-capabilities => [+ int],
  ? suit-dependency-capabilities     => [+ int],
  * [+int]                           => [+ int],
  $$SUIT_Capability_Report_Extensions
}

SUIT_Component_Capability = [*bstr,?true]

suit-report-nonce = 2
suit-report-records = 3
suit-report-result = 4
suit-report-result-code = 5
suit-report-result-record = 6
suit-report-result-reason = 7
suit-report-capability-report = 8
suit-reference = 99

system-component-id = 0

suit-record-manifest-id = 0
suit-record-manifest-section = 1
suit-record-section-offset = 2
suit-record-component-index = 3
suit-record-dependency-index = 4
suit-record-properties = 5

SUIT_Report_Reasons /= suit-report-reason-ok
SUIT_Report_Reasons /= suit-report-reason-cbor-parse
SUIT_Report_Reasons /= suit-report-reason-cose-unsupported
SUIT_Report_Reasons /= suit-report-reason-alg-unsupported
SUIT_Report_Reasons /= suit-report-reason-unauthorised
SUIT_Report_Reasons /= suit-report-reason-command-unsupported
SUIT_Report_Reasons /= suit-report-reason-component-unsupported
SUIT_Report_Reasons /= suit-report-reason-component-unauthorised
SUIT_Report_Reasons /= suit-report-reason-parameter-unsupported
SUIT_Report_Reasons /= suit-report-severing-unsupported
SUIT_Report_Reasons /= suit-report-reason-condition-failed
SUIT_Report_Reasons /= suit-report-reason-operation-failed

suit-report-reason-ok = 0
suit-report-reason-cbor-parse = 1
suit-report-reason-cose-unsupported = 2
suit-report-reason-alg-unsupported = 3
suit-report-reason-unauthorised = 4
suit-report-reason-command-unsupported = 5
suit-report-reason-component-unsupported = 6
suit-report-reason-component-unauthorised = 7
suit-report-reason-parameter-unsupported = 8
suit-report-severing-unsupported = 9
suit-report-reason-condition-failed = 10
suit-report-reason-operation-failed = 11

suit-component-capabilities        = 1
suit-command-capabilities          = 2
suit-parameters-capabilities       = 3
suit-crypt-algo-capabilities       = 4
suit-envelope-capabilities         = 5
suit-manifest-capabilities         = 6
suit-common-capabilities           = 7
suit-text-capabilities             = 8
suit-text-component-capabilities   = 9
suit-dependency-capabilities       = 10
  
]]></sourcecode></figure>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+1963LcWHLmfzzFWbZjJGqqSiJ1a3GtaVMUNa2w1NJSbE9M
SAo1WEBVwUIB1QCKVLXEiX2IfQA/ix/FT+L8MvNccClK6tm2N2Jb4XGzgHPN
k/fMkxiPx1GTNXl6YF6l03WVmpN0VVZNVsxNOTM/rpK4Sc2rJm7WdRSfnVXp
+Ze0TMppES9p0KSKZ804S5vZuF5nzbjiPuO929GUms/LanNgsmJWRlG2qg5M
U63rZv/WrQe39qO4SmOdK2s20UVZvZ9X5XpFz358ehq9Tzf0KDkwT4smrYq0
GT/GXFFUN3GRvIvzsqD5N2kdrbKDyJhqNk2Tutnk+tSYppwGf2ZFkhaNfVDT
Kqt0Vrvfm2XrZ1NlU9d4Wi6X1Ne9zYo8K/w06YdmnGd1M6ZBzsqcmo3LG3+k
NwSlZbxaEQSlbbxuFmVFix3TS/6XFdT60cQ8L6u4sA8Fso+qtEjiov2qrOZx
kf0SN1lZHJjDammeZcusSRPbIF3GWX5gzqTzZInOExzPP83xZkJbsdPz3N9P
zKOser8o818iP/f3afG+/ZwmPjBPqnhdLMpZWplXdEJ4blFm4JUuZUFjTc50
rH/CUmgRRRNPG25FkE5TgvTJIqUFNVVc16m5f5ffTcuEFnPt3p39B3evyRPC
lAPzOK6WhAVJo63WRQM8+3NaLeNiQ6hGCEd/Ntl5Csx4On7sFjCu4qYeT8sq
Wx6Yo/Lk6XNt4FGYcXSclLR8glDrNU3fjONquiCQTxuiEbw+eXL04PbtOwdR
0Z3Uj0nrymZp3dj2t+7uH9DC61R/39/bOzDHh6f9jg0j99PDHw4n07OyGjfx
vPZPyiodr+KKDo1ohJ5HhKYAETV4dfzsyYHZodGbRVbv0JNoPB7TgQHIBPzo
dEHkXM6aCyJES94EN9PQc0tzoPzTBSFwba6DKneN3YlZVeV5lgCrzUW84Z6A
vkmyGWEBrcOsZUyiVnNWlg1T+CwvL2oiR3OWGuo8rbKzlF5vTMxUVhZGjm5C
y8tqU6/SaTbLpozwrkNNrfNsvmguUvx/M0vT5CyevjfLdLqg9dVL2kTcRHHO
s8XU8TzNyxUhZ1aYVUkoVtcYkHYX+x3RqqqUcJMAtJ42gEOU0PRoWVOrRLZC
sOMHNBqWalcfwmVKw5fVJGKAL7MkydMo+gZArcpkzf2jz+0P0B7b11Fezudg
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
FFlNPzGyXEh7DpWA7/AQ//JMCO++CZMnbwZJqn/kwsXRxwOtSHQZcX8uHR0d
hL1IIV2fNeHL/jBWaJqwjvGBKW7GxMKxbK0aF2iBeE8GAbIpr0Pv2qV5rD+l
3/LjR5JgeEx6EAHo48c/oDTyJXTITirwQGdexsu1FaktUpTB3WiHYaopg9nd
3mHFi/2F6LPFnznqvAjyB7qvDjUML4mWmolYj9pplVCKrD/F3/cZ2COnP29I
K/+gmR1LCNMpY+esP4LelHKFHJXL7oTYgqOF1vySmhOL+YMUA4e2USHtr9GS
AlPhqLYcUMCVHJz+8meDrly9Fhz4OjBIyoiX1XxXDpHFDnMa9EPtyhc/ALOk
jDsfSFn4BgVJMjovBuLNIykFqHUJc6SUHJinx6dPaPVgUrXEUUIRLWMw/bDe
faR69xNJaWsT0rDmzmzG6u2d/k8fO7F1VL76C/30+GOjEDsDHesdqEJjq4SP
XAFDs4P9WB0S3t7jV382h8yE45x6rVD59jqptpPJgwcPdkfWw6gznRwH1Rd3
vJbPib9qYZDpPVCR/PKSNKjnfvWfjCPpT9jnJ58gh2LZn4L/RVdxn08wf+Wv
00eHnwIqxJnwtUQyxb7kILwJBePN7VmHaO+2XYUd2c5yCZ9k+caFhwYtAhEf
BAss65N5jETPpwhgfiJdX8ktBEBEu6J3EhL7tNWGlFbLeBW0seDsvxuyK7v3
5rxBNQguSSFDUT5CJAeZrjHpRiEO8Cw+S3Nawg8wzbccd7SPBnxT/FO3hmB0
m3vJ9c3+2zv8lm/w9V/e9S+PIP76Le75FmqK9tvcD9vwbbt+m2/pWd867bd7
8CCEwUCD8EDapvGvPZDWKF96ILfojZM2TKduoVzA9jLaC1u8UhOx32yfMVze
vpAqUv1GOOIjnwwk5QH7zXDWQUUvaddvdtchTHi7t99u4M6oeBv+LtTXQb4G
0IpcL/65iw/2wqpAm3nSS1x7NE80K21re4D9x+59xFfBdUfzvVx33DrC7aER
Dt2Nxk9mW0eckru7aG6aLbcXt898tzOzuH70ntnWXve29FKk2trvPvfTy4a/
fEXHb4cmdGJye78HTBFyNbA1wPbDv8X0Ya/uPfkM/PaALC/sXb3PNgcd/Pu/
fda/9ito4orxvpQ89kLOIETcvpXGmH5ki6INvAceB1W/BloAYY/gfy7nVbxa
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
YfyJXaVMGDkwY+Ra4H8C/rXDcAaKAAA=

-->

</rfc>

