<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.35 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-reddy-cose-hpke-pq-pqt-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="COSE HPKE PQ">COSE HPKE PQ &amp; PQ/T Algorithm Registrations</title>
    <seriesInfo name="Internet-Draft" value="draft-reddy-cose-hpke-pq-pqt-00"/>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <email>k.tirumaleswar_reddy@nokia.com</email>
      </address>
    </author>
    <author fullname="Hannes Tschofenig">
      <organization abbrev="UniBw M.">University of the Bundeswehr Munich</organization>
      <address>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <author fullname="Filip Skokan">
      <organization>Okta</organization>
      <address>
        <email>panva.ip@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="April" day="22"/>
    <area>Security</area>
    <workgroup>CBOR Object Signing and Encryption</workgroup>
    <keyword>COSE</keyword>
    <keyword>HPKE</keyword>
    <keyword>post-quantum</keyword>
    <keyword>hybrid</keyword>
    <keyword>ML-KEM</keyword>
    <keyword>PQ</keyword>
    <keyword>PQ/T</keyword>
    <keyword>CRQC</keyword>
    <abstract>
      <?line 65?>

<t>This document registers Post-Quantum (PQ) and Post-Quantum/Traditional (PQ/T)
hybrid algorithm identifiers for use with CBOR Object Signing and Encryption
(COSE), building on the Hybrid Public Key Encryption (HPKE) framework.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://tireddy2.github.io/Hybrid-KEM-with-COSE-JOSE/draft-reddy-cose-hpke-pq-pqt.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-reddy-cose-hpke-pq-pqt/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        cose Working Group mailing list (<eref target="mailto:cose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cose/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/tireddy2/Hybrid-KEM-with-COSE-JOSE"/>.</t>
    </note>
  </front>
  <middle>
    <?line 72?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="I-D.ietf-cose-hpke"/> defines how to use Hybrid Public Key Encryption (HPKE)
with COSE_Encrypt0 and COSE_Encrypt structures (<xref target="RFC9052"/>) using traditional
Key Encapsulation Mechanisms (KEM) based on Elliptic-curve Diffie-Hellman (ECDH).</t>
      <t>This document extends the set of registered HPKE algorithms to include Post-Quantum
(PQ) and Post-Quantum/Traditional (PQ/T) hybrid KEMs, as defined in
<xref target="I-D.ietf-hpke-pq"/>. These algorithms provide protection against attacks by
cryptographically relevant quantum computers.</t>
      <t>The term "PQ/T hybrid" is used here consistent with <xref target="I-D.ietf-hpke-pq"/> to denote a
combination of post-quantum and traditional algorithms, and should not be confused
with HPKE's use of "hybrid" to describe the combination of asymmetric and symmetric
encryption.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>This document uses the terms "Traditional Algorithm", "Post-Quantum Algorithm",
"PQ/T Hybrid Scheme", and "PQ/T Hybrid KEM" as defined in <xref target="RFC9794"/>. The
term "pure post-quantum" is used in this document to refer to a
single-algorithm scheme using only a post-quantum algorithm, with no
traditional component.</t>
    </section>
    <section anchor="algorithm-identifiers">
      <name>Algorithm Identifiers</name>
      <t>This section defines the algorithm identifiers for PQ and PQ/T HPKE-based
encryption in COSE. Each algorithm is defined by a combination of an HPKE KEM,
a Key Derivation Function (KDF), and an Authenticated Encryption with
Associated Data (AEAD) algorithm.</t>
      <t>All algorithms defined in this section follow the same operational model as
those in <xref target="I-D.ietf-cose-hpke"/>, supporting both integrated encryption
as defined in <xref section="3.2" sectionFormat="of" target="I-D.ietf-cose-hpke"/> and key encryption
as defined in <xref section="3.3" sectionFormat="of" target="I-D.ietf-cose-hpke"/>.</t>
      <t>Test vectors for all algorithms defined in this section are provided in
<xref target="test-vectors"/>.</t>
      <section anchor="pqt-hybrid-integrated-encryption-algorithms">
        <name>PQ/T Hybrid Integrated Encryption Algorithms</name>
        <t>The following table lists the algorithm identifiers for PQ/T hybrid integrated
encryption, where HPKE directly encrypts the plaintext without a separate
Content Encryption Key:</t>
        <!-- begin:table cose-pqt-hybrid-integrated-table "PQ/T Hybrid Integrated Encryption Algorithms" ; see README for regeneration instructions, do not edit -->

