<?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.39 (Ruby 3.4.9) -->
<?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-21" category="std" consensus="true" submissionType="IETF" updates="7516" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Use of HPKE in JWE">Use of Hybrid Public Key Encryption (HPKE) with JSON Web Encryption (JWE)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-jose-hpke-encrypt-21"/>
    <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="UniBw M.">University of the Bundeswehr Munich</organization>
      <address>
        <postal>
          <city>Neubiberg</city>
          <region>Bavaria</region>
          <code>85577</code>
          <country>Germany</country>
        </postal>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <author fullname="Aritra Banerjee">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>London</city>
          <country>United Kingdom</country>
        </postal>
        <email>aritra.banerjee@nokia.com</email>
      </address>
    </author>
    <author initials="O." surname="Steele" fullname="Orie Steele">
      <organization>Tradeverifyd</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>orie@or13.io</email>
      </address>
    </author>
    <author initials="M." surname="Jones" fullname="Michael B. Jones">
      <organization>Self-Issued Consulting</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>michael_b_jones@hotmail.com</email>
        <uri>https://self-issued.info/</uri>
      </address>
    </author>
    <date year="2026" month="July" day="06"/>
    <area>Security</area>
    <workgroup>JOSE</workgroup>
    <keyword>Hybrid Public Key Encryption</keyword>
    <keyword>HPKE</keyword>
    <keyword>JSON Web Encryption</keyword>
    <keyword>JWE</keyword>
    <keyword>JSON Object Signing and Encryption</keyword>
    <keyword>JOSE</keyword>
    <keyword>Hybrid</keyword>
    <abstract>
      <?line 115?>

<t>This specification defines how to use Hybrid Public Key Encryption (HPKE) with
JSON Web Encryption (JWE).
HPKE enables public key encryption
of arbitrary-sized plaintexts to a recipient's public key, and provides security
against adaptive chosen ciphertext attacks.
This specification chooses a specific subset of the HPKE features to use with JWE.</t>
      <t>This specification updates RFC 7516 (JWE) to enable use of
