<?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.23 (Ruby 3.2.3) -->
<?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-05" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <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-05"/>
    <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>Transmute</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>orie@transmute.industries</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="February" day="11"/>
    <area>Security</area>
    <workgroup>JOSE</workgroup>
    <keyword>HPKE</keyword>
    <keyword>JOSE</keyword>
    <keyword>PQC</keyword>
    <keyword>Hybrid</keyword>
    <abstract>
      <?line 94?>

<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 works for any combination of an asymmetric key encapsulation mechanism (KEM),
key derivation function (KDF), and authenticated encryption with additional data
(AEAD) function. Authentication for HPKE in JOSE is provided by
JOSE-native security mechanisms or by one of the authenticated variants of HPKE.</t>
      <t>This document defines the use of the HPKE with JOSE.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        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>
    </note>
  </front>
  <middle>
    <?line 108?>

<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 describes 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 "dir", HPKE JWE Integrated Encryption is used.</t>
        </li>
        <li>
          <t>If "enc" is an AEAD algorithm, the recipient Key Managment 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 JWE, the use of specific HPKE modes such as "mode_base" or "mode_auth_psk" is determined by the presence of the header parameters "psk_id" and "auth_kid".</t>
      <t>JWE supports different serializations, including Compact JWE Serialization as described in Section 3.1 of <xref target="RFC7516"/>, General JWE JSON Serialization as described in Section 3.2 of <xref 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 { Section 5 of RFC9180 }.</t>
      <section anchor="auxiliary-authenticated-application-information">
        <name>Auxiliary Authenticated Application Information</name>
        <t>HPKE has two places at which applications can specify auxiliary authenticated information as described in { Section 8.1 of RFC9180 }.</t>
        <t>HPKE algorithms are not required to process "apu" and "apv" as described in Section 4.6.1 of <xref target="RFC7518"/>, despite appearing to be similar to key agreement algorithms (such as "ECDH-ES").</t>
        <t>The "aad parameter" for Open() and Seal() <bcp14>MUST</bcp14> be used with both HPKE JWE Integrated Encryption and HPKE JWE Key Encryption.</t>
        <t>To avoid confusion between JWE AAD and HPKE AAD, this document uses the term "HPKE AEAD AAD" to refer the "aad parameter" for Open() and Seal().</t>
      </section>
      <section anchor="encapsulated-keys">
        <name>Encapsulated Keys</name>
        <t>Encapsulated keys <bcp14>MUST</bcp14> be the base64url encoded encapsulated key as defined in Section 5.1.1 of <xref target="RFC9180"/>.</t>
        <t>In HPKE JWE Integrated Encryption, JWE Encrypted Key is the encapsulated key.</t>
        <t>In HPKE JWE Key Encryption, each recipient JWE Encrypted Key is the encrypted content encryption key, and the encapsulated key (ek) is found in the recipient header.</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 starts with "HPKE".</t>
        </li>
        <li>
          <t>The protected header <bcp14>MUST</bcp14> contain an "enc" and it <bcp14>MUST</bcp14> be set to the value "dir". It updates Section 4.1.2 of <xref target="RFC7516"/> to clarify that in case where HPKE JWE Integrated Encryption is used, setting "enc" set to "dir" is appropriate, as both the derivation of the CEK and the encryption of the plaintext are fully handled within the HPKE encryption.</t>
        </li>
        <li>
          <t>The protected header parameters "psk_id" and "auth_kid" <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>The protected header parameter "ek" <bcp14>MUST NOT</bcp14> be present.</t>
        </li>
        <li>
          <t>The "encrypted_key" <bcp14>MUST</bcp14> be the base64url encoded encapsulated key as defined in Section 5.1.1 of <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>The "iv", "tag" and "aad" members <bcp14>MUST NOT</bcp14> be present.</t>
        </li>
        <li>
          <t>The "ciphertext" <bcp14>MUST</bcp14> be the base64url encoded ciphertext as defined in Section 5.2 of <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>The HPKE Setup info parameter <bcp14>MUST</bcp14> be set to an empty string.</t>
        </li>
        <li>
          <t>The HPKE AEAD AAD <bcp14>MUST</bcp14> be set to the "JWE Additional Authenticated Data encryption parameter", as defined in Step 14 of Section 5.1 of <xref target="RFC7516"/>.</t>
        </li>
      </ul>
      <t>Note that compression is possible with integrated encryption, see Section 4.1.3 of <xref target="RFC7516"/>.</t>
      <t>When decrypting, the checks in <xref target="RFC7516"/> section 5.2, 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>A Compact JWE or JSON Web Token:</t>
        <artwork><![CDATA[
eyJhbGciOiJIUEtFLVAyNTYtU0hBMjU2LUExMjhHQ00iLCJlbmMiOiJkaXIiLCJraWQiOiJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6andrLXRodW1icHJpbnQ6c2hhLTI1Njp2b2RIQ3FjVVdFbV83NUpWcXlhTjhaS1FVMjF3VEFSYzhkRzhuVU1jZlBVIn0.BCsvYxTHM4CO_OwQxL3lkJDdlw3UDjx2xN9MIXnbVzfTgFJmo_Es2xdH-fYs9EXfH_V53JgMWfUm7rBD_oE5efU..7_va6cnwClMsw7h7lqpm2tCrH9NkciM-g9UabdPWcOeIRmAf01NLYG7Wn8fFoohHlcGgd0nh7Jmo9nvHFi7sH6kOX7pplBnvLUoPrqeyW4TdXo_X8YThNKf9BFyWGyF6fjelbic5jSYClFaenMkTnjpHxFW1sWuiuZVmO1EOzrlNttWy.
]]></artwork>
        <t>After verification:</t>
        <artwork><![CDATA[
{
  "protectedHeader": {
    "alg": "HPKE-0",
    "enc": "dir",
    "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:vodHCqcUWEm_75JVqyaN8ZKQU21wTARc8dG8nUMcfPU"
  },
  "payload": {
    "urn:example:claim": true,
    "iss": "urn:example:issuer",
    "aud": "urn:example:audience",
    "iat": 1729785491,
    "exp": 1729792691
  }
}
]]></artwork>
      </section>
      <section anchor="json-example">
        <name>JSON Example</name>
        <t>A JSON Encoded JWE:</t>
        <artwork><![CDATA[
{
  "protected": "eyJhbGciOiJIUEtFLVAyNTYtU0hBMjU2LUExMjhHQ00iLCJlbmMiOiJkaXIiLCJraWQiOiJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6andrLXRodW1icHJpbnQ6c2hhLTI1NjpTNkFYZmRVXzZZZnp2dTBLRERKYjBzRnV3bklXUGs2TE1URXJZaFBiMzJzIiwicHNrX2lkIjoib3VyLXByZS1zaGFyZWQta2V5LWlkIiwiYXV0aF9raWQiOiJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6andrLXRodW1icHJpbnQ6c2hhLTI1NjpTNkFYZmRVXzZZZnp2dTBLRERKYjBzRnV3bklXUGs2TE1URXJZaFBiMzJzIn0",
  "encrypted_key": "BD7QVodtG-FwYASgb36zuTzUCc80aiYwS6JOOE-6_heUGyAZt-cU0818e4oYqP7ebBuW3KTM9EQA0vM5fWp6hj0",
  "ciphertext": "ZxqtYoomgVQGctnv1I_EBVI1NIeJ7qJw2iVtqwUw3fXa8FK-",
  "aad": "8J-PtOKAjeKYoO-4jyBiZXdhcmUgdGhlIGFhZCE"
}
]]></artwork>
        <t>After verification:</t>
        <artwork><![CDATA[
{
  "protectedHeader": {
    "alg": "HPKE-0",
    "enc": "dir",
    "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
    "psk_id": "our-pre-shared-key-id",
    "auth_kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s"
  },
  "plaintext": "🖤 this plaintext!",
  "additionalAuthenticatedData": "🏴‍☠️ beware the aad!"
}
]]></artwork>
      </section>
    </section>
    <section anchor="key-encryption">
      <name>Key Encryption</name>
      <t>HPKE based recipients can be added alongside existing <tt>ECDH-ES+A128KW</tt> or <tt>RSA-OAEP-384</tt> recipients because HPKE is only used to encrypt the content encryption key, and because the protected header used in content encryption is passed to HPKE as Additional Authenticated Data.</t>
      <t>In HPKE JWE Key Encryption:</t>
      <ul spacing="normal">
        <li>
          <t>The protected header <bcp14>MUST NOT</bcp14> contain an "alg".</t>
        </li>
        <li>
          <t>The protected header <bcp14>MUST</bcp14> contain an "enc" that is registered in both the IANA HPKE AEAD Identifiers Registry, and the IANA JSON Web Signature and Encryption Algorithms Registry.</t>
        </li>
        <li>
          <t>The recipient unprotected header parameters "psk_id" and "auth_kid" <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>The recipient unprotected header parameter "ek" <bcp14>MUST</bcp14> be present.</t>
        </li>
        <li>
          <t>The recipient unprotected header <bcp14>MUST</bcp14> contain a registered HPKE "alg" value.</t>
        </li>
        <li>
          <t>The "encrypted_key" <bcp14>MUST</bcp14> be the base64url encoded content encryption key as described in Step 15 in Section 5.1 of <xref target="RFC7516"/>.</t>
        </li>
        <li>
          <t>The recipient "encrypted_key" is as described in Section 7.2.1 of <xref target="RFC7516"/>.</t>
        </li>
        <li>
          <t>The "iv", "tag" JWE members <bcp14>MUST</bcp14> be present.</t>
        </li>
        <li>
          <t>The "aad" JWE member <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>The "ciphertext" <bcp14>MUST</bcp14> be the base64url encoded ciphertext as described in Step 19 in Section 5.1 of <xref target="RFC7516"/>.</t>
        </li>
        <li>
          <t>The HPKE Setup info parameter <bcp14>MUST</bcp14> be set to an empty string.</t>
        </li>
      </ul>
      <section anchor="multiple-recipients-example">
        <name>Multiple Recipients Example</name>
        <t>For example:</t>
        <artwork><![CDATA[
{
  "protected": "eyJlbmMiOiJBMTI4R0NNIn0",
  "iv": "ZL0HDvZJizA6vyTV",
  "ciphertext": "Oq26x9vppULrGNzCn2jaB_Sl-Swjv7e0AcgnhUR5AtrjEf2v6jee09WN-Ne-HIGXBgQpgJPchg0eWNmgv4Ozi5I",
  "tag": "ULnlOiJRYfCzM_r5j9sLEQ",
  "aad": "cGF1bCBhdHJlaWRlcw",
  "recipients": [
    {
      "encrypted_key": "G3HmlpOgA4H1i_RQhT44Nw7svDwUqvNR",
      "header": {
        "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:cxQC_lWt22BIjH5AWSLHCZk_f-mU3-W4Ztcu5-ZbwTk",
        "alg": "ECDH-ES+A128KW",
        "epk": {
          "kty": "EC",
          "crv": "P-256",
          "x": "JnGWSQ90hlt0H7bfcgfaw2DZE-qqv_cwA4_Dn_CkLzE",
          "y": "6jw1AC5q9-qewwBh9DK5YzUHLOogToGDSpoYAJdNo-E"
        }
      }
    },
    {
      "encrypted_key": "pn6ED0ijngCiWF8Hd_PzTyayd2OmRF7QarTVfuWj6dw",
      "header": {
        "alg": "HPKE-0",
        "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
        "psk_id": "our-pre-shared-key-id",
        "auth_kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
        "ek": "BI41YDnhTTI6jSd7T62rLwzCCt_tBqN5LFooiZ7eXJsh01O0-h-BQ6JToKX9UXDw_3ylbXTiYWmPXl2fNmr4BeQ"
      }
    }
  ]
}
]]></artwork>
        <t>After verification:</t>
        <artwork><![CDATA[
{
  "plaintext": "🎵 My lungs taste the air of Time Blown past falling sands 🎵",
  "protectedHeader": {
    "enc": "A128GCM"
  },
  "unprotectedHeader": {
    "alg": "HPKE-0",
    "enc": "dir",
    "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
    "psk_id": "our-pre-shared-key-id",
    "auth_kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
    "ek": "BI41YDnhTTI6jSd7T62rLwzCCt_tBqN5LFooiZ7eXJsh01O0-h-BQ6JToKX9UXDw_3ylbXTiYWmPXl2fNmr4BeQ"
  },
  "additionalAuthenticatedData": "paul atreides"
}
]]></artwork>
      </section>
    </section>
    <section anchor="mapping-hpke-keys-to-jwk-for-jose">
      <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>
      <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>An example is illustrated below for representing a JOSE-HPKE public/private keys.</t>
        <artwork><![CDATA[
{
  "kty": "OKP",
  "crv": "X25519",
  "x": "3pPHgcHYVYpOpB6ISwHdoPRB6jNgd8mM4nRyyj4H3aE",
  "d": "nWGxne0tAiV8Hk6kcy4rN0wMskjl9yND0N3Xeho9n6g",
  "kid": "recipient-key-1",
  "alg": "HPKE-3",
  "key_ops": "encrypt"
}
]]></artwork>
      </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.