<table anchor="cose-pqt-hybrid-integrated-table">
          <name>PQ/T Hybrid Integrated Encryption Algorithms</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Value</th>
              <th align="left">HPKE KEM</th>
              <th align="left">HPKE KDF</th>
              <th align="left">HPKE AEAD</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">HPKE-8</td>
              <td align="left">TBD (Assumed: 54)</td>
              <td align="left">MLKEM768-P256 (<tt>0x0050</tt>)</td>
              <td align="left">SHAKE256 (<tt>0x0011</tt>)</td>
              <td align="left">AES-256-GCM (<tt>0x0002</tt>)</td>
            </tr>
            <tr>
              <td align="left">HPKE-9</td>
              <td align="left">TBD (Assumed: 56)</td>
              <td align="left">MLKEM768-X25519 (<tt>0x647a</tt>)</td>
              <td align="left">SHAKE256 (<tt>0x0011</tt>)</td>
              <td align="left">AES-256-GCM (<tt>0x0002</tt>)</td>
            </tr>
            <tr>
              <td align="left">HPKE-10</td>
              <td align="left">TBD (Assumed: 58)</td>
              <td align="left">MLKEM1024-P384 (<tt>0x0051</tt>)</td>
              <td align="left">SHAKE256 (<tt>0x0011</tt>)</td>
              <td align="left">AES-256-GCM (<tt>0x0002</tt>)</td>
            </tr>
          </tbody>
        </table>
        <!-- end:table -->

<t>These algorithms combine ML-KEM with a traditional elliptic curve algorithm in a
PQ/T hybrid KEM, with the goal that compromise of either the post-quantum or
the traditional component alone does not undermine the security of the resulting
encryption.</t>
      </section>
      <section anchor="pure-pq-integrated-encryption-algorithms">
        <name>Pure PQ Integrated Encryption Algorithms</name>
        <t>The following table lists the algorithm identifiers for pure post-quantum
integrated encryption:</t>
        <!-- begin:table cose-pure-pq-integrated-table "Pure PQ Integrated Encryption Algorithms" ; see README for regeneration instructions, do not edit -->

<table anchor="cose-pure-pq-integrated-table">
          <name>Pure PQ Integrated Encryption Algorithms</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Value</th>
              <th align="left">HPKE KEM</th>
              <th align="left">HPKE KDF</th>
              <th align="left">HPKE AEAD</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">HPKE-11</td>
              <td align="left">TBD (Assumed: 60)</td>
              <td align="left">ML-KEM-512 (<tt>0x0040</tt>)</td>
              <td align="left">SHAKE256 (<tt>0x0011</tt>)</td>
              <td align="left">AES-128-GCM (<tt>0x0001</tt>)</td>
            </tr>
            <tr>
              <td align="left">HPKE-12</td>
              <td align="left">TBD (Assumed: 62)</td>
              <td align="left">ML-KEM-768 (<tt>0x0041</tt>)</td>
              <td align="left">SHAKE256 (<tt>0x0011</tt>)</td>
              <td align="left">AES-256-GCM (<tt>0x0002</tt>)</td>
            </tr>
            <tr>
              <td align="left">HPKE-13</td>
              <td align="left">TBD (Assumed: 64)</td>
              <td align="left">ML-KEM-1024 (<tt>0x0042</tt>)</td>
              <td align="left">SHAKE256 (<tt>0x0011</tt>)</td>
              <td align="left">AES-256-GCM (<tt>0x0002</tt>)</td>
            </tr>
          </tbody>
        </table>
        <!-- end:table -->

<t>These algorithms provide pure post-quantum security using ML-KEM without a
traditional algorithm component.</t>
      </section>
      <section anchor="pqt-hybrid-key-encryption-algorithms">
        <name>PQ/T Hybrid Key Encryption Algorithms</name>
        <t>The following table lists the algorithm identifiers for PQ/T hybrid key
encryption, where HPKE encrypts the Content Encryption Key:</t>
        <!-- begin:table cose-pqt-hybrid-key-encryption-table "PQ/T Hybrid Key Encryption Algorithms" ; see README for regeneration instructions, do not edit -->

