<?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.29 (Ruby 3.4.4) -->
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-jose-hpke-encrypt-12" category="std" consensus="true" submissionType="IETF" updates="7516" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="Use of HPKE in JOSE">Use of Hybrid Public Key Encryption (HPKE) with JSON Object Signing and Encryption (JOSE)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-jose-hpke-encrypt-12"/>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author fullname="Hannes Tschofenig">
      <organization abbrev="H-BRS">University of Applied Sciences Bonn-Rhein-Sieg</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <author fullname="Aritra Banerjee">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Munich</city>
          <country>Germany</country>
        </postal>
        <email>aritra.banerjee@nokia.com</email>
      </address>
    </author>
    <author initials="O." surname="Steele" fullname="Orie Steele">
      <organization>Tradeverifyd</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>orie@or13.io</email>
      </address>
    </author>
    <author initials="M." surname="Jones" fullname="Michael B. Jones">
      <organization>Self-Issued Consulting</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>michael_b_jones@hotmail.com</email>
        <uri>https://self-issued.info/</uri>
      </address>
    </author>
    <date year="2025" month="October" day="02"/>
    <area>Security</area>
    <workgroup>JOSE</workgroup>
    <keyword>HPKE</keyword>
    <keyword>JOSE</keyword>
    <keyword>JWE</keyword>
    <keyword>Hybrid</keyword>
    <abstract>
      <?line 107?>

<t>This specification defines Hybrid Public Key Encryption (HPKE) for use with
JSON Object Signing and Encryption (JOSE). HPKE offers a variant of
public key encryption of arbitrary-sized plaintexts for a recipient public key.</t>
      <t>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.</t>
      <t>This document defines the use of HPKE with JOSE.