Integrated Encryption as a Key Management Mode.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-wg-jose.github.io/draft-ietf-jose-hpke-encrypt/draft-ietf-jose-hpke-encrypt.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-jose-hpke-encrypt/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        jose Working Group mailing list (<eref target="mailto:jose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/jose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/jose/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-jose/draft-ietf-jose-hpke-encrypt"/>.</t>
    </note>
  </front>
  <middle>
    <?line 127?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Hybrid Public Key Encryption (HPKE) <xref target="I-D.ietf-hpke-hpke"/> is a public key encryption
(PKE) scheme that provides encryption of arbitrary-sized plaintexts to a
recipient's public key.
This specification enables JSON Web Encryption (JWE) <xref target="RFC7516"/> to leverage HPKE,
bringing support for HPKE encryption and KEMs to JWE,
and the possibility of utilizing future HPKE algorithms.</t>
    </section>
    <section anchor="notational-conventions">
      <name>Notational Conventions</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="terminology">
      <name>Terminology</name>
      <t>This specification uses the following abbreviations and terms:</t>
      <ul spacing="normal">
        <li>
          <t>Content Encryption Key (CEK), Header Parameter, and JOSE Header,
as defined in <xref target="RFC7516"/>.</t>
        </li>
        <li>
          <t>Hybrid Public Key Encryption (HPKE), as defined in <xref target="I-D.ietf-hpke-hpke"/>.</t>
        </li>
        <li>
          <t>pkR is the public key of the recipient, as defined in <xref target="I-D.ietf-hpke-hpke"/>.</t>
        </li>
        <li>
          <t>skR is the private key of the recipient, as defined in <xref target="I-D.ietf-hpke-hpke"/>.</t>
        </li>
        <li>
          <t>Key Encapsulation Mechanism (KEM), per <xref target="I-D.ietf-hpke-hpke"/>.</t>
        </li>
        <li>
          <t>Key Derivation Function (KDF), per <xref target="I-D.ietf-hpke-hpke"/>.</t>
        </li>
        <li>
          <t>Authenticated Encryption with Associated Data (AEAD); see <xref target="I-D.ietf-hpke-hpke"/> and <xref target="RFC7516"/>.</t>
        </li>
        <li>
          <t>Additional Authenticated Data (AAD); see <xref target="I-D.ietf-hpke-hpke"/> and <xref target="RFC7516"/>.</t>
        </li>
      </ul>
      <t>This specification defines the following terms:</t>
      <dl>
        <dt>Key Management Mode</dt>
        <dd>
          <t>A method of determining whether a Content Encryption Key (CEK) value is used
and, if so, what CEK value to use.
Each algorithm used for making these determinations uses a
specific Key Management Mode.
Key Management Modes employed by this specification are
Key Encryption,
Key Wrapping,
Direct Key Agreement,
Key Agreement with Key Wrapping,
Direct Encryption,
and
Integrated Encryption.
Of these, only Integrated Encryption is defined by this
specification; the remaining modes are defined in <xref target="RFC7516"/>
and are included here because this specification replaces the
Message Encryption and Message Decryption procedures
of <xref target="RFC7516"/> in their entirety.</t>
        </dd>
        <dt>Integrated Encryption</dt>
        <dd>
          <t>A Key Management Mode in which the plaintext is directly encrypted
without the use of a Content Encryption Key (CEK).
This mode corresponds to the Single-Shot API defined in
<xref section="6.1" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>, which is used in
cases where applications encrypt only a single message to
a recipient's public key. This mode is appropriate when there is
exactly one recipient and no separate content encryption algorithm
is required.</t>
        </dd>
      </dl>
      <t>The definition of Key Management Mode above replaces the one in JWE <xref target="RFC7516"/>.</t>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>This specification defines the use of HPKE in JWE for two Key Management Modes:</t>
      <ul spacing="normal">
        <li>
          <t>Key Encryption, and</t>
        </li>
        <li>
          <t>Integrated Encryption.</t>
        </li>
      </ul>
      <t>It specifies the Integrated Encryption Key Management Mode and registers the
corresponding JWE algorithm identifiers for both modes. Distinct JWE algorithms
are defined for Key Encryption and Integrated Encryption
so that they are fully specified, as required by <xref target="RFC9864"/>.</t>
      <t>Test vectors for all algorithms defined in this document are provided in
<xref target="test-vectors"/>.</t>
      <t>When the Key Management Mode is Integrated Encryption, HPKE is used to directly
encrypt the plaintext, and the "enc" header parameter <bcp14>MUST NOT</bcp14> be included.
This specification updates the definition of the "enc" header parameter in
<xref section="4.1.2" sectionFormat="of" target="RFC7516"/> to require that it be omitted when Integrated
Encryption is used.</t>
      <t>When the Key Management Mode is Key Encryption,
HPKE is used to encrypt the Content Encryption Key (CEK).
In this mode, the "enc" header parameter is used as specified in JWE <xref target="RFC7516"/>.
The HPKE AEAD encryption function used internally by HPKE
is distinct from the JWE AEAD algorithm specified in "enc".</t>
      <t>In both Key Management Modes,
the HPKE key encapsulation mechanism (KEM), key derivation function (KDF),
and authenticated encryption with additional data (AEAD) encryption function
utilized depend on the JWE algorithm used.</t>
      <t>HPKE supports two modes, which are described in Table 1 of <xref target="I-D.ietf-hpke-hpke"/>.
In this specification, both "mode_base" and "mode_psk" are supported
for both Key Management Modes.
When the "psk_id" header parameter is present, the HPKE mode is "mode_psk";
otherwise, the HPKE mode is "mode_base".</t>
      <t>JWE supports two kinds of serializations:</t>
      <ul spacing="normal">
        <li>
          <t>the JWE Compact Serialization described in <xref section="3.1" sectionFormat="of" target="RFC7516"/>, and</t>
        </li>
        <li>
          <t>the JWE JSON Serialization described in <xref section="3.2" sectionFormat="of" target="RFC7516"/>.</t>
        </li>
      </ul>
      <t>Certain JWE features are only supported in specific serializations.
For example, the JWE Compact Serialization does not support:</t>
      <ul spacing="normal">
        <li>
          <t>the JWE AAD value conveyed by the "aad" member,</t>
        </li>
        <li>
          <t>multiple recipients, and</t>
        </li>
        <li>
          <t>unprotected header parameters.</t>
        </li>
      </ul>
      <t>Key Encryption can be used with a JWE AAD value
when using the JWE JSON Serialization.
Single recipient Key Encryption with no JWE AAD value can be expressed
in the JWE Compact Serialization.</t>
      <section anchor="encapsulated-secrets">
        <name>Encapsulated Secrets</name>
        <t>HPKE encapsulated secret is defined in <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>.</t>
        <t>When using Integrated Encryption, the JWE Encrypted Key of the sole recipient
is the HPKE encapsulated secret.</t>
        <t>When using Key Encryption, each recipient's JWE Encrypted Key
is the encrypted content encryption key, and the value of header parameter "ek"
is the base64url encoding of the HPKE encapsulated secret.</t>
      </section>
    </section>
    <section anchor="integrated-encryption">
      <name>Integrated Encryption</name>
      <t>When using Integrated Encryption with HPKE:</t>
      <ul spacing="normal">
        <li>
          <t>The protected header <bcp14>MUST</bcp14> contain an "alg" value that is
an HPKE JWE algorithm using Integrated Encryption.</t>
        </li>
        <li>
          <t>The "enc" header parameter <bcp14>MUST NOT</bcp14> be present.
This is because no separate content encryption algorithm is used in this mode.</t>
        </li>
        <li>
          <t>The protected header parameter "psk_id" <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>The 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 the encapsulated secret, as defined in <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>.</t>
        </li>
        <li>
          <t>The JWE Initialization Vector and JWE Authentication Tag <bcp14>MUST</bcp14> be the empty octet sequence.</t>
        </li>
        <li>
          <t>The JWE AAD <bcp14>MAY</bcp14> be present when using the JWE JSON Serialization.</t>
        </li>
        <li>
          <t>The HPKE aad parameter <bcp14>MUST</bcp14> be set to the "Additional Authenticated Data encryption parameter" value specified in Step 15 of <xref target="encryption"/>.</t>
        </li>
        <li>
          <t>The HPKE info parameter defaults to the empty octet sequence;
mutually known private information (a concept also utilized in <xref target="NIST.SP.800-56Ar3"/>)
<bcp14>MAY</bcp14> be used instead so the application can include it during key derivation.</t>
        </li>
        <li>
          <t>The JWE Ciphertext is the ciphertext from the HPKE encryption,
as defined in <xref section="5.2" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>.</t>
        </li>
      </ul>
      <section anchor="int-algs">
        <name>Integrated Encryption Algorithms using HPKE</name>
        <t>The following JWE algorithms using HPKE are defined for use with
Integrated Encryption as the Key Management Mode:</t>
        <table anchor="ciphersuite-int-algs">
          <name>Algorithms using HPKE for Integrated Encryption</name>
          <thead>
            <tr>
              <th align="left">"alg"</th>
              <th align="left">HPKE KEM</th>
              <th align="left">HPKE KDF</th>
              <th align="left">HPKE AEAD</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">HPKE-0</td>
              <td align="left">DHKEM(P-256, HKDF-SHA256)</td>
              <td align="left">HKDF-SHA256</td>
              <td align="left">AES-128-GCM</td>
            </tr>
            <tr>
              <td align="left">HPKE-1</td>
              <td align="left">DHKEM(P-384, HKDF-SHA384)</td>
              <td align="left">HKDF-SHA384</td>
              <td align="left">AES-256-GCM</td>
            </tr>
            <tr>
              <td align="left">HPKE-2</td>
              <td align="left">DHKEM(P-521, HKDF-SHA512)</td>
              <td align="left">HKDF-SHA512</td>
              <td align="left">AES-256-GCM</td>
            </tr>
            <tr>
              <td align="left">HPKE-3</td>
              <td align="left">DHKEM(X25519, HKDF-SHA256)</td>
              <td align="left">HKDF-SHA256</td>
              <td align="left">AES-128-GCM</td>
            </tr>
            <tr>
              <td align="left">HPKE-4</td>
              <td align="left">DHKEM(X25519, HKDF-SHA256)</td>
              <td align="left">HKDF-SHA256</td>
              <td align="left">ChaCha20Poly1305</td>
            </tr>
            <tr>
              <td align="left">HPKE-5</td>
              <td align="left">DHKEM(X448, HKDF-SHA512)</td>
              <td align="left">HKDF-SHA512</td>
              <td align="left">AES-256-GCM</td>
            </tr>
            <tr>
              <td align="left">HPKE-6</td>
              <td align="left">DHKEM(X448, HKDF-SHA512)</td>
              <td align="left">HKDF-SHA512</td>
              <td align="left">ChaCha20Poly1305</td>
            </tr>
            <tr>
              <td align="left">HPKE-7</td>
              <td align="left">DHKEM(P-256, HKDF-SHA256)</td>
              <td align="left">HKDF-SHA256</td>
              <td align="left">AES-256-GCM</td>
            </tr>
          </tbody>
        </table>
        <t>The HPKE KEM, KDF, and AEAD values are chosen from the IANA HPKE registry <xref target="IANA.HPKE"/>.</t>
      </section>
    </section>
    <section anchor="key-encryption">
      <name>Key Encryption</name>
      <t>When using the JWE JSON Serialization,
recipients using Key Encryption with HPKE can be added alongside other recipients
(e.g., those using "ECDH-ES+A128KW" or "RSA-OAEP-256"),
since HPKE is used to encrypt the Content Encryption Key (CEK).</t>
      <t>When using Key Encryption with HPKE:</t>
      <ul spacing="normal">
        <li>
          <t>The "alg" header parameter <bcp14>MUST</bcp14> be an HPKE JWE algorithm using Key Encryption.</t>
        </li>
        <li>
          <t>The header parameter "psk_id" <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>The header parameter "ek" <bcp14>MUST</bcp14> be present and contain the base64url-encoded HPKE encapsulated secret.</t>
        </li>
        <li>
          <t>The HPKE aad parameter defaults to the empty octet sequence.</t>
        </li>
        <li>
          <t>The HPKE info parameter is set to the value of the "Recipient_structure" defined below.</t>
        </li>
        <li>
          <t>The HPKE plaintext <bcp14>MUST</bcp14> be set to the CEK.</t>
        </li>
        <li>
          <t>The recipient's JWE Encrypted Key is the ciphertext from the HPKE Encryption,
as defined in <xref section="5.2" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>.</t>
        </li>
      </ul>
      <section anchor="recipient_structure">
        <name>Recipient_structure</name>
        <t>The "Recipient_structure" used as the value of the HPKE info parameter
when performing Key Encryption with HPKE
provides context information used in key derivation.
To ensure compactness and interoperability,
this structure is encoded in a binary format.
The encoding is as follows:</t>
        <artwork><![CDATA[
Recipient_structure = ASCII("JOSE-HPKE rcpt") ||
                      BYTE(255) ||
                      ASCII(content_encryption_alg) ||
                      BYTE(255) ||
                      recipient_extra_info
]]></artwork>
        <t>Where:</t>
        <ul spacing="normal">
          <li>
            <t>ASCII("JOSE-HPKE rcpt"): A fixed ASCII string identifying the context of the structure.</t>
          </li>
          <li>
            <t>BYTE(255): A separator byte (0xFF) used to delimit fields.</t>
          </li>
          <li>
            <t>ASCII(content_encryption_alg): Identifies the content encryption algorithm
with which the HPKE-encrypted Content Encryption Key (CEK) is used.
Its value <bcp14>MUST</bcp14> be the "enc" (encryption algorithm) header parameter value
in the JOSE Header.
This field provides JWE context information to the HPKE key schedule,
which ensures that the encapsulated secret is bound to the selected content encryption algorithm.</t>
          </li>
          <li>
            <t>BYTE(255): A separator byte (0xFF) used to delimit fields.</t>
          </li>
          <li>
            <t>recipient_extra_info: An octet string containing additional context information
that the application includes in the key derivation.
Mutually known private information (a concept also utilized in <xref target="NIST.SP.800-56Ar3"/>) <bcp14>MAY</bcp14> be used in this input parameter.
If no additional context information is provided, this field <bcp14>MUST</bcp14> be the empty octet sequence.</t>
          </li>
        </ul>
        <t>Note that Integrated Encryption does not use the "Recipient_structure" because the JWE Protected Header and JWE AAD are included in the HPKE aad value, which binds these parameters to the ciphertext.</t>
        <section anchor="recipientstructure-example">
          <name>Recipient_structure Example</name>
          <t>The "Recipient_structure" encoded in binary as specified in <xref target="recipient_structure"/>, and using the field values
(content_encryption_alg = "A128GCM", recipient_extra_info = ""),
results in the following byte sequence:</t>
          <artwork><![CDATA[
"JOSE-HPKE rcpt\xffA128GCM\xff"
]]></artwork>
          <t>The corresponding hexadecimal representation is:</t>
          <artwork><![CDATA[
4a4f53452d48504b452072637074ff4131323847434dff
]]></artwork>
          <t>This value is used as the HPKE "info" parameter when performing Key Encryption with HPKE.</t>
        </section>
      </section>
      <section anchor="ke-algs">
        <name>Key Encryption Algorithms using HPKE</name>
        <t>The following JWE algorithms using HPKE are defined for use with
Key Encryption as the Key Management Mode:</t>
        <table anchor="ciphersuite-ke-algs">
          <name>Algorithms using HPKE for Key Encryption</name>
          <thead>
            <tr>
              <th align="left">"alg"</th>
              <th align="left">HPKE KEM</th>
              <th align="left">HPKE KDF</th>
              <th align="left">HPKE AEAD</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">HPKE-0-KE</td>
              <td align="left">DHKEM(P-256, HKDF-SHA256)</td>
              <td align="left">HKDF-SHA256</td>
              <td align="left">AES-128-GCM</td>
            </tr>
            <tr>
              <td align="left">HPKE-1-KE</td>
              <td align="left">DHKEM(P-384, HKDF-SHA384)</td>
              <td align="left">HKDF-SHA384</td>
              <td align="left">AES-256-GCM</td>
            </tr>
            <tr>
              <td align="left">HPKE-2-KE</td>
              <td align="left">DHKEM(P-521, HKDF-SHA512)</td>
              <td align="left">HKDF-SHA512</td>
              <td align="left">AES-256-GCM</td>
            </tr>
            <tr>
              <td align="left">HPKE-3-KE</td>
              <td align="left">DHKEM(X25519, HKDF-SHA256)</td>
              <td align="left">HKDF-SHA256</td>
              <td align="left">AES-128-GCM</td>
            </tr>
            <tr>
              <td align="left">HPKE-4-KE</td>
              <td align="left">DHKEM(X25519, HKDF-SHA256)</td>
              <td align="left">HKDF-SHA256</td>
              <td align="left">ChaCha20Poly1305</td>
            </tr>
            <tr>
              <td align="left">HPKE-5-KE</td>
              <td align="left">DHKEM(X448, HKDF-SHA512)</td>
              <td align="left">HKDF-SHA512</td>
              <td align="left">AES-256-GCM</td>
            </tr>
            <tr>
              <td align="left">HPKE-6-KE</td>
              <td align="left">DHKEM(X448, HKDF-SHA512)</td>
              <td align="left">HKDF-SHA512</td>
              <td align="left">ChaCha20Poly1305</td>
            </tr>
            <tr>
              <td align="left">HPKE-7-KE</td>
              <td align="left">DHKEM(P-256, HKDF-SHA256)</td>
              <td align="left">HKDF-SHA256</td>
              <td align="left">AES-256-GCM</td>
            </tr>
          </tbody>
        </table>
        <t>The HPKE KEM, KDF, and AEAD values are chosen from the IANA HPKE registry <xref target="IANA.HPKE"/>.</t>
      </section>
    </section>
    <section anchor="producing-and-consuming-jwes">
      <name>Producing and Consuming JWEs</name>
      <t>Sections 5.1 (Message Encryption) and 5.2 (Message Decryption) of <xref target="RFC7516"/>
are replaced by the following sections,
which add processing rules for using Integrated Encryption as the Key Management Mode.</t>
      <section anchor="encryption">
        <name>Message Encryption</name>
        <t>The message encryption process is as follows.
The order of the steps is not significant in cases where
there are no dependencies between the inputs and outputs of the steps.</t>
        <ol spacing="normal" type="1"><li>
            <t>Determine the Key Management Mode employed by the algorithm
used to determine the Content Encryption Key value.
(This is the algorithm recorded in the
"alg" (algorithm)
Header Parameter of the resulting JWE.)</t>
          </li>
          <li>
            <t>When Key Wrapping, Key Encryption,
or Key Agreement with Key Wrapping is employed,
generate a random CEK value to use for subsequent steps
unless one was already generated for a previously
processed recipient, in which case, let that be the one used
for subsequent steps.
See <xref target="RFC8937"/> for
considerations on generating random values.
The CEK <bcp14>MUST</bcp14> have a length equal to that
required for the content encryption algorithm.</t>
          </li>
          <li>
            <t>When Direct Key Agreement or Key Agreement with Key Wrapping
is employed, use the key agreement algorithm
to compute the value of the agreed upon key.
When Direct Key Agreement is employed,
let the CEK be the agreed upon key.
When Key Agreement with Key Wrapping is employed,
the agreed upon key will be used to wrap the CEK.</t>
          </li>
          <li>
            <t>When Key Wrapping, Key Encryption,
or Key Agreement with Key Wrapping is employed,
encrypt the CEK to the recipient and let the result be the
JWE Encrypted Key.</t>
          </li>
          <li>
            <t>When Direct Key Agreement or Direct Encryption is employed,
let the JWE Encrypted Key be the empty octet sequence.</t>
          </li>
          <li>
            <t>When Direct Encryption is employed,
let the CEK be the shared symmetric key.</t>
          </li>
          <li>
            <t>When Integrated Encryption is employed,
let the JWE Encrypted Key be as specified by the Integrated Encryption algorithm.</t>
          </li>
          <li>
            <t>Compute the encoded key value BASE64URL(JWE Encrypted Key).</t>
          </li>
          <li>
            <t>If the JWE JSON Serialization is being used, and
there are multiple recipients, repeat this process
(steps 1-8)
for each recipient.</t>
          </li>
          <li>
            <t>Generate a random JWE Initialization Vector of the correct size
for the content encryption algorithm (if required for the algorithm);
otherwise, let the JWE Initialization Vector be the empty octet sequence.</t>
          </li>
          <li>
            <t>Compute the encoded Initialization Vector value
BASE64URL(JWE Initialization Vector).</t>
          </li>
          <li>
            <t>If a "zip" parameter was included,
compress the plaintext using the specified compression algorithm,
and let M be the octet sequence representing the compressed plaintext;
otherwise, let M be the octet sequence representing the plaintext.</t>
          </li>
          <li>
            <t>Create the JSON object(s) containing the desired set of Header Parameters,
which together comprise the JOSE Header: one or more of the JWE Protected
Header, the JWE Shared Unprotected
Header, and the JWE Per-Recipient Unprotected Header.</t>
          </li>
          <li>
            <t>Compute the Encoded Protected Header value
BASE64URL(UTF8(JWE Protected Header)).
If the JWE Protected Header is not present
(which can only happen when using the JWE JSON Serialization
and no "protected" member is present),
let this value be the empty string.</t>
          </li>
          <li>
            <t>Let the Additional Authenticated Data encryption parameter be
ASCII(Encoded Protected Header).
However, if a JWE AAD value is present
(which can only be the case when using the JWE JSON Serialization),
instead let the Additional Authenticated Data encryption parameter be
ASCII(Encoded Protected Header || '.' || BASE64URL(JWE AAD)).</t>
          </li>
          <li>
            <t>If Integrated Encryption is not being employed,
encrypt M using the CEK, the JWE Initialization Vector, and
the Additional Authenticated Data value
using the specified content encryption algorithm
to create the JWE Ciphertext value and the JWE Authentication Tag
(which is the Authentication Tag output from the encryption operation).</t>
          </li>
          <li>
            <t>If Integrated Encryption is being employed,
encrypt M
using the specified Integrated Encryption algorithm
to create the JWE Ciphertext value.
Let the JWE Authentication Tag be the empty octet sequence.</t>
          </li>
          <li>
            <t>Compute the encoded ciphertext value BASE64URL(JWE Ciphertext).</t>
          </li>
          <li>
            <t>Compute the encoded Authentication Tag value
BASE64URL(JWE Authentication Tag).</t>
          </li>
          <li>
            <t>If a JWE AAD value is present,
compute the encoded AAD value BASE64URL(JWE AAD).</t>
          </li>
          <li>
            <t>Create the desired serialized output.
The Compact Serialization of this result is the string
BASE64URL(UTF8(JWE Protected Header))
|| '.' || BASE64URL(JWE Encrypted Key)
|| '.' || BASE64URL(JWE Initialization Vector)
|| '.' || BASE64URL(JWE Ciphertext)
|| '.' || BASE64URL(JWE Authentication Tag).
The JWE JSON Serialization is described in <xref section="7.2" sectionFormat="of" target="RFC7516"/>.</t>
          </li>
        </ol>
      </section>
      <section anchor="decryption">
        <name>Message Decryption</name>
        <t>The message decryption process is the reverse of the
encryption process.
The order of the steps is not significant in cases where
there are no dependencies between the inputs and outputs of the steps.
If any of these steps fail, the encrypted content cannot be validated.</t>
        <t>When there are multiple recipients,
it is an application decision which of the recipients' encrypted content
must successfully validate for the JWE to be accepted.
In some cases, encrypted content for all recipients must successfully validate
or the JWE will be considered invalid.
In other cases, only the encrypted content for a single recipient
needs to be successfully validated.
However, in all cases, the encrypted content for at least one recipient
<bcp14>MUST</bcp14> successfully validate or the JWE <bcp14>MUST</bcp14> be considered invalid.</t>
        <ol spacing="normal" type="1"><li>
            <t>Parse the JWE representation to extract the serialized values
for the components of the JWE.
When using the JWE Compact Serialization,
these components are
the base64url-encoded representations of
the JWE Protected Header,
the JWE Encrypted Key,
the JWE Initialization Vector,
the JWE Ciphertext, and
the JWE Authentication Tag.
When using the JWE JSON Serialization,
these components also include the base64url-encoded representation of
the JWE AAD, along with the unencoded
JWE Shared Unprotected Header and
JWE Per-Recipient Unprotected Header values.
When using the JWE Compact Serialization,
the JWE Protected Header,
the JWE Encrypted Key,
the JWE Initialization Vector,
the JWE Ciphertext, and
the JWE Authentication Tag
are represented as base64url-encoded values in that order,
with each value being separated from the next by a single period ('.') character,
resulting in exactly four delimiting period characters being used.
The JWE JSON Serialization
is described in <xref section="7.2" sectionFormat="of" target="RFC7516"/>.</t>
          </li>
          <li>
            <t>Base64url decode the encoded representations of
the JWE Protected Header,
the JWE Encrypted Key,
the JWE Initialization Vector,
the JWE Ciphertext,
the JWE Authentication Tag, and
the JWE AAD,
following the restriction that no line breaks, whitespace, or other additional characters have been used.</t>
          </li>
          <li>
            <t>Verify that the octet sequence resulting from decoding the encoded JWE Protected Header
is a UTF-8-encoded representation of
a completely valid JSON object
conforming to <xref target="RFC8259"/>;
let the JWE Protected Header be this JSON object.</t>
          </li>
          <li>
            <t>If using the JWE Compact Serialization, let the JOSE Header be the
JWE Protected Header.
Otherwise, when using the JWE JSON Serialization,
let the JOSE Header be the union of
the members of the JWE Protected Header,
the JWE Shared Unprotected Header and
the corresponding JWE Per-Recipient Unprotected Header,
all of which must be completely valid JSON objects.
During this step,
verify that the resulting JOSE Header does not contain duplicate
Header Parameter names.
When using the JWE JSON Serialization, this restriction includes
that the same Header Parameter name also <bcp14>MUST NOT</bcp14> occur in
distinct JSON object values that together comprise the JOSE Header.</t>
          </li>
          <li>
            <t>Verify that the implementation understands and can process
all fields that it is required to support,
whether required by this specification,
by the algorithms being used,
or by the "crit" Header Parameter value,
and that the values of those parameters are also understood and supported.</t>
          </li>
          <li>
            <t>Determine the Key Management Mode employed by the algorithm
specified by the
"alg" (algorithm) Header Parameter.</t>
          </li>
          <li>
            <t>If using Integrated Encryption, Direct Encryption, or Direct Key Agreement,
verify that there is exactly one recipient.</t>
          </li>
          <li>
            <t>Verify that the JWE uses a key known to the recipient.</t>
          </li>
          <li>
            <t>When Direct Key Agreement or Key Agreement with Key Wrapping
is employed, use the key agreement algorithm
to compute the value of the agreed upon key.
When Direct Key Agreement is employed,
let the CEK be the agreed upon key.
When Key Agreement with Key Wrapping is employed,
the agreed upon key will be used to decrypt the JWE Encrypted Key.</t>
          </li>
          <li>
            <t>When Key Wrapping, Key Encryption,
or Key Agreement with Key Wrapping is employed,
decrypt the JWE Encrypted Key to produce the CEK.
The CEK <bcp14>MUST</bcp14> have a length equal to that
required for the content encryption algorithm.
Note that when there are multiple recipients,
each recipient will only be able to decrypt JWE Encrypted Key values
that were encrypted to a key in that recipient's possession.
It is therefore normal to only be able to decrypt one of the
per-recipient JWE Encrypted Key values to obtain the CEK value.
Also, see <xref section="11.5" sectionFormat="of" target="RFC7516"/> for security considerations
on mitigating timing attacks.</t>
          </li>
          <li>
            <t>When Direct Key Agreement or Direct Encryption is employed,
verify that the JWE Encrypted Key value is an empty octet sequence.</t>
          </li>
          <li>
            <t>When Direct Encryption is employed,
let the CEK be the shared symmetric key.</t>
          </li>
          <li>
            <t>If Integrated Encryption is not being employed,
record whether the CEK could be successfully determined for this recipient or not.</t>
          </li>
          <li>
            <t>If the JWE JSON Serialization is being used and
there are multiple recipients, repeat this process
(steps 4-13)
for each recipient contained in the representation.</t>
          </li>
          <li>
            <t>Compute the Encoded Protected Header value
BASE64URL(UTF8(JWE Protected Header)).
If the JWE Protected Header is not present
(which can only happen when using the JWE JSON Serialization
and no "protected" member is present),
let this value be the empty string.</t>
          </li>
          <li>
            <t>Let the Additional Authenticated Data encryption parameter be
ASCII(Encoded Protected Header).
However, if a JWE AAD value is present
(which can only be the case when using the JWE JSON Serialization),
instead let the Additional Authenticated Data encryption parameter be
ASCII(Encoded Protected Header || '.' || BASE64URL(JWE AAD)).</t>
          </li>
          <li>
            <t>If Integrated Encryption is not being employed,
decrypt the JWE Ciphertext using the CEK, the JWE Initialization Vector,
the Additional Authenticated Data value,
and the JWE Authentication Tag
(which is the Authentication Tag input to the calculation)
using the content encryption algorithm specified in the "enc" header parameter,
returning the decrypted plaintext and validating the JWE Authentication Tag
in the manner specified for the algorithm,
rejecting the input without emitting any decrypted output
if the JWE Authentication Tag is incorrect.</t>
          </li>
          <li>
            <t>If Integrated Encryption is being employed,
verify that no "enc" header parameter is present.</t>
          </li>
          <li>
            <t>If Integrated Encryption is being employed,
decrypt the JWE Ciphertext
using the specified Integrated Encryption algorithm,
returning the decrypted plaintext
in the manner specified for the algorithm,
rejecting the input without emitting any decrypted output
if the decryption fails.</t>
          </li>
          <li>
            <t>If a "zip" parameter was included,
uncompress the decrypted plaintext using the specified compression algorithm.</t>
          </li>
          <li>
            <t>If there was no recipient for which all of the decryption steps succeeded,
then the JWE <bcp14>MUST</bcp14> be considered invalid.
Otherwise, output the plaintext.
In the JWE JSON Serialization case, also return a result to the application
indicating for which of the recipients the decryption succeeded and failed.</t>
          </li>
        </ol>
        <t>Finally, note that it is an application decision which algorithms
may be used in a given context.
Even if a JWE can be successfully decrypted,
unless the algorithms used in the JWE are acceptable
to the application, it <bcp14>SHOULD</bcp14> consider the JWE to be invalid.</t>
      </section>
    </section>
    <section anchor="distinguishing">
      <name>Distinguishing Between JWS and JWE Objects</name>
      <t><xref section="9" sectionFormat="of" target="RFC7516"/> is updated to delete the last bullet, which says:</t>
      <ul spacing="normal">
        <li>
          <t>The JOSE Header for a JWS can also be distinguished from
the JOSE Header for a JWE by
determining whether an
"enc" (encryption algorithm) member exists.
If the "enc" member exists, it is a JWE;
otherwise, it is a JWS.</t>
        </li>
      </ul>
      <t>The deleted test no longer works when Integrated Encryption is used.</t>
      <t>The other methods of distinguishing between
JSON Web Signature (JWS) <xref target="RFC7515"/> and
JSON Web Encryption (JWE) <xref target="RFC7516"/> objects continue to work.</t>
    </section>
    <section anchor="jwk-representations-for-jwe-hpke-keys">
      <name>JWK Representations for JWE HPKE Keys</name>
      <t>The JSON Web Key (JWK) <xref target="RFC7517"/> representations for keys
used with the JWE algorithms defined in this specification are as follows.
The valid combinations of the
"alg", "kty", and "crv" in the JWK are shown in <xref target="ciphersuite-kty-crv"/>.</t>
      <table anchor="ciphersuite-kty-crv">
        <name>JWK Types and Curves for JWE HPKE Ciphersuites</name>
        <thead>
          <tr>
            <th align="left">"alg" values</th>
            <th align="left">"kty"</th>
            <th align="left">"crv"</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">HPKE-0, HPKE-0-KE, HPKE-7, HPKE-7-KE</td>
            <td align="left">EC</td>
            <td align="left">P-256</td>
          </tr>
          <tr>
            <td align="left">HPKE-1, HPKE-1-KE</td>
            <td align="left">EC</td>
            <td align="left">P-384</td>
          </tr>
          <tr>
            <td align="left">HPKE-2, HPKE-2-KE</td>
            <td align="left">EC</td>
            <td align="left">P-521</td>
          </tr>
          <tr>
            <td align="left">HPKE-3, HPKE-3-KE, HPKE-4, HPKE-4-KE</td>
            <td align="left">OKP</td>
            <td align="left">X25519</td>
          </tr>
          <tr>
            <td align="left">HPKE-5, HPKE-5-KE, HPKE-6, HPKE-6-KE</td>
            <td align="left">OKP</td>
            <td align="left">X448</td>
          </tr>
        </tbody>
      </table>
      <t>Examples of JWKs for each algorithm are provided in <xref target="test-vectors"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This specification uses HPKE, and the security considerations of
<xref target="I-D.ietf-hpke-hpke"/> are therefore applicable.</t>
      <t>HPKE assumes the sender is in possession of the public key of the recipient and
HPKE JOSE makes the same assumption. Hence, some form of public key distribution
mechanism is assumed to exist but is outside the scope of this document.</t>
      <t>HPKE in Base mode does not provide proof of sender origin
as part of the HPKE KEM. PSK mode authenticates the sender
as a holder of the pre-shared key (see <xref section="9.1" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>).</t>
      <t>This specification relies on a source of randomness being available on the device.
When used, the CEK has to be randomly generated.
Likewise, when used, the JWE Initialization Vector has to be randomly generated.
In both cases, the guidance on randomness in <xref target="RFC8937"/> applies.</t>
      <section anchor="key-management">
        <name>Key Management</name>
        <t>A KEM key pair used with HPKE is intended for use with a
specific mode and HPKE algorithm suite. Using the same
KEM key pair with multiple modes or multiple HPKE algorithm
suites in parallel is <bcp14>NOT RECOMMENDED</bcp14>.</t>
        <t>In principle, such use could be supported by the HPKE key
schedule, since it takes both the suite_id variable, which
encodes the full ciphersuite, and the mode byte as inputs,
ensuring that cryptographically distinct keys are derived
for each combination of ciphersuite and mode. However, there
is no formal proof of security for this at the time of
writing; see <xref section="9.2.2" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>.</t>
        <t>Likewise,the same key <bcp14>SHOULD NOT</bcp14> be used with both HPKE and
non-HPKE algorithms (e.g., "ECDH-ES" or "ECDH-ES+A128KW").</t>
        <t>When using Key Encryption in a multi-recipient scenario, the
security of the content is limited by the weakest algorithm used
to encrypt the CEK.</t>
      </section>
      <section anchor="jwt-best-current-practices">
        <name>JWT Best Current Practices</name>
        <t>The guidance in <xref target="RFC8725"/> about encryption is also pertinent to this specification.</t>
        <t>RFC Editor Note: If draft-ietf-oauth-8725bis has been published as
an RFC by the time this document is processed, please update the
reference from <xref target="RFC8725"/> to the published RFC for
draft-ietf-oauth-8725bis.</t>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="json-web-signature-and-encryption-algorithms">
        <name>JSON Web Signature and Encryption Algorithms</name>
        <t>The following entries are added to the IANA "JSON Web Signature and Encryption Algorithms" registry <xref target="IANA.JOSE"/> established by <xref target="RFC7518"/>:</t>
        <section anchor="hpke-0">
          <name>HPKE-0</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-0</t>
            </li>
            <li>
              <t>Algorithm Description: Integrated Encryption with HPKE using DHKEM(P-256, HKDF-SHA256) KEM, HKDF-SHA256 KDF, and AES-128-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="int-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="6.1" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></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: Integrated Encryption with HPKE using DHKEM(P-384, HKDF-SHA384) KEM, HKDF-SHA384 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="int-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="6.1" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></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: Integrated Encryption with HPKE using DHKEM(P-521, HKDF-SHA512) KEM, HKDF-SHA512 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="int-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="6.1" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></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: Integrated Encryption with HPKE using DHKEM(X25519, HKDF-SHA256) KEM, HKDF-SHA256 KDF, and AES-128-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="int-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="6.1" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></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: Integrated Encryption with HPKE using DHKEM(X25519, HKDF-SHA256) KEM, HKDF-SHA256 KDF, and ChaCha20Poly1305 AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="int-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="6.1" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></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: Integrated Encryption with HPKE using DHKEM(X448, HKDF-SHA512) KEM, HKDF-SHA512 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="int-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="6.1" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></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: Integrated Encryption with HPKE using DHKEM(X448, HKDF-SHA512) KEM, HKDF-SHA512 KDF, and ChaCha20Poly1305 AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="int-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="6.1" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-7">
          <name>HPKE-7</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-7</t>
            </li>
            <li>
              <t>Algorithm Description: Integrated Encryption with HPKE using DHKEM(P-256, HKDF-SHA256) KEM, HKDF-SHA256 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="int-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="6.1" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-0-ke">
          <name>HPKE-0-KE</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-0-KE</t>
            </li>
            <li>
              <t>Algorithm Description: Key Encryption with HPKE using DHKEM(P-256, HKDF-SHA256) KEM, HKDF-SHA256 KDF, and AES-128-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="ke-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-1-ke">
          <name>HPKE-1-KE</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-1-KE</t>
            </li>
            <li>
              <t>Algorithm Description: Key Encryption with HPKE using DHKEM(P-384, HKDF-SHA384) KEM, HKDF-SHA384 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="ke-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-2-ke">
          <name>HPKE-2-KE</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-2-KE</t>
            </li>
            <li>
              <t>Algorithm Description: Key Encryption with HPKE using DHKEM(P-521, HKDF-SHA512) KEM, HKDF-SHA512 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="ke-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-3-ke">
          <name>HPKE-3-KE</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-3-KE</t>
            </li>
            <li>
              <t>Algorithm Description: Key Encryption with HPKE using DHKEM(X25519, HKDF-SHA256) KEM, HKDF-SHA256 KDF, and AES-128-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="ke-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-4-ke">
          <name>HPKE-4-KE</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-4-KE</t>
            </li>
            <li>
              <t>Algorithm Description: Key Encryption with HPKE using DHKEM(X25519, HKDF-SHA256) KEM, HKDF-SHA256 KDF, and ChaCha20Poly1305 AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="ke-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-5-ke">
          <name>HPKE-5-KE</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-5-KE</t>
            </li>
            <li>
              <t>Algorithm Description: Key Encryption with HPKE using DHKEM(X448, HKDF-SHA512) KEM, HKDF-SHA512 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="ke-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-6-ke">
          <name>HPKE-6-KE</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-6-KE</t>
            </li>
            <li>
              <t>Algorithm Description: Key Encryption with HPKE using DHKEM(X448, HKDF-SHA512) KEM, HKDF-SHA512 KDF, and ChaCha20Poly1305 AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="ke-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-7-ke">
          <name>HPKE-7-KE</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-7-KE</t>
            </li>
            <li>
              <t>Algorithm Description: Key Encryption with HPKE using DHKEM(P-256, HKDF-SHA256) KEM, HKDF-SHA256 KDF, and AES-256-GCM AEAD</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="ke-algs"/> of [[ this specification ]]</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="json-web-signature-and-encryption-header-parameters">
        <name>JSON Web Signature and Encryption Header Parameters</name>
        <t>The following entries are added to the IANA "JSON Web Signature and Encryption Header Parameters" registry <xref target="IANA.JOSE"/>:</t>
        <section anchor="ek">
          <name>ek</name>
          <ul spacing="normal">
            <li>
              <t>Header Parameter Name: "ek"</t>
            </li>
            <li>
              <t>Header Parameter Description: A base64url-encoded encapsulated secret, as defined in <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
            </li>
            <li>
              <t>Header Parameter Usage Location(s): JWE</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="encapsulated-secrets"/> of [[ this specification ]]</t>
            </li>
          </ul>
        </section>
        <section anchor="pskid">
          <name>psk_id</name>
          <ul spacing="normal">
            <li>
              <t>Header Parameter Name: "psk_id"</t>
            </li>
            <li>
              <t>Header Parameter Description: A base64url-encoded key identifier (kid) for the pre-shared key, as defined in <xref section="5.1.2" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
            </li>
            <li>
              <t>Header Parameter Usage Location(s): JWE</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="overview"/> of [[ this specification ]]</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="summary-of-updates-to-rfc-7516-jwe">
      <name>Summary of Updates to RFC 7516 (JWE)</name>
      <t>This specification updates JSON Web Encryption (JWE) <xref target="RFC7516"/>
to enable the use of Integrated Encryption.
The specific updates made are as follows:</t>
      <ul spacing="normal">
        <li>
          <t>Adds the Integrated Encryption Key Management Mode and correspondingly
updates the Key Management Mode definition (<xref target="terminology"/>).</t>
        </li>
        <li>
          <t>Updates the "enc" header parameter to be absent when
Integrated Encryption is used in (<xref target="overview"/>).</t>
        </li>
        <li>
          <t>Replaces the Message Encryption procedure (<xref target="encryption"/>),
adding Integrated Encryption.</t>
        </li>
        <li>
          <t>Replaces the Message Decryption procedure (<xref target="decryption"/>),
adding Integrated Encryption.</t>
        </li>
        <li>
          <t>Updates the methods for distinguishing between JWS and JWE objects
(<xref target="distinguishing"/>)
because Integrated Encryption does not use the "enc" header parameter.</t>
        </li>
      </ul>
    </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="I-D.ietf-hpke-hpke">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Karthikeyan Bhargavan" initials="K." surname="Bhargavan">
              <organization>Inria</organization>
            </author>
            <author fullname="Benjamin Lipp" initials="B." surname="Lipp">
              <organization>Inria</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
         </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   This document describes a scheme for hybrid public key encryption
   (HPKE).  This scheme provides a variant of public key encryption of
   arbitrary-sized plaintexts for a recipient public key.  It also
   includes a variant that authenticates possession of a pre-shared key.
   HPKE works for any combination of an asymmetric Key Encapsulation
   Mechanism (KEM), key derivation function (KDF), and authenticated
   encryption with additional data (AEAD) encryption function.  We
   provide instantiations of the scheme using widely used and efficient
   primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key
   agreement, HMAC-based key derivation function (HKDF), and SHA2.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-hpke-hpke-03"/>
        </reference>
        <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="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="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8792">
          <front>
            <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8792"/>
          <seriesInfo name="DOI" value="10.17487/RFC8792"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) 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 an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </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="RFC9864">
          <front>
            <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
              <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9864"/>
          <seriesInfo name="DOI" value="10.17487/RFC9864"/>
        </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 the Bundeswehr Munich</organization>
            </author>
            <author fullname="Michael B. Jones" initials="M. B." surname="Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Tradeverifyd</organization>
            </author>
            <author fullname="Ajitomi, Daisuke" initials="A." surname="Daisuke">
              <organization>bibital LLC</organization>
            </author>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <date day="4" month="July" year="2026"/>
            <abstract>
              <t>   This specification defines hybrid public-key encryption (HPKE) for
   use with CBOR Object Signing and Encryption (COSE).  HPKE offers a
   variant of public-key encryption of arbitrary-sized plaintexts for a
   recipient public key.

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-hpke-26"/>
        </reference>
        <reference anchor="IANA.HPKE" target="https://www.iana.org/assignments/hpke">
          <front>
            <title>Hybrid Public Key Encryption (HPKE)</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA.JOSE" target="https://www.iana.org/assignments/jose">
          <front>
            <title>JSON Web Signature and Encryption Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="NIST.SP.800-56Ar3" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf">
          <front>
            <title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography, NIST Special Publication 800-56A Revision 3</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2018" month="April"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 998?>