In this case JOSE constructs like JWS and JSON Web Tokens (JWTs) can be used to add authentication.
HPKE also offers modes that offer authentication.</t>
      <t>HPKE relies on a source of randomness to be available on the device.
In Key Agreement with Key Wrapping mode, CEK has to be randomly generated and it <bcp14>MUST</bcp14> be ensured that the guidelines in <xref target="RFC8937"/> for random number generations are followed.</t>
      <section anchor="authentication-using-an-asymmetric-key">
        <name>Authentication using an Asymmetric Key</name>
        <t>Implementers are cautioned to note that the use of authenticated KEMs has different meaning when considering integrated encryption and key encryption.
In integrated encryption the KEM operations secure the message plaintext, whereas with key encryption, the KEM operations secure the content encryption key.
For this reason, the use of authenticated KEMs with key encryption is <bcp14>NOT RECOMMENDED</bcp14>, as it gives a false sense of security.
See RFC9180 Section 5.1.3 for details authentication using asymmetric keys.</t>
      </section>
      <section anchor="key-management">
        <name>Key Management</name>
        <t>A single KEM key <bcp14>MUST NOT</bcp14> 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 suites, ensuring the integrity and security guarantees of each algorithm suite are
preserved.  Additionally, the same key <bcp14>MUST NOT</bcp14> 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>
        <t>A single recipient or sender key <bcp14>MUST NOT</bcp14> be used with both JOSE-HPKE and other algorithms as this might enable cross-protocol attacks.</t>
      </section>
      <section anchor="plaintext-compression">
        <name>Plaintext Compression</name>
        <t>Implementers are advised to review Section 3.6 of <xref target="RFC8725"/>, which states:
Compression of data <bcp14>SHOULD NOT</bcp14> be done before encryption, because such compressed data often reveals information about the plaintext.</t>
      </section>
      <section anchor="header-parameters">
        <name>Header Parameters</name>
        <t>Implementers are advised to review Section 3.10 of <xref target="RFC8725"/>, which comments on application processing of JWE Protected Headers.
Additionally, Unprotected Headers can contain similar information which an attacker could leverage to mount denial of service, forgery or injection attacks.</t>
      </section>
      <section anchor="ensure-cryptographic-keys-have-sufficient-entropy">
        <name>Ensure Cryptographic Keys Have Sufficient Entropy</name>
        <t>Implementers are advised to review Section 3.5 of <xref target="RFC8725"/>, which provides comments on entropy requirements for keys.
This guidance is relevant to both public and private keys used in both Key Encryption and Integrated Encryption.
Additionally, this guidance is applicable to content encryption keys used in Key Encryption mode.</t>
      </section>
      <section anchor="validate-cryptographic-inputs">
        <name>Validate Cryptographic Inputs</name>
        <t>Implementers are advised to review Section 3.4 of <xref target="RFC8725"/>, which provides comments on the validation of cryptographic inputs.
This guidance is relevant to both public and private keys used in both Key Encryption and Integrated Encryption, specifically focusing on the structure of the public and private keys.
These inputs are crucial for the HPKE KEM operations.</t>
      </section>
      <section anchor="use-appropriate-algorithms">
        <name>Use Appropriate Algorithms</name>
        <t>Implementers are advised to review Section 3.2 of <xref target="RFC8725"/>, which comments on the selection of appropriate algorithms.