The specification chooses a specific subset of the HPKE features to use with JOSE.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-wg-jose.github.io/draft-ietf-jose-hpke-encrypt/draft-ietf-jose-hpke-encrypt.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-jose-hpke-encrypt/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        jose Working Group mailing list (<eref target="mailto:jose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/jose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/jose/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-jose/draft-ietf-jose-hpke-encrypt"/>.</t>
    </note>
  </front>
  <middle>
    <?line 122?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Hybrid Public Key Encryption (HPKE) <xref target="RFC9180"/> is a scheme that
provides public key encryption of arbitrary-sized plaintexts given a
recipient's public key.</t>
      <t>This specification enables JSON Web Encryption (JWE) to leverage HPKE,
bringing support for KEMs and the possibility of Post Quantum or Hybrid KEMs to JWE.</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?>

</section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>This specification uses the following abbreviations and terms:</t>
      <ul spacing="normal">
        <li>
          <t>Content Encryption Key (CEK), is defined in <xref target="RFC7517"/>.</t>
        </li>
        <li>
          <t>Hybrid Public Key Encryption (HPKE) is defined in <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>pkR is the public key of the recipient, as defined in <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>skR is the private key of the recipient, as defined in <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Key Encapsulation Mechanism (KEM), see <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Key Derivation Function (KDF), see <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Authenticated Encryption with Associated Data (AEAD), see <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Additional Authenticated Data (AAD), see <xref target="RFC9180"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>This specification defines two modes of use for HPKE in JWE:</t>
      <ul spacing="normal">
        <li>
          <t>HPKE JWE Integrated Encryption, where HPKE is used to encrypt the plaintext.</t>
        </li>
        <li>
          <t>HPKE JWE Key Encryption, where HPKE is used to encrypt a content encryption key (CEK) and the CEK is subsequently used to encrypt the plaintext.</t>
        </li>
      </ul>
      <t>When "alg" is a JOSE-HPKE algorithm:</t>
      <ul spacing="normal">
        <li>
          <t>If "enc" is "int", HPKE JWE Integrated Encryption is used.</t>
        </li>
        <li>
          <t>If "enc" is an AEAD algorithm, the recipient Key Management mode is Key Encryption.</t>
        </li>
      </ul>
      <t>The HPKE KEM, KDF, and AEAD used depend on the JOSE-HPKE algorithm used.</t>
      <t>HPKE supports several modes, which are described in Table 1 of <xref target="RFC9180"/>.</t>
      <t>In JOSE-HPKE, only "mode_base" and "mode_psk" are supported.
When "psk_id" JOSE Header parameter is present the mode is "mode_psk", otherwise the mode is "mode_base".</t>
      <t>JWE supports different serializations, including Compact JWE Serialization as described in <xref section="3.1" sectionFormat="of" target="RFC7516"/>, General JWE JSON Serialization as described in <xref section="3.2" sectionFormat="of" target="RFC7516"/>.</t>
      <t>Certain JWE features are only supported in specific serializations.</t>
      <t>For example Compact JWE Serialization does not support the following:</t>
      <ul spacing="normal">
        <li>
          <t>additional authenticated data</t>
        </li>
        <li>
          <t>multiple recipients</t>
        </li>
        <li>
          <t>unprotected headers</t>
        </li>
      </ul>
      <t>HPKE JWE Key Encryption can be used with "aad" but only when not expressed with Compact JWE Serialization.</t>
      <t>Single recipient HPKE JWE Key Encryption with no "aad" can be expressed in Compact JWE Serialization, so long as the recipient and sender use the same HPKE Setup process as described in <xref section="5" sectionFormat="of" target="RFC9180"/>.</t>
      <t>This specification updates the "enc" definition in <xref section="4.1.2" sectionFormat="of" target="RFC7516"/>
by allowing the "enc" value "int" when the "alg" value is a JOSE-HPKE algorithm.
When "alg" is not a JOSE-HPKE algorithm and the "enc" value is "int",
the input <bcp14>MUST</bcp14> be rejected.</t>
      <section anchor="auxiliary-authenticated-application-information">
        <name>Auxiliary Authenticated Application Information</name>
        <t>The HPKE "aad parameter" for Open() and Seal()
specified in <xref section="8.1" sectionFormat="of" target="RFC9180"/>
is used with both HPKE JWE Integrated Encryption and HPKE JWE Key Encryption.
Its value is the Additional Authenticated Data encryption parameter value
computed in Step 14 of <xref section="5.1" sectionFormat="of" target="RFC7518"/> (Message Encryption).</t>
        <t>Despite similarities to ECDH-ES,
this specification does not use the <tt>apu</tt> and <tt>apv</tt> header parameters,
which are described in <xref section="4.6.1" sectionFormat="of" target="RFC7518"/>.</t>
      </section>
      <section anchor="encapsulated-keys">
        <name>Encapsulated Keys</name>
        <t>HPKE encapsulated key is defined in <xref section="5.1.1" sectionFormat="of" target="RFC9180"/>.</t>
        <t>In HPKE JWE Integrated Encryption, the JWE Encrypted Key of the sole recipient is the HPKE encapsulated key.</t>
        <t>In HPKE JWE Key Encryption, each recipient JWE Encrypted Key is the encrypted content encryption key, and the value of JOSE Header parameter "ek"
is base64url-encoded HPKE encapsulated key.</t>
      </section>
    </section>
    <section anchor="integrated-encryption">
      <name>Integrated Encryption</name>
      <t>In HPKE JWE Integrated Encryption:</t>
      <ul spacing="normal">
        <li>
          <t>The protected header <bcp14>MUST</bcp14> contain an "alg" that is JOSE-HPKE algorithm.</t>
        </li>
        <li>
          <t>The protected header <bcp14>MUST</bcp14> contain an "enc" with value "int". This is an explicit exception to requirement in <xref section="4.1.2" sectionFormat="of" target="RFC7516"/> that
"enc" must be an AEAD algorithm. This is appropriate, as HPKE will perform plaintext encryption.</t>
        </li>
        <li>
          <t>The protected header parameters "psk_id" <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>The protected header parameter "ek" <bcp14>MUST NOT</bcp14> be present.</t>
        </li>
        <li>
          <t>There <bcp14>MUST</bcp14> be exactly one recipient.</t>
        </li>
        <li>
          <t>The JWE Encrypted Key <bcp14>MUST</bcp14> be encapsulated key, as defined in <xref section="5.1.1" sectionFormat="of" target="RFC9180"/>.</t>
        </li>
        <li>
          <t>The JWE Initialization Vector and JWE Authentication Tag <bcp14>MUST</bcp14> be the empty octet sequence.</t>
        </li>
        <li>
          <t>The JWE AAD <bcp14>MAY</bcp14> be present when using the JWE JSON Serialization.</t>
        </li>
        <li>
          <t>The JWE Ciphertext is the ciphertext defined in <xref section="5.2" sectionFormat="of" target="RFC9180"/>.</t>
        </li>
        <li>
          <t>The HPKE info parameter defaults to the empty string; mutually known private information <bcp14>MAY</bcp14> be used instead. The concept of mutually known private information is defined in <xref target="NIST.SP.800-56Ar3"/> as an input to the key derivation function.</t>
        </li>
        <li>
          <t>The HPKE aad parameter <bcp14>MUST</bcp14> be set to the "Additional Authenticated Data encryption parameter", as specified in Step 14 of <xref section="5.1" sectionFormat="of" target="RFC7516"/>.</t>
        </li>
        <li>
          <t>Then follow Steps 11-19 of <xref section="5.1" sectionFormat="of" target="RFC7516"/> (Message Encryption).</t>
        </li>
      </ul>
      <t>When decrypting, the checks in <xref section="5.2" sectionFormat="of" target="RFC7516"/>,
Steps 1 through 5 <bcp14>MUST</bcp14> be performed. The JWE Encrypted Key in Step 2 is the
base64url-encoded encapsulated key.</t>
      <section anchor="compact-example">
        <name>Compact Example</name>
        <t>Below is an example of a Compact JWE using HPKE integrated encryption:</t>
        <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

eyJhbGciOiAiSFBLRS0wIiwgImVuYyI6ICJpbnQiLCAia2lkIjogIkc1Tl9fQ3FNdl9r\
SkdpZUdTRnVBdWd2bDBqclFKQ1ozeUt3Vks2c1VNNG8ifQ.BIh6I40uiBbK8-\
UK7nHdo3ISEfgwJ_MF3zWjQzLt00GhFF2-\
1VgWKHSYLXdeVeRV7AinyocYiCYmISvW0yqiDmc..Ov-\
                                    llz6VUyiw8nZL0OPGLGZckLTm5UcTZFg.
]]></artwork>
        <t>The keys used for this example are in <xref target="keys-used"/>.</t>
      </section>
    </section>
    <section anchor="key-encryption">
      <name>Key Encryption</name>
      <t>When using the JWE JSON Serialization,
