<?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.31 (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-04" category="std" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="MTI SUIT Algorithms">Mandatory-to-Implement Algorithms for Authors and Recipients of Software Update for the Internet of Things manifests</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">
      <organization>Nordic Semiconductor</organization>
      <address>
        <email>oyvind.ronningstad@gmail.com</email>
      </address>
    </author>
    <author initials="A." surname="Tsukamoto" fullname="Akira Tsukamoto">
      <organization>ALAXALA Networks Corp.</organization>
      <address>
        <email>akira.tsukamoto@alaxala.com</email>
      </address>
    </author>

    <date year="2024" month="January" day="23"/>

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

    <abstract>


<t>This document specifies algorithm profiles for SUIT manifest parsers and authors to ensure better interoperability. These profiles apply specifically to a constrained node software update use case.</t>



    </abstract>



  </front>

  <middle>


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

<t>Mandatory algorithms may change over time due to an evolving threat landscape. Algorithms are grouped into algorithm profiles to account for this. Profiles may be deprecated over time. SUIT will define five choices of MTI profile specifically for constrained node software update. These profiles are:</t>

<t><list style="symbols">
  <t>One Symmetric MTI profile</t>
  <t>Two "Current" Constrained Asymmetric MTI profiles</t>
  <t>Two "Current" AEAD Asymmetric MTI profiles</t>
  <t>One "Future" Constrained Asymmetric MTI profile</t>
</list></t>

<t>At least one MTI algorithm in each category MUST be FIPS qualified.</t>

<t>Because SUIT presents an asymmetric communication profile, with powerful/complex manifest authors and constrained manifest recipients, the requirements for Recipients and Authors are different.</t>

<t>Recipients MAY choose which MTI profile they wish to implement. It is RECOMMENDED that they implement the "Future" Asymmetric MTI profile. Recipients MAY implement any number of other profiles.</t>

<t>Authors MUST implement all MTI profiles. Authors MAY implement any number of other profiles.</t>

<t>AEAD is preferred over un-authenticated encryption. Where possible an AEAD profile SHOULD be selected. Certain constrained IoT applications require streaming decryption, which necessitates a non-AEAD ecryption algorithm. If the application is not a constrained device, the two AEAD profiles are RECOMMENDED.</t>

<t>Other use-cases of SUIT MAY define their own MTI algorithms.</t>

</section>
<section anchor="algorithms"><name>Algorithms</name>

<t>The algorithms that form a part of the profiles defined in this document are grouped into:</t>

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

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

<t>Recognized profiles are defined below.</t>

<section anchor="suit-sha256-hmac-a128kw-a128ctr"><name> Symmetric MTI profile: suit-sha256-hmac-a128kw-a128ctr</name>

<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-es256-ecdh-a128ctr"><name>Current Constrained Asymmetric MTI Profile 1: suit-sha256-es256-ecdh-a128ctr</name>

<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>ES256</c>
      <c>-7</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-eddsa-ecdh-a128ctr"><name>Current Constrained Asymmetric MTI Profile 2: suit-sha256-eddsa-ecdh-a128ctr</name>

<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>EDDSA</c>
      <c>-8</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-es256-ecdh-a128gcm"><name>Current AEAD Asymmetric MTI Profile 1: suit-sha256-es256-ecdh-a128gcm</name>

<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>ES256</c>
      <c>-7</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-eddsa-ecdh-chacha-poly"><name>Current AEAD Asymmetric MTI Profile 2: suit-sha256-eddsa-ecdh-chacha-poly</name>

<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>EDDSA</c>
      <c>-8</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>Future Constrained Asymmetric MTI Profile 1: suit-sha256-hsslms-a256kw-a256ctr</name>

<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="reporting-profiles"><name>Reporting Profiles</name>

<t>When using reverse-direction communication, particularly data structures that are designed for reporting of update capabilities, status, progress, or success, the same profile as the is used on the SUIT manifest SHOULD be used. There are cases where this is not possible, such as suit-sha256-hsslms-a256kw-a256ctr. In this case, the closest equivalent profile SHOULD be used, for example suit-sha256-es256-ecdh-a128ctr.</t>

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

<t>For the avoidance of doubt, there are scenarios where payload or manifest encryption are not required. In these scenarios, the encryption element of the selected profile is simply not used.</t>

<t>AES-CTR mode is specified, see <xref target="I-D.ietf-cose-aes-ctr-and-cbc"/>. All of the AES-CTR security considerations in <xref target="I-D.ietf-cose-aes-ctr-and-cbc"/> apply. A non-AEAD encryption mode is specified in this draft due to the following mitigating circumstances:</t>

<t><list style="symbols">
  <t>Streaming decryption must be supported. Therefore, there is no difference between AEAD and plaintext hash verification.</t>
  <t>Out-of-order decryption must be supported. Therefore, we must use a stream cipher that supports random access.</t>
  <t>There are no chosen plaintext attacks: the plaintext is authenticated prior to encryption.</t>
  <t>Content Encryption Keys MUST be used to encrypt only once. See <xref target="I-D.ietf-suit-firmware-encryption"/>.</t>
</list></t>

<t>As a result of these mitigating circumstances, AES-CTR is the most appropriate cipher for typical software/firmware delivery scenarios.</t>

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

<t>IANA is requested to create a page for COSE Algorithm Profiles within
the category for Software Update for the Internet of Things (SUIT)</t>

<t>IANA is also requested to create a registry for COSE Alforithm Profiles
within this page. The initial content of the registry is:</t>

<texttable>
      <ttcol align='left'>Profile</ttcol>
      <ttcol align='left'>Status</ttcol>
      <ttcol align='left'>Digest</ttcol>
      <ttcol align='left'>Auth</ttcol>
      <ttcol align='left'>Key Exchange</ttcol>
      <ttcol align='left'>Encryption</ttcol>
      <ttcol align='left'>Descriptor Array</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>suit-sha256-hmac-a128kw-a128ctr</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>5</c>
      <c>-3</c>
      <c>-65534</c>
      <c>[-16,   5,  -3, -65534]</c>
      <c><xref target="suit-sha256-hmac-a128kw-a128ctr"/></c>
      <c>suit-sha256-es256-ecdh-a128ctr</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-7</c>
      <c>-29</c>
      <c>-65534</c>
      <c>[-16,  -7, -29, -65534]</c>
      <c><xref target="suit-sha256-es256-ecdh-a128ctr"/></c>
      <c>suit-sha256-eddsa-ecdh-a128ctr</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-8</c>
      <c>-29</c>
      <c>-65534</c>
      <c>[-16,  -8, -29, -65534]</c>
      <c><xref target="suit-sha256-eddsa-ecdh-a128ctr"/></c>
      <c>suit-sha256-es256-ecdh-a128gcm</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-7</c>
      <c>-29</c>
      <c>1</c>
      <c>[-16,  -7, -29,      1]</c>
      <c><xref target="suit-sha256-es256-ecdh-a128gcm"/></c>
      <c>suit-sha256-eddsa-ecdh-chacha-poly</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-8</c>
      <c>-29</c>
      <c>24</c>
      <c>[-16,  -8, -29,     24]</c>
      <c><xref target="suit-sha256-eddsa-ecdh-chacha-poly"/></c>
      <c>suit-sha256-hsslms-a256kw-a256ctr</c>
      <c>MANDATORY</c>
      <c>-16</c>
      <c>-46</c>
      <c>-5</c>
      <c>-65532</c>
      <c>[-16, -46,  -5, -65532]</c>
      <c><xref target="suit-sha256-hsslms-a256kw-a256ctr"/></c>
</texttable>

<t>New entries to this registry require standards action.</t>

<t>-- back</t>

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

<t>The following CDDL 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 MUST 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[
SUIT_COSE_tool_tweak /= suit-sha256-hmac-a128kw-a128ctr
SUIT_COSE_tool_tweak /= suit-sha256-es256-ecdh-a128ctr
SUIT_COSE_tool_tweak /= suit-sha256-eddsa-ecdh-a128ctr
SUIT_COSE_tool_tweak /= suit-sha256-eddsa-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_ES256_ECDH_A128CTR
SUIT_COSE_Profiles /= SUIT_COSE_Profile_EDDSA_ECDH_A128CTR
SUIT_COSE_Profiles /= SUIT_COSE_Profile_ES256_ECDH_A128GCM
SUIT_COSE_Profiles /= SUIT_COSE_Profile_EDDSA_ECDH_CHACHA20_POLY1304
SUIT_COSE_Profiles /= SUIT_COSE_Profile_HSSLMS_A256KW_A256CTR

suit-sha256-hmac-a128kw-a128ctr = [-16, 5, -3, -65534]
suit-sha256-es256-ecdh-a128ctr = [-16, -7, -25, -65534]
suit-sha256-eddsa-ecdh-a128ctr = [-16, -8, -25, -65534]
suit-sha256-es256-ecdh-a128gcm = [-16, -7, -25, 1]
suit-sha256-eddsa-ecdh-chacha-poly = [-16, -8, -25, 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_ES256_ECDH_A128CTR = SUIT_COSE_Profile<-7,-65534> .and COSE_Messages
SUIT_COSE_Profile_EDDSA_ECDH_A128CTR = SUIT_COSE_Profile<-8,-65534> .and COSE_Messages
SUIT_COSE_Profile_ES256_ECDH_A128GCM = SUIT_COSE_Profile<-7,1> .and COSE_Messages
SUIT_COSE_Profile_EDDSA_ECDH_CHACHA20_POLY1304 = SUIT_COSE_Profile<-8,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>


  </middle>

  <back>


    <references title='Normative References'>



<reference anchor='RFC8152'>
  <front>
    <title>CBOR Object Signing and Encryption (COSE)</title>
    <author fullname='J. Schaad' initials='J.' surname='Schaad'/>
    <date month='July' year='2017'/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need for the ability to have basic security services defined 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>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8152'/>
  <seriesInfo name='DOI' value='10.17487/RFC8152'/>
</reference>

<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='I-D.ietf-cose-aes-ctr-and-cbc'>
   <front>
      <title>CBOR Object Signing and Encryption (COSE): AES-CTR and AES-CBC</title>
      <author fullname='Russ Housley' initials='R.' surname='Housley'>
         <organization>Vigil Security, LLC</organization>
      </author>
      <author fullname='Hannes Tschofenig' initials='H.' surname='Tschofenig'>
         <organization>Arm Limited</organization>
      </author>
      <date day='25' month='May' 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='Internet-Draft' value='draft-ietf-cose-aes-ctr-and-cbc-06'/>
   
</reference>


<reference anchor='I-D.ietf-suit-firmware-encryption'>
   <front>
      <title>Encrypted Payloads in SUIT Manifests</title>
      <author fullname='Hannes Tschofenig' initials='H.' surname='Tschofenig'>
         </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='23' month='October' year='2023'/>
      <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-18'/>
   
</reference>




    </references>

    <references title='Informative References'>




<reference anchor='I-D.ietf-suit-manifest'>
   <front>
      <title>A Concise Binary Object Representation (CBOR)-based Serialization Format for the Software Updates for Internet of Things (SUIT) Manifest</title>
      <author fullname='Brendan Moran' initials='B.' surname='Moran'>
         <organization>Arm Limited</organization>
      </author>
      <author fullname='Hannes Tschofenig' initials='H.' surname='Tschofenig'>
         </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='23' month='October' year='2023'/>
      <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 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-24'/>
   
</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>


    </references>



  </back>

<!-- ##markdown-source:
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
eL+9L37BtzQZ8P4Przj4pxQwAAA=

-->

</rfc>

