<?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.6.26 (Ruby 3.0.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-23" 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="22"/>

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

    <abstract>


<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>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>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>


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

<t>This document defines algorithm profiles, in IANA registry (<xref target="iana"/>), intended for authors of Software Updates for 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>

<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, in IANA registry (<xref target="iana"/>), 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 new "COSE SUIT Algorithm Profiles" registry, to be located within its own self-titled registry group. The registry will be listed in the "Software Update for the Internet of Things (SUIT)" category at https://www.iana.org/protocols.</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 lose their MANDATORY status. When this occurs, their status may be changed to either <bcp14>OPTIONAL</bcp14> or <bcp14>NOT RECOMMENDED</bcp14> for new implementations. Similarly, a profile may be transitioned from <bcp14>OPTIONAL</bcp14> to <bcp14>NOT RECOMMENDED</bcp14>. However, profiles once marked as <bcp14>OPTIONAL</bcp14> or <bcp14>NOT RECOMMENDED</bcp14> <bcp14>MUST NOT</bcp14> be transitioned to MANDATORY status in future revisions. Since it may be impossible to update certain parts of 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='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='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='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="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='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'>




<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='22' 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-14'/>
   
</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="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>


<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="RFC9053"/>.</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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
cewI3AN28OS2J75h457i2nBnIhPmcG+xZek++LgsYSPJJaQhpnj3TipDV+ku
5DLWcmw+fOiJc96P6V9daNMohXu3O/ZQmyziFkWOKiBQUAhBj7T1gU5uifnJ
EaFbH9LsiL9bTUCSRBG4ERtnby6vNjr2X/HqnD9fHP37m5OLo0P6fHk8PD0t
PwRuxuXx+ZvTw+pTtfLg/Ozs6NWhXYynovYo2Dgbfr9hXZyN89dXJ+evhqcb
1rD5JqXyAllDL1KVsRQGzpe03PHy4PX//Gd/B9j6F5iuQb+/9+GD+/JF//Md
fIEgJfY01k/2K7C+DBCbK5nSLhAoUjvkphnmPwMvNREkgsDmZz8QZn7cF1+O
wkV/52v3gC5ce1jgrPaQcbb6ZGWxRWLLo5ZjSmzWnjcwXYd3+H3te4F37+F6
+c1qhkOORik0tXXaYDG6Yji+pTilpmMvKUsj0zHp1cstmnR0CabMiZT8jDTC
FkckbvBbMOR30Dt29NvveNFHqHAsA/OHEaTpJVQN/A0X6l4o8JAp/E2EuAiD
efZjw2FvZz6vkilxCnObS1jczYPDw1OaeYToDYtDcZCnt1gAMY1U91jFMQRZ
HC3IMKQy7l4SOKHYPDo4PO4CVUJg8XFlTM7grtLGHirowAMgTmwenw0P6LDj
CHuRfwfTwHewluVyaTI1F8/EKcej0HhnNCPypmweX14+Oz1jEj3N5woC1lol
v5BNkuNxyrET80zNemB5m7EnRGN3Sg8ap/k96X73zsX2UJVWbQEYOFEbQzaH
rG4K01aolCLy3fA9G7vZOoVK3tEn4rXTn0FwJGFGnTp9wH+lO0VmxcubwL1s
yI3Lj8LUsJt1aM1elYXFswaNa2MkHkdvnV/n5W43NbOojLcwyWPZ9im1q1nb
pJJQVWLvefA29gTXpmbVJpepJaLMZYQ9nBlsXc+kyI1dzG6GTihv6qynODm6
+qae0riHWlZ7O0fGiTTbXMLyo4WZcrw5B0Nm5XIuBwfjQUuL789LJiRL7SAv
PU+4DIWPRos8jwtK1YqyTpqq1Jh8vqgU6UW1CAobTrzWFLbPIo9mfPc7BHpk
HMsQuidOMjrI0//WLeLp5TQ+/y+MTzOTg90X3Zkx8dx06fPNHf8DD+Uv5Wlg
9QdnQw56TdCrE2WyFEk+H0HtA2Wa3Z0SafC5fMzXHICVPR06aI1/dVElCcvM
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

-->

</rfc>