recipients using JOSE-HPKE can be added alongside other recipients
(e.g., those using <tt>ECDH-ES+A128KW</tt> or <tt>RSA-OAEP-256</tt>),
since HPKE is used to encrypt the Content Encryption Key,
which is then processed as specified in JWE.</t>
      <t>The encoding of the protected header remains consistent with existing JWE rules.</t>
      <t>In HPKE JWE Key Encryption:</t>
      <ul spacing="normal">
        <li>
          <t>The Key Management Mode is Key Encryption.</t>
        </li>
        <li>
          <t>When all recipients use the same HPKE algorithm to secure the Content Encryption Key, the JWE Protected Header <bcp14>SHOULD</bcp14> contain "alg".
Otherwise, the JWE Protected Header (and JWE Shared Unprotected Header) <bcp14>MUST NOT</bcp14> contain "alg".</t>
        </li>
        <li>
          <t>JOSE Header parameter "alg" <bcp14>MUST</bcp14> be a JOSE-HPKE algorithm.</t>
        </li>
        <li>
          <t>JOSE Header parameter "psk_id" <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>JOSE Header parameter "ek" <bcp14>MUST</bcp14> be present and contain the base64url-encoded HPKE encapsulated key.</t>
        </li>
        <li>
          <t>Recipient JWE Encrypted Key <bcp14>MUST</bcp14> be the ciphertext from HPKE Encryption.</t>
        </li>
        <li>
          <t>The HPKE info parameter contains the encoding of the Recipient_structure, which is described in <xref target="recipient_structure"/>.</t>
        </li>
        <li>
          <t>The HPKE AAD parameter defaults to the empty string; externally provided information <bcp14>MAY</bcp14> be used instead.</t>
        </li>
        <li>
          <t>THE HPKE plaintext <bcp14>MUST</bcp14> be set to the CEK.</t>
        </li>
      </ul>
      <t>The processing of "enc", "iv", "tag", "aad", and "ciphertext" is as already defined in <xref target="RFC7516"/>.