<table anchor="cose-pqt-hybrid-key-encryption-table">
          <name>PQ/T Hybrid Key Encryption Algorithms</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Value</th>
              <th align="left">HPKE KEM</th>
              <th align="left">HPKE KDF</th>
              <th align="left">HPKE AEAD</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">HPKE-8-KE</td>
              <td align="left">TBD (Assumed: 55)</td>
              <td align="left">MLKEM768-P256 (<tt>0x0050</tt>)</td>
              <td align="left">SHAKE256 (<tt>0x0011</tt>)</td>
              <td align="left">AES-256-GCM (<tt>0x0002</tt>)</td>
            </tr>
            <tr>
              <td align="left">HPKE-9-KE</td>
              <td align="left">TBD (Assumed: 57)</td>
              <td align="left">MLKEM768-X25519 (<tt>0x647a</tt>)</td>
              <td align="left">SHAKE256 (<tt>0x0011</tt>)</td>
              <td align="left">AES-256-GCM (<tt>0x0002</tt>)</td>
            </tr>
            <tr>
              <td align="left">HPKE-10-KE</td>
              <td align="left">TBD (Assumed: 59)</td>
              <td align="left">MLKEM1024-P384 (<tt>0x0051</tt>)</td>
              <td align="left">SHAKE256 (<tt>0x0011</tt>)</td>
              <td align="left">AES-256-GCM (<tt>0x0002</tt>)</td>
            </tr>
          </tbody>
        </table>
        <!-- end:table -->

<t>These are the key encryption counterparts of the PQ/T hybrid integrated
encryption algorithms defined in <xref target="cose-pqt-hybrid-integrated-table"/>.</t>
      </section>
      <section anchor="pure-pq-key-encryption-algorithms">
        <name>Pure PQ Key Encryption Algorithms</name>
        <t>The following table lists the algorithm identifiers for pure post-quantum key
encryption:</t>
        <!-- begin:table cose-pure-pq-key-encryption-table "Pure PQ Key Encryption Algorithms" ; see README for regeneration instructions, do not edit -->

<table anchor="cose-pure-pq-key-encryption-table">
          <name>Pure PQ Key Encryption Algorithms</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Value</th>
              <th align="left">HPKE KEM</th>
              <th align="left">HPKE KDF</th>
              <th align="left">HPKE AEAD</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">HPKE-11-KE</td>
              <td align="left">TBD (Assumed: 61)</td>
              <td align="left">ML-KEM-512 (<tt>0x0040</tt>)</td>
              <td align="left">SHAKE256 (<tt>0x0011</tt>)</td>
              <td align="left">AES-128-GCM (<tt>0x0001</tt>)</td>
            </tr>
            <tr>
              <td align="left">HPKE-12-KE</td>
              <td align="left">TBD (Assumed: 63)</td>
              <td align="left">ML-KEM-768 (<tt>0x0041</tt>)</td>
              <td align="left">SHAKE256 (<tt>0x0011</tt>)</td>
              <td align="left">AES-256-GCM (<tt>0x0002</tt>)</td>
            </tr>
            <tr>
              <td align="left">HPKE-13-KE</td>
              <td align="left">TBD (Assumed: 65)</td>
              <td align="left">ML-KEM-1024 (<tt>0x0042</tt>)</td>
              <td align="left">SHAKE256 (<tt>0x0011</tt>)</td>
              <td align="left">AES-256-GCM (<tt>0x0002</tt>)</td>
            </tr>
          </tbody>
        </table>
        <!-- end:table -->

<t>These are the key encryption counterparts of the pure PQ integrated
encryption algorithms defined in <xref target="cose-pure-pq-integrated-table"/>.</t>
      </section>
    </section>
    <section anchor="cosekey-representation">
      <name>COSE_Key Representation</name>
      <t>Keys for the algorithms defined in this document use the "AKP" (Algorithm
Key Pair) COSE key type defined in <xref section="3" sectionFormat="of" target="I-D.ietf-cose-dilithium"/>.
The required "alg" (label 3) parameter identifies the HPKE ciphersuite as
well as whether the key is used for Integrated Encryption or Key Encryption.</t>
      <t>The public key parameter (label -1) contains the SerializePublicKey() output
for the corresponding KEM, and for private keys the private key parameter
(label -2) contains the SerializePrivateKey() output, both as defined in
<xref section="4" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>. Both values are encoded as CBOR byte
strings.</t>
      <t>Examples of COSE_Keys for each algorithm are provided in <xref target="test-vectors"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="I-D.ietf-cose-hpke"/> and
<xref target="I-D.ietf-hpke-pq"/> apply to this document.
<xref target="I-D.ietf-pquip-pqc-engineers"/> provides general background on the
threat posed by cryptographically relevant quantum computers (CRQCs),
the properties of KEMs, and considerations for PQ/T hybrid schemes.</t>
      <t>This document registers ciphersuites based on ML-KEM-512.
As noted in <xref section="3" sectionFormat="of" target="I-D.ietf-hpke-pq"/>, given the
relative novelty of ML-KEM, there is concern that new cryptanalysis
might reduce the security level of ML-KEM-512. Use of ML-KEM-768 or
ML-KEM-1024 acts as a hedge against such cryptanalysis at a modest
performance penalty, and is <bcp14>RECOMMENDED</bcp14> where the additional overhead
is acceptable.</t>
      <t>The PQ/T hybrid ciphersuites registered by this document are motivated
