<?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.11 (Ruby 3.2.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-westerbaan-cfrg-hpke-xyber768d00-03" category="info" consensus="true" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="hpke-xyber768d00">X25519Kyber768Draft00 hybrid post-quantum KEM for HPKE</title>
    <seriesInfo name="Internet-Draft" value="draft-westerbaan-cfrg-hpke-xyber768d00-03"/>
    <author initials="B. E." surname="Westerbaan" fullname="Bas Westerbaan">
      <organization>Cloudflare</organization>
      <address>
        <email>bas@cloudflare.com</email>
      </address>
    </author>
    <author fullname="Christopher A. Wood">
      <organization>Cloudflare</organization>
      <address>
        <email>caw@heapingbits.net</email>
      </address>
    </author>
    <date year="2024" month="May" day="14"/>
    <area>IRTF</area>
    <workgroup>Crypto Forum</workgroup>
    <keyword>kyber</keyword>
    <keyword>post-quantum</keyword>
    <keyword>x25519</keyword>
    <keyword>hpke</keyword>
    <abstract>
      <?line 91?>

<t>This memo defines X25519Kyber768Draft00, a hybrid post-quantum KEM,
for HPKE (RFC9180). This KEM does not support the authenticated modes
of HPKE.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://bwesterb.github.io/draft-westerbaan-cfrg-hpke-xyber768d00/draft-westerbaan-cfrg-hpke-xyber768d00.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-westerbaan-cfrg-hpke-xyber768d00/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Crypto Forum Research Group mailing list (<eref target="mailto:cfrg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/search/?email_list=cfrg"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cfrg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/bwesterb/draft-westerbaan-cfrg-hpke-xyber768d00"/>.</t>
    </note>
  </front>
  <middle>
    <?line 97?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="motivation">
        <name>Motivation</name>
        <t>The final draft for Kyber is expected in 2024.
There is a desire to deploy post-quantum cryptography earlier than that.
To promote interoperability of early implementations,
    this document specifies a preliminary hybrid post-quantum key agreement.</t>
      </section>
      <section anchor="S-notauth">
        <name>Not an authenticated KEM</name>
        <t>Kyber is a plain KEM that does not
support the static-ephemeral key exchange
that allows HPKE based on Diffie-Hellman based KEMs
its (optional) authenticated modes.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="construction">
      <name>Construction</name>
      <t>In short, X25519Kyber768Draft00 is the parallel combination
of DHKEM(X25519, HKDF-SHA256) <xref target="RFC9180"/> <xref target="RFC7748"/>
and Kyber768Draft00 <xref target="KYBER"/>:
wire encodings of public key, private key, cipher texts
and shared secrets are simple concatenations.</t>
      <t>A KEM private key is a tuple of an DHKEM(X25519, HKDF-SHA256)
private key and Kyber768Draft00 private key, where each is
an octet string of length 32 and 2400 bytes, respectively.
Similarly, a KEM public key is a tuple of an DHKEM(X25519, HKDF-SHA256)
public key and Kyber768Draft00 public key.</t>
      <t>Kyber768Draft00 is Kyber768 as submitted to the third round
of the NIST PQC process <xref target="KyberV302"/>, where it is
also known as v3.02.</t>
      <t>Note that this hybrid KEM is different from the one
defined in <xref target="TLS-XYBER"/> based on <xref target="HYBRID"/> for TLS,
as raw X25519 shared secrets can be used,
thanks to the message transcript.</t>
      <t>We use HKDF-SHA256 as the HPKE HKDF. We denote the DHKEM(X25519, HKDF-SHA256)
KEM as DHKEM throughout the document.</t>
      <section anchor="serializepublickey-and-deserializepublickey">
        <name>SerializePublicKey and DeserializePublicKey</name>
        <t>SerializePublicKey and DeserializePublicKey encode and decode
X25519Kyber768Draft00 public keys to and from their wire format representation.
Their implementation is described below.</t>
        <t>Note that DHKEM public keys <bcp14>MUST</bcp14> be validated before they
can be used as stipulated in <xref section="7.1.1" sectionFormat="of" target="RFC9180"/>.</t>
        <artwork><![CDATA[
def SerializePublicKey(pkX):
  (pkA, pkB) = pkX
  return concat(
    DHKEM.SerializePublicKey(pkA),
    pkB
  )

def DeserializePublicKey(pkXm):
  return (
    DHKEM.DeserializePublicKey(pkXm[0:32]),
    pkXm[32:1216]
  )
]]></artwork>
        <t>DHKEM.SerializePublicKey() and DHKEM.DeserializePublicKey()
are SerializePublicKey() and respectively DeserializePublicKey()
as defined for DHKEM in <xref section="7.1.1" sectionFormat="of" target="RFC9180"/>.</t>
      </section>
      <section anchor="serializeprivatekey-and-deserializeprivatekey">
        <name>SerializePrivateKey and DeserializePrivateKey</name>
        <t>SerializePrivateKey and DeserializePrivateKey encode and decode
X25519Kyber768Draft00 private keys to and from their wire format representation.
Their implementation is described below.</t>
        <artwork><![CDATA[
def SerializePrivateKey(skX):
  (skA, skB) = skX
  return concat(
    DHKEM.SerializePrivateKey(skA),
    skB
  )

def DeserializePrivateKey(skXm):
  return (
    DHKEM.DeserializePrivateKey(skXm[0:32]),
    skXm[32:2432]
  )
]]></artwork>
        <t>DHKEM.SerializePrivateKey() and DHKEM.DeserializePrivateKey()
are SerializePrivateKey() and respectively DeserializePrivateKey()
as defined for DHKEM in <xref section="7.1.2" sectionFormat="of" target="RFC9180"/>.</t>
      </section>
      <section anchor="derivekeypair">
        <name>DeriveKeyPair</name>
        <t>DeriveKeyPair deterministically derives a X25519Kyber768Draft00 private
and public key pair from a fixed-length seed. In particular, a single seed
is stretched and passed to the relevant key derivation functions for
DHKEM and Kyber768Draft00.</t>
        <artwork><![CDATA[
def DeriveKeyPair(ikm):
  dkp_prk = LabeledExtract("", "dkp_prk", ikm)
  seed = LabeledExpand(dkp_prk, "sk", "", 32 + 64)
  seed1 = seed[0:32]
  seed2 = seed[32:96]
  sk1, pk1 = DHKEM.DeriveKeyPair(seed1)
  sk2, pk2 = Kyber768Draft00.DeriveKeyPair(seed2)
  return (concat(sk1, sk2), concat(pk1, pk2))
]]></artwork>
        <t>DHKEM.DeriveKeyPair() is DeriveKeyPair() defined for DHKEM
in <xref section="7.1.3" sectionFormat="of" target="RFC9180"/>. Kyber768Draft00.DeriveKeyPair() is the key
generation as defined in <xref section="11.1" sectionFormat="of" target="KYBER"/>.</t>
        <t>The suite_id used implicitly in LabeledExtract() and LabeledExpand() on
lines 2 and 3, is derived from the KEM identifier of the hybrid (0x0030).</t>
        <t>The suite_id used implicitly in LabeledExpand() and LabeledExtract()
within DHKEM.DeriveKeyPair() is the KEM identifier of DHKEM (0x0020).</t>
        <t>ikm <bcp14>SHOULD</bcp14> be at least 32 octets in length.
(This is contrary to <xref target="RFC9180"/> which stipulates it should be
at least Nsk=2432 octets in length.)</t>
      </section>
      <section anchor="encap-and-decap">
        <name>Encap and Decap</name>
        <t>Encap and Decap are the primary KEM functions. Their implementation
is described below.</t>
        <artwork><![CDATA[
def Encap(pkR):
  (pkA, pkB) = pkR
  (ss1, enc1) = DHKEM.Encap(pkA)
  (ss2, enc2) = Kyber768Draft00.Encap(pkB)
  return (
    concat(ss1, ss2),
    concat(enc1, enc2)
  )

def Decap(enc, skR):
  (skA, skB) = skR
  enc1 = enc[0:32]
  enc2 = enc[32:1120]
  ss1 = DHKEM.Decap(enc1, skA)
  ss2 = Kyber768Draft00.Decap(enc2, skB)
  return concat(ss1, ss2)
]]></artwork>
        <t>The suite_id used implicitly in the LabeledExtract() and LabeledExpand()
within DHKEM.Encap() and DHKEM.Decap() is the one derived from the KEM id
of DHKEM (0x0020).</t>
      </section>
      <section anchor="authencap-and-authdecap">
        <name>AuthEncap and AuthDecap</name>
        <t>X25519Kyber768Draft00 is not an authenticeted KEM
and does not support AuthEncap() or AuthDecap(),
see <xref target="S-notauth"/>.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>We aim for IND-CCA2 robustness: that means that if either constituent
KEM is not IND-CCA2 secure, but the other is, the combined hybrid
remains IND-CCA2 secure.</t>
      <t>In general <xref target="GHP18"/> <xref target="COMBINERS"/> this requires a combiner that mixes in
the cipher texts, such as, assuming fixed-length cipher texts and shared secrets:</t>
      <artwork><![CDATA[
HKDF(concat(ss1, ss2, enc1, enc2)).
]]></artwork>
      <t>In the present case, DHKEM(X25519, -) and Kyber768Draft00 already mix in
the respective cipher texts into their shared secrets. Thus we can
forgo mixing in the cipher texts a second time.</t>
      <t>Furthermore, in HPKE, the shared secret is never used directly, but
passed through HKDF (via KeySchedule), and thus we can
forgo the call to HKDF as well.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests/registers a new entry to the "HPKE KEM Identifiers"
 registry.</t>
      <dl>
        <dt>Value:</dt>
        <dd>
          <t>0x0030 (please)</t>
        </dd>
        <dt>KEM:</dt>
        <dd>
          <t>X25519Kyber768Draft00</t>
        </dd>
        <dt>Nsecret:</dt>
        <dd>
          <t>64</t>
        </dd>
        <dt>Nenc:</dt>
        <dd>
          <t>1120</t>
        </dd>
        <dt>Npk:</dt>
        <dd>
          <t>1216</t>
        </dd>
        <dt>Nsk:</dt>
        <dd>
          <t>2432</t>
        </dd>
        <dt>Auth:</dt>
        <dd>
          <t>no</t>
        </dd>
        <dt>Reference:</dt>
        <dd>
          <t>This document</t>
        </dd>
      </dl>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7748">
          <front>
            <title>Elliptic Curves for Security</title>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="M. Hamburg" initials="M." surname="Hamburg"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2016"/>
            <abstract>
              <t>This memo specifies two elliptic curves over prime fields that offer a high level of practical security in cryptographic applications, including Transport Layer Security (TLS). These curves are intended to operate at the ~128-bit and ~224-bit security level, respectively, and are generated deterministically based on a list of required properties.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7748"/>
          <seriesInfo name="DOI" value="10.17487/RFC7748"/>
        </reference>
        <reference anchor="RFC9180">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
            <author fullname="B. Lipp" initials="B." surname="Lipp"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9180"/>
          <seriesInfo name="DOI" value="10.17487/RFC9180"/>
        </reference>
        <reference anchor="KYBER">
          <front>
            <title>Kyber Post-Quantum KEM</title>
            <author fullname="Peter Schwabe" initials="P." surname="Schwabe">
              <organization>MPI-SP &amp; Radboud University</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="2" month="January" year="2024"/>
            <abstract>
              <t>   This memo specifies a preliminary version ("draft00", "v3.02") of
   Kyber, an IND-CCA2 secure Key Encapsulation Method.

About This Document

   This note is to be removed before publishing as an RFC.

   The latest revision of this draft can be found at
   https://bwesterb.github.io/draft-schwabe-cfrg-kyber/draft-cfrg-
   schwabe-kyber.html.  Status information for this document may be
   found at https://datatracker.ietf.org/doc/draft-cfrg-schwabe-kyber/.

   Source for this draft and an issue tracker can be found at
   https://github.com/bwesterb/draft-schwabe-cfrg-kyber.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-cfrg-schwabe-kyber-04"/>
        </reference>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="COMBINERS">
          <front>
            <title>Combiner function for hybrid key encapsulation mechanisms (Hybrid KEMs)</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Aron Wussler" initials="A." surname="Wussler">
              <organization>Proton AG</organization>
            </author>
            <author fullname="Stavros Kousidis" initials="S." surname="Kousidis">
              <organization>BSI</organization>
            </author>
            <date day="31" month="January" year="2024"/>
            <abstract>
              <t>   The migration to post-quantum cryptography often calls for performing
   multiple key encapsulations in parallel and then combining their
   outputs to derive a single shared secret.

   This document defines a comprehensible and easy to implement Keccak-
   based KEM combiner to join an arbitrary number of key shares, that is
   compatible with NIST SP 800-56Cr2 [SP800-56C] when viewed as a key
   derivation function.  The combiners defined here are practical split-
   key PRFs and are CCA-secure as long as at least one of the ingredient
   KEMs is.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-cfrg-kem-combiners-05"/>
        </reference>
        <reference anchor="HYBRID">
          <front>
            <title>Hybrid key exchange in TLS 1.3</title>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Shay Gueron" initials="S." surname="Gueron">
              <organization>University of Haifa</organization>
            </author>
            <date day="5" month="April" year="2024"/>
            <abstract>
              <t>   Hybrid key exchange refers to using multiple key exchange algorithms
   simultaneously and combining the result with the goal of providing
   security even if all but one of the component algorithms is broken.
   It is motivated by transition to post-quantum cryptography.  This
   document provides a construction for hybrid key exchange in the
   Transport Layer Security (TLS) protocol version 1.3.

   Discussion of this work is encouraged to happen on the TLS IETF
   mailing list tls@ietf.org or on the GitHub repository which contains
   the draft: https://github.com/dstebila/draft-ietf-tls-hybrid-design.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-10"/>
        </reference>
        <reference anchor="TLS-XYBER">
          <front>
            <title>X25519Kyber768Draft00 hybrid post-quantum key agreement</title>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <date day="24" month="September" year="2023"/>
            <abstract>
              <t>   This memo defines X25519Kyber768Draft00, a hybrid post-quantum key
   exchange for TLS 1.3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tls-westerbaan-xyber768d00-03"/>
        </reference>
        <reference anchor="GHP18" target="https://doi.org/10.1007/978-3-319-76578-5_7">
          <front>
            <title>KEM Combiners</title>
            <author initials="F." surname="Giacon" fullname="Federico Giacon">
              <organization/>
            </author>
            <author initials="F." surname="Heuer" fullname="Felix Heuer">
              <organization/>
            </author>
            <author initials="B." surname="Poettering" fullname="Bertram Poettering">
              <organization/>
            </author>
            <date year="2018"/>
          </front>
        </reference>
        <reference anchor="KyberV302" target="https://pq-crystals.org/kyber/data/kyber-specification-round3-20210804.pdf">
          <front>
            <title>CRYSTALS-Kyber, Algorithm Specification And Supporting Documentation (version 3.02)</title>
            <author initials="R." surname="Avanzi">
              <organization/>
            </author>
            <author initials="J." surname="Bos">
              <organization/>
            </author>
            <author initials="L." surname="Ducas">
              <organization/>
            </author>
            <author initials="E." surname="Kiltz">
              <organization/>
            </author>
            <author initials="T." surname="Lepoint">
              <organization/>
            </author>
            <author initials="V." surname="Lyubashevsky">
              <organization/>
            </author>
            <author initials="J." surname="Schanck">
              <organization/>
            </author>
            <author initials="P." surname="Schwabe">
              <organization/>
            </author>
            <author initials="G." surname="Seiler">
              <organization/>
            </author>
            <author initials="D." surname="Stehle">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 330?>

<section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors would like to thank
P. Kampanakis,
I. Liusvaara,
T. Wiggers,
S. Farrell, and
R. Siles
for their input.</t>
    </section>
    <section anchor="change-log">
      <name>Change log</name>
      <ul empty="true">
        <li>
          <t><strong>RFC Editor's Note:</strong> Please remove this section prior to publication of a
final version of this document.</t>
        </li>
      </ul>
      <section anchor="since-draft-westerbaan-cfrg-hpke-xyber768d00-02">
        <name>Since draft-westerbaan-cfrg-hpke-xyber768d00-02</name>
        <ul spacing="normal">
          <li>
            <t>Corrected missing (empty) info parameter to LabeledExpand.</t>
          </li>
        </ul>
      </section>
      <section anchor="since-draft-westerbaan-cfrg-hpke-xyber768d00-01">
        <name>Since draft-westerbaan-cfrg-hpke-xyber768d00-01</name>
        <ul spacing="normal">
          <li>
            <t>Corrected test vectors. In particular, specify randomness used during
encapsulation, and clarify why there is no such thing as an ephemeral keypair.</t>
          </li>
          <li>
            <t>Clarify correct value of implicit suite_id.</t>
          </li>
        </ul>
      </section>
      <section anchor="since-draft-westerbaan-cfrg-hpke-xyber768d00-00">
        <name>Since draft-westerbaan-cfrg-hpke-xyber768d00-00</name>
        <ul spacing="normal">
          <li>
            <t>Add acknowledgements.</t>
          </li>
          <li>
            <t>Elaborate on missing authenticated modes.</t>
          </li>
          <li>
            <t>Add test vectors for the PSK mode.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>This section contains test vectors formatted similary to that
which are found in <xref target="RFC9180"/>, with two changes.
First, we only provide vectors for the non-authenticated modes of operation.
Secondly, as Kyber encapsulation does not involve an ephemeral keypair,
we omit the ikmE, skEm, pkEm entries and provide an ier entry instead.
The value of ier is the randomness used to encapsulate.
To wit: the ephemeral X25519 keypair used in DHKEM.Encap()
is DHKEM.DeriveKeyPair(ier[0:32]) and ier[32:64]
is the seed that is fed to H in the first step of Kyber
encapsulation <xref target="KYBER"/>.</t>
      <section anchor="x25519kyber768draft00-hkdf-sha256-aes-128-gcm">
        <name>X25519Kyber768Draft00, HKDF-SHA256, AES-128-GCM</name>
        <section anchor="base-setup-information">
          <name>Base Setup Information</name>
          <artwork><![CDATA[
mode: 0
kem_id: 48
kdf_id: 1
aead_id: 1
info: 486561722068656172
ikmR:
3cb1eea988004b93103cfb0aeefd2a686e01fa4a58e8a3639ca8a1e3f9ae57e2
pkRm: a3aa882fee0de0059cec0569c8e1b4872fb6cb4d82361b72ee1148dc7ddc0c
2b210747403222b16597f4881d694c12366c53fde2b3d346b7ee87b16dd42f44ec59
4cea6ba78b256092cbbc16baaf6ccc46f2386da22de9d142f593739eb9c245018e0c
61975514ac42639d3c5b0299b772acd59d55520a5d660f135075e33a673fd5b9e2d5
6803889fc62b0362f8cbe9990cb36b4cdef17586c8cc58d72d84fb9398f1c1efb0a6
282508083c23965a9851acb89afc723e7a6c60bc4007a41ad1950c4590a2f8d2bb3b
832f5db1707ad8bad1c4c426aaa7da97b34a921283415851f19b0f01ca3924754dba
6596f9329454b1e3d9b5f357a66c59bf5fc4a045908b5eb107d3302f0cb9be0af958
4846c1475b92d3c16051935dc7411acaa64c80c836b0643fd72b38cb0a33feb11f48
13b66f705268b3838b8974e28c12b4f9bbc8623c936b32a015262d4a33172b7f3a69
b6c2fab5a3c18ffdab2927e77598d1556d51a8559550c251796290b617ac9804167b
d9a76e9d8bba64059d165acfe2483e9ed0cbc11cb71dd148776aa1cb862ce2b1026e
773600d101a300671a70710a877a5c1732275c362085b2b8cc66206b3ec37c82ac87
3d1ec1862a8aa457fc9776960b396c23768c931cdc77731792c569c2088c52ddb5cc
0c90ab9187c1e0ca2c98818859aa86fe44801be483cc1469d636cd3e019267c1cc68
4640359ca67c5abd1dc100c4d3c5924acf1b988d3b5019e7b06ef238412b7608dd23
115c6047a59b4b1d7a731126925728c645c140aa4704c1b808b6c401be736bf18bb7
d654342c6576236565c6c5b0727b25ae773c5fb76be794304dc1b672aa5909659b6b
b8a1f430a141882b0f9753662794e625885782154dc148e632b6b2079087958d83c6
c82cf55a47eb4ed819a409d94ceb0c74e8d497b95975a0a5c659f5bf0a033d2adca9
8a693304413fff95342319a09fd62f263b91a2c6540d2196dd2ba90dd113042428ae
eb15156c03949660776b80bc1501b0d80a946a623906291ed3668f3c99c1889d3ae3
c59819c38f6b0c46558c2ca520c2107c166452b917cea53bb50c4cb839a99f60e54e
9236c6a419a8de5508f4e3545409499b97939ee940a9d48ed5547003350e391b4c96
d657cb395b5c035370e9c8ece32c83b3cff347ca16bb1e2943669f370f48e70462d4
369a07804bc09fcf399bc2d11b47b0370660916944a179423519a310cc0737407c55
ef09255530c7ec817999c95e20aa23f8f6782aa820d34c89c2299ff0ec9a9021b6f7
dbbd19503fa6f170d8770e12875d558bbb2ca66fd1136e0e5729ef30346109cd289a
1ce0c531a493581ed64533e1749fc818b85ab664255bbfe4a641f6bdf43ac1695c28
ab2b58b3bab5bed5893439455b669b63d65ceff75b8c5857f4ba5cf767cf57aa8e28
691cc6dc67fca434e3b1560c6c53ce37c2a2f14764c1cf1e5697cd8757a544b05b76
6f4400cef7ecc46ec29a1d679d7fe385c4366579db06d1d840c9911fab8b6b5df203
5cb95410f79b861411b4eb5a4119208f8872674639617452f6b6394c94c6d6f5b833
690dd98406b5e7c0827b1a3617a03ba90c3d185a954252f1ba5b157a3f61749548e2
81fc543dec205e757932bcc717b99b7df7123500f3bcc660c080093b3fbac56ff51b
9c3b037f76e3f43c0e46b5588cf617f4de85044390a9947daacba87cd5
skRm: cf61f1a7b05c83f9c2a4b27dc0e9bdbf4e52ba1bbd906cb3776ac12268a9f4
d0c348342d192f0458ab53d19c1dc135d11b48978c878bca6d7d1bc91428259e43aa
dc9700b76aa9aa66a65db91a77d72513e40697226557b53400bb6752fb4e11a5ba2f
e12644698a48c9948ec121cc9c9ce7384c65f798012c9df8f5ac0cd371d7d19d9a24
c30cb0909c665e43c89328735fe95a62653352fad3cfe6330b436a4f72c9ac9323ba
bd912cf5970222eb0dd178c810bcc79beba0813039ec4333c33b13d4cc5183b6b14d
c09cb9604d46242353a1a1df82999e4a4929f28f498c330d552ac64156cf123cceeb
bccf81b2fd86218f2a9112040943a359d7a858cd641467e54b25f03d66b9a150fbcf
3f19bbd1791abec47269b2a72f4083a79c2559fbb6d0500208a78baa7392874443c3
9c38577b4c40db6220ca5c84b148ffb344164c723df1c0fb37ae52c0854bea023e2a
45efaa8869c924ecf360008607e7079187978fdac30e8b76a3110349de272b25f549
0dc87e3d8caf59a5a51a57230ea702dfda0f5d2c0fe94442254834b0f6aa71852601
a8c5b7b211f108c1de2b1092e9b89df4a9feea882aa00ab97235940924e8a81d8f83
597f72383f7a1b99c3c8481953be917fef0b44e32b0aa1f862eedc8d0d94030ae92e
73097cde1b34de9b8279293322e0b5f9564395cb4998810818544ad2025018c40deb
f0b97bca2f1d861f8d5b51a2a84f35503cb37112b280ad0a4c99a2eb9c43300ce7c6
6eb89cb4443a44edc40869b8c2d90c5d484554557c408da7b46752bec14876815334
b783207f60943d1738b5183d64394e27bb8f1dbb6ed9c58aa338171967bf5a613e91
94c13395573615cee02012438a68aa104afd56a943d05caefc7f20a0104e2cced2a5
191a1a68fe431920e1844a8154fc42a73d70c82f26846ec332fda50c340c1c503796
5daaccd3cacfcab3c85a7516d712890fd6a2b1f5cb7c745cf1798dc0a49ed7571763
0c78d56bb8db272a85a009b2685ca9f4840c948226d224de1a0385565e569b8901c4
508ae7b9214b88b6c2ac63807710d85e593a01ba20541cd03fa8364b4cb79f110745
b30818521a7d0b6015a20483dde33188e94fc4aa224558bd53d384a9f6916964bbef
0b0770b11e7b4117f41639bbe0c9ce119c8f8aab451608c2f06a8cd85f37519b7e3c
1f9f07a6449059a972260cf80c23e52fe1b559e11c723b2618752672bfab67305358
e7f048960475f1c720d8ba5fe4883981065c462c5062757bddd2666de67265990d00
53229693a8bfd8811c84494853095c875639dcbcfcc02785910e35643f5bb4b0aa59
af7a86ae94dcc01f952eb1d151c4ba1aa4da02c100b461904229f7b11aac35d307ab
187255baa32eed32b3b262aaf2db6019089ad4250079280a0efb109ab27a364135ac
3067ace5c82dea1fafb04dfedba9fabc196832878eb7b4314556e8aa8210e2c72959
723e23176b703d4db42aabba62229790f6a743a2ec3c43dc8dbe0b4c36dc2323ec0e
f21c116941b43bb12763460eed032a7a039185e36dcbf69d88f645e6728d3ba79dae
0a25ddd4c3a8bba8334aa8fb6658a9dca99a8cc6362745d6080b0fd8af6af71e9f75
2d7b763035ec40c0fc98326081ea4c36cdf992e73a16719b9fb7c06e6c1bb7210747
403222b16597f4881d694c12366c53fde2b3d346b7ee87b16dd42f44ec594cea6ba7
8b256092cbbc16baaf6ccc46f2386da22de9d142f593739eb9c245018e0c61975514
ac42639d3c5b0299b772acd59d55520a5d660f135075e33a673fd5b9e2d56803889f
c62b0362f8cbe9990cb36b4cdef17586c8cc58d72d84fb9398f1c1efb0a628250808
3c23965a9851acb89afc723e7a6c60bc4007a41ad1950c4590a2f8d2bb3b832f5db1
707ad8bad1c4c426aaa7da97b34a921283415851f19b0f01ca3924754dba6596f932
9454b1e3d9b5f357a66c59bf5fc4a045908b5eb107d3302f0cb9be0af9584846c147
5b92d3c16051935dc7411acaa64c80c836b0643fd72b38cb0a33feb11f4813b66f70
5268b3838b8974e28c12b4f9bbc8623c936b32a015262d4a33172b7f3a69b6c2fab5
a3c18ffdab2927e77598d1556d51a8559550c251796290b617ac9804167bd9a76e9d
8bba64059d165acfe2483e9ed0cbc11cb71dd148776aa1cb862ce2b1026e773600d1
01a300671a70710a877a5c1732275c362085b2b8cc66206b3ec37c82ac873d1ec186
2a8aa457fc9776960b396c23768c931cdc77731792c569c2088c52ddb5cc0c90ab91
87c1e0ca2c98818859aa86fe44801be483cc1469d636cd3e019267c1cc684640359c
a67c5abd1dc100c4d3c5924acf1b988d3b5019e7b06ef238412b7608dd23115c6047
a59b4b1d7a731126925728c645c140aa4704c1b808b6c401be736bf18bb7d654342c
6576236565c6c5b0727b25ae773c5fb76be794304dc1b672aa5909659b6bb8a1f430
a141882b0f9753662794e625885782154dc148e632b6b2079087958d83c6c82cf55a
47eb4ed819a409d94ceb0c74e8d497b95975a0a5c659f5bf0a033d2adca98a693304
413fff95342319a09fd62f263b91a2c6540d2196dd2ba90dd113042428aeeb15156c
03949660776b80bc1501b0d80a946a623906291ed3668f3c99c1889d3ae3c59819c3
8f6b0c46558c2ca520c2107c166452b917cea53bb50c4cb839a99f60e54e9236c6a4
19a8de5508f4e3545409499b97939ee940a9d48ed5547003350e391b4c96d657cb39
5b5c035370e9c8ece32c83b3cff347ca16bb1e2943669f370f48e70462d4369a0780
4bc09fcf399bc2d11b47b0370660916944a179423519a310cc0737407c55ef092555
30c7ec817999c95e20aa23f8f6782aa820d34c89c2299ff0ec9a9021b6f7dbbd1950
3fa6f170d8770e12875d558bbb2ca66fd1136e0e5729ef30346109cd289a1ce0c531
a493581ed64533e1749fc818b85ab664255bbfe4a641f6bdf43ac1695c28ab2b58b3
bab5bed5893439455b669b63d65ceff75b8c5857f4ba5cf767cf57aa8e28691cc6dc
67fca434e3b1560c6c53ce37c2a2f14764c1cf1e5697cd8757a544b05b766f4400ce
f7ecc46ec29a1d679d7fe385c4366579db06d1d840c9911fab8b6b5df2035cb95410
f79b861411b4eb5a4119208f8872674639617452f6b6394c94c6d6f5b833690dd984
06b5e7c0827b1a3617a03ba90c3d185a954252f1ba5b157a3f61749548e281fc543d
ec205e757932bcc717b99b7df7123500f3bcc660c080093b3fbac56ff51b9c3b037f
76e3f43c0e46b5588cf617f4de85044390a9947daacba87cd5137b60651b30bf805d
a1597faef1bc8b2645cda273144c4af1d13eaa2ad9101c7b58b14601aff81754afc7
76f8b7f7b9324d420b66706b96ea7f99f8fa11bed3
ier: 35b8cc873c23dc62b8d260169afa2f75ab916a58d974918835d25e6a435085b
2badfd6dfaac359a5efbb7bcc4b59d538df9a04302e10c8bc1cbf1a0b3a5120ea
enc: 1d06980e46fd3842db6b87226231eedd2cc9684ee98a1d9d902bd9300e2c4d4
1b64fba47a50fe32dd0df3b0a75801c11022cd98a6ff5a83a8472ade82bdd6f1e8a6
5a94a88523ada0d8275165f707f1067a6a576e54525d9141e95223f5713456bda7ec
5eb558adfc6b7f0d80de46222579a3274e45ab43fad14f7e9855a872d2716e8dc78d
4c12027bef3184904476c8961552fd031361358f2d9deae8ad98194047a142229476
12972574c57514266e9e67a3b6dd89972cc8a0882be7474f4923549dfcd944dcbe58
b088079aa8b70c8f291cb4e45066bad4a832ccd8f40e51861f7a25b6a2358842f1bb
e8108a6a6f0ae93153a2e7f9f53e180a90532531a632367b81bf08ed97effcf0140d
d0e92cc438f6be7e6f3d97a9f7787f7e3981f971617f0bfb618caa7db1e453f33a38
6c3863b16d462229c41f4946b49e4e49c27e0f35d77e21304b6ad238a55a51e9e370
dd39e713d626044fb970bb7c2af7d7b9cb9004394741a0ea2de592816359006f24ab
dfc2aa890720b00b2f7b8bb240120f22bdb84f9fc5c8fdc7ca7047ae633868c184c4
d75e9e107eb9c6d8fe879415926457d818bc31e88b87a5881584a5650859e88b06fa
a2cfe1bde95dfa344af14f214cedecde4d89c87334c33e2d7ee3ab40d5df396cf0ff
5a99588e0dcd205f1d876b380b963f5baccc0baeae569892a8d252f5eeeb7c751f66
3eb906ac99a165656224281add3ab271ff4f406b6932cbf1afff62109794f52ff3e7
23f5cdd706e3715d1d2d421bdac73fa047b5d9761569534fb2dd57b86a608f79db7d
4ab99847490e76eaf0c683bdc54d12f2f2664a79de6a2f25bec3f43584f98ec41ad3
fb19ba5ba936c3c893e9c0994b412ba3d07329086c20b04e1cd1d9b4f24a82f8c1f7
b5db58b4056a4b4e27b60c957f5af8081bffab98d8455cab97e35042ed636c995931
fd304b3d02fcf545df360cc421be64adc3d7a121ea75ab3440a9eba74fba1c5b40bd
b66b54583ff2f76304ccaeae99ed94fb332d30d771fe0e45acb9e966f497b1629f5a
5df15cea507d2fd1aa045a171e84bec932e4049639477f16fb9afdd107668f9b3531
c3c7eb1d67753ac652c575b526e6f2965f1e4500e99f38ae1d34bce151a68e278f14
405ad76f580b549d025b03be98b6a737f10238b9f84f1694173544ba2c97f811a174
85129a146084bc5382e2086aaf51b11a4918bdb5485bf28a9be2d2c9d69468268fa0
4fa071c39942b43a0caf561278cfc1b47781fa9ef559f86b2dad703141b78b7ddb35
c9c9ff4c1134580da26367dbf3db7eaf039dfbae238959c4cf55d40d78a2c5597ba0
38f2be5f994d60c79e8a92121fb0488eef9690d550ef9fa40b1774221aac8c8c1dcf
97faa07c28e840feb9daf0bf3bed277a6e10a33490c0bee7e5fa318638f5b80a2272
700e591ffc14985d0ed19876725c2bec9356b45ca96d295e30bce86effc626a2bd78
39af05ae373801af510cfb378ce42088607909c91ceb4a90e4d7b2b6288b9cdfa262
570ffda8692b58f0b05a7c7899a717a3a97b6e64489f56323b000793f807ca75ca99
1
shared_secret: 1368d71518fadbe42fb75fbd356e016b0aaad6b4d3d91ce7f2070
73e4fb08c537217aba238aea92a7f855820518a8342b3a31f82ebbcdb479f33ad82b
dcdc953
key_schedule_context: 009f749a195d1c8b3eaa8d5c3f571dc7231aafbbc0405e
4b484738352667c484867584e32e844cdf74d17b4ee224cc521bbc8bed221f21f34f
8ccc9842772686cb
secret:
95f863934be4d0ef683770c7bd385839d19e525b467a332f47ae715c54183e1d
key: 6bb5532badb078ce8f326daa6cfaef84
base_nonce: ff2b9a604a84754614e9e772
exporter_secret:
fb6ca36cfb7881cf11dbcb8fde201f698f80d0b941b642bc0a6a3101c97b7fad
]]></artwork>
          <section anchor="encryptions">
            <name>Encryptions</name>
            <artwork><![CDATA[
sequence number: 0
pt:
546f2074686520756e6976657273616c206465706c6f796d656e74206f6620505143
aad: 436f756e742d30
nonce: ff2b9a604a84754614e9e772
ct: a78ab8f057becc31cb3a5cff2fe2b18983b93ce74c6e7c45e0a57c4acc1976ee
f755c08547564ceede3e5169f959ea6ad498

sequence number: 1
pt:
546f2074686520756e6976657273616c206465706c6f796d656e74206f6620505143
aad: 436f756e742d31
nonce: ff2b9a604a84754614e9e773
ct: c7e392bb20d256f0020ba0888996c4b0e2518b486ad5873263834e7f30fc43e6
f712ee8e42846179db284a56baba6252d38f

sequence number: 2
pt:
546f2074686520756e6976657273616c206465706c6f796d656e74206f6620505143
aad: 436f756e742d32
nonce: ff2b9a604a84754614e9e770
ct: 86eeadf1593871435b643b7dde3d5a18b4dcb8d706c21abb69ae057af2a788a6
72198d46facadd396fa9fa6e1072c43a4f74

sequence number: 4
pt:
546f2074686520756e6976657273616c206465706c6f796d656e74206f6620505143
aad: 436f756e742d34
nonce: ff2b9a604a84754614e9e776
ct: 4aef2a67f307cb23dbe6d9ea2875add1e4bb0db6519836a2f1adca1d75a33bef
6df198b63f916385107677eef4e542e2c337

sequence number: 255
pt:
546f2074686520756e6976657273616c206465706c6f796d656e74206f6620505143
aad: 436f756e742d323535
nonce: ff2b9a604a84754614e9e78d
ct: 94ab72b1e767b26e3cd2b2a862bdc52cdcb4140fc7b0133e4ca4f6c65b190527
1c971d2b5092204825683191f2ecdd0ec4e1

sequence number: 256
pt:
546f2074686520756e6976657273616c206465706c6f796d656e74206f6620505143
aad: 436f756e742d323536
nonce: ff2b9a604a84754614e9e672
ct: ca0612fa2d3b4ff5c6daafddbc9a359efd44ca3ffe2385d63ba1b4fb5b75b89d
e55355dc4132399d3e7ae2676c4fb52418df
]]></artwork>
          </section>
          <section anchor="exported-values">
            <name>Exported Values</name>
            <artwork><![CDATA[
exporter_context:
L: 32
exported_value:
0d15e6f37d0791a924c5b8a5c766db83d95703ddae889e6240c73926168ae6a8

exporter_context: 00
L: 32
exported_value:
6f7bc144a46519b718c93a86a4ce74dad186816c88791eeee4f39fd0a2dbcef2

exporter_context: 54657374436f6e74657874
L: 32
exported_value:
3a0064f88b02de081e9d5f4398093e016b00b01816db91f0686d50330a9886b2
]]></artwork>
          </section>
        </section>
        <section anchor="psk-setup-information">
          <name>PSK Setup Information</name>
          <artwork><![CDATA[
mode: 1
kem_id: 48
kdf_id: 1
aead_id: 1
info: 486561722068656172
ikmR:
3cb1eea988004b93103cfb0aeefd2a686e01fa4a58e8a3639ca8a1e3f9ae57e2
pkRm: a3aa882fee0de0059cec0569c8e1b4872fb6cb4d82361b72ee1148dc7ddc0c
2b210747403222b16597f4881d694c12366c53fde2b3d346b7ee87b16dd42f44ec59
4cea6ba78b256092cbbc16baaf6ccc46f2386da22de9d142f593739eb9c245018e0c
61975514ac42639d3c5b0299b772acd59d55520a5d660f135075e33a673fd5b9e2d5
6803889fc62b0362f8cbe9990cb36b4cdef17586c8cc58d72d84fb9398f1c1efb0a6
282508083c23965a9851acb89afc723e7a6c60bc4007a41ad1950c4590a2f8d2bb3b
832f5db1707ad8bad1c4c426aaa7da97b34a921283415851f19b0f01ca3924754dba
6596f9329454b1e3d9b5f357a66c59bf5fc4a045908b5eb107d3302f0cb9be0af958
4846c1475b92d3c16051935dc7411acaa64c80c836b0643fd72b38cb0a33feb11f48
13b66f705268b3838b8974e28c12b4f9bbc8623c936b32a015262d4a33172b7f3a69
b6c2fab5a3c18ffdab2927e77598d1556d51a8559550c251796290b617ac9804167b
d9a76e9d8bba64059d165acfe2483e9ed0cbc11cb71dd148776aa1cb862ce2b1026e
773600d101a300671a70710a877a5c1732275c362085b2b8cc66206b3ec37c82ac87
3d1ec1862a8aa457fc9776960b396c23768c931cdc77731792c569c2088c52ddb5cc
0c90ab9187c1e0ca2c98818859aa86fe44801be483cc1469d636cd3e019267c1cc68
4640359ca67c5abd1dc100c4d3c5924acf1b988d3b5019e7b06ef238412b7608dd23
115c6047a59b4b1d7a731126925728c645c140aa4704c1b808b6c401be736bf18bb7
d654342c6576236565c6c5b0727b25ae773c5fb76be794304dc1b672aa5909659b6b
b8a1f430a141882b0f9753662794e625885782154dc148e632b6b2079087958d83c6
c82cf55a47eb4ed819a409d94ceb0c74e8d497b95975a0a5c659f5bf0a033d2adca9
8a693304413fff95342319a09fd62f263b91a2c6540d2196dd2ba90dd113042428ae
eb15156c03949660776b80bc1501b0d80a946a623906291ed3668f3c99c1889d3ae3
c59819c38f6b0c46558c2ca520c2107c166452b917cea53bb50c4cb839a99f60e54e
9236c6a419a8de5508f4e3545409499b97939ee940a9d48ed5547003350e391b4c96
d657cb395b5c035370e9c8ece32c83b3cff347ca16bb1e2943669f370f48e70462d4
369a07804bc09fcf399bc2d11b47b0370660916944a179423519a310cc0737407c55
ef09255530c7ec817999c95e20aa23f8f6782aa820d34c89c2299ff0ec9a9021b6f7
dbbd19503fa6f170d8770e12875d558bbb2ca66fd1136e0e5729ef30346109cd289a
1ce0c531a493581ed64533e1749fc818b85ab664255bbfe4a641f6bdf43ac1695c28
ab2b58b3bab5bed5893439455b669b63d65ceff75b8c5857f4ba5cf767cf57aa8e28
691cc6dc67fca434e3b1560c6c53ce37c2a2f14764c1cf1e5697cd8757a544b05b76
6f4400cef7ecc46ec29a1d679d7fe385c4366579db06d1d840c9911fab8b6b5df203
5cb95410f79b861411b4eb5a4119208f8872674639617452f6b6394c94c6d6f5b833
690dd98406b5e7c0827b1a3617a03ba90c3d185a954252f1ba5b157a3f61749548e2
81fc543dec205e757932bcc717b99b7df7123500f3bcc660c080093b3fbac56ff51b
9c3b037f76e3f43c0e46b5588cf617f4de85044390a9947daacba87cd5
skRm: cf61f1a7b05c83f9c2a4b27dc0e9bdbf4e52ba1bbd906cb3776ac12268a9f4
d0c348342d192f0458ab53d19c1dc135d11b48978c878bca6d7d1bc91428259e43aa
dc9700b76aa9aa66a65db91a77d72513e40697226557b53400bb6752fb4e11a5ba2f
e12644698a48c9948ec121cc9c9ce7384c65f798012c9df8f5ac0cd371d7d19d9a24
c30cb0909c665e43c89328735fe95a62653352fad3cfe6330b436a4f72c9ac9323ba
bd912cf5970222eb0dd178c810bcc79beba0813039ec4333c33b13d4cc5183b6b14d
c09cb9604d46242353a1a1df82999e4a4929f28f498c330d552ac64156cf123cceeb
bccf81b2fd86218f2a9112040943a359d7a858cd641467e54b25f03d66b9a150fbcf
3f19bbd1791abec47269b2a72f4083a79c2559fbb6d0500208a78baa7392874443c3
9c38577b4c40db6220ca5c84b148ffb344164c723df1c0fb37ae52c0854bea023e2a
45efaa8869c924ecf360008607e7079187978fdac30e8b76a3110349de272b25f549
0dc87e3d8caf59a5a51a57230ea702dfda0f5d2c0fe94442254834b0f6aa71852601
a8c5b7b211f108c1de2b1092e9b89df4a9feea882aa00ab97235940924e8a81d8f83
597f72383f7a1b99c3c8481953be917fef0b44e32b0aa1f862eedc8d0d94030ae92e
73097cde1b34de9b8279293322e0b5f9564395cb4998810818544ad2025018c40deb
f0b97bca2f1d861f8d5b51a2a84f35503cb37112b280ad0a4c99a2eb9c43300ce7c6
6eb89cb4443a44edc40869b8c2d90c5d484554557c408da7b46752bec14876815334
b783207f60943d1738b5183d64394e27bb8f1dbb6ed9c58aa338171967bf5a613e91
94c13395573615cee02012438a68aa104afd56a943d05caefc7f20a0104e2cced2a5
191a1a68fe431920e1844a8154fc42a73d70c82f26846ec332fda50c340c1c503796
5daaccd3cacfcab3c85a7516d712890fd6a2b1f5cb7c745cf1798dc0a49ed7571763
0c78d56bb8db272a85a009b2685ca9f4840c948226d224de1a0385565e569b8901c4
508ae7b9214b88b6c2ac63807710d85e593a01ba20541cd03fa8364b4cb79f110745
b30818521a7d0b6015a20483dde33188e94fc4aa224558bd53d384a9f6916964bbef
0b0770b11e7b4117f41639bbe0c9ce119c8f8aab451608c2f06a8cd85f37519b7e3c
1f9f07a6449059a972260cf80c23e52fe1b559e11c723b2618752672bfab67305358
e7f048960475f1c720d8ba5fe4883981065c462c5062757bddd2666de67265990d00
53229693a8bfd8811c84494853095c875639dcbcfcc02785910e35643f5bb4b0aa59
af7a86ae94dcc01f952eb1d151c4ba1aa4da02c100b461904229f7b11aac35d307ab
187255baa32eed32b3b262aaf2db6019089ad4250079280a0efb109ab27a364135ac
3067ace5c82dea1fafb04dfedba9fabc196832878eb7b4314556e8aa8210e2c72959
723e23176b703d4db42aabba62229790f6a743a2ec3c43dc8dbe0b4c36dc2323ec0e
f21c116941b43bb12763460eed032a7a039185e36dcbf69d88f645e6728d3ba79dae
0a25ddd4c3a8bba8334aa8fb6658a9dca99a8cc6362745d6080b0fd8af6af71e9f75
2d7b763035ec40c0fc98326081ea4c36cdf992e73a16719b9fb7c06e6c1bb7210747
403222b16597f4881d694c12366c53fde2b3d346b7ee87b16dd42f44ec594cea6ba7
8b256092cbbc16baaf6ccc46f2386da22de9d142f593739eb9c245018e0c61975514
ac42639d3c5b0299b772acd59d55520a5d660f135075e33a673fd5b9e2d56803889f
c62b0362f8cbe9990cb36b4cdef17586c8cc58d72d84fb9398f1c1efb0a628250808
3c23965a9851acb89afc723e7a6c60bc4007a41ad1950c4590a2f8d2bb3b832f5db1
707ad8bad1c4c426aaa7da97b34a921283415851f19b0f01ca3924754dba6596f932
9454b1e3d9b5f357a66c59bf5fc4a045908b5eb107d3302f0cb9be0af9584846c147
5b92d3c16051935dc7411acaa64c80c836b0643fd72b38cb0a33feb11f4813b66f70
5268b3838b8974e28c12b4f9bbc8623c936b32a015262d4a33172b7f3a69b6c2fab5
a3c18ffdab2927e77598d1556d51a8559550c251796290b617ac9804167bd9a76e9d
8bba64059d165acfe2483e9ed0cbc11cb71dd148776aa1cb862ce2b1026e773600d1
01a300671a70710a877a5c1732275c362085b2b8cc66206b3ec37c82ac873d1ec186
2a8aa457fc9776960b396c23768c931cdc77731792c569c2088c52ddb5cc0c90ab91
87c1e0ca2c98818859aa86fe44801be483cc1469d636cd3e019267c1cc684640359c
a67c5abd1dc100c4d3c5924acf1b988d3b5019e7b06ef238412b7608dd23115c6047
a59b4b1d7a731126925728c645c140aa4704c1b808b6c401be736bf18bb7d654342c
6576236565c6c5b0727b25ae773c5fb76be794304dc1b672aa5909659b6bb8a1f430
a141882b0f9753662794e625885782154dc148e632b6b2079087958d83c6c82cf55a
47eb4ed819a409d94ceb0c74e8d497b95975a0a5c659f5bf0a033d2adca98a693304
413fff95342319a09fd62f263b91a2c6540d2196dd2ba90dd113042428aeeb15156c
03949660776b80bc1501b0d80a946a623906291ed3668f3c99c1889d3ae3c59819c3
8f6b0c46558c2ca520c2107c166452b917cea53bb50c4cb839a99f60e54e9236c6a4
19a8de5508f4e3545409499b97939ee940a9d48ed5547003350e391b4c96d657cb39
5b5c035370e9c8ece32c83b3cff347ca16bb1e2943669f370f48e70462d4369a0780
4bc09fcf399bc2d11b47b0370660916944a179423519a310cc0737407c55ef092555
30c7ec817999c95e20aa23f8f6782aa820d34c89c2299ff0ec9a9021b6f7dbbd1950
3fa6f170d8770e12875d558bbb2ca66fd1136e0e5729ef30346109cd289a1ce0c531
a493581ed64533e1749fc818b85ab664255bbfe4a641f6bdf43ac1695c28ab2b58b3
bab5bed5893439455b669b63d65ceff75b8c5857f4ba5cf767cf57aa8e28691cc6dc
67fca434e3b1560c6c53ce37c2a2f14764c1cf1e5697cd8757a544b05b766f4400ce
f7ecc46ec29a1d679d7fe385c4366579db06d1d840c9911fab8b6b5df2035cb95410
f79b861411b4eb5a4119208f8872674639617452f6b6394c94c6d6f5b833690dd984
06b5e7c0827b1a3617a03ba90c3d185a954252f1ba5b157a3f61749548e281fc543d
ec205e757932bcc717b99b7df7123500f3bcc660c080093b3fbac56ff51b9c3b037f
76e3f43c0e46b5588cf617f4de85044390a9947daacba87cd5137b60651b30bf805d
a1597faef1bc8b2645cda273144c4af1d13eaa2ad9101c7b58b14601aff81754afc7
76f8b7f7b9324d420b66706b96ea7f99f8fa11bed3
ier: 35b8cc873c23dc62b8d260169afa2f75ab916a58d974918835d25e6a435085b
2badfd6dfaac359a5efbb7bcc4b59d538df9a04302e10c8bc1cbf1a0b3a5120ea
psk:
7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef26
psk_id: 6265666f7265206576657279626f647920666f72206576657279626f6479
20666f722065766572797468696e67
enc: 1d06980e46fd3842db6b87226231eedd2cc9684ee98a1d9d902bd9300e2c4d4
1b64fba47a50fe32dd0df3b0a75801c11022cd98a6ff5a83a8472ade82bdd6f1e8a6
5a94a88523ada0d8275165f707f1067a6a576e54525d9141e95223f5713456bda7ec
5eb558adfc6b7f0d80de46222579a3274e45ab43fad14f7e9855a872d2716e8dc78d
4c12027bef3184904476c8961552fd031361358f2d9deae8ad98194047a142229476
12972574c57514266e9e67a3b6dd89972cc8a0882be7474f4923549dfcd944dcbe58
b088079aa8b70c8f291cb4e45066bad4a832ccd8f40e51861f7a25b6a2358842f1bb
e8108a6a6f0ae93153a2e7f9f53e180a90532531a632367b81bf08ed97effcf0140d
d0e92cc438f6be7e6f3d97a9f7787f7e3981f971617f0bfb618caa7db1e453f33a38
6c3863b16d462229c41f4946b49e4e49c27e0f35d77e21304b6ad238a55a51e9e370
dd39e713d626044fb970bb7c2af7d7b9cb9004394741a0ea2de592816359006f24ab
dfc2aa890720b00b2f7b8bb240120f22bdb84f9fc5c8fdc7ca7047ae633868c184c4
d75e9e107eb9c6d8fe879415926457d818bc31e88b87a5881584a5650859e88b06fa
a2cfe1bde95dfa344af14f214cedecde4d89c87334c33e2d7ee3ab40d5df396cf0ff
5a99588e0dcd205f1d876b380b963f5baccc0baeae569892a8d252f5eeeb7c751f66
3eb906ac99a165656224281add3ab271ff4f406b6932cbf1afff62109794f52ff3e7
23f5cdd706e3715d1d2d421bdac73fa047b5d9761569534fb2dd57b86a608f79db7d
4ab99847490e76eaf0c683bdc54d12f2f2664a79de6a2f25bec3f43584f98ec41ad3
fb19ba5ba936c3c893e9c0994b412ba3d07329086c20b04e1cd1d9b4f24a82f8c1f7
b5db58b4056a4b4e27b60c957f5af8081bffab98d8455cab97e35042ed636c995931
fd304b3d02fcf545df360cc421be64adc3d7a121ea75ab3440a9eba74fba1c5b40bd
b66b54583ff2f76304ccaeae99ed94fb332d30d771fe0e45acb9e966f497b1629f5a
5df15cea507d2fd1aa045a171e84bec932e4049639477f16fb9afdd107668f9b3531
c3c7eb1d67753ac652c575b526e6f2965f1e4500e99f38ae1d34bce151a68e278f14
405ad76f580b549d025b03be98b6a737f10238b9f84f1694173544ba2c97f811a174
85129a146084bc5382e2086aaf51b11a4918bdb5485bf28a9be2d2c9d69468268fa0
4fa071c39942b43a0caf561278cfc1b47781fa9ef559f86b2dad703141b78b7ddb35
c9c9ff4c1134580da26367dbf3db7eaf039dfbae238959c4cf55d40d78a2c5597ba0
38f2be5f994d60c79e8a92121fb0488eef9690d550ef9fa40b1774221aac8c8c1dcf
97faa07c28e840feb9daf0bf3bed277a6e10a33490c0bee7e5fa318638f5b80a2272
700e591ffc14985d0ed19876725c2bec9356b45ca96d295e30bce86effc626a2bd78
39af05ae373801af510cfb378ce42088607909c91ceb4a90e4d7b2b6288b9cdfa262
570ffda8692b58f0b05a7c7899a717a3a97b6e64489f56323b000793f807ca75ca99
1
shared_secret: 1368d71518fadbe42fb75fbd356e016b0aaad6b4d3d91ce7f2070
73e4fb08c537217aba238aea92a7f855820518a8342b3a31f82ebbcdb479f33ad82b
dcdc953
key_schedule_context: 011c0e82b54d88402f8c14c546eb2c5d2ddf5c0ad00953
b8c7917e143a660122927584e32e844cdf74d17b4ee224cc521bbc8bed221f21f34f
8ccc9842772686cb
secret:
2398d859cca13a8e024a4303015d07b426f886cfb160104808d46afa3ed65c5d
key: 2abc7960081169220e5316e8b4ca25c8
base_nonce: 9f4404e9a8a83dcdad85aaa4
exporter_secret:
37c64a38386a73522e517063be8e5dbac2dda13748e7e0204ef4781d37db91b2
]]></artwork>
          <section anchor="encryptions-1">
            <name>Encryptions</name>
            <artwork><![CDATA[
sequence number: 0
pt:
546f2074686520756e6976657273616c206465706c6f796d656e74206f6620505143
aad: 436f756e742d30
nonce: 9f4404e9a8a83dcdad85aaa4
ct: 59ae4c0fe132882496ee546c59db8887d0ffa1e81c024f9f306e336c8b515aef
c100de05caad51b224b8446424371610e94f

sequence number: 1
pt:
546f2074686520756e6976657273616c206465706c6f796d656e74206f6620505143
aad: 436f756e742d31
nonce: 9f4404e9a8a83dcdad85aaa5
ct: 12ae854754ecf26efccd9a3d9006ccea7e58394314ac63537f71fa373475c9b5
def50550bd386a62a9f93dbb482aad08b83d

sequence number: 2
pt:
546f2074686520756e6976657273616c206465706c6f796d656e74206f6620505143
aad: 436f756e742d32
nonce: 9f4404e9a8a83dcdad85aaa6
ct: 44dfad98e654637c47ea943787622c39cff096515d95124947b93962d570fb09
8a725a681c00bd95329ae7c87e7476a14c23

sequence number: 4
pt:
546f2074686520756e6976657273616c206465706c6f796d656e74206f6620505143
aad: 436f756e742d34
nonce: 9f4404e9a8a83dcdad85aaa0
ct: b4daec06cb05cad7987257b000662e329879885981431d8758167449912f4862
73621502cb6b8917259d43c0741c2221157f

sequence number: 255
pt:
546f2074686520756e6976657273616c206465706c6f796d656e74206f6620505143
aad: 436f756e742d323535
nonce: 9f4404e9a8a83dcdad85aa5b
ct: a45db83de0836912b692a3ceb870d4ada3c59813031e52b7efd511bdb3766d70
94c556ca067adefea6c1690c226a12ddd7d0

sequence number: 256
pt:
546f2074686520756e6976657273616c206465706c6f796d656e74206f6620505143
aad: 436f756e742d323536
nonce: 9f4404e9a8a83dcdad85aba4
ct: aa047d5fa79b00a1d70f8044136c3717eeb86913e50092784b750020a51f410d
b12e47de6a7bae1596e6d21347a82cdc5ecd
]]></artwork>
          </section>
          <section anchor="exported-values-1">
            <name>Exported Values</name>
            <artwork><![CDATA[
exporter_context:
L: 32
exported_value:
887a3f1c8097a127f3178ada5c83ba8c3c335b45b4b4be18a7885b669f7ba1e5

exporter_context: 00
L: 32
exported_value:
faf29bee28fb70c380b1495afec1f0f3ab26552b3c9b1ae4beddfd005f388562

exporter_context: 54657374436f6e74657874
L: 32
exported_value:
4e8ef9bdec7cec015c62d863681245dd630ed8c9debccc5bbea1d97e1c651261
]]></artwork>
          </section>
        </section>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+2d63Icx5Xnv+dT1FIflvASUF6qKqsYM/ZQImVpdOOQ8i0m
HIq8Eh1sdGO6G6RoheZZ9ln2yfZ3qrpBgAQteTAOb2zAZph9qcrKPHnO/3Kq
iz4+Pla7xW5ZHjb3/mi7zoxfvoll4/vh8SbUndbN6Zu4WeTmfL3dHf/HRVjt
Ls6aL5983dT1pvn86ZdP7qkQ46a8YoDT85fl+If9+VnreyqFXXmx3rx52CxW
da1UXqdVOONiWUY/fl22u7KJIayOU928OH53gGPt1PYini2228V6tXtzzplf
PPvuM7W6OOOghyoz/kOV1qttWW0vtg+b3eaiqO0urPL3Yblelf0nzM6psCmB
WcoA99Tr9ebli8364pxPPt28Od+tm8/Wm4uze+plecOX+aFqjpuXMhd5cXX5
8v6HKVbySuasXpXVBRNpmpuHbJp57veelW0Jm3Ta/FaOky/OwmLJF7L8f1mU
XT1Zb17I53KUhHS3O98+/PhjOUw+WrwqJ4fDPpYPPp4H/Pg3RQ75frnY7v5Z
BpMxXix2pxeRUeI+0B//srDLuUsiu91dmcFhjJN51JPF+heO9gsPOzndnS3v
KRUudqfrjUSfWTTkDbv6ycmTk+YPlwNMX9SL5XLOpU/C9t0viU5YLf4SdqTN
w+bT5foiV+JXpi/LHPMYtv+SLr85SeuzwzXfDv3p6YaArs9Py6Z5xBTW6/yL
x0/h9b+clnC+WL2Ii932ZFV2SqnVenPGaa+mbHn22afet8P+5WgGLS+//NMn
T56R6MePT6ZIbdPp6xDL8ZyMSirpyhiffvv1J1988+TZ8/mM9cVqS/ruTuco
vyxnx6wsLlZls+Xoz//0ybMvHs+HSh4d75bb47nEj3PZLl5I/L776vnxH99O
Qg65sntX9oxjf/v5UzMtgBwPmxeFlDlkTF4vpjQ1+sRo7T8e/XDsjp0Zj33f
8br73s/nzfgjoPLplak2zVTdjdVmmN5eZsb0n+P93/sU+eyk+e0igASXH887
+FnJZbNI6+vfvn/y5+VCKv2dc5eLH6598855n5w0T9dlR2TY5HdO/qRsdptw
dv2ACVx/77S9OWLn/3GcNm+Ar+V2ity04x8ThjC/PN6el7SoizQl3jEYssru
2Gpr9KDbk/Ncrwb002d/ev7dI/ZyuuqD5tESKKZ4z5rnV4dpHq1y8/zi/Jys
YZbN43W6OCur3fzl/VfshrxwJ9oe/fw+PDtpHr0Kq78sbv76X0+aT9bbm7/7
6qR5fJHCB74FAb5cLHd/ufnb706ar8r5erHa3fz97/n+zQUlf1pebV+++eDk
nqfTsEovb/7+6fS91OLN3/+W78ti+aFseczXu3K6LM1HzXffPv62uViRmLnw
bbMptWzKKpXrmW/NDEhTwR8i/vTxZ/+tKaOOj4+bELekawKivjtdbJuzcrZu
cqkU47a5URg8aMKHtMEDdRAHzf09rh2dNNO4UuR5zZir9a7ZzknX7E7LlFQk
ncyz5OaMsGzVuk6DnMwzPFvkvCxKfdR8sdpt1vkiyYp4/1Hz9Ro0DPPb7xiM
aYflrDEmnTJNveHy5QeiIRcg5MSgPZHDN0W+Co3gH693svDz5frN9XWlidFf
bML56ZsGzl0uGHJHtsj/7Bho3Zxv1mfrnewnBb8+L5sQF8vF7k3DQuSMN83i
7HxZLotr+2AuVwlM3ldds9+vIjM634BAZyxm8+bGWCNVmvBiU6YhT6ZQfENc
mdP1cErUf/zo+TFBly9+UuoyIlxkGYiGHCILudwddXV3tjLhdFwgwjOWtZyu
XH6QYnlR1HReWC7Xr7fzrlNnXBXQeLyoLOX487JcnjGr+XMutVUwYnN/fS5h
CMujm7Zf1gMhrF7J5wSLZeXmsaTkYno/b7VMROTatrn39e+ef3fvwfx38823
0+tnT/7td188e/JYXj///NFXX12+UPsjnn/+7e++evz21dszYdavn3zzeD6Z
T5trH6l7Xz/6E9/IrO59+/S7L7795tFX9ySxru9nmFMq7tOCLZUVgnIsMW0W
cU7GTz59+n/+t2mbH3/8H1SMNWb86af9m8H4ljevic98tfWKTJrfErQ3Kpyf
k10yCnuA7DhfCBpw7LbZnq5frxpJcaL5q3+XyPz5YfNPMZ2b9tf7D2TB1z48
xOzah1PM3v/kvZPnIN7w0Q2XuYzmtc/fifT1+T7607X3h7hf+fCffrMEtJpj
M/zm12qfQkDbAS2+WElQNrsHN6OalIQk/Hkgy5eFcE6KZMYWyvjx52Tv/fnU
B83nXz7+7Jg42K4/Yrf2WDft3F7a/fSTki179yo//jiJvJ9+eqheC+aA/OsM
+W4FKs4v4nKRJLMfgAACbGV+kxaTEN2VH3bbadjtKdnFXyWRVdsp1bYTxDDt
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

-->

</rfc>