Implementations process these parameters as defined in <xref target="RFC7516"/>;
no additional processing requirements are introduced by HPKE-based key encryption.</t>
      <section anchor="recipient_structure">
        <name>Recipient_structure</name>
        <t>The <tt>Recipient_structure</tt> is a JSON object with the following members:</t>
        <ul spacing="normal">
          <li>
            <t>context (string): This member <bcp14>MUST</bcp14> include the constant string value "JOSE HPKE Recipient".</t>
          </li>
          <li>
            <t>next_layer_alg (string): Identifies the algorithm with which the HPKE-encrypted key <bcp14>MUST</bcp14> be used. Its value <bcp14>MUST</bcp14> match the "enc" (encryption algorithm) header parameter in the JWE protected header. This field is included for alignment with the COSE HPKE <xref target="I-D.ietf-cose-hpke"/> specification. Currently, there are no known attacks that allow a downgrade attack of the content encryption algorithm.</t>
          </li>
          <li>
            <t>recipient_protected_header (object): This member contains the base64url-encoded JWE Per-Recipient Unprotected Header (see JWE JSON Serialization in <xref section="7.1" sectionFormat="of" target="RFC7156"/> of the recipients member. To serialize this header member the procedure from Section 3.3 of RFC 7638 <bcp14>MUST</bcp14> be used. Unlike with RFC 7638, all members from this member are included except for the "ek" member. The inclusion of this data in the <tt>Recipient_structure</tt> allows context information to be included in the key derivation.</t>
          </li>
          <li>
            <t>recipient_extra_info (string): Contains additional context information that the application includes in the key derivation via the HPKE <tt>info</tt> parameter. Mutually known private information, which is defined in <xref target="NIST.SP.800-56Ar3"/>, <bcp14>MAY</bcp14> be used in this input parameter. If no additional context is provided, this value <bcp14>MUST</bcp14> be the empty string "".</t>
          </li>
        </ul>
        <section anchor="deterministic-serialization-for-hpke-info">
          <name>Deterministic Serialization for HPKE <tt>info</tt></name>
          <t>JSON texts that are semantically identical can serialize differently (e.g., member order, whitespace), which would lead to divergent <tt>info</tt> values and failed key agreement.</t>
          <t>To produce the HPKE <tt>info</tt> byte string from a <tt>Recipient_structure</tt>, both sides <bcp14>MUST</bcp14> produce the deterministic JSON representation using the JSON Web Key (JWK) Thumbprint serialization rules <xref target="RFC7638"/>:</t>
          <ol spacing="normal" type="1"><li>
              <t>Construct the <tt>Recipient_structure</tt> JSON object exactly as defined <xref target="recipient_structure"/>.</t>
            </li>
            <li>
              <t>Prepare the JSON structure based on Section 3.3 of RFC 7638.</t>
            </li>
            <li>
              <t>Use the resulting JSON structure, base64url-encode it and use the octets as the HPKE <tt>info</tt> value.</t>
            </li>
          </ol>
          <section anchor="example">
            <name>Example</name>
            <t>The example below shows a pretty-printed JSON object with an empty <tt>recipient_extra_info</tt> member.</t>
            <artwork><![CDATA[
{{::include-fold examples/recipient_structure_example.txt}}
]]></artwork>
            <t>The serialized JSON leads to:</t>
            <artwork><![CDATA[
{{::include-fold examples/serialization_example1.txt}}
]]></artwork>
            <t>The base64url-encoded JSON structure above is used as the HPKE <tt>info</tt> bytes.</t>
          </section>
        </section>
      </section>
      <section anchor="json-example">
        <name>JSON Example</name>
        <t>Below is an example of a JWE using the JSON Serialization and HPKE key encryption:</t>
        <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "protected": "eyJlbmMiOiAiQTEyOEdDTSJ9",
  "ciphertext": "9AxOd65ROJY1cQ",
  "iv": "2u3NRi3CSr-x7Wuj",
  "tag": "1NKYSWVV4pw5thsq7t6m6Q",
  "recipients": [
    {
      "encrypted_key": "l9VRW1K5CA037fY2ZqVF4bDej413TaAtfjoe3k89-eI",
      "header": {
        "alg": "HPKE-0",
        "kid": "G5N__CqMv_kJGieGSFuAugvl0jrQJCZ3yKwVK6sUM4o",
        "ek": "BJl0V6KLl3HOAZbzFwiAL9eaYbFQPg7-\
             ROmIJpluIQjNS5zultZsC4rGhGzmW1GUWG8bzJUWLQtxFF9oze0AKhU"
      }
    }
  ]
}
]]></artwork>
        <t>The keys used for this example are in <xref target="keys-used"/>.</t>
      </section>
    </section>
    <section anchor="alg-mapping">
      <name>Mapping HPKE Keys to JWK for JOSE</name>
      <t>JWKs can be used to represent JOSE-HPKE private or public keys. For the algorithms defined in this document, the valid combinations of the
