<?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.24 (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-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.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-07"/>
    <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="March" day="18"/>
    <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 JOSE-HPKE, the HPKE mode used (e.g, "mode_base" or "mode_auth_psk") is determined
by the presence of the JOSE 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>HPKE encapsulated key is defined in Section 5.1.1 of <xref 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 "dir". This is an explicit exception to requirement in Section 4.1.2 of <xref 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" 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>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 Section 5.1.1 of <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>JWE Initialization Vector and JWE Authentication Tag <bcp14>MUST NOT</bcp14> be present.</t>
        </li>
        <li>
          <t>JWE AAD <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>JWE Ciphertext is ciphertext as defined in Section 5.2 of <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>The HPKE info parameter <bcp14>MUST</bcp14> be set to an empty string.</t>
        </li>
        <li>
          <t>The HPKE aad parameter <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>
        <li>
          <t>If protected header contains the parameter "zip" (Section 4.1.3 of <xref target="RFC7516"/>), the plaintext is the message compressed with the indicated algorithm.
Otherwise, the plaintext is the raw message.</t>
        </li>
      </ul>
      <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>Recipients using JOSE-HPKE can be added alongside other recpients (e.g., <tt>ECDH-ES+A128KW</tt> or <tt>RSA-OAEP-384</tt>), as HPKE is used to encrypt the
Content Encryption Key, which is then processed as specified in JWE.</t>
      <t>The protected header used in content encryption is passed to HPKE as Additional Authenticated Data. The protected header encoding remains consistent
with existing JWE formatting 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 "auth_kid" <bcp14>SHOULD NOT</bcp14> be present.</t>
        </li>
        <li>
          <t>JOSE Header parameter "ek" <bcp14>MUST</bcp14> be present and contain 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 Setup info parameter <bcp14>MUST</bcp14> be set to an empty string.</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 already defined in <xref target="RFC7516"/>. Implementations should follow the existing
JWE specifications for handling these parameters, and no additional processing requirements are introduced by HPKE-based key encryption.</t>
      <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>
      <t>When the "kty" field is "AKP" 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>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>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>The mode used is specified by presence or absence of header parameters "psk_id" and "auth_kid".</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 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):   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 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):   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 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):   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 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):   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 using 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 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):   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 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):   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="2" month="March" 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-11"/>
        </reference>
      </references>
    </references>
    <?line 599?>

