<?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.6.22 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ajitomi-cose-cose-key-jwk-hpke-kem-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="COSE Key and JWK Representation for HPKE KEM">COSE Key and JSON Web Key Representation for Key Encapsulation Mechanism (KEM) of Hybrid Public Key Encryption (HPKE)</title>
    <seriesInfo name="Internet-Draft" value="draft-ajitomi-cose-cose-key-jwk-hpke-kem-01"/>
    <author initials="D." surname="Ajitomi" fullname="Daisuke Ajitomi">
      <organization>Independent</organization>
      <address>
        <email>dajiaji@gmail.com</email>
      </address>
    </author>
    <date year="2023" month="February" day="04"/>
    <area>Security</area>
    <workgroup>CBOR Object Signing and Encryption</workgroup>
    <abstract>
      <t>This document defines an additional key parameter and a new key type for CBOR Object Signing and Encryption (COSE) Key and JSON Web Key (JWK) to represent a Key Encapsulated Mechanism (KEM) key and its associated information for Hybrid Public Key Encryption (HPKE).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://dajiaji.github.io/i-d-cose-cose-key-jwk-hpke-kem/draft-ajitomi-cose-cose-key-jwk-hpke-kem.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ajitomi-cose-cose-key-jwk-hpke-kem/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        CBOR Object Signing and Encryption 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/dajiaji/i-d-cose-cose-key-jwk-hpke-kem"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Hybrid Public Key Encryption (HPKE) <xref target="RFC9180"/>, published by the Internet Research Task Force (IRTF), has already been adopted in several communication protocol specifications such as TLS Encrypted Client Hello (ECH), Oblivious DNS over HTTPS (ODoH) and Oblivious HTTP (OHTTP).
HPKE itself is communication protocol independent and can be widely used as a standard scheme for public key based end-to-end encryption in various applications, not only in communication protocols.</t>
      <t>In HPKE, the sender of a ciphertext needs to know in advance not only the recipient public key, but also the HPKE mode, the KEM associated with the key, and the set of supported KDF and AEAD algorithms.
The data structure of this information (hereafter referred to as HPKE key configuration information) is defined in each communication protocol specification that uses HPKE.
For example, the ECH defines it as a structure called HpkeKeyConfig.
When using HPKE in an application, it is necessary to define the data structure corresponding to the HpkeKeyConfig and how the information is transferred from the recipient to the sender.
If the data structure and the publication method for the HPKE key configuration information were standardized, it would be easier to use HPKE in applications.</t>
      <t>This document defines how to represent a KEM key for HPKE and the HPKE key configuration information in JSON Web Key (JWK) <xref target="RFC7517"/> and COSE_Key defined in CBOR Object Signing and Encryption (COSE) Structures and Process <xref target="RFC9052"/>.
Specifically, this document defines (1) a common key parameter for defining the HPKE key configuration information in existing key types that can be used for key derivation and (2) a generic key type for HPKE that can also be used to represent post-quantum KEM keys to be specified in the future.
By using the generic key type for HPKE, all KEM keys registered in the IANA HPKE registry can be represented in JWK and COSE_Key without the need to define cryptographic algorithm-specific key types and parameters such as for EC or RSA as defined in <xref target="RFC7518"/> and <xref target="RFC9053"/>.</t>
      <t>The ability to include HPKE-related information in JWK, which is widely used not only as the public key representation but also as the key publication method (via the JWK Set endpoint) at the application layer, and its binary representation, COSE_Key, will facilitate the use of HPKE in a wide variety of web applications and communication systems for constrained devices.</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>
    </section>
    <section anchor="common-key-parameter-for-hpke-key-configuration">
      <name>Common Key Parameter for HPKE Key Configuration</name>
      <t>The HPKE key configuration information is defined as a common key parameter of JWK and COSE_Key.
The parameter can be specified in the key that can be used for key derivation. In addition, the handling of existing key parameters is also defined.</t>
      <section anchor="jwk-parameter">
        <name>JWK Parameter</name>
        <section anchor="hkc-hpke-key-configuration-parameter">
          <name>"hkc" (HPKE Key Configuration) Parameter</name>
          <t>The "hkc" (KPKE key configuration) parameter identifies the KEM for the recipient key and the set of KDF and AEAD algorithms supported by the recipient.
