<?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;">

]>

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

<rfc ipr="trust200902" docName="draft-ietf-suit-mti-22" category="std" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Cryptographic Algorithms for Internet of Things (IoT) Devices</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="Ø." surname="Rønningstad" fullname="Øyvind Rønningstad" asciiInitials="O. Ronningstad" asciiSurname="Ronningstad" asciiFullname="Oyvind Ronningstad">
      <organization>Nordic Semiconductor</organization>
      <address>
        <email>oyvind.ronningstad@gmail.com</email>
      </address>
    </author>
    <author initials="A." surname="Tsukamoto" fullname="Akira Tsukamoto">
      <organization>Openchip &amp; Software Technologies, S.L.</organization>
      <address>
        <email>akira.tsukamoto@gmail.com</email>
      </address>
    </author>

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

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

    <abstract>


<?line 72?>

<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.</t>

<t>The SUIT manifest, as defined in "A Manifest Information Model for Firmware Updates in Internet of Things (IoT) Devices" (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.</t>

<t>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 "A Firmware Update Architecture for Internet of Things" (RFC 9019).</t>



    </abstract>



  </front>

  <middle>


<?line 88?>

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

<t>This document defines algorithm profiles intended for authors of Software Updates of Internet of Things (SUIT) manifests and their recipients,
with the goal of promoting interoperability in software update scenarios for constrained nodes. These
profiles specify sets of algorithms that are tailored to the evolving security landscape, recognizing
that cryptographic requirements may change over time.</t>

<t>The following profiles are defined:</t>

<t><list style="symbols">
  <t>One profile designed for constrained devices that support only symmetric key cryptography</t>
  <t>Two profiles for constrained devices capable of using asymmetric key cryptography</t>
  <t>Two profiles that employ Authenticated Encryption with Associated Data (AEAD) ciphers</t>
  <t>One constrained asymmetric profile that uses a hash-based signature scheme</t>
</list></t>

<t>Due to the asymmetric nature of SUIT deployments - where manifest authors typically operate in
resource-rich environments while recipients are resource-constrained - the cryptographic
requirements differ between these two roles.</t>

<t>This specification uses AES-CTR in combination with a digest algorithm, as defined in <xref target="RFC9459"/>,
to support use cases that require out-of-order block reception and decryption-capabilities not
offered by AEAD algorithms. For further discussion of these constrained use cases, refer to
<xref target="aes-ctr-payloads"/>. Other SUIT use cases (see <xref target="I-D.ietf-suit-manifest"/>) may define different
profiles.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</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>This specification uses the following abbreviations:</t>

<t><list style="symbols">
  <t>Advanced Encryption Standard (AES)</t>
  <t>AES Counter (AES-CTR) Mode</t>
  <t>AES Key Wrap (AES-KW)</t>
  <t>Authenticated Encryption with Associated Data (AEAD)</t>
  <t>Concise Binary Object Representation (CBOR)</t>
  <t>CBOR Object Signing and Encryption (COSE)</t>
  <t>Concise Data Definition Language (CDDL)</t>
  <t>Elliptic Curve Diffie-Hellman Ephemeral-Static (ECDH-ES)</t>
  <t>Hash-based Message Authentication Code (HMAC)</t>
  <t>Hierarchical Signature System / Leighton-Micali Signature (HSS/LMS)</t>
  <t>Software Updates for Internet of Things (SUIT)</t>
</list></t>

<t>SUIT specifically addresses the requirements of constrained devices and networks, as described in <xref target="RFC9019"/>.</t>

<t>The terms "Author", "Recipient", and "Manifest" are defined in <xref target="I-D.ietf-suit-manifest"/>.</t>

</section>
<section anchor="profiles"><name>Profiles</name>

<t>Each profile consists of algorithms from the following categories:</t>

<t><list style="symbols">
  <t>Digest Algorithms</t>
  <t>Authentication Algorithms</t>
  <t>Key Exchange Algorithms (optional)</t>
  <t>Encryption Algorithms (optional)</t>
</list></t>

<t>Each profile references specific algorithm identifiers, as defined in <xref target="IANA-COSE"/>.
Since these algorithm identifiers are used in the context of the IETF SUIT manifest <xref target="I-D.ietf-suit-manifest"/>, they are represented using CBOR Object Signing and Encryption (COSE) structures as defined in <xref target="RFC9052"/> and <xref target="RFC9053"/>.</t>

<t>The use of the profiles by authors and recipients is based on the following assumptions:</t>

<t><list style="symbols">
  <t>Recipients <bcp14>MAY</bcp14> choose which profile they wish to implement. It is <bcp14>RECOMMENDED</bcp14> that they implement the <spanx style="verb">suit-sha256-hsslms-a256kw-a256ctr</spanx> profile (<xref target="suit-sha256-hsslms-a256kw-a256ctr"/>). Recipients <bcp14>MAY</bcp14> implement any number of other profiles not defined in this document. Recipients <bcp14>MAY</bcp14> choose not to implement encryption and the corresponding key exchange algorithms if they do not intend to support encrypted payloads.</t>
  <t>Authors <bcp14>MUST</bcp14> implement all profiles with a status set to 'MANDATORY' in <xref target="iana"/>. Authors <bcp14>MAY</bcp14> implement any number of additional profiles.</t>
</list></t>

<section anchor="suit-sha256-hmac-a128kw-a128ctr"><name>Profile <spanx style="verb">suit-sha256-hmac-a128kw-a128ctr</spanx></name>

<t>This profile only offers support for symmetric cryptographic algorithms.</t>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>HMAC-256</c>
      <c>5</c>
      <c>Key Exchange</c>
      <c>A128KW Key Wrap</c>
      <c>-3</c>
      <c>Encryption</c>
      <c>A128CTR</c>
      <c>-65534</c>
</texttable>

</section>
<section anchor="suit-sha256-esp256-ecdh-a128ctr"><name>Profile <spanx style="verb">suit-sha256-esp256-ecdh-a128ctr</spanx></name>

<t>This profile supports asymmetric algorithms for use with constrained devices.</t>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>ESP256</c>
      <c>-9</c>
      <c>Key Exchange</c>
      <c>ECDH-ES + A128KW</c>
      <c>-29</c>
      <c>Encryption</c>
      <c>A128CTR</c>
      <c>-65534</c>
</texttable>

</section>
<section anchor="suit-sha256-ed25519-ecdh-a128ctr"><name>Profile <spanx style="verb">suit-sha256-ed25519-ecdh-a128ctr</spanx></name>

<t>This profile supports an alternative choice of asymmetric algorithms for use with constrained devices.</t>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>Ed25519</c>
      <c>-19</c>
      <c>Key Exchange</c>
      <c>ECDH-ES + A128KW</c>
      <c>-29</c>
      <c>Encryption</c>
      <c>A128CTR</c>
      <c>-65534</c>
</texttable>

</section>
<section anchor="suit-sha256-esp256-ecdh-a128gcm"><name>Profile <spanx style="verb">suit-sha256-esp256-ecdh-a128gcm</spanx></name>

<t>This profile supports asymmetric algorithms in combination with AEAD algorithms.</t>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>ESP256</c>
      <c>-9</c>
      <c>Key Exchange</c>
      <c>ECDH-ES + A128KW</c>
      <c>-29</c>
      <c>Encryption</c>
      <c>A128GCM</c>
      <c>1</c>
</texttable>

</section>
<section anchor="suit-sha256-ed25519-ecdh-chacha-poly"><name>Profile <spanx style="verb">suit-sha256-ed25519-ecdh-chacha-poly</spanx></name>

<t>This profile also supports asymmetric algorithms with AEAD algorithms but offers an alternative to <spanx style="verb">suit-sha256-esp256-ecdh-a128gcm</spanx>.</t>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>Ed25519</c>
      <c>-19</c>
      <c>Key Exchange</c>
      <c>ECDH-ES + A128KW</c>
      <c>-29</c>
      <c>Encryption</c>
      <c>ChaCha20/Poly1305</c>
      <c>24</c>
</texttable>

</section>
<section anchor="suit-sha256-hsslms-a256kw-a256ctr"><name>Profile <spanx style="verb">suit-sha256-hsslms-a256kw-a256ctr</spanx></name>

<t>This profile utilizes a stateful hash-based signature algorithm, namely the Hierarchical Signature System / Leighton-Micali Signature (HSS/LMS), as a unique alternative to the  profiles listed above.</t>

<t>A note regarding the use of the HSS/LMS: The decision as to how deep the tree is, is a decision that affects authoring tools only (see <xref target="RFC8778"/>).
Verification is not affected by the choice of the "W" parameter, but the size of the signature is affected. To support the long lifetimes required by IoT devices, it is <bcp14>RECOMMENDED</bcp14> to use trees with greater height (see <xref section="2.2" sectionFormat="of" target="RFC8778"/>).</t>

<texttable>
      <ttcol align='left'>Algorithm Type</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>COSE Key</ttcol>
      <c>Digest</c>
      <c>SHA-256</c>
      <c>-16</c>
      <c>Authentication</c>
      <c>HSS/LMS</c>
      <c>-46</c>
      <c>Key Exchange</c>
      <c>A256KW</c>
      <c>-5</c>
      <c>Encryption</c>
      <c>A256CTR</c>
      <c>-65532</c>
</texttable>

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

<t>Payload encryption is used to protect sensitive content such as machine learning models, proprietary algorithms, and personal data <xref target="RFC6973"/>.
In the context of SUIT, the primary purpose of payload encryption is to defend against unauthorized observation during distribution. By encrypting
the payload, confidential information can be safeguarded from eavesdropping.</t>

<t>However, encrypting firmware or software update payloads on commodity devices do not constitute an effective cybersecurity defense against
targeted attacks. Once an attacker gains access to a device, they may still be able to extract the plaintext payload.</t>

<section anchor="payload-encryption-as-part-of-a-defense-in-depth-strategy"><name>Payload Encryption as Part of a Defense-in-Depth Strategy</name>

<t>To define the purpose of payload encryption as a defensive cybersecurity tool, it is important to define the capabilities of modern threat actors. A variety of capabilities are possible:</t>

<t><list style="symbols">
  <t>find bugs by binary code inspection</t>
  <t>send unexpected data to communication interfaces, looking for unexpected behavior</t>
  <t>use fault injection to bypass or manipulate code</t>
  <t>use communication attacks or fault injection along with gadgets found in the code</t>
</list></t>

<t>Given this range of capabilities, it is important to understand which capabilities are impacted by firmware encryption. Threat actors who find bugs by manual inspection or use gadgets found in the code will need to first extract the code from the target. In the IoT context, it is expected that most threat actors will start with sample devices and physical access to test attacks.</t>

<t>Due to these factors, payload encryption serves to limit the pool of attackers to those who have the technical capability to extract code from physical devices and those who perform code-free attacks.</t>

</section>
<section anchor="aes-ctr-payloads"><name>Use of AES-CTR in Payload Encryption</name>

<t>AES-CTR mode with a digest is specified, see <xref target="RFC9459"/>. All of the AES-CTR security considerations in <xref target="RFC9459"/> apply. See <xref target="I-D.ietf-suit-firmware-encryption"/> for additional background information.</t>

</section>
</section>
<section anchor="operational-considerations"><name>Operational Considerations</name>

<t>While this document focuses on the cryptographic aspects of manifest processing, several operational and manageability considerations are relevant when deploying these profiles in practice.</t>

<section anchor="profile-support-discovery"><name>Profile Support Discovery</name>

<t>To enable interoperability of the described profiles, it is important for a manifest author to determine which profiles are supported by a device. Furthermore, it is also important for the author and the distribution system (see <xref section="3" sectionFormat="of" target="I-D.ietf-suit-firmware-encryption"/>) to know whether firmware for a particular device or family of devices needs to be encrypted, and which key distribution mechanism shall be used. This information can be obtained through:</t>

<t><list style="symbols">
  <t>Manual configuration.</t>
  <t>Device management systems, as described in <xref target="RFC9019"/>, which typically maintain metadata about device capabilities and their lifecycle status. These systems may use proprietary or standardized management protocols to expose supported features. LwM2M <xref target="LwM2M"/> is one such standardized protocol. The Trusted Execution Environment Provisioning (TEEP) protocol <xref target="I-D.ietf-teep-protocol"/> is another option.</t>
  <t>Capability reporting mechanisms, such as those described in <xref target="I-D.ietf-suit-report"/>, which define structures that allow a device to communicate supported SUIT features and cryptographic capabilities to a management or attestation entity.</t>
</list></t>

</section>
<section anchor="profile-selection-and-control"><name>Profile Selection and Control</name>

<t>When a device supports multiple algorithm profiles, it is expected that the SUIT manifest author indicates the appropriate profile based on the intended recipient(s) and other policies. The manifest itself indicates which algorithms are used; devices are expected to validate manifests using supported algorithms.</t>

<t>Devices do not autonomously choose which profile to apply; rather, they either accept or reject a manifest based on the algorithm profile it uses. There is no protocol-level negotiation of profiles at SUIT manifest processing time. Any dynamic profile selection or configuration is expected to occur as part of other protocols, for example, through device management.</t>

</section>
<section anchor="profile-provisioning-and-constraints"><name>Profile Provisioning and Constraints</name>

<t>Provisioning for a given profile may include:</t>

<t><list style="symbols">
  <t>Installation of trust anchors for acceptable signers.</t>
  <t>Distribution of keys used by the content key distribution mechanism (see <xref section="4" sectionFormat="of" target="I-D.ietf-suit-firmware-encryption"/>).</t>
  <t>Availability of specific cryptographic libraries or hardware support (e.g., for post-quantum algorithms or AEAD ciphers).</t>
  <t>Evaluation of the required storage and processing resources for the selected profile.</t>
  <t>Support for manifest processing capabilities.</t>
</list></t>

<t>There may be conditions under which switching to a different algorithm profile is not feasible, such as:</t>

<t><list style="symbols">
  <t>Lack of hardware support (e.g., no crypto acceleration).</t>
  <t>Resource limitations on memory-constrained devices (e.g., insufficient flash or RAM).</t>
  <t>Deployment policy constraints or regulatory compliance requirements.</t>
</list></t>

<t>In such cases, a device management or update orchestration system should take these constraints into account when constructing and distributing manifests.</t>

</section>
<section anchor="logging-and-reporting"><name>Logging and Reporting</name>

<t>Implementations <bcp14>MAY</bcp14> log failures to process a manifest due to unsupported algorithm profiles or unavailable cryptographic functionality. When supported, such events <bcp14>SHOULD</bcp14> be reported using secure mechanisms, such as those described in <xref target="I-D.ietf-suit-report"/>, to assist operators in diagnosing update failures or misconfigurations.</t>

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

<t>IANA is requested to create a page for "COSE SUIT Algorithm Profiles" within
the "Software Update for the Internet of Things (SUIT)" registry group. IANA
is also requested to create a registry for "COSE SUIT Algorithm Profiles"
within that registry group.</t>

<t>While most profile attributes are self-explanatory, the status field warrants a brief explanation.
This field can take one of three values: MANDATORY, <bcp14>NOT RECOMMENDED</bcp14>, or <bcp14>OPTIONAL</bcp14>.</t>

<t><list style="symbols">
  <t>MANDATORY indicates that the profile is mandatory to implement for manifest authors.</t>
  <t><bcp14>NOT RECOMMENDED</bcp14> means that the profile should generally be avoided in new implementations.</t>
  <t><bcp14>OPTIONAL</bcp14> suggests that support for the profile is permitted but not required.</t>
</list></t>

<t>IANA is requested to add a note that mirrors these status values to the registry.</t>

<t>Adding new profiles or updating the status of existing profiles requires Standards Action (<xref section="4.9" sectionFormat="of" target="RFC8126"/>).</t>

<t>As time progresses, algorithm profiles may loose their MANDATORY status. Then, their status will become
either <bcp14>OPTIONAL</bcp14> or <bcp14>NOT RECOMMENDED</bcp14> for new implementations. Likewise, a profile may be transitioned from <bcp14>OPTIONAL</bcp14> to <bcp14>NOT RECOMMENDED</bcp14>. Since it may be impossible to update
certain parts of the IoT device firmware in the field, such as first stage bootloaders, support for
all relevant algorithms will almost always be required by authoring tools.</t>

<t>The initial content of the "COSE SUIT Algorithm Profiles" registry is:</t>

<section anchor="profile-suit-sha256-hmac-a128kw-a128ctr"><name>Profile: <spanx style="verb">suit-sha256-hmac-a128kw-a128ctr</spanx></name>

<t><list style="symbols">
  <t>Profile: <spanx style="verb">suit-sha256-hmac-a128kw-a128ctr</spanx></t>
  <t>Status: MANDATORY</t>
  <t>Digest: -16</t>
  <t>Auth: 5</t>
  <t>Key Exchange: -3</t>
  <t>Encryption: -65534</t>
  <t>Descriptor Array: <spanx style="verb">[-16, 5, -3, -65534]</spanx></t>
  <t>Reference: Section 3.1 of THIS_DOCUMENT</t>
</list></t>

</section>
<section anchor="profile-suit-sha256-esp256-ecdh-a128ctr"><name>Profile: <spanx style="verb">suit-sha256-esp256-ecdh-a128ctr</spanx></name>

<t><list style="symbols">
  <t>Profile: <spanx style="verb">suit-sha256-esp256-ecdh-a128ctr</spanx></t>
  <t>Status: MANDATORY</t>
  <t>Digest: -16</t>
  <t>Auth: -9</t>
  <t>Key Exchange: -29</t>
  <t>Encryption: -65534</t>
  <t>Descriptor Array: <spanx style="verb">[-16, -9, -29, -65534]</spanx></t>
  <t>Reference: Section 3.2 of THIS_DOCUMENT</t>
</list></t>

</section>
<section anchor="profile-suit-sha256-ed25519-ecdh-a128ctr"><name>Profile: <spanx style="verb">suit-sha256-ed25519-ecdh-a128ctr</spanx></name>

<t><list style="symbols">
  <t>Profile: <spanx style="verb">suit-sha256-ed25519-ecdh-a128ctr</spanx></t>
  <t>Status: MANDATORY</t>
  <t>Digest: -16</t>
  <t>Auth: -19</t>
  <t>Key Exchange: -29</t>
  <t>Encryption: -65534</t>
  <t>Descriptor Array: <spanx style="verb">[-16, -19, -29, -65534]</spanx></t>
  <t>Reference: Section 3.3 of THIS_DOCUMENT</t>
</list></t>

</section>
<section anchor="profile-suit-sha256-esp256-ecdh-a128gcm"><name>Profile: <spanx style="verb">suit-sha256-esp256-ecdh-a128gcm</spanx></name>

<t><list style="symbols">
  <t>Profile: <spanx style="verb">suit-sha256-esp256-ecdh-a128gcm</spanx></t>
  <t>Status: MANDATORY</t>
  <t>Digest: -16</t>
  <t>Auth: -9</t>
  <t>Key Exchange: -29</t>
  <t>Encryption: 1</t>
  <t>Descriptor Array: <spanx style="verb">[-16, -9, -29, 1]</spanx></t>
  <t>Reference: Section 3.4 of THIS_DOCUMENT</t>
</list></t>

</section>
<section anchor="profile-suit-sha256-ed25519-ecdh-chacha-poly"><name>Profile: <spanx style="verb">suit-sha256-ed25519-ecdh-chacha-poly</spanx></name>

<t><list style="symbols">
  <t>Profile: <spanx style="verb">suit-sha256-ed25519-ecdh-chacha-poly</spanx></t>
  <t>Status: MANDATORY</t>
  <t>Digest: -16</t>
  <t>Auth: -19</t>
  <t>Key Exchange: -29</t>
  <t>Encryption: 24</t>
  <t>Descriptor Array: <spanx style="verb">[-16, -19, -29, 24]</spanx></t>
  <t>Reference: Section 3.5 of THIS_DOCUMENT</t>
</list></t>

</section>
<section anchor="profile-suit-sha256-hsslms-a256kw-a256ctr"><name>Profile: <spanx style="verb">suit-sha256-hsslms-a256kw-a256ctr</spanx></name>

<t><list style="symbols">
  <t>Profile: <spanx style="verb">suit-sha256-hsslms-a256kw-a256ctr</spanx></t>
  <t>Status: MANDATORY</t>
  <t>Digest: -16</t>
  <t>Auth: -46</t>
  <t>Key Exchange: -5</t>
  <t>Encryption: -65532</t>
  <t>Descriptor Array: <spanx style="verb">[-16, -46, -5, -65532]</spanx></t>
  <t>Reference: Section 3.6 of THIS_DOCUMENT</t>
</list></t>

</section>
</section>


  </middle>

  <back>


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

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



<reference anchor="RFC8778">
  <front>
    <title>Use of the HSS/LMS Hash-Based Signature Algorithm with CBOR Object Signing and Encryption (COSE)</title>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <date month="April" year="2020"/>
    <abstract>
      <t>This document specifies the conventions for using the Hierarchical Signature System (HSS) / Leighton-Micali Signature (LMS) hash-based signature algorithm with the CBOR Object Signing and Encryption (COSE) syntax. The HSS/LMS algorithm is one form of hash-based digital signature; it is described in RFC 8554.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8778"/>
  <seriesInfo name="DOI" value="10.17487/RFC8778"/>
</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="RFC9459">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): AES-CTR and AES-CBC</title>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR) data format is designed for small code size and small message size. CBOR Object Signing and Encryption (COSE) is specified in RFC 9052 to provide basic security services using the CBOR data format. This document specifies the conventions for using AES-CTR and AES-CBC as content encryption algorithms with COSE.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9459"/>
  <seriesInfo name="DOI" value="10.17487/RFC9459"/>