by the PQ/T Hybrid Confidentiality property (<xref section="5" sectionFormat="of" target="RFC9794"/>,
<xref section="13.1" sectionFormat="of" target="I-D.ietf-pquip-pqc-engineers"/>): confidentiality is
preserved as long as at least one of the component algorithms remains
secure. The traditional component protects against unforeseen
cryptanalysis of ML-KEM, while the post-quantum component protects
against Harvest Now, Decrypt Later (HNDL) attacks
(<xref section="7" sectionFormat="of" target="I-D.ietf-pquip-pqc-engineers"/>) by a future CRQC.
PQ/T hybrid ciphersuites are generally preferred for this reason during
the transition to post-quantum cryptography.</t>
      <t>The pure PQ ciphersuites are registered to accommodate deployments with
regulatory or compliance mandates that require the exclusive use of
post-quantum algorithms, such as those governed by the Commercial
National Security Algorithm Suite 2.0 <xref target="CNSA2.0"/>, as well as
deployments where the size or performance overhead of a traditional
component is undesirable.</t>
      <t>When the Key Encryption algorithms defined in
<xref target="cose-pqt-hybrid-key-encryption-table"/> or <xref target="cose-pure-pq-key-encryption-table"/>
are used in a COSE_Encrypt structure with multiple COSE_Recipient entries,
all recipients <bcp14>MUST</bcp14> use a quantum-resistant Key Management algorithm.
Including a recipient that uses an algorithm that is not quantum-resistant
would allow an adversary performing an HNDL attack to recover the Content
Encryption Key once a CRQC becomes available; see
<xref section="15.4" sectionFormat="of" target="I-D.ietf-pquip-pqc-engineers"/>.</t>
      <section anchor="security-strength">
        <name>Security Strength</name>
        <t>Ciphersuites based on ML-KEM-512 target NIST post-quantum security
level 1; those based on ML-KEM-768 target security level 3; and those
based on ML-KEM-1024 target security level 5 (see
<xref section="11" sectionFormat="of" target="I-D.ietf-pquip-pqc-engineers"/>).
In the PQ/T hybrid ciphersuites, the traditional component provides an
additional classical security floor: P-256 and X25519 offer approximately
128-bit classical security, while P-384 offers approximately 192-bit
classical security. The -KE variants share the same cryptographic
properties as their integrated encryption counterparts.</t>
        <t>All ciphersuites use SHAKE256 as the KDF, aligning with the hash family
used internally by ML-KEM. The AEAD is paired with the KEM security
level: ML-KEM-512 ciphersuites use AES-128-GCM, while ML-KEM-768,
ML-KEM-1024, and the PQ/T hybrid ciphersuites use AES-256-GCM. As
discussed in <xref section="3.1" sectionFormat="of" target="I-D.ietf-pquip-pqc-engineers"/>, symmetric
primitives are only modestly affected by quantum attacks and doubling
key sizes is not strictly required; AES-256-GCM is nonetheless selected
for the higher-strength ciphersuites to provide a comfortable margin
consistent with security level 3 and 5 parameter sets and with
contemporary guidance such as <xref target="CNSA2.0"/>. AES-128-GCM is used with
ML-KEM-512 since pairing a level-1 KEM with a level-5 AEAD would not
improve the overall security level while increasing implementation
and bandwidth cost. The widespread hardware acceleration and broad
deployment of AES-GCM make it a reasonable choice for all ciphersuites
defined in this document.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="cose-algorithms-registry">
        <name>COSE Algorithms Registry</name>
        <t>This document requests registration of the following values in the
IANA "COSE Algorithms" registry established by <xref target="RFC9053"/>:</t>
        <!-- begin:cose-iana-registrations ; see README for regeneration instructions, do not edit -->

