<?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-06" 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="July" day="08"/>

    <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="RFC9459"/>. All of the AES-CTR security considerations in <xref target="RFC9459"/> 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>

</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='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'>
         </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='8' month='July' year='2024'/>
      <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-26'/>
   
</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'>
         </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='8' month='July' year='2024'/>
      <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-20'/>
   
</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>


<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-es256-ecdh-a128gcm
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, -29, -65534]
suit-sha256-eddsa-ecdh-a128ctr     = [-16, -8, -29, -65534]
suit-sha256-es256-ecdh-a128gcm     = [-16, -7, -29, 1]
suit-sha256-eddsa-ecdh-chacha-poly = [-16, -8, -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_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>


  </back>

<!-- ##markdown-source:
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
Bd/SgMH7P9aMuCEhMAAA

-->

</rfc>