</reference>

<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="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>
<reference anchor="RFC8126">
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author fullname="M. Cotton" initials="M." surname="Cotton"/>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <author fullname="T. Narten" initials="T." surname="Narten"/>
    <date month="June" year="2017"/>
    <abstract>
      <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
      <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
      <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="26"/>
  <seriesInfo name="RFC" value="8126"/>
  <seriesInfo name="DOI" value="10.17487/RFC8126"/>
</reference>
<reference anchor="RFC8610">
  <front>
    <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="C. Vigano" initials="C." surname="Vigano"/>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <date month="June" year="2019"/>
    <abstract>
      <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8610"/>
  <seriesInfo name="DOI" value="10.17487/RFC8610"/>
</reference>



    </references>

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




<reference anchor="I-D.ietf-suit-firmware-encryption">
   <front>
      <title>Encrypted Payloads in SUIT Manifests</title>
      <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
      </author>
      <author fullname="Russ Housley" initials="R." surname="Housley">
         <organization>Vigil Security, LLC</organization>
      </author>
      <author fullname="Brendan Moran" initials="B." surname="Moran">
         <organization>Arm Limited</organization>
      </author>
      <author fullname="David Brown" initials="D." surname="Brown">
         <organization>Linaro</organization>
      </author>
      <author fullname="Ken Takayama" initials="K." surname="Takayama">
         <organization>SECOM CO., LTD.</organization>
      </author>
      <date day="7" month="July" year="2025"/>
      <abstract>
	 <t>   This document specifies techniques for encrypting software, firmware,
   machine learning models, and personalization data by utilizing the
   IETF SUIT manifest.  Key agreement is provided by ephemeral-static
   (ES) Diffie-Hellman (DH) and AES Key Wrap (AES-KW).  ES-DH uses
   public key cryptography while AES-KW uses a pre-shared key.
   Encryption of the plaintext is accomplished with conventional
   symmetric key cryptography.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-suit-firmware-encryption-25"/>
   