This is guidance is relevant to both Key Encryption and Integrated Encryption.
When using Key Encryption, the strength of the content encryption algorithm should not be significantly different from the strengh of the Key Encryption algorithms used.</t>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document adds entries to <xref target="JOSE-IANA"/>.</t>
      <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, is composed of the following choices:</t>
        <ul spacing="normal">
          <li>
            <t>HPKE Mode</t>
          </li>
          <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 HPKE IANA registry <xref target="HPKE-IANA"/>.</t>
        <t>The "HPKE Mode" is described in Table 1 of <xref target="RFC9180"/>:</t>
        <ul spacing="normal">
          <li>
            <t>"Base" refers to "mode_base" described in Section 5.1.1 of <xref target="RFC9180"/>,
which only enables encryption to the holder of a given KEM private key.</t>
          </li>
          <li>
            <t>"PSK" refers to "mode_psk", described in Section 5.1.2 of <xref target="RFC9180"/>,
which authenticates using a pre-shared key.</t>
          </li>
          <li>
            <t>"Auth" refers to "mode_auth", described in Section 5.1.3 of <xref target="RFC9180"/>,
which authenticates using an asymmetric key.</t>
          </li>
          <li>
            <t>"Auth_Psk" refers to "mode_auth_psk", described in Section 5.1.4 of <xref target="RFC9180"/>,