A JWK used for HPKE KEM <bcp14>MUST</bcp14> have this parameter.
It <bcp14>MUST</bcp14> contain the object consisting of the following three attributes.</t>
          <ul spacing="normal">
            <li>"kem": The HPKE KEM identifier, which is a two-byte value registered in the IANA HPKE registry.</li>
            <li>"kdfs": The array of the HPKE KDF identifiers supported by the recipient. The KDF identifier is also a two-byte value registered in the IANA HPKE registry.</li>
            <li>"aeads": The array of the HPKE AEAD identifiers supported by the recipient. The AEAD identifier is also a two-byte value registered in the IANA HPKE registry.</li>
          </ul>
          <t>The "hkc" parameter can be used with existing "EC" <xref target="RFC7518"/> and "OKP" <xref target="RFC8037"/> keys and the keys for future post-quantum KEMs.</t>
        </section>
        <section anchor="restrictions-on-the-use-of-existing-key-parameters">
          <name>Restrictions on the Use of Existing Key Parameters</name>
          <t>The restrictions on the use of existing common key parameters in a JWK for HPKE KEM are as follows:</t>
          <ul spacing="normal">
            <li>
              <t>"alg": The parameter <bcp14>MUST</bcp14> be present and contains one of the following values:
              </t>
              <ul spacing="normal">
                <li>"HPKE-v1-Base"</li>
                <li>"HPKE-v1-PSK"</li>
                <li>"HPKE-v1-Auth"</li>
                <li>"HPKE-v1-AuthPSK"</li>
              </ul>
            </li>
            <li>"use": The parameter <bcp14>SHOULD NOT</bcp14> be specified. If specified, it <bcp14>MUST</bcp14> be "enc".</li>
            <li>"key_ops": The parameter <bcp14>SHOULD NOT</bcp14> be specified. If specified, it <bcp14>MUST</bcp14> include "deriveKey" and/or "deriveBits".</li>
            <li>etc.</li>
          </ul>
        </section>
      </section>
      <section anchor="cose-key-common-parameter">
        <name>COSE Key Common Parameter</name>
        <section anchor="hkc-hpke-key-configuration-parameter-1">
          <name>hkc (HPKE Key Configuration) Parameter</name>
          <t>The HPKE key configuration parameter for COSE_Key is defined as follows:</t>
          <ul spacing="normal">
            <li>hkc (HPKE Key Configuration): The parameter <bcp14>MUST</bcp14> contain an array structure named HPKE_Key_Configuration, which contains the same information as "hkc" in JWK above. The CDDL grammar describing the HPKE_Key_Configuration structure is:</li>
          </ul>
          <artwork><![CDATA[
HPKE_Key_Configuration = [
    kem: uint,              ; KEM identifier
    kdfs: uint / [+uint],   ; KDF identifiers
    aeads: uint / [+uint],  ; AEAD identifiers
]
]]></artwork>
          <table anchor="hkc-params">
            <name>HPKE Key Configuration Parameters</name>
            <thead>
              <tr>
                <th align="left">Name</th>
                <th align="left">CBOR Type</th>
                <th align="left">Value Registry</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">kem</td>
                <td align="left">uint</td>
                <td align="left">HPKE KEM Identifiers</td>
                <td align="left">The KEM identifier bound to the key</td>
              </tr>
              <tr>
                <td align="left">kdfs</td>
                <td align="left">uint / [+uint]</td>
                <td align="left">HPKE KDF Identifiers</td>
                <td align="left">The KDF identifiers supported by the recipient</td>
              </tr>
              <tr>
                <td align="left">aeads</td>
                <td align="left">uint / [+uint]</td>
                <td align="left">HPKE AEAD Identifiers</td>
                <td align="left">The AEAD identifiers supported by the recipient</td>
              </tr>
            </tbody>
          </table>
          <t>The hkc parameter can be used with existing OKP and EC2 keys <xref target="RFC9053"/> and the keys for future post-quantum KEMs.</t>
        </section>
        <section anchor="restrictions-on-the-use-of-existing-key-parameters-1">
          <name>Restrictions on the Use of Existing Key Parameters</name>
          <t>The restrictions on the use of existing common key parameters in a COSE_Key for the HPKE KEM are as follows:</t>
          <ul spacing="normal">
            <li>
              <t>alg(3): The parameter <bcp14>MUST</bcp14> be present and contains one of the following values:
              </t>
              <ul spacing="normal">
                <li>HPKE-v1-Base (T.B.D.)</li>
                <li>HPKE-v1-PSK (T.B.D.)</li>
                <li>HPKE-v1-Auth (T.B.D.)</li>
                <li>HPKE-v1-AuthPSK (T.B.D.)</li>
              </ul>
            </li>
            <li>key_ops(4): The parameter <bcp14>SHOULD NOT</bcp14> be specified. If specified, it <bcp14>MUST</bcp14> include "derive key"(7) and/or "derive bits"(8).</li>
            <li>etc.</li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="generic-key-type-for-hpke-kem">
      <name>Generic Key Type for HPKE KEM</name>
      <t>A generic key type for the HPKE KEM keys including a post-quantum KEM defined in the future is defined.