</reference>

<reference anchor="I-D.ietf-suit-report">
   <front>
      <title>Secure Reporting of Update Status</title>
      <author fullname="Brendan Moran" initials="B." surname="Moran">
         <organization>Arm Limited</organization>
      </author>
      <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         <organization>Fraunhofer SIT</organization>
      </author>
      <date day="7" month="July" year="2025"/>
      <abstract>
	 <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>
   <seriesInfo name="Internet-Draft" value="draft-ietf-suit-report-13"/>
   
</reference>
<reference anchor="RFC9053">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</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 a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
      <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9053"/>
  <seriesInfo name="DOI" value="10.17487/RFC9053"/>
</reference>
<reference anchor="RFC9019">
  <front>
    <title>A Firmware Update Architecture for Internet of Things</title>
    <author fullname="B. Moran" initials="B." surname="Moran"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <author fullname="D. Brown" initials="D." surname="Brown"/>
    <author fullname="M. Meriac" initials="M." surname="Meriac"/>
    <date month="April" year="2021"/>
    <abstract>
      <t>Vulnerabilities in Internet of Things (IoT) devices have raised the need for a reliable and secure firmware update mechanism suitable for devices with resource constraints. Incorporating such an update mechanism is a fundamental requirement for fixing vulnerabilities, but it also enables other important capabilities such as updating configuration settings and adding new functionality.</t>
      <t>In addition to the definition of terminology and an architecture, this document provides the motivation for the standardization of a manifest format as a transport-agnostic means for describing and protecting firmware updates.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9019"/>
  <seriesInfo name="DOI" value="10.17487/RFC9019"/>