which authenticates using both a PSK and an asymmetric key.</t>
          </li>
        </ul>
        <t>Implementations detect the use of modes by inspecting header parameters.</t>
      </section>
      <section anchor="json-web-signature-and-encryption-algorithms">
        <name>JSON Web Signature and Encryption Algorithms</name>
        <t>The following entries are added to the "JSON Web Signature and Encryption Algorithms" registry:</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 in Base Mode that uses 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):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 in Base Mode that uses 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):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 in Base Mode that uses 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):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 in Base Mode that uses 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):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 in Base Mode that uses the DHKEM(X25519, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and the ChaCha20Poly1305 AEAD.</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg, enc"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 in Base Mode that uses 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):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 in Base Mode that uses 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):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 "JSON Web Key Parameters" registry:</t>
        <section anchor="ek">
          <name>ek</name>
          <ul spacing="normal">
            <li>
              <t>Header Parameter Name: "ek"</t>
            </li>
            <li>
              <t>Header Parameter Description: An encapsulated key as defined in { Section 5.1.1 of 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):   RFCXXXX</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 key identifier (kid) for the pre-shared key as defined in { Section 5.1.2 of 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):   RFCXXXX</t>
            </li>
          </ul>
        </section>
        <section anchor="authkid">
          <name>auth_kid</name>
          <ul spacing="normal">
            <li>
              <t>Header Parameter Name: "auth_kid"</t>
            </li>
            <li>
              <t>Header Parameter Description: A key identifier (kid) for the asymmetric key as defined in { Section 5.1.3 of 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):   RFCXXXX</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="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="JOSE-IANA" target="https://www.iana.org/assignments/jose/jose.xhtml">
          <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="RFC8937">
          <front>
            <title>Randomness Improvements for Security Protocols</title>
            <author fullname="C. Cremers" initials="C." surname="Cremers"/>
            <author fullname="L. Garratt" initials="L." surname="Garratt"/>
            <author fullname="S. Smyshlyaev" initials="S." surname="Smyshlyaev"/>
            <author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="October" year="2020"/>
            <abstract>
              <t>Randomness is a crucial ingredient for Transport Layer Security (TLS) and related security protocols. Weak or predictable "cryptographically secure" pseudorandom number generators (CSPRNGs) can be abused or exploited for malicious purposes. An initial entropy source that seeds a CSPRNG might be weak or broken as well, which can also lead to critical and systemic security problems. This document describes a way for security protocol implementations to augment their CSPRNGs using long-term private keys. This improves randomness from broken or otherwise subverted CSPRNGs.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8937"/>
          <seriesInfo name="DOI" value="10.17487/RFC8937"/>
        </reference>
        <reference anchor="HPKE-IANA" target="https://www.iana.org/assignments/hpke/hpke.xhtml">
          <front>
            <title>Hybrid Public Key Encryption (HPKE) IANA Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2023" month="October"/>
          </front>
        </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="18" month="January" 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 works for any combination of an asymmetric key encapsulation
   mechanism (KEM), key derivation function (KDF), and authenticated
   encryption with additional data (AEAD) function.  Authentication for
   HPKE in COSE is provided by COSE-native security mechanisms or by one
   of the authenticated variants of HPKE.

   This document defines the use of the HPKE with COSE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-hpke-10"/>
        </reference>
      </references>
    </references>
    <?line 584?>

<section anchor="keys-used-in-examples">
      <name>Keys Used in Examples</name>
      <t>This private key and its implied public key are used the examples:</t>
      <sourcecode type="text"><![CDATA[
{
  "kid": "S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
  "alg": "HPKE-0",
  "kty": "EC",
  "crv": "P-256",
  "x": "wt36K06T4T4APWfGtioqDBXCvRN9evqkZjNydib9MaM",
  "y": "eupgedeE_HAmVJ62kpSt2_EOoXb6e0y2YF1JPlfr1-I",
  "d": "O3KznUTAxw-ov-9ZokwNaJ289RgP9VxQc7GJthaXzWY"
}
]]></sourcecode>
      <t>This pre-shared key is used in the examples:</t>
      <sourcecode type="text"><![CDATA[
{
  "kty": "oct",
  "kid": "our-pre-shared-key-id",
  "k": "anVnZW11anVnZW11Z29rb3Vub3N1cmlraXJla2FpamE"
}
]]></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,
Aaron Parecki,
and Filip Skokan
for their contributions to the specification.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <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 Recipeint 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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
5AmP+FcdvJm24x91KBwq/w/QIljekmIAAA==

-->

</rfc>