<section toc="exclude" anchor="hpke-8">
          <name>HPKE-8</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-8</t>
            </li>
            <li>
              <t>Value: TBD (Assumed: 54)</t>
            </li>
            <li>
              <t>Description: Integrated Encryption with HPKE using MLKEM768-P256 KEM, SHAKE256 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: <xref target="cose-pqt-hybrid-integrated-table"/> of this document</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section toc="exclude" anchor="hpke-8-ke">
          <name>HPKE-8-KE</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-8-KE</t>
            </li>
            <li>
              <t>Value: TBD (Assumed: 55)</t>
            </li>
            <li>
              <t>Description: Key Encryption with HPKE using MLKEM768-P256 KEM, SHAKE256 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: <xref target="cose-pqt-hybrid-key-encryption-table"/> of this document</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section toc="exclude" anchor="hpke-9">
          <name>HPKE-9</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-9</t>
            </li>
            <li>
              <t>Value: TBD (Assumed: 56)</t>
            </li>
            <li>
              <t>Description: Integrated Encryption with HPKE using MLKEM768-X25519 KEM, SHAKE256 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: <xref target="cose-pqt-hybrid-integrated-table"/> of this document</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section toc="exclude" anchor="hpke-9-ke">
          <name>HPKE-9-KE</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-9-KE</t>
            </li>
            <li>
              <t>Value: TBD (Assumed: 57)</t>
            </li>
            <li>
              <t>Description: Key Encryption with HPKE using MLKEM768-X25519 KEM, SHAKE256 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: <xref target="cose-pqt-hybrid-key-encryption-table"/> of this document</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section toc="exclude" anchor="hpke-10">
          <name>HPKE-10</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-10</t>
            </li>
            <li>
              <t>Value: TBD (Assumed: 58)</t>
            </li>
            <li>
              <t>Description: Integrated Encryption with HPKE using MLKEM1024-P384 KEM, SHAKE256 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: <xref target="cose-pqt-hybrid-integrated-table"/> of this document</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section toc="exclude" anchor="hpke-10-ke">
          <name>HPKE-10-KE</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-10-KE</t>
            </li>
            <li>
              <t>Value: TBD (Assumed: 59)</t>
            </li>
            <li>
              <t>Description: Key Encryption with HPKE using MLKEM1024-P384 KEM, SHAKE256 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: <xref target="cose-pqt-hybrid-key-encryption-table"/> of this document</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section toc="exclude" anchor="hpke-11">
          <name>HPKE-11</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-11</t>
            </li>
            <li>
              <t>Value: TBD (Assumed: 60)</t>
            </li>
            <li>
              <t>Description: Integrated Encryption with HPKE using ML-KEM-512 KEM, SHAKE256 KDF, and AES-128-GCM AEAD</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: <xref target="cose-pure-pq-integrated-table"/> of this document</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section toc="exclude" anchor="hpke-11-ke">
          <name>HPKE-11-KE</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-11-KE</t>
            </li>
            <li>
              <t>Value: TBD (Assumed: 61)</t>
            </li>
            <li>
              <t>Description: Key Encryption with HPKE using ML-KEM-512 KEM, SHAKE256 KDF, and AES-128-GCM AEAD</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: <xref target="cose-pure-pq-key-encryption-table"/> of this document</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section toc="exclude" anchor="hpke-12">
          <name>HPKE-12</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-12</t>
            </li>
            <li>
              <t>Value: TBD (Assumed: 62)</t>
            </li>
            <li>
              <t>Description: Integrated Encryption with HPKE using ML-KEM-768 KEM, SHAKE256 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: <xref target="cose-pure-pq-integrated-table"/> of this document</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section toc="exclude" anchor="hpke-12-ke">
          <name>HPKE-12-KE</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-12-KE</t>
            </li>
            <li>
              <t>Value: TBD (Assumed: 63)</t>
            </li>
            <li>
              <t>Description: Key Encryption with HPKE using ML-KEM-768 KEM, SHAKE256 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: <xref target="cose-pure-pq-key-encryption-table"/> of this document</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section toc="exclude" anchor="hpke-13">
          <name>HPKE-13</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-13</t>
            </li>
            <li>
              <t>Value: TBD (Assumed: 64)</t>
            </li>
            <li>
              <t>Description: Integrated Encryption with HPKE using ML-KEM-1024 KEM, SHAKE256 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: <xref target="cose-pure-pq-integrated-table"/> of this document</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section toc="exclude" anchor="hpke-13-ke">
          <name>HPKE-13-KE</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-13-KE</t>
            </li>
            <li>
              <t>Value: TBD (Assumed: 65)</t>
            </li>
            <li>
              <t>Description: Key Encryption with HPKE using ML-KEM-1024 KEM, SHAKE256 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: <xref target="cose-pure-pq-key-encryption-table"/> of this document</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
          <!-- end:cose-iana-registrations -->