</reference>
<reference anchor="RFC6973">
  <front>
    <title>Privacy Considerations for Internet Protocols</title>
    <author fullname="A. Cooper" initials="A." surname="Cooper"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <author fullname="B. Aboba" initials="B." surname="Aboba"/>
    <author fullname="J. Peterson" initials="J." surname="Peterson"/>
    <author fullname="J. Morris" initials="J." surname="Morris"/>
    <author fullname="M. Hansen" initials="M." surname="Hansen"/>
    <author fullname="R. Smith" initials="R." surname="Smith"/>
    <date month="July" year="2013"/>
    <abstract>
      <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6973"/>
  <seriesInfo name="DOI" value="10.17487/RFC6973"/>
</reference>

<reference anchor="I-D.ietf-teep-protocol">
   <front>
      <title>Trusted Execution Environment Provisioning (TEEP) Protocol</title>
      <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
      <author fullname="Mingliang Pei" initials="M." surname="Pei">
         <organization>Broadcom</organization>
      </author>
      <author fullname="Dave Wheeler" initials="D. M." surname="Wheeler">
         <organization>Amazon</organization>
      </author>
      <author fullname="Dave Thaler" initials="D." surname="Thaler">
         <organization>Microsoft</organization>
      </author>
      <author fullname="Akira Tsukamoto" initials="A." surname="Tsukamoto">
         <organization>Openchip &amp; Software Technologies, S.L.</organization>
      </author>
      <date day="3" month="March" year="2025"/>
      <abstract>
	 <t>   This document specifies a protocol that installs, updates, and
   deletes Trusted Components in a device with a Trusted Execution
   Environment (TEE).  This specification defines an interoperable
   protocol for managing the lifecycle of Trusted Components.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-teep-protocol-21"/>
   