<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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
WQsx0zKAKH/M3/piiSkdgBoCD8AOhRgyuQKRrMNdVHOxJ5mg6t4Vf989USGI
RJiEk+N/fyTiCjUMld92BR0aahyw9Ro6xJhyivg2nOEt+0bdtuWV/YC85iSL
gX8QuxR30IWyfrpQT+m82oBN960nVGZvkYS/1A0H1ku0ANJp8dM+gEs7wI0c
ajRjCTSH2PC4jyyHvLh0/A1ta1nTVM+UitzuSEqU1vFuiJdQEbG23Y5y+z53
1GIFV5GgwhtvMYeRxxsOkoInY+uYnV4NJ6N+TspQeWvEL9l0DBUquiUYZky6
aeAMJX0w/M2wdLm8hF7owS/u2vD4ngFdtg4HBWUmAjWdC8RYU9FJm3Ft4SXz
FyjlXkxj3HnkjgdRij9z7WA6A58ppIkUYoh/9sgA+s+I5JIESYl0rxrq3l1q
91PkEDaEf60otZSPCNwfJTAH9oKjvv3Tn/6k8M3FbHyuGT3joj1s+M2ru9qm
O3jwh4XZaWc+LF0NGy+d+ax1UygYV/ULc7zsYNsFu2/js8tGN/hc1JaVKhvd
FR7nzvrhHsa871THpWZRP59WQezcq/tbWx8VDa114Yytm6pWms2uBu1id+6U
xqXb9k25Ob+705vju6Nyd+iMtHtzNpjPWL/YvOvMm+W7RrP/8Dpb3L7Ogrth
cf5ont61rUL+tO6tHl4GrU6l3nvqrW9ersrm4uJMN9fl4dn8pfTSPe60763x
3etkMG1eLO2nhld60Vu5yYN33LiftJ7uDsoX085oMlweuqdnT3bjgE+G+fzh
04pVNWtdNzve+nB2aD47y5Jfd1vH3YVmdHLT4yEb69cjrcfbt8vapFDsXj2c
H46so0nTtmctUzuf6gVrdghzHlurVtM49FrVRe/+ENzbU2t1NbSv3We+GVUG
+r39dH/0MJh1LyfHp83N6HzTrE7m3Bwb2sG8/1A3m4xbncXAmjutl+ao6I0C
I3i8W/aKjd6ra3Z9fwRcgORUahOUKQiloySMJPRXRQUTEMqkMPWZE/Ur7ROR
ST0RjliukMmKl2izTmTeQbxBgwFvAtc6wZ36E5Ji78RGa3IyXy9y/ixYjsF8
Wf6JN2O50kH1ZGXrrfqzNhw1lk+HBxd3zxvWPXq8vBmWiutB7VY70s+PrGFH
m1wPsTjgW5YAZRvTZnoMIE4pQ8cTDcR2mRGFDhIww/NCwMJWtMsZQc4CfbsB
vKJd8bAJ2FxoUjwsHR8eHVSOiyEWXpzw9XGpelxEGJVvAtsgdyRVCaETz1JU
RWLrLfoRlL8ByRt0F82Hx+Xt3f3r4+Oj5ZT0wenVbeP28mF++npr3ZXHC/N+
eO6VBo3i8Pb+4pE1T43O68Vr21jDeF33vmQu2nPbGJfvNlf3p5vHfvGVnTc3
j6Mbn5XuDq5G8Du0fbi/K7Dm8S8LsyUYOxO5x0+gPJESp2eHN3e27p/nmuuH
Wn86Lldfg8HrsK4dFZjxsO5XL3q9Rq76NOPD803t0c9pw8JR8YhX7Ifn60M+
Pg1G5ctB57hxUyusOgeTkVOdzeVssVeAUz2+PPsPtr2c3t2ca761KrafGqDI
it02vzh8vliXjDv/eT1clyf37Kh5mRNjMJKEzNFF7trvXdbm/PLB7uUq882p
8Xivz7TlcKqfz8z2eXP2WG9kQu7829MF/WrtfqIPn6oPk9dVULg8O7sYF7xm
sLbao+tF9aozaLgPs+txueSF00ivFWayAzcHZj4Hg0FsngPi5eCHSL6lP/uv
CVKsnkLHAaf7v//tv/x3Ed9Gr38l6RZ5XCmHC/0t0fEf/8c//8f/9M//9Z/+
z//6R/AO1rQ5hvuyTP9VRMVPW3GgotxGSS0IpDGXEMdAMlUEE5PjY1tTz9Ah
wkO/B11w2Q2Tofms+geZUPhNrVg6uhz9Ab2EP9z2a7lerXGdKx9V/vAlDkJ2
p9uV3Rs+YQJXODFWmEWhrb4wQShcSrG1uTPkCGSua0cUi8hmngRH+MDe+w5u
fndYQ04V4tDFchpMONmWZ3g4n0K+JH+BJ0IyZj4pz0SPbmBy792APYpoo8y6
CBg7e1LrOZX8Tdy1dJMU3s7UxYl0WDvt84sW+ygRZieuo7XLQF/uRIYBMQn+
Gx95Z8/PYSTVJ1lUh4nMqmjyJY6otsbP7Us2UFgfOso7d0Xe6RwGtzsCtT2z
RQFwvCH7sZ5R+Bu3psgyXOeHsyU59fadZE44BcUccWg5ce2lGLDxJvxPJHJ/
PJhsNUT/OCjaEUjWG5extKJEoyjYcpspCz7UCj99NsU/aLZkRUDCClKWw3QB
rZtdm8EYQKpt9KZQWGQW2JvZganLTQCR45JiKfZWkpuOosBnBtOalGedAYUS
eRABkGUn9xASa0lkdkQ+2JDlK1RiI0q/kMD6VuGJCMI64b5DQkVHvmFi9+M9
pzB09E47g3blttDtRo4LIBddiKtC62z1eGG81qqrzeBul5vRey5VX45XjjO8
cs+7r3WrNGenT30z11/PV4e8UNOm1mx4e1Dz3XljUlpV55wXjkfdXJfnWu3z
+9PpjTO9uNZm0wIfdZfTVaX3ahy0xVRIXaxyvrJMAPP2YVJ/7Ty5B/Nj76px
k3JYtPNmcVw/nemtC5ONbk1tLX6O1Ru0+h0Z8K+yeu6td3Zebi1NpzetVVpF
4+n2ZjaoVLrrQ291th4+r7q30gOArrO0I/Nneynay039yRz5pdJpe946qI36
V6364+JpklsOy7lR5dHXgoPc43g9WESTx35T2qYmG3BnkQIOwfM3ok+iHVLT
JVJfIzjpX17w/YV1PurfHBdmpl9oHY4n2nTC1qWzx0bu+Xn1pK1rlacz66m+
uHptpHvTZNX5ulirHzwf5575en06Oz67PHh4HbauevZ0YJ+f9R37oXahd+1c
IxN1/qYk/37LfodojlVtnBWMuTWtG6PmUUt/un4dbNhGL/WWt83DG+YO7ibB
aF7V1+/Tb5cz+ld0P3/ABf3ruaFJllpQANOuFB/OrNlg0K7O+/rhoFpyr9av
9br/5J8+dw+umrZtPB7y+wtvVij2CrlZ7vSmejGwL++Ph/dn66fyxhzfD4yH
0fL63ixNuku3cspvMmmaw+fvPxhapN3j//w/1c5GNQNwRlWfgW8lnFzDRcsx
MMCvOTWxMAs8OrBv4P9Q5RyoaU/FzkJn7A1XZGSC4nZe78Q+emK3998jnB8E
6V+drb59JD5yWGCqzHc51nsm4qGOOMMhy1D4RpZIXpLhp8Mr4BVceqktfNq0
Cb212LUMS7ygY1wy5uVVtNXEpPE2bMJXSW1mZsOdNNoNjUqKPbn/Rw5KLS66
IZUfekUubiSDkyEKE8kLEobcCwyf56BpDtrQNiSu/Te5Xf+9ffsb5Y9qalqp
Lv5IWPpjbBDUPyrJp8R7FeaGT5g9avne7L/Zml2I1vaYjTp+klWLZqeWxX0t
IQZNtyzta3lQKqZblkWtVK4StuxdXsPnfengoHicankgW1a3WlYqRz++dlKC
J+qnHXQUJwH+PoNEGGwcLmon64G74l7Eu4Iv63FvL/NN7kTQTg6yjwrBM7jD
WBRWu7wOd/TeqyfLJqsisXmittGLHH3c/hBisafhZxAgB3c6VtzcfFEmUkou
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

-->

</rfc>