</section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-cose-hpke">
          <front>
            <title>Use of Hybrid Public-Key Encryption (HPKE) with CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <author fullname="Michael B. Jones" initials="M. B." surname="Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Tradeverifyd</organization>
            </author>
            <author fullname="Ajitomi, Daisuke" initials="A." surname="Daisuke">
              <organization>bibital LLC</organization>
            </author>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <date day="7" month="April" year="2026"/>
            <abstract>
              <t>   This specification defines hybrid public-key encryption (HPKE) for
   use with CBOR Object Signing and Encryption (COSE).  HPKE offers a
   variant of public-key encryption of arbitrary-sized plaintexts for a
   recipient public key.

   HPKE is a general encryption framework utilizing an asymmetric key
   encapsulation mechanism (KEM), a key derivation function (KDF), and
   an Authenticated Encryption with Associated Data (AEAD) algorithm.

   This document defines the use of HPKE with COSE.  Authentication for
   HPKE in COSE is provided by COSE-native security mechanisms or by the
   pre-shared key authenticated variant of HPKE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-hpke-25"/>
        </reference>
        <reference anchor="I-D.ietf-hpke-pq">
          <front>
            <title>Post-Quantum and Post-Quantum/Traditional Hybrid Algorithms for HPKE</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Deirdre Connolly" initials="D." surname="Connolly">
              <organization>Selkie Cryptography</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   Updating key exchange and public-key encryption protocols to resist
   attack by quantum computers is a high priority given the possibility
   of "harvest now, decrypt later" attacks.  Hybrid Public Key
   Encryption (HPKE) is a widely-used public key encryption scheme based
   on combining a Key Encapsulation Mechanism (KEM), a Key Derivation
   Function (KDF), and an Authenticated Encryption with Associated Data
   (AEAD) scheme.  In this document, we define KEM algorithms for HPKE
   based on both post-quantum KEMs and hybrid constructions of post-
   quantum KEMs with traditional KEMs, as well as a KDF based on SHA-3
   that is suitable for use with these KEMs.  When used with these
   algorithms, HPKE is resilient with respect to attacks by a quantum
   computer.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-hpke-pq-04"/>
        </reference>
        <reference anchor="I-D.ietf-cose-dilithium">
          <front>
            <title>ML-DSA for JOSE and COSE</title>
            <author fullname="Michael Prorock" initials="M." surname="Prorock">
              <organization>Tradeverifyd</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Tradeverifyd</organization>
            </author>
            <date day="15" month="November" year="2025"/>
            <abstract>
              <t>   This document specifies JSON Object Signing and Encryption (JOSE) and
   CBOR Object Signing and Encryption (COSE) serializations for Module-
   Lattice-Based Digital Signature Standard (ML-DSA), a Post-Quantum
   Cryptography (PQC) digital signature scheme defined in US NIST FIPS
   204.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-dilithium-11"/>
        </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="I-D.ietf-hpke-hpke">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Karthikeyan Bhargavan" initials="K." surname="Bhargavan">
              <organization>Inria</organization>
            </author>
            <author fullname="Benjamin Lipp" initials="B." surname="Lipp">
              <organization>Inria</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
         </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   This document describes a scheme for hybrid public key encryption
   (HPKE).  This scheme provides a variant of public key encryption of
   arbitrary-sized plaintexts for a recipient public key.  It also
   includes a variant that authenticates possession of a pre-shared key.
   HPKE works for any combination of an asymmetric Key Encapsulation
   Mechanism (KEM), key derivation function (KDF), and authenticated
   encryption with additional data (AEAD) encryption function.  We
   provide instantiations of the scheme using widely used and efficient
   primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key
   agreement, HMAC-based key derivation function (HKDF), and SHA2.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-hpke-hpke-03"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="RFC9794">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="F. Driscoll" initials="F." surname="Driscoll"/>
            <author fullname="M. Parsons" initials="M." surname="Parsons"/>
            <author fullname="B. Hale" initials="B." surname="Hale"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>One aspect of the transition to post-quantum algorithms in cryptographic protocols is the development of hybrid schemes that incorporate both post-quantum and traditional asymmetric algorithms. This document defines terminology for such schemes. It is intended to be used as a reference and, hopefully, to ensure consistency and clarity across different protocols, standards, and organisations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9794"/>
          <seriesInfo name="DOI" value="10.17487/RFC9794"/>
        </reference>
        <reference anchor="I-D.ietf-pquip-pqc-engineers">
          <front>
            <title>Post-Quantum Cryptography for Engineers</title>
            <author fullname="Aritra Banerjee" initials="A." surname="Banerjee">
              <organization>Nokia</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Dimitrios Schoinianakis" initials="D." surname="Schoinianakis">
              <organization>Nokia</organization>
            </author>
            <author fullname="Tim Hollebeek" initials="T." surname="Hollebeek">
              <organization>DigiCert</organization>
            </author>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <date day="25" month="August" year="2025"/>
            <abstract>
              <t>   The advent of a cryptographically relevant quantum computer (CRQC)
   would render state-of-the-art, traditional public key algorithms
   deployed today obsolete, as the mathematical assumptions underpinning
   their security would no longer hold.  To address this, protocols and
   infrastructure must transition to post-quantum algorithms, which are
   designed to resist both traditional and quantum attacks.  This
   document explains why engineers need to be aware of and understand
   post-quantum cryptography (PQC), detailing the impact of CRQCs on
   existing systems and the challenges involved in transitioning to
   post-quantum algorithms.  Unlike previous cryptographic updates, this
   shift may require significant protocol redesign due to the unique
   properties of post-quantum algorithms.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqc-engineers-14"/>
        </reference>
        <reference anchor="CNSA2.0" target="https://media.defense.gov/2025/May/30/2003728741/-1/-1/0/CSA_CNSA_2.0_ALGORITHMS.PDF">
          <front>
            <title>Announcing the Commercial National Security Algorithm Suite 2.0</title>
            <author>
              <organization>National Security Agency</organization>
            </author>
            <date year="2025" month="May"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 445?>