</reference>

<reference anchor="IANA-COSE" target="https://www.iana.org/assignments/cose/cose.xhtml">
  <front>
    <title>CBOR Object Signing and Encryption (COSE)</title>
    <author >
      <organization></organization>
    </author>
    <date year="2022"/>
  </front>
</reference>
<reference anchor="LwM2M" target="https://www.openmobilealliance.org/specifications/lwm2m">
  <front>
    <title>OMA Lightweight M2M</title>
    <author >
      <organization>Open Mobile Alliance</organization>
    </author>
    <date year="2025" month="April" day="20"/>
  </front>
</reference>


    </references>

</references>


<?line 399?>

<section anchor="full-cddl"><name>Full CDDL</name>

<t>The following CDDL snippet <xref target="RFC8610"/> creates a subset of COSE for use with SUIT. Both tagged and untagged messages
are defined. SUIT only uses tagged COSE messages, but untagged messages are also defined for use in
protocols that share a ciphersuite with SUIT.</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"/>.</t>

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

SUIT_COSE_tool_tweak /= suit-sha256-hmac-a128kw-a128ctr
SUIT_COSE_tool_tweak /= suit-sha256-esp256-ecdh-a128ctr
SUIT_COSE_tool_tweak /= suit-sha256-ed25519-ecdh-a128ctr
SUIT_COSE_tool_tweak /= suit-sha256-esp256-ecdh-a128gcm
SUIT_COSE_tool_tweak /= suit-sha256-ed25519-ecdh-chacha-poly
SUIT_COSE_tool_tweak /= suit-sha256-hsslms-a256kw-a256ctr
SUIT_COSE_tool_tweak /= SUIT_COSE_Profiles