<section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>This appendix provides test vectors for each algorithm defined in this document.
For each algorithm, a private JWK, a Flattened JWE JSON Serialization example with
Additional Authenticated Data, and a JWE Compact Serialization example are provided.
Long lines in the examples are folded using the single backslash strategy from
<xref target="RFC8792"/>. Before using a folded example as a test vector, remove the RFC 8792
header and unfold the lines according to that strategy.
The complete unfolded vector set is available as <tt>examples/jose-vectors.json</tt>
in the <eref target="https://github.com/ietf-wg-jose/draft-ietf-jose-hpke-encrypt">repository</eref>
for this document.</t>
      <!-- begin:test-vectors ; see README for regeneration instructions, do not edit -->

<section anchor="hpke-0-1">
        <name>HPKE-0</name>
        <figure>
          <name>HPKE-0 Private JWK</name>
          <sourcecode type="json"><![CDATA[{
  "kty": "EC",
  "crv": "P-256",
  "x": "qy-BxXhaelX9Fqe8muRTu8HhseHYgMMGxyfAnIy0MC0",
  "y": "ctfHN7Y4pkj7vZI-sgJ6BqsYwG-PDnB8j7TsfzHHJOI",
  "d": "aAKxBMAkNm2AZDGv7LN5yodDwahJ5rKbrgiiz3dUIH4",
  "alg": "HPKE-0",
  "use": "enc",
  "kid": "KfvD-eYaynUKba0ow-v9uoEV-twV6mYDyiAOWO6LoPM"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-0 Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTAiLCJraWQiOiJLZnZELWVZYXluVUtiYTBv\
    dy12OXVvRVYtdHdWNm1ZRHlpQU9XTzZMb1BNIn0",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "encrypted_key": "BNC1LPfAH7I5Fxi7X7lrQLFkdpZcSGoXpBw4FYvCY1wZqAX5\
    3caa-lyNLPHkzwQMAMFHoOoN_TRGSzb2Gw4aDlA",
  "ciphertext": "I0sH6mQa6r-mgLHqI23-wzBmsTULQoNtANiHF_incW5y5BIB7qo\
    0XN3NoOqf1IvH1UEfE1_Tu9Baf6M3z_E9eJK1oDV1Q8A6VnZUnhj0cf2UNQhufoV\
    JOlpbPolLiecxwitIqYKPKfzJmG1uZ7lA0xUAiNPkUR9OSHpLYr9HWAa1DWDbczW\
    OMtFnxCJwd-PfyjX5-5-X6kAcdj5z-Kx4losmN2k7r2T1BUnHNnZlSgcz5nSZBxv\
    KqkXX3xl0Tw9ys--37IJD7UcIFfST6b0PXHzuKSw-attSD_67SRcpcxUTm3nyvtr\
    oYF8sg0ztQLuNkC-gwe7-uxPNO2iBDIypgImhvlTaAEcuHJDtFgU5geIXFMAlMDA\
    g7cSk4ssR"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-0 JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTAiLCJraWQiOiJLZnZELWVZYXluVUtiYTBvdy12OXVvRVYtdHdW\
Nm1ZRHlpQU9XTzZMb1BNIn0.BKqUaiyoPbH1jnjApcpjGqswg7npGSSXFcFv1nGaL6YY\
s3S27c8Yi5V5rsds91bV_UjdqzLlj2zuuAPWetLMab8..fO8VQt1DsdgtijGci90sO8s\
Nvws6im8Yko4NnMWXVAM5GaHbHYRSGnjs6M7GnkcaTrEjy8cxDDLZFKTwMdYGOjYBsbT\
VVAoIImVd8tXZNjQswaPU8t8OP1jCwo6iw8t4-Hm6hCE61uzhEd_r9XkN4blHjrcAoCI\
Ccwqn_5lgJCTPQezJtiTAhrtHpC1quPA3aO2Pyhui5CzOtk967IC8v28jq6K7C3mbu-m\
10bo0aWqdybibCiiS5A89PXFWurW83HNnJFdoiqZRTtF4d_OAQ2Jq9FCrahrh43Xqp1z\
3HYjf73_rOHYWXzv8jGorDAKjsPgxYN_9TgGUstjiRIMLj9dJXxqrPkRLQ4VSAzVWCNe\
5MabAR1sFFB5tx_gA.
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-0-ke-1">
        <name>HPKE-0-KE</name>
        <figure>
          <name>HPKE-0-KE Private JWK</name>
          <sourcecode type="json"><![CDATA[{
  "kty": "EC",
  "crv": "P-256",
  "x": "erH26InyPQifTIwmyKs63u4SUzglAHXNm2ZWT2LQ-rM",
  "y": "GTGOC0_TnYc_Cm4dsgY8qdixil7AObs5-Xtk0QJeoH8",
  "d": "MzJOwOcw1LDGZ-Ia6Zz5ay9zWUZKIhXkBcfq0dPA5Do",
  "alg": "HPKE-0-KE",
  "use": "enc",
  "kid": "23i_7tQXiLxih47kQtE2yHy7d8q253Kp9R9i6aDyHng"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-0-KE Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTAtS0UiLCJraWQiOiIyM2lfN3RRWGlMeGlo\
    NDdrUXRFMnlIeTdkOHEyNTNLcDlSOWk2YUR5SG5nIiwiZW5jIjoiQTEyOEdDTSIs\
    ImVrIjoiQkNlSmd0RGZGeVdtTDlJek0yT1Vnd1owWm9tWHVhb3BEcW5fR0JYX2V4\
    N0pENlRyWWpLOUI5R2ZRYWhIamRuTGlsQ2V6WlNSX2NvaUtnVC1IQVhnSlFNIn0",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "iv": "hsc8LLwbgwf33MdT",
  "ciphertext": "vwkACubXsG6xfuEbeZW24DJWq-ZlRExN1uaTyfwaNoCwDaURkrC\
    0Vkc5w9B_KntgOMYvOgAVfSkqkztcRFX-AKIaOKGKYvPAY9ujuQtyA7SFMvaOjma\
    o2XD96LtoeexaYrganCxHvJhjgyRH8xpb_QYVUGdmpjj9r_uNqZVTAuuUlrE87Lb\
    GkNaQuHpRCpYG7JbYHp8Sovnbepy84ORGXkhg7KamMfQQQ_ob5C5aY0g2BBqRgyu\
    NErzDCq3RVVo91ddpGbSys25jlvAbqziBW1YOLIoLoGJDdqbykKzjravg1R1g7QC\
    OpdN0ozcE_oEEHFEyRTilYRkxH_CqV2hxhakqDpGj3Q9qHGigJEk",
  "tag": "Afab-bCOAfBSYJgIsaxxZQ",
  "encrypted_key": "-mXiAU7aot-kdZ8KhWDoM_jXHk6_B5g0vH77u6r49os"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-0-KE JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTAtS0UiLCJraWQiOiIyM2lfN3RRWGlMeGloNDdrUXRFMnlIeTdk\
OHEyNTNLcDlSOWk2YUR5SG5nIiwiZW5jIjoiQTEyOEdDTSIsImVrIjoiQk4xRWI1bVFC\
ZTgyLVRpWTJYc0xjWEhmb3ZjNWFxajRIRW5Ick10aFFoMDhqUDl5Vjd2U3VBZjZuYjNL\
Q3pSUWJmbHlGV2k3bDlrR3BtTm1xaTNYaW1RIn0.lnz6tY7OMgEqr2dUBFLhbRV5SV5N\
nnE75YoGf8fdCdQ.B01l-CsTkWGSh-8o.n33IRmokhNrqtaG5AL9COw-bVmYiPqCLBgl\
udwQF3hyMYuagt4xxbKA2YdLHzgYk4ZCZQRdK5UJJcIKUsBsWNyDYhS0oZVcxq3wXOeG\
6jkEqUCzTU3PS0JeLW8uihm9gSjlW42dKUiYjqXL8kIJuWbCxqYs-Dslm5hfx4u_a06h\
vIRvJjVVQ4eWZMtUo5nIumyyid9qKwFFo_BLXaSxRZ7sa4TSRpu1Qywl8t3HcnnKThFf\
CSc6jIcJ3O9GIFXMDKqzBiciaxjim3xfv6A3qMHmIkF_rTT0dj9qmlolOfZeElX7sseq\
0EpOe9MPwcpFR3mZVUCe74FGUJNj4szJTb8pVgaZ9Yo5rXFKKn9s.MCd0fKMDwsgD6MW\
2XKzWWg
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-1-1">
        <name>HPKE-1</name>
        <figure>
          <name>HPKE-1 Private JWK</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "kty": "EC",
  "crv": "P-384",
  "x": "CTphb4EF35SSZgrk9rYHXkdalQLTGRApFRiAF8eVteQtOIZRbZKV0iEv9eiS\
    ElLT",
  "y": "6KddFD8aAVzoJNq1Jr_4oZ3t7SGZm3qgXMHN7sB_KAlxTydxRaVXArFKQyyf\
    fOj6",
  "d": "UzFpz5G-_kWkiCKWCWdRXFxVoz9fTY4u9I_XmfPoOI7eEf0glEARLbsx06wb\
    1EYu",
  "alg": "HPKE-1",
  "use": "enc",
  "kid": "K4P-SJHnqUpz-qTXlYCBV6ITFu8sH_gsx2KGMEcjk9s"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-1 Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTEiLCJraWQiOiJLNFAtU0pIbnFVcHotcVRY\
    bFlDQlY2SVRGdThzSF9nc3gyS0dNRWNqazlzIn0",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "encrypted_key": "BFX1YGr3AR4szfTMVMWctHh2LGBPFdGdJCfft3QYR0mL-zCe\
    JgZkcYzFlD1EID8dFfDv_YNU8DRmm3qzQ8oMsW4ZA3Qs_iQpaEVj3AOsNWFD-yLq\
    1dt1fF4r6VAufu0unw",
  "ciphertext": "_AB6I_8GkA-U9Il2XFNJ3kBDAJ9P1erWUzWzBFgRFM1NhlkE6ph\
    ABLmhTNc517Vk-YJ0P_7WQqbUnMwgRBQYDycPdhh11ZGvRYI6EjbHXRD8ctVDX_W\
    aWE6RPfY3GxA1Rplh5ZcKYus2Pln1nOseFvC9NEZkuLNLyM8jBVgwq_EQtH1GQlS\
    ZwK8I1TyBOcBtWcXnYqy-XK8Rbj3eifbQESKZPedVqMXcQ03u4xdikZp5aqLJCLm\
    wN16pYTgSzXDW0d0IHPc1tqLF4eUFrFfPokckpe92pP5q1DMetRLP7G46oPLXMBQ\
    8tFd_FxtdVF1mrqV3l2KB-JC6unu9ZWwEBt6s-p1xZ2jjIiqTC0Hy-0pK8YmfOEK\
    j5SKk_re1"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-1 JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTEiLCJraWQiOiJLNFAtU0pIbnFVcHotcVRYbFlDQlY2SVRGdThz\
SF9nc3gyS0dNRWNqazlzIn0.BG5NsNBMLw2aHZgcyEGwC2D5L3NQqWp6TCVneiNrWzK9\
OCuIqpZ6mxkTxf-UXtO2BiQjFLSm2GCnPItrjFEjHzTvg_aPUjZVNsSWFhgHseLC40zv\
BvBqhqGyRT1btnzhYw..k283DSyVnTKkfQnB0ngaY03st55x1OBqHLvnvp7VM0jA-yxg\
C7QgdAiyDCxfnpBgLE680KyJPJcDo0F9K50O2wZOBC5VAPUZlvkOkGucTvEfnVn6HPd1\
c-Btpm4eMEHOzEZ69nMQptgOtaA_XTdhiA34CX_bMaPO0MwrXu76HrMlfSXZ1C-298ZP\
HDOBHUx4IJROJaXMh4NKq76VLkIsdAdgguT4SXaTYBka5c1vEcLtjQh5zKtQHXHHevHO\
6gZmneYsg6sx-PvrXPItQe33bGwYAJ5zxhKTynoOfDa_zfZFSdWz3OX1wMa8WZMbCU1i\
bIjiEv0H1pOO0cs8mt7Xs5xjTqKBlW6m8EecD2H9YBqB4DVbMsckNnxkqIEM.
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-1-ke-1">
        <name>HPKE-1-KE</name>
        <figure>
          <name>HPKE-1-KE Private JWK</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "kty": "EC",
  "crv": "P-384",
  "x": "D7VTLUkObllwTg8aYvZPdcnNINDy25kvNre97TKptpQSB6-IjvHLCWQJHzlD\
    iGYA",
  "y": "njG34YWeObrJ8AUOH4lvqspRcCViqbkn2vUPbcTUUSOub44OkVrFqwznzkdI\
    EKrT",
  "d": "DJll4Ommwo21BHxww16GgoGaxXWPKFY6r_ppQ7wRempir7VQ4zr0r8_iqqHf\
    9hUp",
  "alg": "HPKE-1-KE",
  "use": "enc",
  "kid": "dCxtIy9H8XajATicOvCTQMh4ZPgz6YsOK5ssKHeWWEs"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-1-KE Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTEtS0UiLCJraWQiOiJkQ3h0SXk5SDhYYWpB\
    VGljT3ZDVFFNaDRaUGd6NllzT0s1c3NLSGVXV0VzIiwiZW5jIjoiQTI1NkdDTSIs\
    ImVrIjoiQk10NGNmbG4xbk02SU5uUFF1cVRvUEpWamdySlQ1SVNlS3ZRdE5VX0FH\
    UnR1YWJTeGFhYndjTi13S3pfQU1OUXYxM1VZa0xvSDhxTGlVMHJSeG4ySWoxQVFC\
    UDBXSUY4b0Zsc3g1YUhWLXY4WWp2bDVzTkg5UnFuNFpiOWplTmNaUSJ9",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "iv": "Wi1O4jqJpo9trvrT",
  "ciphertext": "GVGKeyg8z5mBfpS-02_JtaGiif95jyOWTHY6VgNgIgj38noe_Lc\
    eUOkpsHVrTj_3EBRE_d7U8zsOuSLUVj9PQd-rXy2m8rdUsCkOS9-_0ik4tgH_o2d\
    1wfLH8MTjzYHpcFeIVCX_1w3yRa2fhN7Rg_98A2Pd_sTH0A2CPtMhvETG-8JRQwl\
    LZTkFWl6jpEQ6qH07NHBpy1QXLsWdHSXIY3Bnusu9EpORV2W40Z8N2RWmtT4rej3\
    Ccg7JCr-9pBNlKdA6gX_YTRxCFWop1v_567S-qkTcm2eqpGs67S_97BauEzVUMiK\
    qa0sMaz1BwbNoA14Ey3orPEL0suJYxTAbj8jEo3EDbL_bz0dIsVw",
  "tag": "127mPyxGskfRdYmBmbGm9w",
  "encrypted_key": "-3WGOxsdBssqlYpsWKmSs4rKWbqh4_guvdNyelGiCoSkSNzC\
    4lRnGxvPOy835mfJ"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-1-KE JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTEtS0UiLCJraWQiOiJkQ3h0SXk5SDhYYWpBVGljT3ZDVFFNaDRa\
UGd6NllzT0s1c3NLSGVXV0VzIiwiZW5jIjoiQTI1NkdDTSIsImVrIjoiQkxyVFI4SEpk\
cUY4eklnc2h5TmtvaVcyTHplbjdoa2VialhfRDhNMWVtaWg0Y3JlWFVEUnVtRFVRWFlC\
ZjN5QXdOVWRaNHoyNUExaF9Bd3hPVTNGUWE3S09UT2ZPNUlYVkItT21IcFNVaEpQcHBH\
SXFyTjJkOWxWNWZpS0djUkVjZyJ9.biPJlwnk1MoJKdzAXLS9go5jflQ68qihUJqreC4\
hALwF9nXjghFzKY6yj4hyUtRa.schW4QaSX0SNVOqD.5rtsaBNI2luA7gSzaHub-dSBO\
OlJkT7FbwtEoJRx8PMiSqtWIDlv21yvUjalft6EYxfQHSjmi0yPVjhjmpCj26Qga2gko\
DLxAgOB4tzpIsk-gSgHY3YpgZLkSyxx-ZhtaAdXphQAzPmaeDjM8_DRnvSzyH-Hwg9HH\
s7jmIzqJVsoBULQop0Lk7brPXiiB5s08F2Ib6rdercbgDTTZdVXcyiNQhKoGBUOjy50F\
xW4GkuyTW2MH0_0VecBSrAWVg248pJSnPwvVcdCocPTYmFiSw6M9MSwl3A8KKlU33qUY\
apB75qOUY2zQmh8IYFFUiyMwLX50EKws1YSmNGHYbp4iDCQ1ZAqTCwY7oM2JGM.PhKLq\
KcrR4CexYEDXRlEoA
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-2-1">
        <name>HPKE-2</name>
        <figure>
          <name>HPKE-2 Private JWK</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "kty": "EC",
  "crv": "P-521",
  "x": "ACDaefJAD-xbCAk4C5QadlEtEinEV9JRqyz7MHzSjK-8V2zn0dvNYRtdQYfy\
    ddZ1LiN9dzTxuyEaqlJ44-NzoJQc",
  "y": "AF9ye0Rd9NTTGSTlkBUcpzXttxHOaTfQi5E6QNublPXTyuRX-X54EDzdy1tn\
    sBECHNmTAx7rNiR42_Y6ZbKauCTE",
  "d": "APRq4c1AiF5IoYKHKz7TaFknSvSxn-gH5ZurH386OD1dO6I2tcbHlfPPoFUO\
    8miVUihJuHIpcxDFGIRwe6kgPZ-V",
  "alg": "HPKE-2",
  "use": "enc",
  "kid": "MDVVyxq8x1VX7I1X3oVf3nJY51r55uNlZ9xHpC-7sS0"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-2 Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTIiLCJraWQiOiJNRFZWeXhxOHgxVlg3STFY\
    M29WZjNuSlk1MXI1NXVObFo5eEhwQy03c1MwIn0",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "encrypted_key": "BABLi4eakSyaQfL3PjQqiFyDexcKydTcQirDIQRFF2f9uh9e\
    ZUECuH6Ows0u8YFnjCkg3zJ3yR0IX96ZbvHxfEVwgwC231EE1fQQiaHHYCOLQ8eA\
    7uv8lyLgSk6Z542ocdJUWWbxMMbnBwkEWKnCxYtynpohK_aSvTo1tVceSeZx9wGf\
    Og",
  "ciphertext": "u5D9fUTR78AJtFaJ0u64aF7t9cBTVcfdP6KCl2atfY8F6RfnejV\
    qeq8kQOGdhwAijGihwWy8-hIVVK0HpT3VZdP1Wblf1FdHdbtgIt9m8Eb530sDFWm\
    O7hdgz6P_yc134MyA_SXYDpMEP0SEN-q53flL3c-hYpNHVFp6cACAbzZ8Gqg4tom\
    ZAuxiuODgrj14P4gCuhgas8h_AyxDC0kPctSBime1Tcnekp7TnJjVUpcmyzzpSSU\
    wmec1J526NCkbDFLiY1dr3Tq7UjZi6cnfsA00d2HPWCW8x6UjEY7aehKTKz06_Io\
    woDzeryLGntpYwt9DeJp5ZXeaCd9eLlRDXo70Ow9Wy21flTWDv9h7CVUpNE-JP3U\
    LAF7FGOiA"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-2 JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTIiLCJraWQiOiJNRFZWeXhxOHgxVlg3STFYM29WZjNuSlk1MXI1\
NXVObFo5eEhwQy03c1MwIn0.BAAwPUHl_bLWN0BFN3kjTKNBJ5CUlaRVs8MjYuQdjyjV\
i4RMZj19-5xAajscJ8zRJhAtkMMQaoI316TSY0KJVSynygAggzz5tz7I9Y_zJVn_1eIM\
VKyWZ8Mo0zI7htZSxw0MOcmVfEgxPzSQWDNlsAVrfd06ygq0wOPrV4Rm6mDKEWZNzg..\
Vgu7cjxvVby8xIponvp03Zk6sm4mBtu5xYR2fIC_R6WK86ReBTtipkfCOavcLcQKrCeV\
PtPjnRizaDPXD41IOzrCCWVfTDLV0Y9OdeDjzLuwBn_5Bj9jO40XvnfPcRCUBINuN-Yf\
UgG0mMBmIbmOCUATQHT6M_cRaY9F861Phu15hURAZCxv5QwY1XrvlWceziY1euzMjaQC\
aTxfa6nsVyr9zd-U8suti2dknVValb0XJRKiBph8pwJ3Zuc7SY1fGYTSIskDkw5Npojt\
HnzFayla3w0L3e2vy9EEnJ0UxgO5Sd9inFqXYwV92ZqzrX7Dy4-LkY1JRx7bPMwkMZuC\
Begz0YcXpwzaJO29sr8Osecmn1UUFKkLNC6gqjPA.
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-2-ke-1">
        <name>HPKE-2-KE</name>
        <figure>
          <name>HPKE-2-KE Private JWK</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "kty": "EC",
  "crv": "P-521",
  "x": "AKA9Ra4-VaZVMoXlIbU2DNQSiKe92-zXuGI73CtGpibQbmyTpuLV4TN3UWcG\
    HpO8krMaStuxuJOToVLqVUWm0zmF",
  "y": "Ac-o4fIpIKZqPQKtEi7f04_vXnW-3BH2K14WSUp_tWsgSuHai8CGuWcwGkB5\
    iKNpwOvh77Br0Vk69orojXETMy7W",
  "d": "AdeDTmkW31gpYbnoI9V297i0tA28dNYR1VS2lRyn04x9UQItmnUG7fp2Wc9C\
    QgGd1XCWYjtJsl9IQx8q0ylTKD2T",
  "alg": "HPKE-2-KE",
  "use": "enc",
  "kid": "hsRjjUtVSsbXZr5gfmhzqZ-RSs-K_ofzOV09sHt6x8w"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-2-KE Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTItS0UiLCJraWQiOiJoc1JqalV0VlNzYlha\
    cjVnZm1oenFaLVJTcy1LX29mek9WMDlzSHQ2eDh3IiwiZW5jIjoiQTI1NkdDTSIs\
    ImVrIjoiQkFIbWg0VmVCVEpqTEIwVTJNSG00RG1KMFRGWXFjSC1fRE9xMFExRDRh\
    YVJpajBfOFR5U2VwMG9TWGNwREtNWVFNejNSN3hFRmVOMmJTcWNoN0U5SThEenR3\
    QkxwWW1ycmFBSzFNdTdORWhtQmZrM3paYXpmZFlaa2d4ZVVEcV8xOGJLVDRZWjBx\
    ZmVpQUNMUzJ4SlJfdUIxT3l0eTU0dmdLS3ZpSi1uRXdaSFNDcDNFUSJ9",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "iv": "SYlEtaEkTYevJFBW",
  "ciphertext": "ZXzPE7tkBWov5kjsQ47b92iXu_t46Et7ndoEe7ZWB6xKz15sC8G\
    L0XKCYJRTueJLMwJsd9jHzcyFrqMp8sDSJMlFSZfvlnzLJube8bEByDbIMUvCp7B\
    fyknjwPzkdthDwvU4iaT6ajpgzJ3XeZA44zoEPp8plP7ZSQR8fnuhew1R7XBnpY-\
    dLOD5DyvPA7D3LRxejD73gooVPsyU_tR3lmpPclXq_KK00XiVnuDjN1w53RmgOPt\
    Q7Tmb4x1xkNcu4e-wCjjF2cZ82WNLjXhLWFaAlToVrCkyHIy7j_uAWy8w1WyausE\
    5pOGaUuVX2i2jSG6A-zMU4yUsgsv7CbFD866LvykzvmSXT-6MQ5I",
  "tag": "3J67UwTJseHhB_oYfWamxA",
  "encrypted_key": "VKWtVxVx6mS9pBXZzkD8Op8f0BFKXVEmd9svXFgXwkMycMXi\
    zR1zmQdO0_FozxPF"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-2-KE JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTItS0UiLCJraWQiOiJoc1JqalV0VlNzYlhacjVnZm1oenFaLVJT\
cy1LX29mek9WMDlzSHQ2eDh3IiwiZW5jIjoiQTI1NkdDTSIsImVrIjoiQkFFTUlGcWlG\
UHVFekhlb1RIVXFHenV0MWlVY0VsX0lUWGRjNlJKUEhfUWM4UzdQVkFfcHROMUttLXVM\
ZG9TWWxfRmNlMmdabXpwbjlTRWpiZVRVOXMxOGJ3Q1pxUUpWcXhidF9jVXk2RklFZGsx\
UEh6c0F4a1Rfa0NJNjh5R3NJSVZWQ0JBYkROQWhEb1NBOWt3UGVMd29ESXlwUVgwWnBn\
bW9rVFhVUlVJM0NrVlJTUSJ9.np-f7Zgo1yJFO4h5HJkPi8EYTsdGFCmnk16aTe4ft5E\
VXcZhu4HSGpWyNTjxbSKT.Pe4QDK53sKuyRFcy.brG_KUQoD1h52jWgbDb1zFzbMIfWb\
BcK-naIdYJtYW5iJ6qw8-a-9FcXL2x2sIRoMsj2KqylIqNCPE9OYr96GWlsYucz-tRHq\
cwGkoG6JaUIq3OMxr0MekOfWtII8epaldQw1SyNWenaTc2jGjyoA9MJ78VV_O4uKORhT\
i4lP8bcv6X-d3utnIeUSgTUQQc4AWBUoSfymKHeo7gL9ACAwoGSI-mgIeDeI-7K5m18V\
jD_5rLzTFEKVFhrMB_c7mSVd-_nv6bVtncrros3_5a4I5C5V0s17cTljDJOTiR2i4s3i\
PyVaki8544bIBU0_t6lHFQtotb5ZL8zUP50iyNeYjbXSdwdn1Es3ain4SA.Os8mE9afh\
0oe6UgoNp6-yw
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-3-1">
        <name>HPKE-3</name>
        <figure>
          <name>HPKE-3 Private JWK</name>
          <sourcecode type="json"><![CDATA[{
  "kty": "OKP",
  "crv": "X25519",
  "x": "Pyv22rGl5uY-24SOA_wda7PO4bIw6bobrD1_5VgF3H4",
  "d": "VtBu3AuB4_RKgDCDqj1j-_Kzf12ekvaGxoAGmMDcDks",
  "alg": "HPKE-3",
  "use": "enc",
  "kid": "n9hjOrhXxsQ_lTMu3PqkjHgwJURHZPF3HY5p-LFEgyg"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-3 Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTMiLCJraWQiOiJuOWhqT3JoWHhzUV9sVE11\
    M1Bxa2pIZ3dKVVJIWlBGM0hZNXAtTEZFZ3lnIn0",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "encrypted_key": "Ch0FElgndJcJkvCLEWpRpYJo3gbwn-CzVke-s_XH5Qc",
  "ciphertext": "9iGWYstawHANKOPNlkohsf0uSr5B1fSsTt5AYJzgI7WckZSyHoo\
    M2gEGrNf1b8TzPtWAnq7fGXgSTd76-Bg_DsDu-EsdEnb9XE9-7jaLLbP_pJ2JNK6\
    R1k420ZvpTqlAPk0Zu1tW8ZREYDtbw0K8aM4gIY4P8vqFba2mJxv0OxEXTP5ur2p\
    TOOcWhZ0E4ICUMDD1xcgzgziEsunxeFdU2X2okwVRr6pQP4XIe81bde7OY1qhaa8\
    4mxmMBNoOBgkE3vlV58KHR_JFKUkGlt_0FKBsrpt1yq9gZUzF2_8uqD1xHiMrw3z\
    yLcKH0hdJvLfZv3s_0sYAk98tPF4uZVmkyF-FC0n83vghekRCLR_HJg_QZhfWsSA\
    hETnydVyJ"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-3 JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTMiLCJraWQiOiJuOWhqT3JoWHhzUV9sVE11M1Bxa2pIZ3dKVVJI\
WlBGM0hZNXAtTEZFZ3lnIn0.UkLR0N2IgxHkSZMhcCfxVO_F12kcq32ccJ8x8M4MfBE.\
.I8Obflj3vInszfr9sC1tnnhaGPSGAL9L1-mURYJqYWWxTlI0OZrFSKiPY7dAuyrITxT\
iaboZTF2yNo0swzp8S5DTil1KdxCzrMUtz5Lb-rMbR5Q5uNO7NXegJceIQkR8p7iMfNX\
ETCI8Pv36J45yDQDHrjNc6ZuJ8Xn6pHNFFot67L1GI0ULsrS2TCqztg2p76A1nObMGvA\
-1w5zwU6NN7p9WPCrvIKwO6MIl-LR4MV0-jnlmd5dlw3wGP5DDfqms7lZNbZ5X2d5U0s\
_7aT4Zar6ixUZrI6bSj4gntrEg8nLz9IlBT6tE6Gic3I2Abxbj1Ewn20WAZetzAQzWNd\
Jk7lIZYAJZLeeBip605kw5DuwSEK_3jlXnPsDO3Zs.
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-3-ke-1">
        <name>HPKE-3-KE</name>
        <figure>
          <name>HPKE-3-KE Private JWK</name>
          <sourcecode type="json"><![CDATA[{
  "kty": "OKP",
  "crv": "X25519",
  "x": "4XxzVQ5b1_2KId4eH7vCgtTMFS-xpFQdlewl7Ldgwmc",
  "d": "nV8mMuP37Pu7zvd7i-Fqg8HLYpu2wWOZFb1FdkpV6iY",
  "alg": "HPKE-3-KE",
  "use": "enc",
  "kid": "rZvhw8SPuKMGlrnzm-J4DZ-G4niXcJkKvb8tAbz4jJc"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-3-KE Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTMtS0UiLCJraWQiOiJyWnZodzhTUHVLTUds\
    cm56bS1KNERaLUc0bmlYY0prS3ZiOHRBYno0akpjIiwiZW5jIjoiQTEyOEdDTSIs\
    ImVrIjoiYmI2ZTlwaGtPSkstQ0hkaFR2WDFEVnd1MHNidXhoeUJTWXFGSXFSWXYw\
    VSJ9",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "iv": "p1k2S0Msw_G9W3jh",
  "ciphertext": "AAmFYE2Bd90ybLZfRKLnyaiCFFBICLQ2857GNggF6XHVwRu1BFB\
    gG-kSsGNO_XU1F_KCJIjjmphNm7wjRcSon1yKrJfgOGPD7X1Ft3O83qyJ0HNHGE1\
    lgwELwYVsbNQ3MnbsrQFXfctTPEPFCqMfkvuNcmxPdXyMUI9jw4vZcPgn7EMDYYw\
    CnVV4AGJXR-wd6bpYPxoz86k_elWnHtobyGLzSJGvcl2MUvpTThrji_Oi3jel0Se\
    vyJpYrJxzzEbPAYAKURdPDxY6fEGuYPx-eTq12_a5T_buhvKsJnuzUTk1ll4K9Pv\
    6n1b24Fj5oJ6J5sPzehBvDjuJbV2blEoQFAHxpPP34lS4GPqeUPU",
  "tag": "EtvUOjRzhh3I03xF5A9TOQ",
  "encrypted_key": "otTTPK-6HbSKlyuEjdAQVUQisPPIeePcDf9ASl1rzsI"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-3-KE JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTMtS0UiLCJraWQiOiJyWnZodzhTUHVLTUdscm56bS1KNERaLUc0\
bmlYY0prS3ZiOHRBYno0akpjIiwiZW5jIjoiQTEyOEdDTSIsImVrIjoiWGJmaDE5cnBi\
bHBDTHNjOGVqelhUSE9SY1hFa0IwUDJaNkhpcGpONV9VdyJ9.T5egCQZlUyP8UKtq8Xr\
fHgIbEdNLwID1-nupqh_APHw.Q7ejfTauKt1TiYTW.6KHlyH3zHQlDPTrw3R1v8csmoL\
s59QY1B2NpWGhD1eoPdHAriRdhz62FY3JbDDykg0u_LfWTs0cMj5xqhAXLYnWFBpWqNl\
GSAZAcE_S9EBAg02ymscpqhRygMhu_mPXpLwr8INYCA59utnQN6d4yHcV3LgocTx4OV3\
2wPtm9ztydPGVLA2VQhCDx_AytmkRbiv01WjH71WWvBeSElHBlGlNl-6t1sIv8VaTPUp\
CO3b_iaoLbiRxhH_zTiLsVjJFiR_GeSo7qBnmvEYOvb_QncKGBi3RPwoOJBuI5cEJfVZ\
o2oenqla61H6glWOazG6lwtgA0Yz4y0b7reLaYISQ_e9hRlohzGjSsHd6WLYw.l7VO2L\
xXTh-CTI1qDf6FeA
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-4-1">
        <name>HPKE-4</name>
        <figure>
          <name>HPKE-4 Private JWK</name>
          <sourcecode type="json"><![CDATA[{
  "kty": "OKP",
  "crv": "X25519",
  "x": "N5icT6hvBDpsc9a2t1mXfsDBGsvi4VNTNoINejK5nCY",
  "d": "0EeYQgglJkckhiVP5aGzyrQHepapUd39QlbI53HnWOQ",
  "alg": "HPKE-4",
  "use": "enc",
  "kid": "EMf0FmafX1CDECti7cvCWZddOvzvPf3_nmXI39eiO18"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-4 Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTQiLCJraWQiOiJFTWYwRm1hZlgxQ0RFQ3Rp\
    N2N2Q1daZGRPdnp2UGYzX25tWEkzOWVpTzE4In0",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "encrypted_key": "WPuUGt62N-ZPXl0IMvwqVI5AuWnkn-ShiF3T5xF2KAQ",
  "ciphertext": "dKwJ1poXJWUfVzLGr1UbCfJpZ8bx4tLlzFMwlcb-RN4do0umqfR\
    c_J70pxgWt6MEpFxAFd8ZzDUzGtjZbt4k1c5vcCX8_XLT87JUYEAFLcPzgT6pdqg\
    EjOJHd3E84HgphLSC-D117RVpHH-lkUp7NKg8hbJ67ZrDnPvT_JwpAw8898diWI-\
    Gys3K6tSox0RLHFVldHTjJQWE28EPWWJ6ewklqd28rgTMc8zm2lpapa3p5hOSYxU\
    B2IQ6CkU7U7SaPNrW3VspdVCbpjajOchTWIBokxihbxyIH3IT5xMhYjhcrkFRLbF\
    1X_adZjTF1nQFXnBSynAnEs5q2RBExeNLYb6Dc9TDDzjV009xEqX7mpsrhJKlkw5\
    -SlFIsaF4"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-4 JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTQiLCJraWQiOiJFTWYwRm1hZlgxQ0RFQ3RpN2N2Q1daZGRPdnp2\
UGYzX25tWEkzOWVpTzE4In0.Y2SoN-pcwe65RNXeomaV8hgkqY5sBn1t9VLp2Y9_1UU.\
.qQJ1rsCOLV0Z2sFQh1MjkYP2Lmu2O_4g2JWWxWSJNqgvPVmXoEoW7Ls7WNcW49aSYJi\
AmT_J_W3TfhP48qPpsAuaLP1MK4iA-hWF0LLfCAQM5wST86_eO2ewwSfXEwTsJoMeqw2\
A4lTifulJmNT8IXHzhU7SmmLuRoni_MUpD5NzCy7_M4yb5v1wQ0CcbjiBJZn14Y9dufP\
0v6kFoR50ca95rIflu54TH_i-Z9CReJHZBmlcKcsuejfP7HCpQx60VRCpFZ9IsSIQgGJ\
u4QSMzQToDZW6vhnSQBzeqafxC4082Lrh3YlQ21CCJ6AjOEuStYvvtYd6Yem9GxG17Y_\
Q-b5yePFrn2gHa0j7avoqKQqTjiuTGjruFejEBjnj.
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-4-ke-1">
        <name>HPKE-4-KE</name>
        <figure>
          <name>HPKE-4-KE Private JWK</name>
          <sourcecode type="json"><![CDATA[{
  "kty": "OKP",
  "crv": "X25519",
  "x": "1GM_SyXQMRrl63zxfzLXMceEBl0sCiz-zelITF6RNzA",
  "d": "KHRpxZE4_rYNJ1CS_UuciujETp8lSLhI9QvBprbSJrA",
  "alg": "HPKE-4-KE",
  "use": "enc",
  "kid": "YJ4yjnwAPBiPg-s9bFLjhl_SAyxXNkpe2bA9Gl1KkTw"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-4-KE Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTQtS0UiLCJraWQiOiJZSjR5am53QVBCaVBn\
    LXM5YkZMamhsX1NBeXhYTmtwZTJiQTlHbDFLa1R3IiwiZW5jIjoiQTI1NkdDTSIs\
    ImVrIjoiaFlQREVkNVFHX1p0N2plUVJlUWV5UXM2alhnbTdzSG5hOEdCWGM1emlH\
    ZyJ9",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "iv": "Q6ghT_T-ekzU-ubv",
  "ciphertext": "FMwgTqXftAE2lENAgnoQD9tObqWUWHATOTl7SXrUqmwX0jjhXOb\
    cRjFT73QFH9KVdcEzQROLAIWnrEnyfCbjwhM6Leiwq-xw8VgHS3f9xxCcS407gyZ\
    0Sv8qAPgsnusNUEBOQ5lxXJCNNZ_Z_CANxOCct5CiZUtZumTMp2x-vzIkHWxtXG1\
    NRbLgRbHJg9SVBs69-6q7Lp8vGJKHkivtDNVVOfuyGC_GM8HX4bdmadsQpCa_spT\
    8g5RVZ13TKqrBYc9u2HJNt7km0lCqQHCM0rBODrmAvCNuTCWp-Cwklkbg19ovTzA\
    skfXJFvxAhj0ipTaWKGXVPMSdAh1fhsxdyl03HoS4bN8zMoT-NYg",
  "tag": "LG7QdrXWME2XEyln5Hu5SA",
  "encrypted_key": "MgJbcJi5vnrj23QyoNwOq_I_w0K4vsvDnctDl0LCKC35jWTG\
    0EQA7dCYQj8JTh1F"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-4-KE JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTQtS0UiLCJraWQiOiJZSjR5am53QVBCaVBnLXM5YkZMamhsX1NB\
eXhYTmtwZTJiQTlHbDFLa1R3IiwiZW5jIjoiQTI1NkdDTSIsImVrIjoiOWQ0RG1iRjln\
d0pjYjNGUzdKeDREMzJmLUt5ajVkR2trUEwxZV9VdGRsOCJ9.OfsTC0qyAC2nF2yusu0\
Dsuz5Q_8Dj8ZJTJ4849pE_ya5c4hdCKx3Nsi2iDX6Ihuw.tkzljZ9VnaasoZgP.UJGEL\
opuWvUqOX5_FwOylfiRVGDBZ9MEuGKP5WZryuC_C4Jabm375-9FPqe_Lq5p6nCX8ANmK\
Gz9l0ASWN3tn71NfgijAbBAWhM9T-KZcnrubObZGT7yw73UddI-k8aY2J4zO2j911JbB\
JHrk6CmDHZHeV_FQBDngPB5fg-0GY7SXu66vEBJJVn1nYgDTxVgldAgOEryfwweOghqJ\
t0Or4nCJgI0cFdEXxz9yPMSXsD5kKH_ae12iuNj8QGRj7CL0vVoQ81lbTvLhOc5_OKp0\
B17V2WIEyV4in6FHE8wmw4TirSnNu-TT9dMDog5gEMItK2i39HHimtm8JTEBPWfOw9sC\
mMvkvk034z_yng.fQ0RkjaufCkmT_YkbHcn5Q
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-5-1">
        <name>HPKE-5</name>
        <figure>
          <name>HPKE-5 Private JWK</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "kty": "OKP",
  "crv": "X448",
  "x": "fjqBGwWuU4fodrTA1rAnN8x1WykKMo_MXoFDdssKrzo_FAj1v70mJx5dn6Zd\
    J896Tg0HcLSPjlE",
  "d": "aw967bbjUbpRJLrL18RI0EfPRQGRHCVC1eUdM7sTODLvnPXYniZ0Sx0wMWi7\
    gHLFH2GQPPc254g",
  "alg": "HPKE-5",
  "use": "enc",
  "kid": "VlMlFEMhh4sRZdmn0SZIcar1R4xs_g1lj04VbypUALQ"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-5 Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTUiLCJraWQiOiJWbE1sRkVNaGg0c1JaZG1u\
    MFNaSWNhcjFSNHhzX2cxbGowNFZieXBVQUxRIn0",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "encrypted_key": "9iaTop5blWck0Uc_ozrHcl2qWFfKSD6o4c_C941JenqyncVy\
    hPD6wlzoyAQ9BQdb23DGzgSwkc4",
  "ciphertext": "On1bbT5LwjcoHTUdnST4CxrHQ-LDr3fnKjX07Tkwpg7ZfdXFYTU\
    IO636QxV7FwF28rOlVN14RQdDAOGBuDKuPaUlWeCrmv8RBUNk1VxSLjqH9t-_jkq\
    VZcrDKJId_V8CWu28f8Aj3ZOULDMByyex2yrdO9icyn3zm2DhO6CEQskZywNUiZH\
    1yDaGSS5WhtchdvhI_GznPws3s5VuQECS7B-Iwlm8vZyKFkmfDgtr4wjSKS4fcTw\
    tP_F-7OyYvXgzGMBX2CTdbzArBJ4LKXbjEwWf-UEMNaLksc0LLd-nta6pfhGDB44\
    btYtochVDzA4zcQvW9CfE_9em2h1cpGiQURa2mwmUEatyTE45BpcVZlg_gU5YgJM\
    xreLHSNb9"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-5 JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTUiLCJraWQiOiJWbE1sRkVNaGg0c1JaZG1uMFNaSWNhcjFSNHhz\
X2cxbGowNFZieXBVQUxRIn0.rZnCIn9zB_pE5h9x_yH8i7HEGgE8419BEA9p43tL5J1h\
WOzzEtvB8pX4SsdqTDqMheg9wXwG4Zc..TmMhj_n4VL90wOkc8XfHe_PDCopXxf3y9Xf\
H-fcrNSCLaaGYsnGr2N2aZ7h9xEN04oz_fdzL5H7s3hXHLj1Pj9gruRCsKSTj7JwLkbP\
HUJONxqni6IeJcX76Y6XFpsYWc-JP42bLqTUUpJEnn9tQ1bfsOLphKu5IqqYImrWMhHn\
6mKp-zx0MP4MzLDP7ekiV17d0fzA3t3cHji5Y1joGfC7qyLd764I9vyfClCABPTEvWoF\
mgs_Gh9P42SCN9SoVhQTo93NgDxUd4mMEUfcd531xHRUt8Ha9AVnjlTHSEhuHojArPQ9\
odytAHanhU3-1EBPCCZKInagtCOnpmbQ49UMkts0SqJjoH1kzirqwaE6qN2uFz1pResn\
LntUc.
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-5-ke-1">
        <name>HPKE-5-KE</name>
        <figure>
          <name>HPKE-5-KE Private JWK</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "kty": "OKP",
  "crv": "X448",
  "x": "SCgsstfA1mjLmj64RyHxAjTiNf9X_V4JtsHzFPIL6dDplDoFadwuaM3AEyrP\
    DLPLWrZeyknvjL4",
  "d": "oD7GBrxRotc1KI9ji-K0eWrvGXCwA2xCwI4Yb367MJseu7W0IegT9qf8-KIf\
    maPHPncoo78KzNs",
  "alg": "HPKE-5-KE",
  "use": "enc",
  "kid": "aaWgexNI9cl1t1km3gXz-cWbaK3fSGZrQnF53D9PSaQ"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-5-KE Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTUtS0UiLCJraWQiOiJhYVdnZXhOSTljbDF0\
    MWttM2dYei1jV2JhSzNmU0daclFuRjUzRDlQU2FRIiwiZW5jIjoiQTI1NkdDTSIs\
    ImVrIjoiWmRZV0lScTl5THFTY3p6Ny1oX25VWkFIVC1zdVo4d09DcDY1QVVNYUN0\
    WV9ZdE1iZldoTHJDc2pXcS1mMEZRTVdFN2xQQUxfaG5zIn0",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "iv": "RBEq5h4tlGQUAb0c",
  "ciphertext": "p_SAPca5Qn_2KtcZhyxY3QMG6_TiiG6uCn8jRl0fSk5_0du2Cqn\
    mYTQGGpCvit7aFdl_IGXKdqukWjSqsKhEcj33J7sVAc2gyghxW-3GVY-ejKJdUZ2\
    5g66VYIQzUzq7V8U7MTbGLesozqb61eKkYOliSRmRLuokMD9MioCyGM7kkUzmrhO\
    M2ScdpC6g9gZjbknMlbUlCs117mXK823LAdxVMsbuArZrgyyh4_hqmjWAqM7PC7H\
    a35pEcA3ioS-9eZwSgzKNFLsa2lgLqYKzJeJy0GftC9kKVu_srnJV3tyirDvgAHm\
    OSs0sSnGSlLKVu3Il8i7qRGmIYSx69hVCGX6vihLOqfG1I1VLNkY",
  "tag": "fwVENoMLLO4cpAvn_vtrxg",
  "encrypted_key": "ccsTG2EzsVLztP7542Vxe07BIqcA3V3FkFOW58ntY2qx9K8z\
    xcz8_LWABrUkAmYr"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-5-KE JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTUtS0UiLCJraWQiOiJhYVdnZXhOSTljbDF0MWttM2dYei1jV2Jh\
SzNmU0daclFuRjUzRDlQU2FRIiwiZW5jIjoiQTI1NkdDTSIsImVrIjoiTmFYbG9MSXI5\
QWJwSnBaY1pFd2d2WVdJcm1EbEJsVDZzdVFmUEp2dHRFeE5kQ2x6QVpTeUhNQVpFVEtH\
c25fbzU4RHlvQlRfdG5NIn0.OSbqI3MBLE-Za6f-HbGMMBRTdOlexA66Sc1OHmQ87bcN\
mOTu1C-ozuQ3O9bG5n0a.p67n2dVwqFUZ2PtZ.WNFqUPwGfkQyP9RfnGlLaPxmNxPvdM\
47XwlnjPHQJr0DZ6DWTWZrB3Y886qUAj34TdAIxlWxX4OJbe9fqywlU57fGBk6Z27KOV\
x7ZHg3ILCGcnf7_b9nqJLlKJqg8YGNGX_eUD6IkXttvYMnsyc7uPW5DKTGqmr3RzPxCt\
RMxJckt-pDn6rlJCLs_40RdVHBR6KaNnyKP2UNXo-efgdEUHBm03Np5FKk3EPUDjN3e3\
YoummCeGWWI9apX1rodGWYa65QhDmXafZaIHJJ2-JIRfYEIJtya6Oi_WX7DrRIGg0dwj\
DNCLRo0QGoIod1Twjqcl7kONuEHRtRnLVXrcmiGxcytcIMKS5Kib6nItI.D_0s3aOb2o\
hF7fLlxSR7Ew
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-6-1">
        <name>HPKE-6</name>
        <figure>
          <name>HPKE-6 Private JWK</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "kty": "OKP",
  "crv": "X448",
  "x": "wKnPzBmQ6-0gjEaxhJNY6mG0mDDsVZ_Hvah1mYzPDkUWgPRIQXwr32LDjohW\
    SDLTGeIq1HQ5K6E",
  "d": "LMXuTYqcBW6XUwctj79OVmuuj2P26jBJ8Uaz6d0sae3GrbGOEVYrs6FGBwph\
    zT8ie65RYAz4uNU",
  "alg": "HPKE-6",
  "use": "enc",
  "kid": "bjp4-nQuEki4p5Z7ewD3ScjtBwu3glF6OdfloVMoiew"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-6 Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTYiLCJraWQiOiJianA0LW5RdUVraTRwNVo3\
    ZXdEM1NjanRCd3UzZ2xGNk9kZmxvVk1vaWV3In0",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "encrypted_key": "rBiPWmIS81SOhelCXdTXZRuPo3P1bwojxmRJg1pjfzUszzBu\
    8R1gFRB6ys9q3parvYE9iXG1qvk",
  "ciphertext": "TbXxj9-BYgLgY1MjODWPGeri42N1sLdCFdjeXqs7J41XSeoEhTk\
    I5Yi798SEkisrVEj8mbvLjbZIJGj3B5RgqIEf1H966WzEN5v8lzSOcCe30tFINLR\
    YvapLCf6SZgBq65LNgdh3ESdbWz2lzil4NnRWEvxOTb0hEtWYqNccb2LFZKK3FJ-\
    cwu3AqlDw9jzW6z_DU0_Jvlm81nhVXQWSBXsYtEx934ILrQP_he-YJeIBWCnmhwp\
    yNoaO7sd_rx0E8LpOIgz4qghnc3SmEy57bOl-vh9piCv9kG-Uo-Q1Izf5yOmM5j4\
    u-0uNTTInJPhVoXymUH3CHStxbApPOqqBfYIg6xpBuL3EZWKTzL5MldbsGQojbMz\
    uz5kUm2Zz"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-6 JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTYiLCJraWQiOiJianA0LW5RdUVraTRwNVo3ZXdEM1NjanRCd3Uz\
Z2xGNk9kZmxvVk1vaWV3In0.LC3EuX-_0LRsjWeC3CAWdjn7rCafsXw8L2SOg77NCiiW\
iKrzput6yVjqDiNXgwwlUaKrqj8efis..ZGNpmUbZKvTxPDczH_W2nIuUauEn8taTkvl\
05XgPteujObbS2CdIkkkRaxsvEumNTGFtc71nWiEt5_U7BzHTDMf7xCfLNlVorM5pRvV\
TWziF0jkLA0PUe-PPxgnXVZdpAG-QfCZHl3D2suW88G4MEXH9FReIaHRHXB_RP4fsDYq\
RSEK2i0gOziI7iOwk4yGVCkLkMI5g8aIQVjgIcApJL-1Tulz19hlrGKxMM4gEfB7VLQg\
O3zpTPD5hhKBc2ofIHffEupwaNlg9fbNk1779wKvLxDbKrBWyxhRMkB-YZt-fgCVqblI\
c_Y5xdqaLErGBgUNpNIqlN4wAuuiB5VJafKZ0jzadtMlFoxsnPTh1Xl02sgR9ZsQl6S-\
aEdFH.
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-6-ke-1">
        <name>HPKE-6-KE</name>
        <figure>
          <name>HPKE-6-KE Private JWK</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "kty": "OKP",
  "crv": "X448",
  "x": "xyUAS71Bmja8Pq141pc1z965w6_RGV-QxfN_tFm1Jj4LsApo3Cn9xnWwPJRG\
    FnS10LPZeniEcmQ",
  "d": "r0PYBotYGdlzz8YM3OvV8PYf0zHbdhPJ--UJRs_asGTTQgIS7HYRo9AVPDnA\
    s5_cU8EUNDfB4NQ",
  "alg": "HPKE-6-KE",
  "use": "enc",
  "kid": "aaGcRsxhcVOUTm89NpDuhDFh3HZRq3nyf7nabjmBEJ0"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-6-KE Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTYtS0UiLCJraWQiOiJhYUdjUnN4aGNWT1VU\
    bTg5TnBEdWhERmgzSFpScTNueWY3bmFiam1CRUowIiwiZW5jIjoiQTI1NkdDTSIs\
    ImVrIjoiYzVjVkJTTnhUNU5qTlFKS25HajZMV1IyclpuaXMyUnRCUHNJSGtQYVMt\
    ZWFCYnpUTklXYlVGNE1PR2l3enh6MDhfTHJGTXN5bWg4In0",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "iv": "vIHuDIIkCoXzAUCF",
  "ciphertext": "TQQx3bJZJC6GTwybznjJc9BeZBDqj6oy3HdQ8OGglANmxkmKuNC\
    FENAhZuOGqsOZ1TxazCY778DWMAakgTyukwLAIpXJvYSgFz7qOcuUqEWybA3Uhp4\
    qDGI8Hw5XePnMU76VcQUBv2guiXdK29_IE8cV9K9owncFbolspu5l0ElsCiTASYg\
    as-wpHC2gLy4MEM0klMAXgMhH8oKBU2YebIzoD7Q6pOWRXBlxswBTTOOJTVWA3nP\
    UgPKdBo_nuADGbTXpW9K2d8q6ZfhU2Zgco_aazFPmLgc52b_CJal3BCXSz4PbHpJ\
    bDooyxnSOuUKnF7Iov7LAgFoWZ_EhyZpPOQwQUaJGtleIfl4X0nU",
  "tag": "VXv7QrkilaU7tMZx7Y1KGQ",
  "encrypted_key": "jCvGak_aQM_7pjrZe-pS9DAjmeJI2dPvlK2kEvrR2fi1Nnxy\
    EsVVydF3rE286qcr"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-6-KE JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTYtS0UiLCJraWQiOiJhYUdjUnN4aGNWT1VUbTg5TnBEdWhERmgz\
SFpScTNueWY3bmFiam1CRUowIiwiZW5jIjoiQTI1NkdDTSIsImVrIjoiOTNaeTV6US1L\
Z3hicDczVkU2T3FNVDNvWHZ3UmVPRXZqRmV4SXp0ZUI0YWxaRFZoNVl6d1hjNkF2ZXox\
cjY2aDF6dEJWUVM1a3FRIn0.ifuYkJ_pL5swYDfVIHTD-dymgM-PgNE8qeottcXB4Gfo\
lXRVXpLl3MWQODauXXuH.l3wqntOXZoH82ooV.xTRo8Q30t2w-eKkFnswtD5U8ZsqbV-\
Wn0CpcNu2GmpyruYVpXtmIwyhk0_DQRg2-SZlU6X7ObAQpO-DpQw7mmqymDzQO_B44ZG\
51GYELYlhRXFrlTrF-jQO1gB-vVHl4-A_MerfkmZ0CVq-c0uNp7xhKSQu7cWnyZEVjR1\
dilOM744LAYz50diqeoTjVDq4gK6t5G9kisZdZ03h-xDlr9QWgr-bF6IB7ghwghKitIg\
B72mFciIVUypHzJsc73ZkyjBU-8eZq7A-JhcjWgIWVQQKfH-ARjkEMa7G49-eA-r_m9E\
hw57GFI3bWbpYZ2Hea5q88YFH0GcmB9yiJ7X-iefOqcKI8GKGNPGXzjag.QvGIJipHdQ\
xrP41yjQsoZA
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-7-1">
        <name>HPKE-7</name>
        <figure>
          <name>HPKE-7 Private JWK</name>
          <sourcecode type="json"><![CDATA[{
  "kty": "EC",
  "crv": "P-256",
  "x": "z860carZ9CSxTjXo7MK65h_TaZX7ipi2iUh_Bh-VP54",
  "y": "i9X0v8PwcNgbsoMhAz-_W2OPaFU--BQAgWVzJVOfedo",
  "d": "nklFxo0VoD3POieIKD2I_6O4pyuoX1755y_r8My3kL4",
  "alg": "HPKE-7",
  "use": "enc",
  "kid": "YGdLPiZno0vV3kJKu4kEMQEjK3_upFF2D_lFDf1FFwk"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-7 Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTciLCJraWQiOiJZR2RMUGlabm8wdlYza0pL\
    dTRrRU1RRWpLM191cEZGMkRfbEZEZjFGRndrIn0",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "encrypted_key": "BJsgimlSAygpn6mErqMkZcmzVLsX6V9aYArVYAjg2LEi2shW\
    QopeMMr5n4VNH_kCeuqXRd2LtFjQd2eWsXTAcs8",
  "ciphertext": "ny4HVMntsCPyijVFtO41pSpN_jusNGtAaYjD_glEgkQlnMlJuDy\
    iTbL9_IgWjcmaQv-ahcToh6pussscT37Oki95DB56UEK1sgwv23m54UgDFDS3Q2U\
    I48pRzgsONMJdc46-UjqCXvDgbGZfA7Afn-mCGJZo90Tr2QyDMpevwYv4-Zd6ldw\
    2QrF7pUXXOLUP8yh2Y8qZB7JkyUvN5gH8QIgIcC11a-2-YWWSO3JgpJ4R51YESAO\
    J6MbaW2otZU7JY9GW7dKpwd3mym6IxJ4onwSvABkmVaFSqxOEBlStSLirlR0sf1q\
    9HK_gn8HHNjlaNNja2yE3C42ESTWAoH1uapvfMaQJE1ZWG7ru77nMBQJPRxAb-dX\
    TUJa3jeVF"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-7 JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTciLCJraWQiOiJZR2RMUGlabm8wdlYza0pLdTRrRU1RRWpLM191\
cEZGMkRfbEZEZjFGRndrIn0.BL2AEDUZhRslwuzyKdVKVaGwBpFly_SgLlxy2wTg42Vy\
fob2tCdv0SgN6OMR16kilUZ17jafK0Gzw0plYKGm08Y..0-DVK3WNJxSSX4hn0KgFlV4\
vRS4iJLiNCmjl9J4QKCYiOzmdHmWXvB4MS56wOmpVhDbboVIC0wOBxsUlWIXIg6N9DSl\
u-iwlgiqrVj2v61LrX-qjB7MAg0X5DQJSOWg-saAkhf2lEJ4z0meZIdAlY93_vgAUHKo\
HsSp_EciL28JtLrBU18WHv34eHONzWsVYdj-ycaBqLUAkcfYrlNZrVpCR6OdNXkuOmkh\
qrIZjFEl67VZVY5NfbvyFRAkkqgd42wvATdGk2gw_jDZe1fvzGNuV-e5UCrHQ-5Es2rm\
sLe-nfeB_9iUe-2nZswWS2qndvz6ZANF9Kj2QMJXCLN7RRSLLjP58sxoyDZC8nRBdJxs\
JKXc8G5eYFLJ1Bc4w.
]]></artwork>
        </figure>
      </section>
      <section anchor="hpke-7-ke-1">
        <name>HPKE-7-KE</name>
        <figure>
          <name>HPKE-7-KE Private JWK</name>
          <sourcecode type="json"><![CDATA[{
  "kty": "EC",
  "crv": "P-256",
  "x": "1nm4Hz__urAJOmnQoT4-Cddab4mIgwNPFpo_mq__Huk",
  "y": "0zf-qAB9KJP6qgtYNSP6MTdVBxzgBachQ2XdgCsOk8o",
  "d": "8CpCdkAF51G_YJPb29O3LKLBKTibK4FHWO9lYehzLqE",
  "alg": "HPKE-7-KE",
  "use": "enc",
  "kid": "SMa7O1lSKSi2LJCin1PfZRYA7KGKky5oSfaMO9UOYWA"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-7-KE Flattened JWE JSON Serialization</name>
          <sourcecode type="json"><![CDATA[NOTE: '\' line wrapping per RFC 8792

{
  "protected": "eyJhbGciOiJIUEtFLTctS0UiLCJraWQiOiJTTWE3TzFsU0tTaTJM\
    SkNpbjFQZlpSWUE3S0dLa3k1b1NmYU1POVVPWVdBIiwiZW5jIjoiQTI1NkdDTSIs\
    ImVrIjoiQkFyRmpzNzhKekJ0aTM0a2toZ3NCanRHOGFGSWduSDBSclRtczZ2ck00\
    QnVFMUVFajY4RGJBallMenVjWmJnSFpZTk50NjJQOFJTaU5mVWsycjFURFZRIn0",
  "aad": "VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc",
  "iv": "sXE8-PM-BegS6637",
  "ciphertext": "ge8gDn9qTkGUqH53xmrFgSKAqcmduhDJolm9-sm-tQs5HBc2vgC\
    WwCZbeHc3P64tRAYUTqqlAHrgqYaMxT7EIawB_WVr5yAOdMu4zPsysaUikKAG6aZ\
    LywpdEaOGn6TxCdTUczJQ59bza8JxscPGzPdko8z73QUBnuYnr1lUlJWy9pWj29m\
    wVwGJA0T9AvQucNdgb8lQEEcpPiaajGSPYIXV6XeKUQlblUstGl1S6dScULaCw5R\
    AX7gAlHmLDMF0QMG8Hpiehok1bfDOE0gRqhlu1ywc69-X_4ESQFc9v4tph7r6nYB\
    dy9qa-dP_qeVBstgDuvud0kcQH6Xmozg9PTAoS-W7_LA7aIuEmuE",
  "tag": "I7DBYo_2YzG2JC3mWifjFw",
  "encrypted_key": "BcEhfoYFVMDky_AjhhCCAm97yYO-JgiClODO0rLqq0k0lIPu\
    t-RPfaqHKITbK8ng"
}
]]></sourcecode>
        </figure>
        <figure>
          <name>HPKE-7-KE JWE Compact Serialization</name>
          <artwork><![CDATA[NOTE: '\' line wrapping per RFC 8792

eyJhbGciOiJIUEtFLTctS0UiLCJraWQiOiJTTWE3TzFsU0tTaTJMSkNpbjFQZlpSWUE3\
S0dLa3k1b1NmYU1POVVPWVdBIiwiZW5jIjoiQTI1NkdDTSIsImVrIjoiQkNreC1vcWRk\
MG9yNTYydXVJdy1ESzl3WnZRYlZMaWs0a1cxQWNXLXhrbTFNelgxMm5CWTAyc0J5b252\
S3ljTmNRZVp1WXh2dmc3RGEwcEQ5WWdOTDRRIn0.w3y9z4g5rGR6jFE0-4fnEzw8ggQB\
-1ECteJLFkG9VOMsD7vUzwjUQocHQpza_rn8._ZHPJxfrMRpRsti3.4-7hvn-TE54CZm\
2h71DE4B-4m7-162t1GVG8fLfYpotwL5Cit4bO4EcTTZshXpFoltYHiyXnkUhTtv6h1y\
J691-ZMM8tdYXbNe9W_aYs6yeK8s-taWVZo7Lcbo7foXNRHk2h-Rg8l_JBzDoMojW8pV\
5SHUekKw4jcc88XRyhIRiL1yoQ_nIOrlY2mkvUCcmYaq2JKTwXFp01kM9eWBA_kYj0Td\
VAKnKEsizphFrSiXipoLDSDx0nFq6JiiXnBoqase2U9_zqb1i_76PX7oSUuf_oBJL3PF\
92qNb1rWjhGij7lpff4eA6BuyW2NX2baxB5qAZB4KZlFT6w2_LXzytVVEdogi7zmfgmS\
R4C-Y.Bdp4d-yiZdsAul1rM2jmAA
]]></artwork>
        </figure>
        <!-- end:test-vectors -->

</section>
    </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
Richard Barnes,
Mike Bishop,
Brian Campbell,
Matt Chanda,
Deb Cooley,
David Dong,
Christopher Inacio,
Paul Kyzivat,
Ilari Liusvaara,
Neil Madden,
Aaron Parecki,
Filip Skokan,
Sebastian Stenzel,
�ric Vyncke,
and
Peter Yee
for their contributions to the specification.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>-21</t>
      <ul spacing="normal">
        <li>
          <t>Addressed review comments by Mike Bishop and Christopher Inacio.</t>
        </li>
      </ul>
      <t>-20</t>
      <ul spacing="normal">
        <li>
          <t>Added a complete set of test vectors.</t>
        </li>
        <li>
          <t>Cleaned up presentation of tables and examples.</t>
        </li>
        <li>
          <t>Corrected text referring to the IANA "JSON Web Signature and Encryption Header Parameters" registry.</t>
        </li>
        <li>
          <t>Corrected text referring to the "aad" JWE parameter.</t>
        </li>
      </ul>
      <t>-19</t>
      <ul spacing="normal">
        <li>
          <t>Applied editorial improvements suggested by Peter Yee.</t>
        </li>
      </ul>
      <t>-18</t>
      <ul spacing="normal">
        <li>
          <t>Rewrote Key Management guidance in Security Considerations section.</t>
        </li>
      </ul>
      <t>-17</t>
      <ul spacing="normal">
        <li>
          <t>Clarified in Section 3 that only Integrated Encryption is newly
defined; other Key Management Modes are from <xref target="RFC7516"/>.</t>
        </li>
        <li>
          <t>Added explanation that Integrated Encryption corresponds to the
Single-Shot API in <xref section="6.1" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>.</t>
        </li>
        <li>
          <t>Renamed "Flattened JWE JSON Serialization Example" to
"JWE JSON Serialization Example".</t>
        </li>
        <li>
          <t>Added note explaining HPKE-7/HPKE-7-KE pairing rationale.</t>
        </li>
        <li>
          <t>Added qualifying clause to step 9 of Message Encryption and
step 13 of Message Decryption regarding multiple recipients.</t>
        </li>
        <li>
          <t>Updated authentication wording in Security Considerations to use
HPKE spec terminology "proof of sender origin".</t>
        </li>
        <li>
          <t>Replaced RFC4086 with <xref target="RFC8937"/>.</t>
        </li>
        <li>
          <t>Upgraded <bcp14>SHOULD NOT</bcp14> to <bcp14>MUST NOT</bcp14> for key reuse across Key
Encryption and Integrated Encryption modes.</t>
        </li>
        <li>
          <t>Added RFC Editor note regarding draft-ietf-oauth-8725bis.</t>
        </li>
        <li>
          <t>Updated Algorithm Analysis field in IANA registrations to point
to specific sections of <xref target="I-D.ietf-hpke-hpke"/>.</t>
        </li>
        <li>
          <t>Moved IANA.JOSE and IANA.HPKE to informative references.</t>
        </li>
      </ul>
      <t>-16</t>
      <ul spacing="normal">
        <li>
          <t>Change uses of Key Establishment Mode to Key Management Mode to align with JWE terminology.</t>
        </li>
      </ul>
      <t>-15</t>
      <ul spacing="normal">
        <li>
          <t>Defined the Integrated Encryption Key Establishment Mode
and updated JWE to enable its use.</t>
        </li>
        <li>
          <t>Specified distinct algorithms for use with Key Encryption and Integrated Encryption
so that they are fully-specified.</t>
        </li>
        <li>
          <t>Updated the Message Encryption and Message Decryption procedures from JWE.</t>
        </li>
        <li>
          <t>Said that JWS and JWE objects can no longer be distinguished by the presence of
an "enc" header parameter.</t>
        </li>
        <li>
          <t>Many editorial improvements.</t>
        </li>
      </ul>
      <t>-14</t>
      <ul spacing="normal">
        <li>
          <t>Added HPKE-7.</t>
        </li>
        <li>
          <t>Update to Recipient_structure.</t>
        </li>
        <li>
          <t>Removed text related to apu and apv.</t>
        </li>
        <li>
          <t>Updated description of mutually known private information.</t>
        </li>
      </ul>
      <t>-13</t>
      <ul spacing="normal">
        <li>
          <t>Removed orphan text about AKP kty field</t>
        </li>
        <li>
          <t>Fixed bug in "include-fold" syntax</t>
        </li>
        <li>
          <t>Switched reference from RFC 9180 to
draft-ietf-hpke-hpke</t>
        </li>
        <li>
          <t>Editorial improvements to abstract and
introduction.</t>
        </li>
        <li>
          <t>Removed Section 8.2 "Static Asymmetric
Authentication in HPKE"</t>
        </li>
      </ul>
      <t>-12</t>
      <ul spacing="normal">
        <li>
          <t>Added the Recipient_structure</t>
        </li>
      </ul>
      <t>-11</t>
      <ul spacing="normal">
        <li>
          <t>Fix too long lines</t>
        </li>
      </ul>
      <t>-10</t>
      <ul spacing="normal">
        <li>
          <t>Addressed WGLC review comments by Neil Madden and Sebastian Stenzel.</t>
        </li>
      </ul>
      <t>-09</t>
      <ul spacing="normal">
        <li>
          <t>Corrected examples.</t>
        </li>
      </ul>
      <t>-08</t>
      <ul spacing="normal">
        <li>
          <t>Use "enc":"int" for integrated encryption.</t>
        </li>
        <li>
          <t>Described reasons for excluding authenticated HPKE.</t>
        </li>
        <li>
          <t>Stated that mutually known private information <bcp14>MAY</bcp14> be used as the HPKE info value.</t>
        </li>
      </ul>
      <t>-07</t>
      <ul spacing="normal">
        <li>
          <t>Clarifications</t>
        </li>
      </ul>
      <t>-06</t>
      <ul spacing="normal">
        <li>
          <t>Remove auth mode and auth_kid from the specification.</t>
        </li>
        <li>
          <t>HPKE AAD for JOSE HPKE Key Encryption is now empty.</t>
        </li>
      </ul>
      <t>-05</t>
      <ul spacing="normal">
        <li>
          <t>Removed incorrect text about HPKE algorithm names.</t>
        </li>
        <li>
          <t>Fixed #21: Comply with NIST SP 800-227 Recommendations for Key-Encapsulation Mechanisms.</t>
        </li>
        <li>
          <t>Fixed #19: Binding the Application Context.</t>
        </li>
        <li>
          <t>Fixed #18: Use of apu and apv in Recipient context.</t>
        </li>
        <li>
          <t>Added new Section 7.1 (Authentication using an Asymmetric Key).</t>
        </li>
        <li>
          <t>Updated Section 7.2 (Key Management) to prevent cross-protocol attacks.</t>
        </li>
        <li>
          <t>Updated HPKE Setup info parameter to be empty.</t>
        </li>
        <li>
          <t>Added details on HPKE AEAD AAD, compression and decryption for HPKE Integrated Encryption.</t>
        </li>
      </ul>
      <t>-04</t>
      <ul spacing="normal">
        <li>
          <t>Fixed #8: Use short algorithm identifiers, per the JOSE naming conventions.</t>
        </li>
      </ul>
      <t>-03</t>
      <ul spacing="normal">
        <li>
          <t>Added new section 7.1 to discuss Key Management.</t>
        </li>
        <li>
          <t>HPKE Setup info parameter is updated to carry JOSE context-specific data for both modes.</t>
        </li>
      </ul>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>Fixed #4: HPKE Integrated Encryption "enc: dir".</t>
        </li>
        <li>
          <t>Updated text on the use of HPKE Setup info parameter.</t>
        </li>
        <li>
          <t>Added Examples in Sections 5.1, 5.2 and 6.1.</t>
        </li>
        <li>
          <t>Use of registered HPKE  "alg" value in the recipient unprotected header for Key Encryption.</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Apply feedback from call for adoption.</t>
        </li>
        <li>
          <t>Provide examples of auth and psk modes for JSON and Compact Serializations</t>
        </li>
        <li>
          <t>Simplify description of HPKE modes</t>
        </li>
        <li>
          <t>Adjust IANA registration requests</t>
        </li>
        <li>
          <t>Remove HPKE Mode from named algorithms</t>
        </li>
        <li>
          <t>Fix AEAD named algorithms</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Created initial working group version from draft-rha-jose-hpke-encrypt-07</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
aeAg1ZTB8XIDEbCPwI3A0AW76rx90B6pcp24BhRLRBrJvoPplni0znIRdZ5r
DRCQLn7SFmzUaB9obgAuHtVNHh/X23b0ZFi928eLlwKbEMb5RTwcLFEfr8HI
m6aWnQxc8PSOIO0L05Ijeo2sI2spTEohyg8eFcJ+3wvzkT4+8shWLbM5EkrP
zDnD5bDg6ze4XVO8DcKyoVjxZ1+Ugf2FXtj7ZyFuxaXVKkjAK44J2lZoZqjZ
Umzs5KzeZJvB9bufVebE8eCw4YqgAWnd6pbfE+LeZpd2JZpmm1uKhd7Mmjsb
ECoEpS/b4GmN6n4OXHm19t5jCYpo8JPm2fLkOxzttb1lVrXr1TavsOBFh2o4
aXNMZvJ098e86Spo6GR//MGldy98PwkzczpVdOdupEVzP6RLTXvAoeiLNMab
yxpubSlGBJX4FHMrsW6FhVg7qnxWk0rzqJrzrNAcq5C5P6v8bVR90HwEG+3h
+JFxZDKoMnOdq0UiT70r3j0j4zb8pkazdWOdNSRhK++RG8OfjsKCusmllS0c
syPNou5QNhdufIaI64k9RjZxJrqljbiwq8d+RmuArUe6MEnDy4LxsPQCDWXS
unc2GahqmXQzOReO3ZmyIC8JT1vH4BrWq47uUvVjXCjTVFXRtB0Sbi9WdjnH
VHdtZ5LhQ9PtHeIMxccb5qe5BflZ1F2DYOMujZRFKBReaTGoYYp2jQ25hEIv
hkzXrY/WUGfr3HL4qbvjEplxneNf2Xz1d8rUFs0KRH6H/CmtERdof/vwru3e
cW2oijqw8En2H7gHnvmfPbxb0nc+qK6BJl/xvhz85NAbBEOWTSKeoPhyr89Q
xd4HHUoLUGkfKzva9hpz8MBCu3OKfuaFsb/MC//XlaBqKkFi2phlgJIP50W0
s61dWZAJc4rNKHdH8GGrsS+669/0xkYMtwd86wR4ziPQOb9T7BqLwbxUKg7y
3e4RlR4UMBwWs6Jj2TIYwNzrrfIinb1KvPYSOi4ek9qnnZAP8dpk8uGSKezx
lnTTFLkUwu+BcnXb7aUalh1NZYLZdWfhcw0vt3ZSXb8TjlDX2Z8fpt4dtV0/
QsshOVdcOy4Tg1pHf7yF9sFpAbqPlBnim34dZs/u3ak5LWteAVdG0zPoYPi1
hbm4GpJarx6YXlvwprmtDbNp6pVCEJ9HQd5jJa/OdZcbanPgDqWmghl1uNtC
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
6J09o0aRtcE0D8lrIPadep4zCO/nzu95CZpneMdfnqeu7xsa1v/MNC+98qqe
/usIz92DxGv3fV8X+63PQ9q7Z029Fc2u8u7JeyzHOdtB/hx7j+q33L5uPz5v
15PlKQnfzske9KDdK+KVwWwu4qCNkrdiR0sSzUMxrfs627GIvxwVvw+dRF9S
fwDxT68A79hMn4t5v+u1d/hZLHs+2nrdMzcl2X578pvo7LXZJku97nwdJ2mx
p+j/feumZ6b/YVFyFz+TtMf3S7nqHI2jIPYs0a8wSB59vd/xGvg18Y/njJ4h
H/uujb/ieZ/d2GNeJwcj76Y38nJ67uLvf/+6D+wz+ETKtwbx7A3fGsQzju2e
mfjtl98TAW/sO8B+2ed9KpTfuer7ztpnml7bK9onON776v/zvb32QfFCzXt+
gjr5fu9t3kdO1+erUR3s1uS56R0V/Rvx3JS81+Ee5I8BeraCt/dLQPjjNUzy
7Zodw3v7ew7azPVU7Mvdf7Xr4eKJvOfkVh+/Ah/Me4Db6WvvXbr3u/4Ftvbl
7avcV/Dc3qvV7LUxNEXb1V22vnzMvqb9v72Mn6W1Iz8r2l/eM7GHKNpn3dGB
AEfsbSmm/B0sRwLG39Nl9TsmnpExhOe/QXhTVPM5p2wZ5uvvz963K8Z9P89g
BdHQjeMTjvuKfhukn+CreUL1e/z3ud/YV4G+p/F75OIhSKfDC1HdM0yHIw6h
YfGb8JF1tu9vyps3ck/rOu4Fs1dZ/SqzVwv60ky+x67vinba1/rM8pc2/bVc
x2fU/v73n+FY3jtH/Br1s6ga7PsWnz+9ErGPV7R7bJp9qnvy3ql2if3c6t4E
sFcT2Cluh8kettdMzxJmx2d/3Zv5typ+DvSD4n7+egdq1r7n7FkaH7L+mgN9
zsG8t4n3HvzD+P942j0iz/3MX+L6Gr/btcWz+78Ve7fcV/0MgvEes/2SeI9r
0e56Jfiag/GFjScqXmt8TfSfQMSzmLr3jrSven3vYnNdr4fx62QfU/7c2Y+r
8keFuFfDDvideMb3zrhv7LWNoIjfpxQd43Xvc8ddWO5IGN+iXQi03Vu9C4+9
gMLky173zj/m73TxXMQ7U+5E0KWv6L2/o/GWvzPaBz76j2cy15/Q0Ct1yHey
fm9a3zf8TIP+tXVcdyjP0ZNH38u5eUHyCzXW7+HZcdLPry0F/f1j4Payi4ai
/0rszTztrW+nnqdMfAbq/W2TbyD+Ql/wpw8zdUO/Y/h9wiDs5p0Mzpe3am9S
r6rbr+SKxzNC86uF/bLjo57j5PBUr7+8jeuuKx7P6O/4iPKXvPlSJe/JefYC
AjwC7/3/Q/1/q8T9ZvbHbP7cd/is9CciXx16r/Ohi+cvTPx9E19p6/gZevvF
eCqd6I0c111h7Uou2m8kf9uT9408k/LLMxrQ90Q9IfCDxDyveom4PRL7ot5R
tKvjXQY/XwJ+q+8cXqJ/JPI+SNdXKv9JoD5zA7xUzneJ9F2f7a+9JIy11+IL
lX/bUzH98qrP4nsNJt/K5/OrdTzxEb7SEozPdvi8PHk8U/jsxx+o6gtOX5U0
fanKvZZ+H1JvMuk9C2p+bj4YX0F8tc/nNW/3oJ5fAgz4KJre0/CMHoB9B+Nr
OS8yecf6/tO12ov6BaQfiPD/eJ+HJJnXtl4d/PWbf2hTT8nVLW9J00+vtgqg
HwtgB/R7uD/WwGuYb13w7al2XiT1Xgv/DQL/9vJ2e1xefVE57UxqXN6OAHCA
IPwJolfm4y8k9VzevqjDvqigH+f6S+CS3VG1xdh8HBok/rZbgfaVnueeX4r3
C2x32fBc48erj397IWIv/g8t4onvbzh++Zkvd33RVjsyv1YMvgu9//4P1TGP
L2y0H0roufr/8bHzfL8fevvvvyW3//Hi5L0CXpM/tcTh+UZsF3X1264Wg6j6
Dd+/Qm0k025UXoj51mWfw+y4+pK2r4uPkyko6p1t2y/ZZ/f07xD49eWInjX4
lTri75TxjP/r6h+y1QsTyKfvUf0S1N2PDR+48G1XbHuQ9rY4jL++9cnLL76j
bsfHS2127XPTz5S/xoQ//Sbm44eY73vbGSia34XWh+h9g/UPQ7JD+Suf7yNE
wTCs7yv4kuTDNwG0XxS89h12X4rqfU3Qh30if/sXUXl1mb/tqxx++Q1XP4vk
ZTdeJf9E3k+X+z1rXwT++MErjW/oZ/DX/Q/ola3dcXz+0t72Id813tNKv4/+
/rnDezd5jvGc/Zv6fpvbb+/0f+XqLxX3j1kGv5rInd6SJA53ML63l2hvcq+b
grj71j4vOxftSf/WhV9l9uxRzwX3Y/Ue1vfm8zQ1L+/+o7d8xmdX3bntaUv+
kbRf+3sN9IpWOe8+/p907v7Dbd6d7fi9Wb7ue+nI1wbeDdl34faFrl7l8U+v
7ZF4sRa908L06oHF9KTf3atUTyBnQ7cn874D/VU9z/HfqXvIg0P59c2iwxey
efb2/wuCQc4MtCwBAA==

-->

</rfc>