Even KEM keys that can be represented by existing key types can use the generic key type defined here.</t>
      <section anchor="key-type-for-jwk">
        <name>Key Type for JWK</name>
        <t>A new generic key type (kty) value "HPKE-KEM" is defined to represent the private and public key used for the HPKE KEM.
A key with this kty has the following parameters:</t>
        <ul spacing="normal">
          <li>The parameter "kty" <bcp14>MUST</bcp14> be "HPKE-KEM".</li>
          <li>The parameter "hkc" <bcp14>MUST</bcp14> be present and contains the HPKE Key Configuration defined in Section 3.1.1.</li>
          <li>The parameter "pub" <bcp14>MUST</bcp14> be present and contains the public key encoded using the base64url [RFC4648] encoding.</li>
          <li>The parameter "priv" <bcp14>MUST</bcp14> be present if the key is private key and contains the private key encoded using the base64url [RFC4648] encoding.</li>
        </ul>
      </section>
      <section anchor="key-type-for-cosekey">
        <name>Key Type for COSE_Key</name>
        <t>A new generic kty(1) value HPKE-KEM(T.B.D.) is defined to represent the private and public key used for the HPKE KEM.
A key with this kty has the following parameters:</t>
        <ul spacing="normal">
          <li>The parameter kty(1) <bcp14>MUST</bcp14> be HPKE-KEM(T.B.D).</li>
          <li>The parameter hkc(T.B.D.) <bcp14>MUST</bcp14> be present and contains the HPKE Key Configuration defined in Section 3.2.1.</li>
          <li>The parameter pub(-1) <bcp14>MUST</bcp14> be present and contains the public key encoded in a byte string (bstr type).</li>
          <li>The parameter priv(-2) <bcp14>MUST</bcp14> be present if the key is private key and contains the private key encoded in a byte string (bstr type).</li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TODO</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC9180">
        <front>
          <title>Hybrid Public Key Encryption</title>
          <author fullname="R. Barnes" initials="R." surname="Barnes">
            <organization/>
          </author>
          <author fullname="K. Bhargavan" initials="K." surname="Bhargavan">
            <organization/>
          </author>
          <author fullname="B. Lipp" initials="B." surname="Lipp">
            <organization/>
          </author>
          <author fullname="C. Wood" initials="C." surname="Wood">
            <organization/>
          </author>
          <date month="February" year="2022"/>
          <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 three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. 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>
            <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9180"/>
        <seriesInfo name="DOI" value="10.17487/RFC9180"/>
      </reference>
      <reference anchor="RFC9052">
        <front>
          <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
          <author fullname="J. Schaad" initials="J." surname="Schaad">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <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="RFC7517">
        <front>
          <title>JSON Web Key (JWK)</title>
          <author fullname="M. Jones" initials="M." surname="Jones">
            <organization/>
          </author>
          <date month="May" year="2015"/>
          <abstract>
            <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key.  This specification also defines a JWK Set JSON data structure that represents a set of JWKs.  Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7517"/>
        <seriesInfo name="DOI" value="10.17487/RFC7517"/>
      </reference>
      <reference anchor="RFC7518">
        <front>
          <title>JSON Web Algorithms (JWA)</title>
          <author fullname="M. Jones" initials="M." surname="Jones">
            <organization/>
          </author>
          <date month="May" year="2015"/>
          <abstract>
            <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications.  It defines several IANA registries for these identifiers.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7518"/>
        <seriesInfo name="DOI" value="10.17487/RFC7518"/>
      </reference>
      <reference anchor="RFC8037">
        <front>
          <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
          <author fullname="I. Liusvaara" initials="I." surname="Liusvaara">
            <organization/>
          </author>
          <date month="January" year="2017"/>
          <abstract>
            <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8037"/>
        <seriesInfo name="DOI" value="10.17487/RFC8037"/>
      </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">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <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>
    </references>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="jwk-for-dhkemp-256-kdf-sha256-public-key-with-key-type-ec">
        <name>JWK for DHKEM(P-256, KDF-SHA256) Public Key with Key Type "EC"</name>
        <artwork><![CDATA[
{
    "kty": "EC",
    "kid": "01",
    "crv": "P-256",
    "alg": "HPKE-v1-Base",
    "hkc": {
        "kem": 0x010,
        "kdfs": [0x001, 0x002, 0x003],
        "aeads": [0x001, 0x002]
    },
    "x": "-eZXC6nV-xgthy8zZMCN8pcYSeE2XfWWqckA2fsxHPc",
    "y": "BGU5soLgsu_y7GN2I3EPUXS9EZ7Sw0qif-V70JtInFI"
}
]]></artwork>
      </section>
      <section anchor="jwk-for-dhkemx25519-kdf-sha256-public-key-with-key-type-okp">
        <name>JWK for DHKEM(X25519, KDF-SHA256) Public Key with Key Type "OKP"</name>
        <artwork><![CDATA[
{
    "kty": "OKP",
    "kid": "01",
    "crv": "X25519",
    "alg": "HPKE-v1-Base",
    "hkc": {
        "kem": 0x020,
        "kdfs": [0x001, 0x002, 0x003],
        "aeads": [0x001, 0x002]
    },
    "x": "y3wJq3uXPHeoCO4FubvTc7VcBuqpvUrSvU6ZMbHDTCI"
}
]]></artwork>
      </section>
      <section anchor="jwk-for-dhkemx25519-kdf-sha256-private-key-with-key-type-hpke-kem">
        <name>JWK for DHKEM(X25519, KDF-SHA256) Private Key with Key Type "HPKE-KEM"</name>
        <artwork><![CDATA[
{
    "kty": "HPKE-KEM",
    "kid": "01",
    "alg": "HPKE-v1-Base",
    "hkc": {
        "kem": 0x020,
        "kdfs": [0x001, 0x002, 0x003],
        "aeads": [0x001, 0x002]
    },
    "pub": "y3wJq3uXPHeoCO4FubvTc7VcBuqpvUrSvU6ZMbHDTCI",
    "priv": "vsJ1oX5NNi0IGdwGldiac75r-Utmq3Jq4LGv48Q_Qc4"
}
]]></artwork>
      </section>
      <section anchor="cosekey-for-dhkemp-256-kdf-sha256-public-key-with-key-type-ec22">
        <name>COSE_Key for DHKEM(P-256, KDF-SHA256) Public Key with Key Type EC2(2)</name>
        <artwork><![CDATA[
{
    1:2,          // EC2
    2:'01',
    3:-1(T.B.D),  // HPKE-v1-Base
    -1:1,         // P-256
    6(T.B.D): [   // hkc (HPKE Key Configuration)
        0x0010,                    // KEM identifier
        [0x0001, 0x0002, 0x0003],  // supported KDF identifiers
        [0x0001, 0x0002]           // supported AEAD identifiers
    ],
    -2:h'65eda5a12577c2bae829437fe338701a10aaa375e1bb5b5de108de439c08551d',
    -3:h'1e52ed75701163f7f9e40ddf9f341b3dc9ba860af7e0ca7ca7e9eecd0084d19c'
}
]]></artwork>
      </section>
      <section anchor="cosekey-for-dhkemx25519-kdf-sha256-public-key-with-key-type-okp1">
        <name>COSE_Key for DHKEM(X25519, KDF-SHA256) Public Key with Key Type OKP(1)</name>
        <artwork><![CDATA[
{
    1:1,          // OKP
    2:'01',
    3:-1(T.B.D),  // HPKE-v1-Base
    -1:4,         // X25519
    6(T.B.D): [   // hkc (HPKE Key Configuration)
        0x0020,                    // KEM identifier
        [0x0001, 0x0002, 0x0003],  // supported KDF identifiers
        [0x0001, 0x0002]           // supported AEAD identifiers
    ],
    -2:h'd75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a'
}
]]></artwork>
      </section>
      <section anchor="cosekey-for-dhkemx25519-kdf-sha256-private-key-with-key-type-hpke-kemtbd">
        <name>COSE_Key for DHKEM(X25519, KDF-SHA256) Private Key with Key Type HPKE-KEM(T.B.D)</name>
        <artwork><![CDATA[
{
    1:-1(T.B.D.),  // HPKE-KEM
    2:'01',
    3:-1(T.B.D),   // HPKE-v1-Base
    6(T.B.D): [    // hkc (HPKE Key Configuration)
        0x0020,                    // KEM identifier
        [0x0001, 0x0002, 0x0003],  // supported KDF identifiers
        [0x0001, 0x0002]           // supported AEAD identifiers
    ],
    -1:h'd75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a',
    -2:h'9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60'
}
]]></artwork>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to thank Ilari Liusvaara, Laurence Lundblade and Orie Steele for their review feedback.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