SUIT_COSE_Profiles /= SUIT_COSE_Profile_HMAC_A128KW_A128CTR
SUIT_COSE_Profiles /= SUIT_COSE_Profile_ESP256_ECDH_A128CTR
SUIT_COSE_Profiles /= SUIT_COSE_Profile_ED25519_ECDH_A128CTR
SUIT_COSE_Profiles /= SUIT_COSE_Profile_ESP256_ECDH_A128GCM
SUIT_COSE_Profiles /= \
                     SUIT_COSE_Profile_ED25519_ECDH_CHACHA20_POLY1304
SUIT_COSE_Profiles /= SUIT_COSE_Profile_HSSLMS_A256KW_A256CTR

suit-sha256-hmac-a128kw-a128ctr    = [-16, 5, -3, -65534]
suit-sha256-esp256-ecdh-a128ctr     = [-16, -9, -29, -65534]
suit-sha256-ed25519-ecdh-a128ctr     = [-16, -19, -29, -65534]
suit-sha256-esp256-ecdh-a128gcm     = [-16, -9, -29, 1]
suit-sha256-ed25519-ecdh-chacha-poly = [-16, -19, -29, 24]
suit-sha256-hsslms-a256kw-a256ctr  = [-16, -46, -5, -65532]

SUIT_COSE_Profile_HMAC_A128KW_A128CTR =
    SUIT_COSE_Profile<5,-65534> .and COSE_Messages