JWE Algorithm, "kty", and "crv" are shown in <xref target="ciphersuite-kty-crv"/>.</t>
      <figure anchor="ciphersuite-kty-crv">
        <name>JWK Types and Curves for JOSE-HPKE Ciphersuites</name>
        <artwork><![CDATA[
+---------------------+-----------------+
| JWE Algorithm       | JWK |           |
|                     | kty | crv       |
+---------------------+-----+-----------+
| HPKE-0              | EC  | P-256     |
| HPKE-1              | EC  | P-384     |
| HPKE-2              | EC  | P-521     |
| HPKE-3, HPKE-4      | OKP | X25519    |
| HPKE-5, HPKE-6      | OKP | X448      |
+---------------------+-----+-----------+
]]></artwork>
      </figure>
      <t>When the "kty" field is "AKP" (Algorithm Key Pair <xref target="I-D.ietf-cose-dilithium"/>) and "alg" is a JOSE-HPKE algorithm, the public and private keys <bcp14>MUST</bcp14> be raw HPKE public and private keys (respectively)
for the KEM used by HPKE.</t>
      <section anchor="jwk-representation-of-a-jose-hpke-key-with-hpke-ciphersuite">
        <name>JWK Representation of a JOSE-HPKE Key with HPKE Ciphersuite</name>
        <t>The example below is a JWK representation of a JOSE-HPKE public and private key:</t>
        <artwork><![CDATA[
{
  "kty": "OKP",
  "crv": "X25519",
  "x": "3pPHgcHYVYpOpB6ISwHdoPRB6jNgd8mM4nRyyj4H3aE",
  "d": "nWGxne0tAiV8Hk6kcy4rN0wMskjl9yND0N3Xeho9n6g",
  "kid": "recipient-key-1",
  "alg": "HPKE-3",
  "key_ops": "encrypt"
}
]]></artwork>
        <t>It uses the "key_ops" value of "encrypt",
which is appropriate when using integrated encryption.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This specification is based on HPKE and the security considerations of
<xref target="RFC9180"/> are therefore applicable also to this specification.</t>
      <t>HPKE assumes the sender is in possession of the public key of the recipient and
HPKE JOSE makes the same assumptions. Hence, some form of public key distribution
mechanism is assumed to exist but outside the scope of this document.</t>
      <t>HPKE in Base mode does not offer authentication as part of the HPKE KEM.</t>
      <t>HPKE relies on a source of randomness being available on the device.
In Key Agreement with Key Wrapping mode, the CEK has to be randomly generated.
The guidance on randomness in <xref target="RFC4086"/> applies.</t>
      <section anchor="key-management">
        <name>Key Management</name>
        <t>A single KEM key should not be used with multiple algorithms.
Each key and its associated algorithm suite, comprising the KEM, KDF, and AEAD,
should be managed independently.
This separation prevents unintended interactions or vulnerabilities between algorithms,
ensuring the integrity and security guarantees of each algorithm are preserved.
Additionally, the same key should not be used for both key encryption and integrated encryption, as it may introduce security risks.
It creates algorithm confusion, increases the potential for key leakage, cross-suite attacks, and improper handling of the key.</t>
      </section>
      <section anchor="static-asymmetric-authentication-in-hpke">
        <name>Static Asymmetric Authentication in HPKE</name>
        <t>Authenticated KEMs based on static asymmetric key authentication are not supported in JOSE HPKE for the following reasons:</t>
        <ul spacing="normal">
          <li>
            <t>The security implications vary depending on whether they are applied to Key Encryption or Integrated Encryption. When used for Key Encryption, authenticated KEMs offer little meaningful security benefit and may give a false impression of data origin authentication.</t>
          </li>
          <li>
            <t>Authenticated KEMs are susceptible to Key-Compromise Impersonation (KCI) attacks. If the sender's static private key is
compromised, an attacker can generate ciphertexts that the recipient will accept as authentic, compromising message integrity.</t>
          </li>
        </ul>
      </section>
      <section anchor="review-jwt-best-current-practices">
        <name>Review JWT Best Current Practices</name>
        <t>The guidance in <xref target="RFC8725"/> about encryption is also pertinent to this specification.</t>
      </section>
    </section>
    <section anchor="ciphersuite-registration">
      <name>Ciphersuite Registration</name>
      <t>This specification registers a number of ciphersuites for use with HPKE.
A ciphersuite is a group of algorithms, often sharing component algorithms such as hash functions, targeting a security level.
A JOSE-HPKE algorithm makes choices for the following HPKE parameters:</t>
      <ul spacing="normal">
        <li>
          <t>KEM Algorithm</t>
        </li>
        <li>
          <t>KDF Algorithm</t>
        </li>
        <li>
          <t>AEAD Algorithm</t>
        </li>
      </ul>
      <t>The "KEM", "KDF", and "AEAD" values are chosen from the IANA HPKE registry <xref target="IANA.HPKE"/>.</t>
      <t>All JOSE-HPKE algorithm identifiers registered by this specification begin with the string "HPKE-".
