<?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-20" category="std" consensus="true" submissionType="IETF" updates="7516" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.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-20"/>
    <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="June" day="15"/>
    <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 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>HPKE relies on a source of randomness being available on the device.
In Key Agreement with Key Wrapping mode, the CEK has to be randomly generated.
The guidance on randomness in <xref target="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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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"/> 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"/>).</t>
        </li>
        <li>
          <t>Replaces the Message Decryption procedure (<xref target="decryption"/>).</t>
        </li>
        <li>
          <t>Updates the methods for distinguishing between JWS and JWE objects
(<xref target="distinguishing"/>).</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="7" month="April" 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-25"/>
        </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 1010?>

<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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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 toc="exclude" 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,
Brian Campbell,
Matt Chanda,
Deb Cooley,
David Dong,
Ilari Liusvaara,
Neil Madden,
Aaron Parecki,
Filip Skokan,
Sebastian Stenzel,
and
Peter Yee
for their contributions to the specification.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <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:
H4sIAAAAAAAAA+y96bbiyJIu+J+n4O78UZHVwU4k5jhVdUuABGIQoBFRXYur
CUloRAMg8mQ9Sz9LP1m7awCxN+yIOBl5TnWt3CtXBgjJ3N3M3Owzc3NXrVar
RGZka1+qL1yoVb1ddZzIgalWl7Fsm0p1qiVV3FWCxI9Mz61+Gi+n+M/VkxkZ
1QmzoKqCJt/9PhHwn18qkiwH2rFEEzxVNd0q+PWlokiRpntB8qUaRmol9lXw
PfxS7bSQdqWieoorOaA7aiDtopqpRbva3gu1muFbWk3LWqqh9UoYy44ZhqDR
KPHB/STOEhU3dmQt+FKBJL9UFM8NNTeMAfEoiLUK6FCjIgWaBDrGaEocmFHy
Ujl5gaUHXuyDq5MFAzpoaQm4qH6pVGsfciP9HYwM/vuAGell4fbrQt5rSlRl
TN01Xb0querbm0HrtzYrlaPmxmAY1WrRPciIF/A9G/GLAHoOKY3gz/C6I5l2
ftu/Q869eoEOr0uBYoDrRhT54ZdffoG3wUvmUXstbvsFXvhFDrxTqP0CCfwC
H9SBnGMZPJrK4aSnovjlI9HAp2wo0KjUYPnp14zmq+l9SOfDH1+NyLFfKpUw
AkzcSrbnAnYkWljxzS/V/4g85XM19IIo0HYh+JQ4+YcoMJXoc1XxHEdzI3AF
KJsj+T7g4X9WKlIcGV4AhQ6GUK3uYtvONJE1g9iRbC08SUGV1lQ1SW8ATJNc
8yJB6X2pUp5lSul1BWjVl2pfcnXQsUBLrwWant41lQJXiiQrv9OL3QjOA9JV
84e1XISW56qRGfy7Dr+/gh6D0b7r2FhyXS2ssqFieDvNNfUH/eJcIOUgBH2C
8zAytGo/dlUwFs0IqvPYNRUjfaqYseD+/qk6fy0NhdJi2QTTSr8bSl86SoH5
ZiAjLXAkN8kvqqCP3Var0ykPzUg7/RpdOw3GeH51tejBADEwQwMJ8lIL9pr2
DWyfAb7ByVTuFBhSpKnVKRCz6jl3bJbSBl7lvIF/dyG5e3abLjAfi9cqE2ma
nXUh69wiMLXy1fuOsYGkaoDz5i5Ry0164Kl/9wKkASbAw24yEZw9983PX6sT
oONhqfU5EJyk2dV++af7LjCavauRYRgDqgNgCmM7Aiwod8bJiGzl7R7S+HfD
iwp9S28DFhIILJ/EISRnpuReTXfn/fJh910PaEIEdA/aL5oYoAjSyz92kU4T
fiRrw9T8ZFMb/i+/AXqC28dO8VgHbRUf0daVWK8BbqjADt032O300BuR1u1j
N//Y67bvu6EUZgbQA5cxCnuF1v1LOs7q1Tzkf4DXX9Kbsiu5E/0G55nfLwW6
Ft24ezqdXk3JlTJbDPya7qZG6hfYoWt/oIf4rv5c3RL0OlIUB9obv1PFbOCL
gUl2wu/sGLTKsGMUybCvzPK1W6/XWm0saHzUQSrVTckGJi8EXYyjFB4w0I5L
gRqmnWM1xXA929OTu6HQWma41ZREFci7upTMoCaYAGMATtdw4A4A20MD9q/K
KIbmAOvIhdBFDs1QCTTQ2szTpXS41QHkgKcHkm8kn9NRVBlfU0zQuUx8WTv5
sEDzRxOiDQAhHvLJPdp+LIevrhlGr7p3/AV+gFd+yamWiIa/vGPaq6/uMsIp
dqlifmDaVbSOdCuVGgBp6f+BlQZOTFKArWQNM6yGkPKu6Kmq7UzoDwzvVI28
agzY8q1YrvIUy71WUuymuYC1gLafUQIIqardsAsQoRTI0JQGSS00L8AO+LZk
upF2jkLYFwm4DcX0TSCYfyoT+ZwK3A+8owl8UjXMQVlF0sHTYVSVVMmHc7oK
nAWAcsDI+4YWQLJVKYokxQpfH3EC3A1uB9p0vV4FcDHUosIHpmPaaemECAtm
ZaBWwF8fcjfHqdBypFA1Yw98NuNNSsLbVUgwaqBU0BaWeCnBzkD+z8FU0rVU
Q+fAQb5mcnVMVQVupPITmBdR4KmxkvK18i3y+/XX94b0t9+qJmzxsbg+pc+F
6QQB7JCimwRud1W/LtTKY6E+FEmhQE8VDYwjN/2g84C6Db0nYFUqq88VwAdX
hzM5jH0fYLt0/ueqeeMyUKYpPk97B2h+rsALUN6+BwyXbNo5DIoj8PECqe3i
1CamhKSrJXyFkqC8qDBWwHsCLJ7OXKgbWspQGCKE1Zc5x7Avn7N/q9Qi/Uzj
K46k8SH8zIyx2ez6oZLfwYwX3Gx4+3R7crCYz3FqmD0MrlbvLlVe5pj4kk2b
l8WSJRcUNnuBoVUEeQ4AbZzqFohyIBNkrQoFFvjQ9qlACytAyEoA0JwKn+kP
lv/v/4M0Aev/V+6iAe+zL9BJgy8nQ3Oz1jzXTvKvgKNgivq+BvAwoCLZdlWR
fDOSbICpgaaHwAK5VTBRoXr/839Azvznl+q/yIqPNP8tvwAHfHex4NndxZRn
76+8ezhj4oNLD5q5cvPu+htO3/cXE+++F3wvXfyX/20D21utId3//W8VqD0s
QMJm5sWqv/4U3b799ti6QHMFNXXn2bZ3SuPDFJGbmcNIRQCphACc1KBCRlDM
pUkEjcOnAT79+XN1rAHsCb1jAKAieCgTIMQO+U+fYUwY5g4j1YTS5HutfBz1
5nbn8zsKj8wQJOZbNLRG6Ty82aPcEl9NyLfTC0v0AvMITO3vJJiPT/IBRM7E
MQcQBCDp0Kl+AvYEjNUH/PyYwFBL+wKfJmJXyTg1HRJffRgDOAkaF+Wtz0j9
ERaGHkAP8KchiByrnzAcG/78F+AqtWeWHwr7jTwxVTVzW3bfXE7zu0l+hD/u
1bhQ2gfOrwJgThVoqOGpUHqqlk0T+BQwNIBMAFzYR6pePUp2rEFlAPMHhlmg
n5+r5g5E/58BCeDYwF35TZmTh3EtLinGzdinj6bexJHSbApoF3jyojP59Evn
Jww0r4DioTOvProMvKrj214CmpGTzE7fM05KswT3s+xzfkUIsgQF/D40A5hA
gpcxPdDSFor7rhcytXny6D19wC0YWDwCLHAoi13Gi8+Z7X8MbMzbHMsHV2JS
Ory/5NMSRJapaJ2UJdBBPbY/WcfSG0xXsWMV3AF9CXBmigRB1gMOBhqAJkqm
e+D5uRaGEDrg99CguDzUrpcB8FE0FaJA8BjQwTIISZ2qZgZVOF2AAwXA5jG6
S/X4geAhhZMBYuzMVhXgKeVZKg/7CstS7YWS8+IovTtDk1/RfyildCJCnoJQ
PADj8D1XTQEQpMIAhttajQGBfRVbkiWOgyd//ZXRMjvVfkVgY4+m/ud8BPkc
y55UJDgdTqlUgI5dw5piNJnCAPSdNg+meMb3CGY8noUCr6WRQOzqA9EA8w6t
O0QdcDhQI6CctLOU8s5zS+Y+lbDrASvmS1BAgB0Z48r4sJj0gAhoI9AOMZCD
+pqBupQ5ZoF9H8lTkr2jdqdsaR+yxPYbA/lTdQEA7NHUTsD/e/nHx86/bDjj
dwnz1DZFJ++haQGG9Z/fWo50Xv/zs3ldIaOi+bzJxxP74fgBi2H+LwS2MZtr
N52DUxv29mZYQUABJg5oBtwLxyB7wDCls/8VxuMRmN3R/SNhpWwW4DNvoAfs
wOMpGHpZJAOxaWo7YBYxuY5UTdFAIXBoqlJpwRxQ5s40EG0ewXTw8s5CUHvr
V9lUvQfaefSUTo5ff4W571pOKqUt5Or72ESEjwf0OVeBfNqB+VyYjEoxye6M
Sobx4KUX8PsLsJgpBvQLDFgtQHcWE2R29WGkVgS60bsp8QH1dOSFOWm+Iq8o
fOAuoMuZn4nJjGA/PMeM4LDTCX5jQ+Xev0AGfAMb3/rPt/wrs+1jo0rmQoa6
+vnDUefUpfCmaA+tAVvkHCB6K1ukXQEVc+MKqAKQBhQXaGi6tJT6inyu7ALP
SbsD6aeUbpPtrv20u6m3yibdI8vxuXJNhOTpgRL+dd7iX3iLekO4u3uEm8bZ
0h2w1N7gWOmGQNUbjn3EikoWnQMaquZraeR5HfQ9agMjTPufpwTC1EqmBqbw
Wpk5KUW8bJqqQTJX/xiRF9K/mxWfM0a+QOpbGbi/lywET7/7ofWSNpV3BGjw
1d49Yv3rTZdfwLNbU32sWyBqD9NA5iqpwjve2v1LxYOe8WSG2tP70v4CZkEO
3vEK4F2AFQAvQiBayc5XDjKnUrB84Dm+BJcty7fcM/U28xsZkLhqfuGLCmJp
9ucbKd1bEND9gRZEUuETi9wdZHuKNq68h3Ruab+7gb1WCCAXAB8AHs/Z9cEQ
PUDeBcApp5wG3tfZByZfFlcoMDd0xfZAopIExOlocCH6M3jCgcsuoLkbUgkz
rtSqsQs8RwQGnCLce/nDHNQb56dILjSaqaXI5tR9VyqpGY3DPIh5wvDXSgYK
S8jpTTspbdd7O86sde0MtRJGW6b7MQMhBvqpFFfDxSENJuFDAIi00uVamF3+
rVLkmkuPZL+Vw4w7NWk9w62Fw8jY8cTFFv3HCxCesiL3dKFXZlIlzzg86+F9
e28RmQZDzjLufddqQf8aDzzCr9eMObwzEwvo7DvT8aJZLwU9OPfbzTiwIR0v
RWnlHPjjkfz0BGR9laWZ7mSrZkDB2TRF80bFUyACBwfnMlCqF2DUX4ogPcUG
YRoCZh18a/WfNv2at/cN8Ce3q9foCfxXxJbfGkCU4qEbVnh9NuSSaAp7P8fE
u65kTz4U5eO+pw8A45f+mE7MB0FRQfe9kheP5Tr3VgneJ8++Ycbd2iIhaLyZ
Uj5Fw1kWEhqVG1KAv7KSft8dx4dpesBAYHsBaATd08rEoU26Z1/1Gy1fRiNL
9kvqW+0A9OASUR46v3ycMyspxZVMocV3WIyJNL+KtDLEcXvqxq881Nt5pf4A
zkvAb1zj+Ecs+Qss+ImjOIWLlgtT7kU69LoaDhGaBBVZ0QDylWwQJV3RVSrV
d+uQv/0GF6hz9uYaDsI9wK0w60op3k99Qh5LQESvxnCR5g1WLEtucFu+y81T
aUHvim7frOo8SlZflTFDCU8cwE9P7FhpzTtXmrTJX38C+LsGpnj4W5YQuCUx
76PU8kNvA9ZiIfH5OuCTEAYYzL/mtrD614w2gN7V93/Fj0Oi9C2NBoobAKFa
+lctPjz6u//xwa0pIUi9Vge/DsegO5+WNbTVBrEpaL3GjDHw5ee0D7fv4BuG
MzUE7dZGg/mtRykhpESo0W3eCIEvd4TA95wQIPmAEFoi1EKRG6EWgt4RAt8/
JNS4ElqjrRbSezO2bx9a8/sIDQwJ/IfWl56dII1660aodSPUbHbfjuw7htb+
PkLPe9T5fvG/6dGvX6o/ZVM9jM1IqxUTLavt+NeXxxMSzqeH0+gln6DFLPkM
Z0OGjNKJkJrhLDbICweuxgVWyGTPZYmsAGaCrrU+eebuTZlnGfY8dy+fb8vh
4UMYeANHBZgGQTHMHtieq4cmsKFpKFcKFCqftFf9FeJUMIic5gs+GI5rOPN/
YUAPp8JLFTDphWaw2gLDU/G8gHgc3Klo7zJI354BeY5lHyC8zGg9RlxwkB8g
uXvaz1HQ34yaShgBakcBO++QcS1FxoBFzxHxU+DwLY76I0cP8ww3zHGF9CkA
oQs92AI1jRUY777cFls04JruKN/WFx6gGSDW4uYPw5Cv+mX8x/jlB2MD/jd4
fzWf6Y+ZUSTf3vHuAauz6NjXAgiNPtLryrUYJg0AIFYpwakC9L8FOSycXiEc
hpIFwy6IklOdS5N6HmhYygpQYOINiv06bjOsFhoII6KqbLoSMEtZm1nu8Bq7
wZWRMAcmME/zX//1X5VHvPzXKsYMSPJTWtFey+yd4kcvwBH99VqRd//XF1n8
E3BdH9yS0czjou0Nom3BvP59lG+SBwwPpC1keTo4aIkCLc1IPRkRXHzbmWfA
vfSGtMwbcipbfUgKo10Is4juC1bBEpVbDyGxPACEGbwEgOlP9TNB/HxLw2u2
6QCwC/C9rYavt449YcuXKlmsg4S3jjxfl0r18LZqmDrgW1Lgw9Xwa668WiWB
ScpmRDmyymLjT49a/vm9Fc2SStVqkei51Y9cI+eUCbfqMWhOHk2a3Ahdk82w
9EyNbQ2akGyo2dwJr2s4z5JAshe7akEv1OwszP6IpT9Avo+UExByCzufKVzu
W9LSnVvo+IAdcANHMcxyNJVHUmHB8LcmBoRlf0S49ybYy9IZpuvH0U0XUpXa
wezIx0PLstbZatjnjFKmIl+P7yuUF+UJoMeh0zUfm9UAPPMJtyqBDKgtr8mY
vCzqmoWA6yflIoOc7Vcvn+p/sZIgp6nyrDbklqQtNPHmLlP39ti/4Vne+SOH
VvIDuRd4u7T066+PnGSWaC9B1IzrGQ6uPDFNwEm8QBAJcPrL54dKDu+AcBLM
zBTk5By6xcXpBCpkmLujNwb6/z7vdnkr8ONLZtVZo1yvAEkZ2hmIRzEdoFmB
loO2Qqly0k2puWs1mi1UbXZb9aYMPtU7aLvRqXeau10TaSANFESOnWajqe52
RUtmeF8nVCCGtIsvcJwvJav3rTDhtZICmTc/P8ssAPjzoxILb5fEvymjUP1x
SYUfmVeogVZ+VGrhntbvyy7c0/p9CYYyrd+bY/huWh+kGe5o/c5Mw3fT+iDZ
8DfpxFfyDfn0+3q64X5y/bF5hspP0DmpsVLsBk03aTm5WQgrlTyaCkE4hVQ/
vS9q+zl9CsZan96Xtv38ppwtLa3JS5eui5U3QxTmbX2u5CvnqpoVx4Upg4IY
Fu9nduj56s9zW5RFfQ/q8tKlwCInnnG7KBcrp9izntyHP1lo5AXQqV9Rvean
d6XrtnCjLVzAdyFGKRetVbJiMsgR18vLDEBrEKHLWnTS8sX5FARlQZwXR+nn
cjtgTMhrFbA8qxTVnhan3Jd/andwv1oCnmU6T4B+qnHZ5sxPxdrVHUnoxyFL
CjiT3po5gU83sJ9efVsmfqugzrcKppthfs5GmSaE7qpKHxSswk1eX6tGTcPd
nCHZM7rmaumCm1QNAK/BBHpbtZsqXrqDByKNKGN/xjzXhnoBF71OcI+NHYBB
JVeSmeuUYA7oaHpxaGdbynJ10tRytfi1WBMqyueqDZMnEI3mqBU2kVcZVx/2
J5MKkxZR5xsTf/sN3pnvk3Rhii/ICyWBOPM+prMrG3ZmTjI6bJa0yYCzIR0h
d2zN1QE3QaMAI0VZwVu+Jzeva0tLBb8SY76WBPqoovgbZJjtTC3J8YrJYcwi
XR+8V3TQY5gbiSPtfcImfQYAWD9b5c548LyL73Qok1bGslxgz0l+t4Y+IAce
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
1SSah3xa93U2Yx5/PcN+HzqJvkbsAOK/vBy8Y+j2XMz7XS/b4SdK93g01fp2
aqYk3W9PfuOdPSmaZKnWnSjj5JbvIfp/39rd7uGfFyW38TNIu3+/5onO0TgK
Ys/c+AaD5NFV+x2vgV8Tfz5n9HT52LVN/A2G++zG7vMqORhZO72Rl9PTin/8
45sd2BfwiZTvmflMyu+Z+fRjs0cmfvv199j3jX0H2K/7vM/W4Heu+mFZ8wzT
y7y8eYLjvaD9Pz/qWhfkL9S8xyeokh/39vM+8m19fhpVwa4JnkbvqOjeiKdR
cjKOu5M/OuiZwW/vl4Dwx2uY5Ps1O4b3uvMctJ6rKd+Xu/9qb0TzJ/Kek1td
/HJ8MO8ObqZvRW9p3+/6N9jal7evcl/B07xXhdhzY6jzpq3adH0JiH1N+397
Gj9Ta0d+mje/vkdid1G0z7qjAwGO2NuST9k7WI4EjL+Hy+p2TDw9YwjPf1bw
pqjmc07ZMszX358la2/VdnuezgqioR3HJxz3Ff3WST/BV/2E6g//73O/sa8E
fQ/jD8/FQ3CbDi9EtU83HY44hIb5b9xHVulu35TVb+Qe1nXcE2bPsuqVZq8S
9LWY/PBd1+bNtK/1GeWv1fVbuo5Pr/3jHz/DsbxXjvg16hdRNdh3E58/vQKx
j5c3u2/qfap78l6p9t72aepeBLBXEdiJZofJ7rbXTM8UZsdnfc3H7HsWPwf6
JLmfv96BmjbvMXumxoeov+ZAn3Mw72XivQZ/6v/Pp9098rRn/urX1/jtTurP
6v+W79VyX/XTCca7z/ZL4t2vebM3CsG3GIwvbDxR8Vrja6L/BiKeydS+V6R9
1et7FZuraj2M3yb7GPKnZZ9n5WeJuGfDDvideMb3yrgb9jIjyOP3KUXHeN37
tLgNix0J41u0E3bTvlU7/e8JFCZfbd0r/5i908VzEe9MuRNBe3t57/1Rwlv2
zmgf+Oi/nsFcf0JDr9AhP8j6vWj9MPgZBv1b6bjuUJ6jJ4++p3P9guRXaqze
3bPjpJtfJgXd/aPj9rSLhrz7Ruz1PO2lb6eeZ3/2dNT784rvIP5KX/AvH2Zq
h27H8PuEQdjOOxmcL2/lXqReWbdfyeWPp4fmVwn7dcfH86HS4dk2/vo2rntf
8Xh6f8dH9PTk9yx5D86zFhDgEXiv/x/y/3sm7jezn7P50+7wmelPRL4q9J7n
QxvPX5n4hxHfaOv4BXr71Xh2OtEbOa71Hq0hj/Ybyd/W5N2QZ1B+fXoD+hGo
JwQ+CczzKvCXd0/si3pH0d6W7v3n86NvbdmOnXEfxOElevfCPU+WZ5P2bsqO
rw8t5iuU/9JIPmMDvLqcHy3Sj/5s/+zVwlh7Lr5Q+fc9FNOvr/zMf+Rg8j19
vrxKxxMf4Ssswfgsh8/L358LPuvxB6r6itNXJk1fs3LPpd+H1JtMes+Emp/G
B+PLia/y+bzm7R5U86sBAz42Te9heHoPwH6A8bWcF5m8Y33/6VruSf0C0ie9
83+9z0OSzMusVwV//eafytSz5WqXt6TupldZBdCPCbAD+t3dH3PgNcz3Kvj2
7HZeJPWeC/8LAv/+ElW7X151UTntTGpc3o4AcIAg/AmiV+TjryT1XN6+qMO+
qKAb5+qr45JdyjT5WH8cGiT+/kblzSs8T5tfHe9X2O5tw3ONH68+/v2FiD35
P5SIJ76/4/glQ77e9bW32pH5LWPwvdH73/+UHfP4wkbzIYWeq/8/HyvPj/uh
t//9W3L7Py9O3jPgNfmzlzg8n4C2UVu97d1iEJW/4fuXq41k2oXKCzHfq+xz
mB1XX8P2bfFxMgV5tbNt8zX67B7+HQJ/eymiZw5+o474B2U8/f+6+lO2emEC
+eWHV786dcza4QMXvu0d2+6kvSwO49/euuQl895Rt+Pj1W22zdPoZ8hfY8K/
/Mbn4wef77btDBTN743WB+99h/WnLtmh/I3P9xGiYBjW9xV8DfLhewO0XxS8
7A7br0n1vibog53I3/+NV15V5u/7Kodff8PVzyR5yY1Xyj+R99Pl/oja1wZ/
/KCVxjf0C/i3/Q/oFa1dcXz5Wt72Id97vKcCfh/9/YH/ezV5jvGc/Xv3/TY3
3x+xf+Pqrxn3z1EGv4nInd6SJA53ML6Xl2gvcq+bgrj9Xj4vOxftQf9ehV9p
9qxRzwV3Y/nu1vfi8xQ1z19/+qxlfFbVnduesuSfSftl32ugl7eKedfx/9Ln
7j/0865sxx/F8nXfq498GfAuyH40bl/p6pUe//LZ7okXa9E7LUyvGphPT/rd
tUr5BHI6tHsw7zvQX9nzHP+duocsOBTfntIcvpLNs7b//y/yixVsLQEA

-->

</rfc>