SUIT_COSE_Profile_ESP256_ECDH_A128CTR =
    SUIT_COSE_Profile<-9,-65534> .and COSE_Messages
SUIT_COSE_Profile_ED25519_ECDH_A128CTR =
    SUIT_COSE_Profile<-19,-65534> .and COSE_Messages
SUIT_COSE_Profile_ESP256_ECDH_A128GCM =
    SUIT_COSE_Profile<-9,1> .and COSE_Messages
SUIT_COSE_Profile_ED25519_ECDH_CHACHA20_POLY1304 =
    SUIT_COSE_Profile<-19,24> .and COSE_Messages
SUIT_COSE_Profile_HSSLMS_A256KW_A256CTR =
    SUIT_COSE_Profile<-46,-65532> .and COSE_Messages

SUIT_COSE_Profile<authid, encid> = SUIT_COSE_Messages<authid,encid>

SUIT_COSE_Messages<authid, encid> =
    SUIT_COSE_Untagged_Message<authid, encid> /
    SUIT_COSE_Tagged_Message<authid, encid> 
      
SUIT_COSE_Untagged_Message<authid, encid> = SUIT_COSE_Sign<authid> /
    SUIT_COSE_Sign1<authid> / SUIT_COSE_Encrypt<encid> / 
    SUIT_COSE_Encrypt0<encid> / SUIT_COSE_Mac<authid> /
    SUIT_COSE_Mac0<authid> 

SUIT_COSE_Tagged_Message<authid, encid> =
    SUIT_COSE_Sign_Tagged<authid> / SUIT_COSE_Sign1_Tagged<authid> /
    SUIT_COSE_Encrypt_Tagged<encid> / SUIT_COSE_Encrypt0_Tagged<\
                                                             encid> /
    SUIT_COSE_Mac_Tagged<authid> / SUIT_COSE_Mac0_Tagged<authid>

; Note: This is not the same definition as is used in COSE.
; It restricts a COSE header definition further without
; repeating the COSE definition. It should be merged
; with COSE by using the CDDL .and operator.
SUIT_COSE_Profile_Headers<algid> = (
    protected : bstr .cbor SUIT_COSE_alg_map<algid>,
    unprotected : SUIT_COSE_header_map
)
SUIT_COSE_alg_map<algid> = {
    1 => algid,
    * int => any
}

SUIT_COSE_header_map = {
    * int => any
}

SUIT_COSE_Sign_Tagged<authid> = #6.98(SUIT_COSE_Sign<authid>)


SUIT_COSE_Sign<authid> = [
    SUIT_COSE_Profile_Headers<authid>,
    payload : bstr / nil,
    signatures : [+ SUIT_COSE_Signature<authid>]
]


SUIT_COSE_Signature<authid> =  [
    SUIT_COSE_Profile_Headers<authid>,      
    signature : bstr
]


SUIT_COSE_Sign1_Tagged<authid> = #6.18(SUIT_COSE_Sign1<authid>)


SUIT_COSE_Sign1<authid> = [
    SUIT_COSE_Profile_Headers<authid>,
    payload : bstr / nil,
    signature : bstr
]