Future JOSE-HPKE ciphersuite names registered <bcp14>MUST</bcp14> also follow this convention.</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="json-web-signature-and-encryption-algorithms">
        <name>JSON Web Signature and Encryption Algorithms</name>
        <t>The following entries are added to the IANA "JSON Web Signature and Encryption Algorithms" registry <xref target="IANA.JOSE"/>:</t>
        <section anchor="hpke-0">
          <name>HPKE-0</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-0</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(P-256, HKDF-SHA256) KEM, the HKDF-SHA256 KDF and the AES-128-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-1">
          <name>HPKE-1</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-1</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(P-384, HKDF-SHA384) KEM, the HKDF-SHA384 KDF, and the AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-2">
          <name>HPKE-2</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-2</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(P-521, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-3">
          <name>HPKE-3</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-3</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(X25519, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and the AES-128-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-4">
          <name>HPKE-4</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-4</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(X25519, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and the ChaCha20Poly1305 AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-5">
          <name>HPKE-5</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-5</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(X448, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-6">
          <name>HPKE-6</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-6</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(X448, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the ChaCha20Poly1305 AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="int">
          <name>int</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: int</t>
            </li>
            <li>
              <t>Algorithm Description: Indicates that HPKE Integrated Encryption is being used</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "enc"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Required</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="overview"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="json-web-signature-and-encryption-header-parameters">
        <name>JSON Web Signature and Encryption Header Parameters</name>
        <t>The following entries are added to the IANA "JSON Web Key Parameters" registry <xref target="IANA.JOSE"/>:</t>
        <section anchor="ek">
          <name>ek</name>
          <ul spacing="normal">
            <li>
              <t>Header Parameter Name: "ek"</t>
            </li>
            <li>
              <t>Header Parameter Description: A base64url-encoded encapsulated key, as defined in <xref section="5.1.1" sectionFormat="of" target="RFC9180"/></t>
            </li>
            <li>
              <t>Header Parameter Usage Location(s): JWE</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="encapsulated-keys"/> of this specification</t>
            </li>
          </ul>
        </section>
        <section anchor="pskid">
          <name>psk_id</name>
          <ul spacing="normal">
            <li>
              <t>Header Parameter Name: "psk_id"</t>
            </li>
            <li>
              <t>Header Parameter Description: A base64url-encoded key identifier (kid) for the pre-shared key, as defined in <xref section="5.1.2" sectionFormat="of" target="RFC9180"/></t>
            </li>
            <li>
              <t>Header Parameter Usage Location(s): JWE</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="overview"/> of this specification</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC9180">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
            <author fullname="B. Lipp" initials="B." surname="Lipp"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <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="RFC7516">
          <front>
            <title>JSON Web Encryption (JWE)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Hildebrand" initials="J." surname="Hildebrand"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries defined by that specification. Related digital signature and Message Authentication Code (MAC) capabilities are described in the separate JSON Web Signature (JWS) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7516"/>
          <seriesInfo name="DOI" value="10.17487/RFC7516"/>
        </reference>
        <reference anchor="RFC7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <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="RFC7517">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <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="RFC7156">
          <front>
            <title>Diameter Support for Proxy Mobile IPv6 Localized Routing</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>In Proxy Mobile IPv6, packets received from a Mobile Node (MN) by the Mobile Access Gateway (MAG) to which it is attached are typically tunneled to a Local Mobility Anchor (LMA) for routing. The term "localized routing" refers to a method by which packets are routed directly between an MN's MAG and the MAG of its Correspondent Node (CN) without involving any LMA. In a Proxy Mobile IPv6 deployment, it may be desirable to control the establishment of localized routing sessions between two MAGs in a Proxy Mobile IPv6 domain by requiring that the session be authorized. This document specifies how to accomplish this using the Diameter protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7156"/>
          <seriesInfo name="DOI" value="10.17487/RFC7156"/>
        </reference>
        <reference anchor="RFC8725">
          <front>
            <title>JSON Web Token Best Current Practices</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="225"/>
          <seriesInfo name="RFC" value="8725"/>
          <seriesInfo name="DOI" value="10.17487/RFC8725"/>
        </reference>
        <reference anchor="RFC7638">
          <front>
            <title>JSON Web Key (JWK) Thumbprint</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7638"/>
          <seriesInfo name="DOI" value="10.17487/RFC7638"/>
        </reference>
        <reference anchor="IANA.JOSE" target="https://www.iana.org/assignments/jose">
          <front>
            <title>JSON Web Signature and Encryption Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </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="12" month="September" year="2025"/>
            <abstract>
              <t>   This document describes 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 FIPS 204.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-dilithium-09"/>
        </reference>
        <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 Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Transmute</organization>
            </author>
            <author fullname="Ajitomi, Daisuke" initials="A." surname="Daisuke">
              <organization>bibital</organization>
            </author>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <date day="19" month="September" year="2025"/>
            <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-16"/>
        </reference>
        <reference anchor="IANA.HPKE" target="https://www.iana.org/assignments/hpke">
          <front>
            <title>Hybrid Public Key Encryption (HPKE)</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="NIST.SP.800-56Ar3" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf">
          <front>
            <title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography, NIST Special Publication 800-56A Revision 3</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2018" month="April"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 559?>

<section anchor="keys-used">
      <name>Keys Used in Examples</name>
      <t>This private key and its implied public key are used the examples:</t>
      <sourcecode type="text"><![CDATA[
{
  "kty": "EC",
  "use": "enc",
  "alg": "HPKE-0",
  "kid": "G5N__CqMv_kJGieGSFuAugvl0jrQJCZ3yKwVK6sUM4o",
  "crv": "P-256",
  "x": "gixQJ0qg4Ag-6HSMaIEDL_zbDhoXavMyKlmdn__AQVE",
  "y": "ZxTgRLWaKONCL_GbZKLNPsW9EW6nBsN4AwQGEFAFFbM",
  "d": "g2DXtKapi2oN2zL_RCWX8D4bWURHCKN2-ZNGC05ZaR8"
}
]]></sourcecode>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This specification leverages text from <xref target="I-D.ietf-cose-hpke"/>.
We would like to thank
Matt Chanda,
Ilari Liusvaara,
Neil Madden,
Aaron Parecki,
Filip Skokan,
and
Sebastian Stenzel
for their contributions to the specification.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>-12</t>
      <ul spacing="normal">
        <li>
          <t>Added the recipient_structure</t>
        </li>
      </ul>
      <t>-11</t>
      <ul spacing="normal">
        <li>
          <t>Fix too long lines</t>
        </li>
      </ul>
      <t>-10</t>
      <ul spacing="normal">
        <li>
          <t>Addressed WGLC review comments by Neil Madden and Sebastian Stenzel.</t>
        </li>
      </ul>
      <t>-09</t>
      <ul spacing="normal">
        <li>
          <t>Corrected examples.</t>
        </li>
      </ul>
      <t>-08</t>
      <ul spacing="normal">
        <li>
          <t>Use "enc":"int" for integrated encryption.</t>
        </li>
        <li>
          <t>Described reasons for excluding authenticated HPKE.</t>
        </li>
        <li>
          <t>Stated that mutually known private information <bcp14>MAY</bcp14> be used as the HPKE info value.</t>
        </li>
      </ul>
      <t>-07</t>
      <ul spacing="normal">
        <li>
          <t>Clarifications</t>
        </li>
      </ul>
      <t>-06</t>
      <ul spacing="normal">
        <li>
          <t>Remove auth mode and auth_kid from the specification.</t>
        </li>
        <li>
          <t>HPKE AAD for JOSE HPKE Key Encryption is now empty.</t>
        </li>
      </ul>
      <t>-05</t>
      <ul spacing="normal">
        <li>
          <t>Removed incorrect text about HPKE algorithm names.</t>
        </li>
        <li>
          <t>Fixed #21: Comply with NIST SP 800-227 Recommendations for Key-Encapsulation Mechanisms.</t>
        </li>
        <li>
          <t>Fixed #19: Binding the Application Context.</t>
        </li>
        <li>
          <t>Fixed #18: Use of apu and apv in Recipient context.</t>
        </li>
        <li>
          <t>Added new Section 7.1 (Authentication using an Asymmetric Key).</t>
        </li>
        <li>
          <t>Updated Section 7.2 (Key Management) to prevent cross-protocol attacks.</t>
        </li>
        <li>
          <t>Updated HPKE Setup info parameter to be empty.</t>
        </li>
        <li>
          <t>Added details on HPKE AEAD AAD, compression and decryption for HPKE Integrated Encryption.</t>
        </li>
      </ul>
      <t>-04</t>
      <ul spacing="normal">
        <li>
          <t>Fixed #8: Use short algorithm identifiers, per the JOSE naming conventions.</t>
        </li>
      </ul>
      <t>-03</t>
      <ul spacing="normal">
        <li>
          <t>Added new section 7.1 to discuss Key Management.</t>
        </li>
        <li>
          <t>HPKE Setup info parameter is updated to carry JOSE context-specific data for both modes.</t>
        </li>
      </ul>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>Fixed #4: HPKE Integrated Encryption "enc: dir".</t>
        </li>
        <li>
          <t>Updated text on the use of HPKE Setup info parameter.</t>
        </li>
        <li>
          <t>Added Examples in Sections 5.1, 5.2 and 6.1.</t>
        </li>
        <li>
          <t>Use of registered HPKE  "alg" value in the recipient unprotected header for Key Encryption.</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Apply feedback from call for adoption.</t>
        </li>
        <li>
          <t>Provide examples of auth and psk modes for JSON and Compact Serializations</t>
        </li>
        <li>
          <t>Simplify description of HPKE modes</t>
        </li>
        <li>
          <t>Adjust IANA registration requests</t>
        </li>
        <li>
          <t>Remove HPKE Mode from named algorithms</t>
        </li>
        <li>
          <t>Fix AEAD named algorithms</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Created initial working group version from draft-rha-jose-hpke-encrypt-07</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
xigvu1tzKCtJyLxBeAMIKsFhErl7JngU8kVrnvwDcjXm/d4ceeZYrQzgW84T
2WN4rO8plBInV/oFdaR5XIrY3GzzjpXgQKwM0uKMGrZIb5a7WtV0GyqxA0TL
TXNFjCso7Ghjtzbi0MVqDBhdeyn6H8pJ9A4qks25pjihaD+ULsCVoG3kiZrB
9AUuuFQdvRcSaSHaxTndV2OkbpVvBwYBVIuDJsgSioKwD0LwSZ1QOXRv6FqV
Z1EzTWIZoVZb8BlzUwaANYRKQB0KinSKCWLvQISo2TKPN8fVpSvONlvmhkGc
i0hop+vtV0kMWBLNL74KuzdR1+B4WOip+15O5JMZFuU1fW1OkBbDwdd2aAa9
i+Yvc3Ju4SVMVYKw49OcLsWn13yYIkC7ZhJg9ghIgF4jxhyWyAOHoG2OdMpI
xjKxouU+YB5G2wmAXsQ8vVet7M6SBTdKl6tDvIGf4xMA4OCUkabOVoQ1UG/4
JxC+KAajP2NjD/M2STjuZPYyWV6s/B8ZgSDUaDbYMyj9iMk7wMyr14WsOewK
TrtLGXuN7pKsbmHFBTOesg/zqRpI5bcbz4rKZuVt/9vGcytlhaf9ZnpJsnrd
rO+8/uIyq0tOlC3ULW+o7Io1EtZYLhMKHYYYem54I/Tj4Qg8yIQ2Wm0IzckS
o6GX29AiaSxq+zJF/yF1jzsq2jCMXYFkSPSmCkEwg1xwpNV20eKb2gGRtwP/
/Oc/jR+Lf1DzdJrsu79/xygD9xiqIj4uD+nAtj/tNNjcSz8ahpgdjfoHlnPu
tJze/u7JVW/tses8DruT2/jzrLvVbR8Ffe/SOWm3HN5wx90Hf9gdW/Vrd2dw
ub5/Zrs74d+N3tgOvtzY11fe7a59Zzf6e7u/WO7+8WXd/yZuovXbsWxY9duz
s4NtZ3BZ2+2Otroba7Gz2z/eNv9u3Bx/8g5tf73b6wyGj0f3p/vr3+4eLr+d
RGtrB6P9/QaMqd8O744Pe59PfrbFrbi6/dRyvJlvfXbanyfd3vRubfaLszex
arXzKYxm7/jjut+2bm9mzuO29+Vk7fzi4OTgizU+uZ5s3ljXX/aHNaJzkufW
Hi36xeTbJfxD34xkD8eYOEZnqorOiRbet3RhNasVSD04s986BIO4E3PYGF5J
ByJ9Cv7zQeaKqA1ruDl8KTSQr9ox/aFVb2wf333FpP/Xq17LPG91LszG5tbX
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

-->

</rfc>