<section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>This appendix provides test vectors for each algorithm defined in this document.
For each algorithm, a private COSE_Key and an example encrypted COSE message
(COSE_Encrypt0 for integrated encryption suites, or COSE_Encrypt with a single
COSE_Recipient for key encryption suites) are provided, each shown in CBOR
diagnostic notation and as hex-encoded CBOR.</t>
      <!-- begin:cose-test-vectors ; see README for regeneration instructions, do not edit -->

<section toc="exclude" anchor="hpke-8-1">
        <name>HPKE-8</name>
        <figure>
          <name>HPKE-8 COSE_Key (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose-keys/HPKE-8-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-8 COSE_Key (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose-keys/HPKE-8-hex.txt}
]]></artwork>
        </figure>
        <figure>
          <name>HPKE-8 COSE_Encrypt0 (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose/HPKE-8-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-8 COSE_Encrypt0 (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose/HPKE-8-hex.txt}
]]></artwork>
        </figure>
      </section>
      <section toc="exclude" anchor="hpke-8-ke-1">
        <name>HPKE-8-KE</name>
        <figure>
          <name>HPKE-8-KE COSE_Key (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose-keys/HPKE-8-KE-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-8-KE COSE_Key (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose-keys/HPKE-8-KE-hex.txt}
]]></artwork>
        </figure>
        <figure>
          <name>HPKE-8-KE COSE_Encrypt (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose/HPKE-8-KE-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-8-KE COSE_Encrypt (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose/HPKE-8-KE-hex.txt}
]]></artwork>
        </figure>
      </section>
      <section toc="exclude" anchor="hpke-9-1">
        <name>HPKE-9</name>
        <figure>
          <name>HPKE-9 COSE_Key (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose-keys/HPKE-9-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-9 COSE_Key (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose-keys/HPKE-9-hex.txt}
]]></artwork>
        </figure>
        <figure>
          <name>HPKE-9 COSE_Encrypt0 (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose/HPKE-9-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-9 COSE_Encrypt0 (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose/HPKE-9-hex.txt}
]]></artwork>
        </figure>
      </section>
      <section toc="exclude" anchor="hpke-9-ke-1">
        <name>HPKE-9-KE</name>
        <figure>
          <name>HPKE-9-KE COSE_Key (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose-keys/HPKE-9-KE-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-9-KE COSE_Key (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose-keys/HPKE-9-KE-hex.txt}
]]></artwork>
        </figure>
        <figure>
          <name>HPKE-9-KE COSE_Encrypt (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose/HPKE-9-KE-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-9-KE COSE_Encrypt (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose/HPKE-9-KE-hex.txt}
]]></artwork>
        </figure>
      </section>
      <section toc="exclude" anchor="hpke-10-1">
        <name>HPKE-10</name>
        <figure>
          <name>HPKE-10 COSE_Key (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose-keys/HPKE-10-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-10 COSE_Key (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose-keys/HPKE-10-hex.txt}
]]></artwork>
        </figure>
        <figure>
          <name>HPKE-10 COSE_Encrypt0 (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose/HPKE-10-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-10 COSE_Encrypt0 (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose/HPKE-10-hex.txt}
]]></artwork>
        </figure>
      </section>
      <section toc="exclude" anchor="hpke-10-ke-1">
        <name>HPKE-10-KE</name>
        <figure>
          <name>HPKE-10-KE COSE_Key (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose-keys/HPKE-10-KE-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-10-KE COSE_Key (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose-keys/HPKE-10-KE-hex.txt}
]]></artwork>
        </figure>
        <figure>
          <name>HPKE-10-KE COSE_Encrypt (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose/HPKE-10-KE-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-10-KE COSE_Encrypt (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose/HPKE-10-KE-hex.txt}
]]></artwork>
        </figure>
      </section>
      <section toc="exclude" anchor="hpke-11-1">
        <name>HPKE-11</name>
        <figure>
          <name>HPKE-11 COSE_Key (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose-keys/HPKE-11-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-11 COSE_Key (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose-keys/HPKE-11-hex.txt}
]]></artwork>
        </figure>
        <figure>
          <name>HPKE-11 COSE_Encrypt0 (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose/HPKE-11-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-11 COSE_Encrypt0 (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose/HPKE-11-hex.txt}
]]></artwork>
        </figure>
      </section>
      <section toc="exclude" anchor="hpke-11-ke-1">
        <name>HPKE-11-KE</name>
        <figure>
          <name>HPKE-11-KE COSE_Key (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose-keys/HPKE-11-KE-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-11-KE COSE_Key (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose-keys/HPKE-11-KE-hex.txt}
]]></artwork>
        </figure>
        <figure>
          <name>HPKE-11-KE COSE_Encrypt (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose/HPKE-11-KE-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-11-KE COSE_Encrypt (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose/HPKE-11-KE-hex.txt}
]]></artwork>
        </figure>
      </section>
      <section toc="exclude" anchor="hpke-12-1">
        <name>HPKE-12</name>
        <figure>
          <name>HPKE-12 COSE_Key (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose-keys/HPKE-12-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-12 COSE_Key (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose-keys/HPKE-12-hex.txt}
]]></artwork>
        </figure>
        <figure>
          <name>HPKE-12 COSE_Encrypt0 (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose/HPKE-12-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-12 COSE_Encrypt0 (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose/HPKE-12-hex.txt}
]]></artwork>
        </figure>
      </section>
      <section toc="exclude" anchor="hpke-12-ke-1">
        <name>HPKE-12-KE</name>
        <figure>
          <name>HPKE-12-KE COSE_Key (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose-keys/HPKE-12-KE-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-12-KE COSE_Key (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose-keys/HPKE-12-KE-hex.txt}
]]></artwork>
        </figure>
        <figure>
          <name>HPKE-12-KE COSE_Encrypt (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose/HPKE-12-KE-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-12-KE COSE_Encrypt (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose/HPKE-12-KE-hex.txt}
]]></artwork>
        </figure>
      </section>
      <section toc="exclude" anchor="hpke-13-1">
        <name>HPKE-13</name>
        <figure>
          <name>HPKE-13 COSE_Key (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose-keys/HPKE-13-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-13 COSE_Key (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose-keys/HPKE-13-hex.txt}
]]></artwork>
        </figure>
        <figure>
          <name>HPKE-13 COSE_Encrypt0 (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose/HPKE-13-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-13 COSE_Encrypt0 (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose/HPKE-13-hex.txt}
]]></artwork>
        </figure>
      </section>
      <section toc="exclude" anchor="hpke-13-ke-1">
        <name>HPKE-13-KE</name>
        <figure>
          <name>HPKE-13-KE COSE_Key (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose-keys/HPKE-13-KE-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-13-KE COSE_Key (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose-keys/HPKE-13-KE-hex.txt}
]]></artwork>
        </figure>
        <figure>
          <name>HPKE-13-KE COSE_Encrypt (Diagnostic Notation)</name>
          <sourcecode type="cbor-diag"><![CDATA[
{::include examples/cose/HPKE-13-KE-diag.txt}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-13-KE COSE_Encrypt (Hex-Encoded CBOR)</name>
          <artwork><![CDATA[
{::include examples/cose/HPKE-13-KE-hex.txt}
]]></artwork>
        </figure>
        <!-- end:cose-test-vectors -->

</section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Ilari Liusvaara and Orie Steele for the discussion and comments.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>draft-reddy-cose-hpke-pq-pqt-00</t>
      <ul spacing="normal">
        <li>
          <t>Replaces draft-reddy-cose-jose-pqc-hybrid-hpke</t>
        </li>
        <li>
          <t>Removed ChaCha20Poly1305 AEAD ciphersuites</t>
        </li>
        <li>
          <t>Adapted source from draft-skokan-jose-hpke-pq-pqt-04 for COSE</t>
        </li>
        <li>
          <t>Added Filip Skokan as author</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
PsZrvDVdAAA=

-->

</rfc>