SUIT_COSE_Encrypt_Tagged<encid> = #6.96(SUIT_COSE_Encrypt<encid>)


SUIT_COSE_Encrypt<encid> = [
    SUIT_COSE_Profile_Headers<encid>,
    ciphertext : bstr / nil,
    recipients : [+SUIT_COSE_recipient<encid>]
]


SUIT_COSE_recipient<encid> = [    
    SUIT_COSE_Profile_Headers<encid>,
    ciphertext : bstr / nil,
    ? recipients : [+SUIT_COSE_recipient<encid>]
]


SUIT_COSE_Encrypt0_Tagged<encid> = #6.16(SUIT_COSE_Encrypt0<encid>)


SUIT_COSE_Encrypt0<encid> = [
    SUIT_COSE_Profile_Headers<encid>,
    ciphertext : bstr / nil,
]


SUIT_COSE_Mac_Tagged<authid> = #6.97(SUIT_COSE_Mac<authid>)


SUIT_COSE_Mac<authid> = [
   SUIT_COSE_Profile_Headers<authid>,      
   payload : bstr / nil,
   tag : bstr,
   recipients :[+SUIT_COSE_recipient<authid>]
]


SUIT_COSE_Mac0_Tagged<authid> = #6.17(SUIT_COSE_Mac0<authid>)


SUIT_COSE_Mac0<authid> = [
   SUIT_COSE_Profile_Headers<authid>,      
   payload : bstr / nil,
   tag : bstr,
]
]]></sourcecode></figure>

</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>We would like to specifically thank Henk Birkholz, Mohamed Boucadair, Deb Cooley, Lorenzo Corneo,
Linda Dunbar, Russ Housley, Michael B. Jones, Jouni Korhonen, Magnus Nyström, Michael Richardson,
and Hannes Tschofenig for their review comments.</t>

</section>


  </back>

<!-- ##markdown-source:
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
IGSV8lyG14jrLqgEQk6NP4AO8Upq/Spjm8DuZFe+oIo9DkbOiKtzewtrwDca
2bAsi2VkOenuMbCewbHNk2LI0guZMce57EiY9qOkf6xS6PRlTl2h+QouQJc9
AoZ/pyhIaxMJ1jo1yBaWBgXpKiyRTHInOiX4RisFZ5BwZyShZGJAlhz5LhJf
6odD1Llv3+yAg4/AjycnuGA2o8mvSTHnUsvE1m5DqnOCzKm1UFhlSHSLRL1J
re1lNQFmxH84m9JCU9lyJtkuxlpfsyRR6F5vnKiFvIl0BphkJGeyiKlE8Fdn
C6kRsUolWIttVJtKi5hkjjByW5pHOkGh5W1Ykk24NcByOqcW8UwXiVcsA8xq
2AE0z2wvt0mxToYACvhG1XZXRlqjMZbL0ktVylQLAnWyPY4Bim5yAncvWJ9L
JgiXAm28Cm4KqU+UtZM4E0bGF3xeUxVQraYNhLNu5NKchSsvXLGMPfdSm7wp
ZfY8EAEqwkQ2kkosjSJzulgZjmZqfc25CenU2+/YsjQw5F6X5pCBtGMfMQ1W
Wl2DwrB6OuNgD1jY6h7CEnljlSan0UDGo+LTyrcLNWkqhP1b1BDhJsi+8ob+
jAKd+iYwIq+s3nt92A6z8vaTtf4koi+3ZWkZ6Tds6/YQDSPZ0KHq1A5oPK0M
bEoglUEJm2622eQVMk3j1QBOeb0H2jGgiA08OVKXyya4OM3qsBhWboe7ohep
OxTLmr4+CL5b2Hqr34Oc4YWxU09rzXHYzJSDRrJ2ZRnbTU/xEJMh70XTJt6h
xDYslnNVsrtFC1vmjtUNaTT1Kt1YgIt8/VEgkC0lMYE8DBpZxKULF48jE9IE
iPUFKmG3szbu4phUt1rKA9YtDBO6PZNgHQG1YsgXNKrX9jouerU2p3SLA/GN
7aUvdabKkzjRbB7HIxP2nLLa60cgwtgkpBW6PuZpoftFZ4eQv06QJoDUXKuu
bKK9K0J20Be2PnN4W4O+jLhOWmkjWTfjutVVFdlGcJYgVJNu4L1UFLBGZimQ
yNmogEJJN3PWES7pSW5LSzB2upgvuINwbq0xh1rzInOC3ncji07SWJItne7u
qvUcsvWMyZJiEvwPdHPJvhVpWZGXtFibYbODV5SdhKuQyjdcDy+H2BwOHAsV
VpKrwJfiOdcl5sjTQ72cGzbWNHIUU8vUTHHOhEN4bhf34X9hFiLSW2Xj7wbs
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
pG6rn10eBP8LJKg3L8RaAAA=

-->

</rfc>

