<?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.43 (Ruby 3.2.3) -->
<?rfc tocompact="yes"?>
<?rfc tocindent="yes"?>
<?rfc compact="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tcpm-tcp-ao-algs-08" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="tcp-ao-algs">Cryptographic Algorithms That Produce 128-bit MACs For Use With TCP-AO</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tcpm-tcp-ao-algs-08"/>
    <author initials="R." surname="Bonica" fullname="Ron Bonica">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>ronald.bonica@hpe.com</email>
      </address>
    </author>
    <author initials="T." surname="Li" fullname="Tony Li">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>tony.li@tony.li</email>
      </address>
    </author>
    <author initials="P." surname="Chen" fullname="Ping Chen">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>ping.chen@hpe.com</email>
      </address>
    </author>
    <author initials="P." surname="Kumar" fullname="Prashant Kumar">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>prashant.kumar5@hpe.com</email>
      </address>
    </author>
    <author initials="R." surname="Thomas" fullname="Reji Thomas">
      <organization>Arista Networks</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>reji.thomas@arista.com</email>
      </address>
    </author>
    <author initials="A." surname="Sujeet Nayak" fullname="Sujeet Nayak Ammunje">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>sua@cisco.com</email>
      </address>
    </author>
    <author initials="A." surname="Banerjee" fullname="Ayan Banerjee">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>ayabaner@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="01"/>
    <area>Transport</area>
    <workgroup>TCPM Working Group</workgroup>
    <keyword>TCP-AO</keyword>
    <abstract>
      <?line 82?>

<t>RFC5926 creates a list of cryptographic algorithms that can be used with TCP-AO. This document expands that list, adding two Message Authentication Code (MAC) algorithms, HMAC-SHA256-128 and KMAC256-128.  For each MAC algorithm, a corresponding Key Derivation Function (KDF) is also added.</t>
      <t>The MAC algorithms described by this document produce 128-bit (i.e., 16-byte) MACs. When 16-byte MACs are encoded in TCP-AO, the TCP-AO consumes 20 of the 40 bytes available for TCP options.</t>
    </abstract>
  </front>
  <middle>
    <?line 88?>

<section anchor="intro">
      <name>Introduction</name>
      <t><xref target="RFC5926"/> creates a list of cryptographic algorithms that can be used with TCP-AO <xref target="RFC5925"/>. This document expands that list, adding two Message Authentication Code (MAC) algorithms, HMAC-SHA256-128 and KMAC256-128.  For each MAC algorithm, a corresponding Key Derivation Function (KDF) is also added.</t>
      <t>The MAC algorithms described by this document produce 128-bit (i.e., 16-byte) MACs. When 16-byte MACs are encoded in TCP-AO, the TCP-AO consumes 20 of the 40 bytes available for TCP options.</t>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</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 BCP14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="algorithm-classes">
      <name>Algorithm Classes</name>
      <t><xref target="RFC5925"/> requires the following cryptographic algorithm classes:</t>
      <ul spacing="normal">
        <li>
          <t>Key Derivation Functions (KDFs)</t>
        </li>
        <li>
          <t>MAC Algorithms</t>
        </li>
      </ul>
      <t><xref target="kdf"/> of this document addresses KDFs while <xref target="mac"/> addresses MAC algorithms.</t>
      <section anchor="kdf">
        <name>Key Derivation Functions (KDFs)</name>
        <t>A KDF converts Input Keying Material (IKM) into cryptographically secure Output Keying Material (OKM). In the case of TCP-AO, a KDF converts an administratively assigned Master_Key into a Traffic_Key.</t>
        <t>KDFs have the following interface:</t>
        <ul spacing="normal">
          <li>
            <t>Traffic_Key = KDF_alg(Master_Key, Context, Output_Length)</t>
          </li>
        </ul>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>KDF_alg is the KDF algorithm being used.</t>
          </li>
          <li>
            <t>Master_Key is a variable length pre-shared key (PSK). It <bcp14>MUST</bcp14> be at least 256 bits in length.</t>
          </li>
          <li>
            <t>Context is binary string containing information related to the TCP connection, as defined in Section 5.2 of <xref target="RFC5925"/>.</t>
          </li>
          <li>
            <t>Output_Length is the desired length of the Traffic_Key. In this document, the Output_Length is always equal to 256 bits (i.e., 32 bytes).</t>
          </li>
        </ul>
        <t>This document defines two KDFs:</t>
        <ul spacing="normal">
          <li>
            <t>HKDF-SHA256</t>
          </li>
          <li>
            <t>KMAC256-KDF</t>
          </li>
        </ul>
        <t><xref target="HKDFSHA256"/> of this document describes HKDF-SHA256  while <xref target="KMAC256KDF"/> describes KMAC256-KDF.</t>
        <section anchor="HKDFSHA256">
          <name>HKDF-SHA256</name>
          <t>HKDF-SHA256 uses HKDF <xref target="RFC5869"/> and the SHA-256 hash-function <xref target="RFC6234"/>. It  executes in the following stages:</t>
          <ul spacing="normal">
            <li>
              <t>Extract</t>
            </li>
            <li>
              <t>Expand</t>
            </li>
          </ul>
          <t>The interface to the Extract stage is:</t>
          <ul spacing="normal">
            <li>
              <t>PRK = HKDF-Extract(salt, IKM)</t>
            </li>
          </ul>
          <t>where:</t>
          <ul spacing="normal">
            <li>
              <t>PRK is a Pseudo-random key, to be used in the Expand stage.</t>
            </li>
            <li>
              <t>salt is an all-zero byte string whose length equals 32 bytes.</t>
            </li>
            <li>
              <t>IKM is the Master_Key argument provided to the KDF interface.</t>
            </li>
          </ul>
          <t>According to <xref target="RFC5869"/>, the goal of the extract stage is to concentrate the possibly dispersed entropy of the input keying material into a short, but cryptographically strong pseudorandom key. Implementations <bcp14>MUST</bcp14> execute the extract stage.</t>
          <t>The interface to the Expand stage is:</t>
          <ul spacing="normal">
            <li>
              <t>OKM = HKDF-Expand(PRK, info, L)</t>
            </li>
          </ul>
          <t>where:</t>
          <ul spacing="normal">
            <li>
              <t>OKM is the Traffic_Key.</t>
            </li>
            <li>
              <t>PRK is the value produced by the Extract stage.</t>
            </li>
            <li>
              <t>info is the Context argument provided to the KDF interface.</t>
            </li>
            <li>
              <t>L is equal to 32 bytes (i.e., 256 bits).</t>
            </li>
          </ul>
          <t>The expand stage expands the pseudorandom key to the desired length. The output key length depends on the specific cryptographic algorithms for which the keys are needed. Implementations <bcp14>MUST</bcp14> execute the expand stage.</t>
        </section>
        <section anchor="KMAC256KDF">
          <name>KMAC256-KDF</name>
          <t>KMAC256-KDF uses the one-step key-derivation function specified in Section 4.1 of <xref target="DOI.10.6028_NIST.SP.800-56Cr2"/>, with KMAC256 as the auxiliary function, as described by Option 3.</t>
          <t>KMAC256 and its arguments were originally defined in <xref target="DOI.10.6028_NIST.SP.800-185"/>. <xref target="DOI.10.6028_NIST.SP.800-56Cr2"/> defines a KMAC256 variant called KMAC# that has a different set of arguments.
This document conforms to the KMAC# variant of KMAC as defined in  Section 4.1 of <xref target="DOI.10.6028_NIST.SP.800-56Cr2"/>.</t>
          <t>The interface to KMAC256-KDF is:</t>
          <ul spacing="normal">
            <li>
              <t>OKM = KMAC256(salt, counter || Z || FixedInfo, H_outputBits, S)</t>
            </li>
          </ul>
          <t>where:</t>
          <ul spacing="normal">
            <li>
              <t>OKM is the Traffic_Key.</t>
            </li>
            <li>
              <t>salt is an all-zero byte string whose length equals 132 bytes.</t>
            </li>
            <li>
              <t>counter is the 32-bit integer 1, encoded in network byte order. This indicates the KMAC256-KDF version.</t>
            </li>
            <li>
              <t>Z is the Master_Key argument provided to the KDF interface.</t>
            </li>
            <li>
              <t>FixedInfo is the Context argument provided to the KDF interface.</t>
            </li>
            <li>
              <t>H_outputBits is equal to 256 bits.</t>
            </li>
            <li>
              <t>S is the byte string 01001011 || 01000100 || 01000110, which represents the sequence of characters "K", "D", and "F" in 8-bit ASCII.</t>
            </li>
          </ul>
          <t>Because the required output length is equal to H_outputBits, only one KMAC256 invocation is required.</t>
        </section>
      </section>
      <section anchor="mac">
        <name>MAC Algorithms</name>
        <t>Each MAC algorithm defined for TCP-AO has the following fixed elements as part of its definition:</t>
        <ul spacing="normal">
          <li>
            <t>KDF_Alg is the name of the KDF algorithm used to generate the Traffic_Key.</t>
          </li>
          <li>
            <t>Key_Length is the length of the Traffic_Key used in this MAC, measured in bits. In this document, the Key_Length is always 256 bits.</t>
          </li>
          <li>
            <t>MAC_Length is the desired length of the MAC to be produced by the algorithm. In this document, the MAC_Length is always 128 bits.</t>
          </li>
        </ul>
        <t>MACs computed for TCP-AO have the following interface:</t>
        <ul spacing="normal">
          <li>
            <t>MAC = MAC_alg(Traffic_Key, Message)</t>
          </li>
        </ul>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>MAC is the value to be encoded in TCP-AO.</t>
          </li>
          <li>
            <t>MAC_alg is MAC Algorithm used.</t>
          </li>
          <li>
            <t>Traffic_Key is the result of KDF.</t>
          </li>
          <li>
            <t>Message is the message to be authenticated, as specified in Section 5.1 of <xref target="RFC5925"/>.</t>
          </li>
        </ul>
        <section anchor="the-use-of-hmac-sha256-128">
          <name>The Use of HMAC-SHA256-128</name>
          <t>The three fixed elements for HMAC-SHA256-128 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg: HKDF-SHA256.</t>
            </li>
            <li>
              <t>Key_Length:  256 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  128 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA256-128 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC is the value to be encoded in TCP-AO.</t>
            </li>
            <li>
              <t>MAC_alg is HMAC-SHA256.</t>
            </li>
            <li>
              <t>Traffic_Key is the result of the KDF.</t>
            </li>
            <li>
              <t>Message is the message to be authenticated, as specified in Section 5.1 of <xref target="RFC5925"/>.</t>
            </li>
          </ul>
          <t>The HMAC-SHA256 output is truncated to 128 bits. The first 128 bits are preserved and subsequent bits are discarded.</t>
        </section>
        <section anchor="the-use-of-kmac256-128">
          <name>The Use of KMAC256-128</name>
          <t>The three fixed elements for KMAC256-128 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg: KMAC256-KDF with the default customization string (i.e., the empty string or "").</t>
            </li>
            <li>
              <t>Key_Length:  256 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  128 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>KMAC256-128 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC is the value to be encoded in TCP-AO.</t>
            </li>
            <li>
              <t>MAC_alg is KMAC256.</t>
            </li>
            <li>
              <t>Traffic_Key is the result of the KDF.</t>
            </li>
            <li>
              <t>Message is the message to be authenticated, as specified in Section 5.1 of <xref target="RFC5925"/>.</t>
            </li>
          </ul>
          <t>KMAC256-128 uses its specified 128-bit output length; no truncation statement is needed.</t>
        </section>
      </section>
    </section>
    <section anchor="seccon">
      <name>Security Considerations</name>
      <t>This document inherits all of the security considerations of <xref target="RFC5869"/>, <xref target="RFC5925"/>, <xref target="RFC8702"/>, and <xref target="RFC9688"/>.</t>
      <t>The security of cryptography-based systems depends on both the strength of the cryptographic algorithms chosen and the strength of the keys used with those algorithms.  The security also depends on the engineering of the protocol used by the system to ensure that there are no non-cryptographic ways to bypass the security of the overall system.</t>
      <t>When using the algorithms mentioned in this document, the Master_Key <bcp14>MUST</bcp14> be at least 256 bits in length. Master_Keys <bcp14>SHOULD</bcp14> have at least 256 bits of entropy, and they <bcp14>SHOULD</bcp14> be generated by a cryptographic random number generator or similar. The use of low-entropy secrets (such as passwords) is vulnerable to brute-force attacks. If an ASCII string is used, it <bcp14>SHOULD</bcp14> be the hex or base64 representation of a cryptographic key with at least 256 bits of entropy, rather than a human-readable password or passphrase.</t>
      <t>Master_Keys <bcp14>MUST</bcp14> be kept secret. ??Each party in the Master_Key distribution path is an opportunity for compromise and disclosure. Master_Keys <bcp14>MUST</bcp14> be changed immediately if compromise is suspected.</t>
      <t>TCP-AO Master_Key Tuples <bcp14>MUST</bcp14> be rotated at a rate commensurate with the strength of the cryptographic algorithms.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to add the following entries to the "Cryptographic Algorithms for TCP-AO Registration" (https://www.iana.org/assignments/tcp-parameters/tcp-parameters.xhtml#tcp-parameters-3).</t>
      <table anchor="iana">
        <name>IANA Actions</name>
        <thead>
          <tr>
            <th align="left">Algorithm</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">HMAC-SHA256-128</td>
            <td align="left">This Document</td>
          </tr>
          <tr>
            <td align="left">KMAC256-128</td>
            <td align="left">This Document</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Eric Biggers, Lars Eggert, Gorry Fairhurst, C.M.  Heard, Russ Housley, John Mattsson, Yoshifumi Nishida, Joe Touch, Michael Tuxen, and Magnus Westerlund for their review and comments.</t>
    </section>
  </middle>
  <back>
    <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="RFC5869">
        <front>
          <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
          <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
          <author fullname="P. Eronen" initials="P." surname="Eronen"/>
          <date month="May" year="2010"/>
          <abstract>
            <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5869"/>
        <seriesInfo name="DOI" value="10.17487/RFC5869"/>
      </reference>
      <reference anchor="RFC5925">
        <front>
          <title>The TCP Authentication Option</title>
          <author fullname="J. Touch" initials="J." surname="Touch"/>
          <author fullname="A. Mankin" initials="A." surname="Mankin"/>
          <author fullname="R. Bonica" initials="R." surname="Bonica"/>
          <date month="June" year="2010"/>
          <abstract>
            <t>This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5). TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5. TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints. The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes. TCP-AO uses a different option identifier than TCP MD5, even though TCP-AO and TCP MD5 are never permitted to be used simultaneously. TCP-AO supports IPv6, and is fully compatible with the proposed requirements for the replacement of TCP MD5. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5925"/>
        <seriesInfo name="DOI" value="10.17487/RFC5925"/>
      </reference>
      <reference anchor="RFC5926">
        <front>
          <title>Cryptographic Algorithms for the TCP Authentication Option (TCP-AO)</title>
          <author fullname="G. Lebovitz" initials="G." surname="Lebovitz"/>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <date month="June" year="2010"/>
          <abstract>
            <t>The TCP Authentication Option (TCP-AO) relies on security algorithms to provide authentication between two end-points. There are many such algorithms available, and two TCP-AO systems cannot interoperate unless they are using the same algorithms. This document specifies the algorithms and attributes that can be used in TCP-AO's current manual keying mechanism and provides the interface for future message authentication codes (MACs). [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5926"/>
        <seriesInfo name="DOI" value="10.17487/RFC5926"/>
      </reference>
      <reference anchor="RFC6234">
        <front>
          <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
          <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
          <author fullname="T. Hansen" initials="T." surname="Hansen"/>
          <date month="May" year="2011"/>
          <abstract>
            <t>Federal Information Processing Standard, FIPS</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6234"/>
        <seriesInfo name="DOI" value="10.17487/RFC6234"/>
      </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="RFC8702">
        <front>
          <title>Use of the SHAKE One-Way Hash Functions in the Cryptographic Message Syntax (CMS)</title>
          <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
          <author fullname="Q. Dang" initials="Q." surname="Dang"/>
          <date month="January" year="2020"/>
          <abstract>
            <t>This document updates the "Cryptographic Message Syntax (CMS) Algorithms" (RFC 3370) and describes the conventions for using the SHAKE family of hash functions in the Cryptographic Message Syntax as one-way hash functions with the RSA Probabilistic Signature Scheme (RSASSA-PSS) and Elliptic Curve Digital Signature Algorithm (ECDSA). The conventions for the associated signer public keys in CMS are also described.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8702"/>
        <seriesInfo name="DOI" value="10.17487/RFC8702"/>
      </reference>
      <reference anchor="RFC9235">
        <front>
          <title>TCP Authentication Option (TCP-AO) Test Vectors</title>
          <author fullname="J. Touch" initials="J." surname="Touch"/>
          <author fullname="J. Kuusisaari" initials="J." surname="Kuusisaari"/>
          <date month="May" year="2022"/>
          <abstract>
            <t>This document provides test vectors to validate implementations of the two mandatory authentication algorithms specified for the TCP Authentication Option over both IPv4 and IPv6. This includes validation of the key derivation function (KDF) based on a set of test connection parameters as well as validation of the message authentication code (MAC). Vectors are provided for both currently required pairs of KDF and MAC algorithms: KDF_HMAC_SHA1 and HMAC- SHA-1-96, and KDF_AES_128_CMAC and AES-128-CMAC-96. The vectors also validate both whole TCP segments as well as segments whose options are excluded for middlebox traversal.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9235"/>
        <seriesInfo name="DOI" value="10.17487/RFC9235"/>
      </reference>
      <reference anchor="RFC9688">
        <front>
          <title>Use of the SHA3 One-Way Hash Functions in the Cryptographic Message Syntax (CMS)</title>
          <author fullname="R. Housley" initials="R." surname="Housley"/>
          <date month="November" year="2024"/>
          <abstract>
            <t>This document describes the conventions for using the one-way hash functions in the SHA3 family with the Cryptographic Message Syntax (CMS). The SHA3 family can be used as a message digest algorithm, as part of a signature algorithm, as part of a message authentication code, or as part of a Key Derivation Function (KDF).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9688"/>
        <seriesInfo name="DOI" value="10.17487/RFC9688"/>
      </reference>
      <reference anchor="DOI.10.6028_NIST.SP.800-185">
        <front>
          <title>SHA-3 derived functions: cSHAKE, KMAC, TupleHash and ParallelHash</title>
          <author fullname="John Kelsey" initials="J." surname="Kelsey">
            <organization/>
          </author>
          <author fullname="Shu-jen Change" initials="S." surname="Change">
            <organization/>
          </author>
          <author fullname="Ray Perlner" initials="R." surname="Perlner">
            <organization/>
          </author>
          <date month="December" year="2016"/>
        </front>
        <seriesInfo name="DOI" value="10.6028/nist.sp.800-185"/>
        <refcontent>National Institute of Standards and Technology</refcontent>
      </reference>
      <reference anchor="DOI.10.6028_NIST.SP.800-56Cr2">
        <front>
          <title>Recommendation for Key-Derivation Methods in Key-Establishment Schemes</title>
          <author fullname="Elaine Barker" initials="E." surname="Barker">
            <organization/>
          </author>
          <author fullname="Lily Chen" initials="L." surname="Chen">
            <organization/>
          </author>
          <author fullname="Richard Davis" initials="R." surname="Davis">
            <organization/>
          </author>
          <date month="August" year="2020"/>
        </front>
        <seriesInfo name="DOI" value="10.6028/nist.sp.800-56cr2"/>
        <refcontent>National Institute of Standards and Technology</refcontent>
      </reference>
    </references>
    <?line 311?>

<section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>This appendix provides test vectors to validate the correct implementation of TCP-AO and the cryptographic algorithms defined in this document.</t>
      <t>In the following sections, all values are indicated as 2-digit hexadecimal values with spacing per line representing the contents of 16 consecutive bytes, as is typical for data dumps.  The IP/TCP data indicates the entire IP packet, including the TCP segment and its options (whether covered by TCP-AO or not, as indicated), including TCP-AO.</t>
      <t>In these test vectors, the Master_Key is equal to 0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef.</t>
      <section anchor="ipv4-hmac-sha256-128-output-test-vectors">
        <name>IPv4 HMAC-SHA256-128 Output Test Vectors</name>
        <section anchor="hmac-sha256-128-default-covers-tcp-options">
          <name>HMAC-SHA256-128 (Default - Covers TCP Options)</name>
          <section anchor="send-client-syn-covers-options">
            <name>Send (Client) SYN (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Client ISN = 0xfbfbab5a

   Send_SYN_traffic_key:

     eb 5a 40 32 e9 3e 6c 78 02 a7 41 ac 89 9a 63 12
     d3 46 a9 dc 1d 2b ed 62 e2 b6 de 94 7f 6c 5c 7d

   IPv4/TCP:
     45 e0 00 50 dd 0f 40 00 ff 06 bf 67 0a 0b 0c 0d
     ac 1b 1c 1d e9 d7 00 b3 fb fb ab 5a 00 00 00 00
     f0 02 ff ff 80 15 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 00 15 5a b7 00 00 00 00 1d 14 3d 54

   MAC:

     fc 6b 9f 5e 69 2f 0a 69 a7 92 35 67 ec 55 79 bc

]]></sourcecode>
          </section>
          <section anchor="receive-server-syn-ack-covers-options">
            <name>Receive (Server) SYN-ACK (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Server ISN = 0x11c14261

   Receive_SYN_traffic_key:

      d9 9f d0 ae be 69 c9 aa 6c 3d 60 d6 37 c5 6a a9
      b7 28 10 93 2a a9 c1 69 f6 a9 80 0f 6a 8c f0 b5

   IPv4/TCP:
     45 e0 00 50 65 06 40 00 ff 06 37 71 ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 e9 d7 11 c1 42 61 fb fb ab 5b
     f0 12 ff ff d6 d9 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 84 a5 0b eb 00 15 5a b7 1d 14 54 3d

   MAC:

     ac 1e c2 63 e1 45 25 78 88 77 69 1d b4 d7 e4 50

]]></sourcecode>
          </section>
          <section anchor="send-client-non-syn-covers-options">
            <name>Send (Client) Non-SYN (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Send_other_traffic_key:

     3d a8 19 31 9b 16 cb 05 2b 21 ce 1b 64 d2 5d 8a
     62 c4 7e fa 15 8c 7b f2 42 9f 28 8d 6d 58 f6 fb

   IPv4/TCP:
     45 e0 00 8b 36 a1 40 00 ff 06 65 9b 0a 0b 0c 0d
     ac 1b 1c 1d e9 d7 00 b3 fb fb ab 5b 11 c1 42 62
     d0 18 01 04 c4 51 00 00 01 01 08 0a 00 15 5a c1
     84 a5 0b eb 1d 14 3d 54 7a 8d b5 2a 22 51 4c 93
     de 2f 94 8a 69 80 73 0a ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff 00 43 01 04 da bf 00 b4
     0a 0b 0c 0d 26 02 06 01 04 00 01 00 01 02 02 80
     00 02 02 02 00 02 02 42 00 02 06

   MAC:

     7a 8d b5 2a 22 51 4c 93 de 2f 94 8a 69 80 73 0a

]]></sourcecode>
          </section>
          <section anchor="receive-server-non-syn-covers-options">
            <name>Receive (Server) Non-SYN (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Receive_other_traffic_key:

     d9 9f d0 ae be 69 c9 aa 6c 3d 60 d6 37 c5 6a a9
     b7 28 10 93 2a a9 c1 69 f6 a9 80 0f 6a 8c f0 b5

   IPv4/TCP:
     45 e0 00 8b 1f a9 40 00 ff 06 7c 93 ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 e9 d7 11 c1 42 62 fb fb ab 9e
     d0 18 01 00 e6 9e 00 00 01 01 08 0a 84 a5 0b f5
     00 15 5a c1 1d 14 54 3d 99 fc 54 28 2d 84 34 8f
     be 3f f5 7c 20 99 dc b2 ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff 00 43 01 04 da c0 00 b4
     ac 1b 1c 1d 26 02 06 01 04 00 01 00 01 02 02 80
     00 02 02 02 00 02 02 42 00 02 06

   MAC:

     99 fc 54 28 2d 84 34 8f be 3f f5 7c 20 99 dc b2

]]></sourcecode>
          </section>
        </section>
        <section anchor="hmac-sha256-128-omits-tcp-options">
          <name>HMAC-SHA256-128 (Omits TCP Options)</name>
          <section anchor="send-client-syn-omits-options">
            <name>Send (Client) SYN (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Client ISN = 0xcb0efbee

   Send_SYN_traffic_key:

      af ea c8 22 53 08 be e3 a0 01 a2 69 6c d2 d3 c6
      9b 47 e7 71 e7 f4 4c cd c5 6d 8b bd 74 93 d4 7a

   IPv4/TCP:
     45 e0 00 50 53 99 40 00 ff 06 48 de 0a 0b 0c 0d
     ac 1b 1c 1d ff 12 00 b3 cb 0e fb ee 00 00 00 00
     f0 02 ff ff fe f3 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 00 02 4c ce 00 00 00 00 1d 14 3d 54

   MAC:

      06 19 b9 b5 16 73 1c 24 66 8c 40 04 1e 65 f5 4e

]]></sourcecode>
          </section>
          <section anchor="receive-server-syn-ack-omits-options">
            <name>Receive (Server) SYN-ACK (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Server ISN = 0xacd5b5e1

   Receive_SYN_traffic_key:

      7b 4f d3 74 25 3a 5a 87 5e 86 86 f9 5a 60 69 1c
      3b 5a 3f 4e a1 46 8e d6 fc 9c d2 9a 5a 41 56 9f

   IPv4/TCP:
     45 e0 00 50 32 84 40 00 ff 06 69 f3 ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 ff 12 ac d5 b5 e1 cb 0e fb ef
     f0 12 ff ff e6 fa 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 57 67 72 f3 00 02 4c ce 1d 14 54 3d

   MAC:

      12 a4 eb 6d 6c e7 07 e1 d5 cd 4b 5b 74 24 78 6f

]]></sourcecode>
          </section>
          <section anchor="send-client-non-syn-omits-options">
            <name>Send (Client) Non-SYN (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Send_other_traffic_key:

      2e d5 79 59 d5 45 37 cf 3c a1 73 7d a4 24 0e a6
      38 8a d4 c2 b8 e4 c0 eb ca 06 a2 6b 00 93 8b 55

   IPv4/TCP:
     45 e0 00 8b a8 f5 40 00 ff 06 f3 46 0a 0b 0c 0d
     ac 1b 1c 1d ff 12 00 b3 cb 0e fb ef ac d5 b5 e2
     d0 18 01 04 ef 52 00 00 01 01 08 0a 00 02 4c ce
     57 67 72 f3 1d 14 3d 54 57 0f 47 ca b1 31 03 bd
     ea 02 53 a5 c3 5f fe d4 ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff 00 43 01 04 da bf 00 b4
     0a 0b 0c 0d 26 02 06 01 04 00 01 00 01 02 02 80
     00 02 02 02 00 02 02 42 00 02 06

   MAC:

      57 0f 47 ca b1 31 03 bd ea 02 53 a5 c3 5f fe d4

]]></sourcecode>
          </section>
          <section anchor="receive-server-non-syn-omits-options">
            <name>Receive (Server) Non-SYN (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Receive_other_traffic_key:

      7b 4f d3 74 25 3a 5a 87 5e 86 86 f9 5a 60 69 1c
      3b 5a 3f 4e a1 46 8e d6 fc 9c d2 9a 5a 41 56 9f

   IPv4/TCP:
     45 e0 00 8b 54 37 40 00 ff 06 48 05 ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 ff 12 ac d5 b5 e2 cb 0e fc 32
     d0 18 01 00 ff ef 00 00 01 01 08 0a 57 67 72 f3
     00 02 4c ce 1d 14 54 3d a1 88 d1 8f ec 70 47 2b
     f5 99 a9 3a 37 cd fb 67 ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff 00 43 01 04 da c0 00 b4
     ac 1b 1c 1d 26 02 06 01 04 00 01 00 01 02 02 80
     00 02 02 02 00 02 02 42 00 02 06

   MAC:

      a1 88 d1 8f ec 70 47 2b f5 99 a9 3a 37 cd fb 67

]]></sourcecode>
          </section>
        </section>
      </section>
      <section anchor="ipv4-kmac256-128-output-test-vectors">
        <name>IPv4 KMAC256-128 Output Test Vectors</name>
        <section anchor="kmac256-128-default-covers-tcp-options">
          <name>KMAC256-128 (Default - Covers TCP Options)</name>
          <section anchor="send-client-syn-covers-options-1">
            <name>Send (Client) SYN (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Client ISN = 0x787a1ddf

   Send_SYN_traffic_key:

      57 8e 81 ab c6 6b b1 02 1d 2c 97 c1 39 85 bf a4
      2b 3d e7 91 01 7f 1f 15 8e 17 a9 1d 0d cd 7f 09

  IPv4/TCP:
     45 e0 00 50 7b 9f 40 00 ff 06 20 d8 0a 0b 0c 0d
     ac 1b 1c 1d c4 fa 00 b3 78 7a 1d df 00 00 00 00
     f0 02 ff ff 26 c9 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 00 01 7e d0 00 00 00 00 1d 14 3d 54

   MAC:

      90 13 67 b3 82 47 5f 0f 3e aa ce af 06 a7 d0 71

]]></sourcecode>
          </section>
          <section anchor="receive-server-syn-ack-covers-options-1">
            <name>Receive (Server) SYN-ACK (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Server ISN = 0xfadd6de9

   Receive_SYN_traffic_key:

      16 8d 69 c0 a9 14 fe be f9 24 1b 1c d1 de e3 19
      86 cc a6 58 68 46 ba e0 f0 9d 9a 7f aa 33 d4 c1

   IPv4/TCP:
     45 e0 00 50 4b ad 40 00 ff 06 50 ca ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 c4 fa fa dd 6d e9 78 7a 1d e0
     f0 12 ff ff f7 0a 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 93 f4 e9 e8 00 01 7e d0 1d 14 54 3d

   MAC:

      b8 ef 2e 1f 29 f0 f5 8a 8b ce 3b 08 e8 14 3a 3a

]]></sourcecode>
          </section>
          <section anchor="send-client-non-syn-covers-options-1">
            <name>Send (Client) Non-SYN (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Send_other_traffic_key:

      fa a5 10 73 c7 fc 24 0a 39 58 a3 6b d0 75 f9 85
      1b e7 7a 0d 53 90 6a e7 82 60 c0 f8 19 cc 84 2b

   IPv4/TCP:
     45 e0 00 8b fb 4f 40 00 ff 06 a0 ec 0a 0b 0c 0d
     ac 1b 1c 1d c4 fa 00 b3 78 7a 1d e0 fa dd 6d ea
     d0 18 01 04 8b f7 00 00 01 01 08 0a 00 01 7e d0
     93 f4 e9 e8 1d 14 3d 54 59 c1 be 8f 96 ee 2d ad
     49 c9 0d 4f 60 be a1 65 ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff 00 43 01 04 da bf 00 b4
     0a 0b 0c 0d 26 02 06 01 04 00 01 00 01 02 02 80
     00 02 02 02 00 02 02 42 00 02 06

   MAC:

      59 c1 be 8f 96 ee 2d ad 49 c9 0d 4f 60 be a1 65

]]></sourcecode>
          </section>
          <section anchor="receive-server-non-syn-covers-options-1">
            <name>Receive (Server) Non-SYN (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Receive_other_traffic_key:

      16 8d 69 c0 a9 14 fe be f9 24 1b 1c d1 de e3 19
      86 cc a6 58 68 46 ba e0 f0 9d 9a 7f aa 33 d4 c1

   IPv4/TCP:
     45 e0 00 8b b9 14 40 00 ff 06 e3 27 ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 c4 fa fa dd 6d ea 78 7a 1e 23
     d0 18 01 00 e8 f2 00 00 01 01 08 0a 93 f4 e9 e8
     00 01 7e d0 1d 14 54 3d fa f4 17 d2 32 c2 b0 8c
     31 65 6a c8 8f 4f ed 50 ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff 00 43 01 04 da c0 00 b4
     ac 1b 1c 1d 26 02 06 01 04 00 01 00 01 02 02 80
     00 02 02 02 00 02 02 42 00 02 06

   MAC:

      fa f4 17 d2 32 c2 b0 8c 31 65 6a c8 8f 4f ed 50
]]></sourcecode>
          </section>
        </section>
        <section anchor="kmac256-128-omits-tcp-options">
          <name>KMAC256-128 (Omits TCP Options)</name>
          <section anchor="send-client-syn-omits-options-1">
            <name>Send (Client) SYN (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Client ISN = 0x389bed71

   Send_SYN_traffic_key:

      0a 14 73 b7 6e 34 d8 0a c5 dc 7e 31 07 8a 8d a3
      f9 7f 8a 25 79 95 d9 69 ce ea 2a 7f 1f 26 ae 68

   IPv4/TCP:
     45 e0 00 50 f2 2e 40 00 ff 06 aa 48 0a 0b 0c 0d
     ac 1b 1c 1d da 1c 00 b3 38 9b ed 71 00 00 00 00
     f0 02 ff ff 4a a4 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 00 01 85 e1 00 00 00 00 1d 14 3d 54

   MAC:

      8c 05 05 09 3f 3e 69 a9 81 62 4e c7 1b de c7 d0

]]></sourcecode>
          </section>
          <section anchor="receive-server-syn-ack-omits-options-1">
            <name>Receive (Server) SYN-ACK (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Server ISN = 0xd3844a6f

   Receive_SYN_traffic_key:

      78 55 de 82 11 7e fc 48 48 fd c6 c9 a7 de 50 fd
      87 74 3a 95 38 c1 a7 24 a5 f1 37 96 6c 08 ce e3

   IPv4/TCP:
     45 e0 00 50 6c c0 40 00 ff 06 2f b7 ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 da 1c d3 84 4a 6f 38 9b ed 72
     f0 12 ff ff 84 20 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a ce 45 98 38 00 01 85 e1 1d 14 54 3d

   MAC:

      e5 dc fd 62 c5 67 9d 29 17 31 9c 89 19 f0 05 6a

]]></sourcecode>
          </section>
          <section anchor="send-client-non-syn-omits-options-1">
            <name>Send (Client) Non-SYN (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Send_other_traffic_key:

      64 50 fb e2 99 2d 8a 7e f4 63 7f dd 2c b4 60 69
      34 fc c4 25 3b 12 ed 5e e6 cf 61 e4 d6 ca 8c c4

   IPv4/TCP:
     45 e0 00 8b ee 91 40 00 ff 06 ad aa 0a 0b 0c 0d
     ac 1b 1c 1d da 1c 00 b3 38 9b ed 72 d3 84 4a 70
     d0 18 01 04 02 2c 00 00 01 01 08 0a 00 01 85 e1
     ce 45 98 38 1d 14 3d 54 0e 34 9c c1 8d 69 41 d4
     3f b1 60 c5 a6 da b4 bb ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff 00 43 01 04 da bf 00 b4
     0a 0b 0c 0d 26 02 06 01 04 00 01 00 01 02 02 80
     00 02 02 02 00 02 02 42 00 02 06

   MAC:

      0e 34 9c c1 8d 69 41 d4 3f b1 60 c5 a6 da b4 bb

]]></sourcecode>
          </section>
          <section anchor="receive-server-non-syn-omits-options-1">
            <name>Receive (Server) Non-SYN (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Receive_other_traffic_key:

      78 55 de 82 11 7e fc 48 48 fd c6 c9 a7 de 50 fd
      87 74 3a 95 38 c1 a7 24 a5 f1 37 96 6c 08 ce e3

   IPv4/TCP:
     45 e0 00 8b 6a 21 40 00 ff 06 32 1b ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 da 1c d3 84 4a 70 38 9b ed 72
     d0 18 01 00 97 10 00 00 01 01 08 0a ce 45 98 38
     00 01 85 e1 1d 14 54 3d c1 ee 1d 27 a9 33 67 fc
     35 35 b1 f6 da 68 65 7a ff ff ff ff ff ff ff ff
     ff ff ff ff ff ff ff ff 00 43 01 04 da c0 00 b4
     ac 1b 1c 1d 26 02 06 01 04 00 01 00 01 02 02 80
     00 02 02 02 00 02 02 42 00 02 06

   MAC:

      c1 ee 1d 27 a9 33 67 fc 35 35 b1 f6 da 68 65 7a
]]></sourcecode>
          </section>
        </section>
      </section>
      <section anchor="ipv6-hmac-sha256-128-output-test-vectors">
        <name>IPv6 HMAC-SHA256-128 Output Test Vectors</name>
        <section anchor="hmac-sha256-128-default-covers-tcp-options-1">
          <name>HMAC-SHA256-128 (Default - Covers TCP Options)</name>
          <section anchor="send-client-syn-covers-options-2">
            <name>Send (Client) SYN (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Client ISN = 0x176a833f

   Send_SYN_traffic_key:

      c1 da af dc 82 db 45 22 3d 30 08 ec 48 17 7f 09
      11 a5 91 3a 43 d0 c9 3a 6d eb a5 21 7c d5 10 37

   IPv6/TCP:
     6e 08 91 dc 00 3c 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 f7 e4 00 b3 17 6a 83 3f
     00 00 00 00 f0 02 ff ff 0a c5 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 00 41 d0 87 00 00 00 00
     1d 14 3d 54

   MAC:

      74 90 45 01 59 9b 53 71 8a d3 43 94 05 c9 f9 f3

]]></sourcecode>
          </section>
          <section anchor="receive-server-syn-ack-covers-options-2">
            <name>Receive (Server) SYN-ACK (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Server ISN = 0x3f51994b

   Receive_SYN_traffic_key:

      e0 20 78 20 1b b6 29 3a 09 cb 3d 6a 1f 89 fa 28
      77 92 f1 70 be 5f f8 a6 c5 d3 d5 ab a9 96 bc c2

   IPv6/TCP:
     6e 01 00 9e 00 3c 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 00 b3 f7 e4 3f 51 99 4b
     17 6a 83 40 f0 12 ff ff 67 90 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a bd 33 12 9b 00 41 d0 87
     1d 14 54 3d

   MAC:

      57 50 d1 27 db cc d2 97 ce 22 80 97 e5 aa 0d 50

]]></sourcecode>
          </section>
          <section anchor="send-client-non-syn-covers-options-2">
            <name>Send (Client) Non-SYN (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Send_other_traffic_key:

      00 15 82 70 f0 1b 12 11 d9 7a eb 0f 2d a1 6a 22
      84 20 86 62 5c 84 02 bb 0b 63 ae 6e 0d b0 e5 14

   IPv6/TCP:
     6e 08 91 dc 00 77 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 f7 e4 00 b3 17 6a 83 40
     3f 51 99 4c d0 18 01 00 8e 1a 00 00 01 01 08 0a
     00 41 d0 91 bd 33 12 9b 1d 14 3d 54 7c 30 78 7a
     7b 15 41 02 ef 9f f6 e4 3e 3f bf 1e ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff 00 43 01 04
     fd e8 00 b4 01 01 01 79 26 02 06 01 04 00 01 00
     01 02 02 80 00 02 02 02 00 02 02 42 00 02 06

   MAC:

      7c 30 78 7a 7b 15 41 02 ef 9f f6 e4 3e 3f bf 1e

]]></sourcecode>
          </section>
          <section anchor="receive-server-non-syn-covers-options-2">
            <name>Receive (Server) Non-SYN (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Receive_other_traffic_key:

      e0 20 78 20 1b b6 29 3a 09 cb 3d 6a 1f 89 fa 28
      77 92 f1 70 be 5f f8 a6 c5 d3 d5 ab a9 96 bc c2

   IPv6/TCP:
     6e 01 00 9e 00 77 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 00 b3 f7 e4 3f 51 99 4c
     17 6a 83 83 d0 18 01 00 1c 40 00 00 01 01 08 0a
     bd 33 12 a5 00 41 d0 91 1d 14 54 3d e2 1e dd a2
     7a 40 5d d0 4a 60 a9 ac 5f 84 03 e5 ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff 00 43 01 04
     fd e8 00 b4 01 01 01 7a 26 02 06 01 04 00 01 00
     01 02 02 80 00 02 02 02 00 02 02 42 00 02 06

   MAC:

      e2 1e dd a2 7a 40 5d d0 4a 60 a9 ac 5f 84 03 e5

]]></sourcecode>
          </section>
        </section>
        <section anchor="hmac-sha256-128-omits-tcp-options-1">
          <name>HMAC-SHA256-128 (Omits TCP Options)</name>
          <section anchor="send-client-syn-omits-options-2">
            <name>Send (Client) SYN (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Client ISN = 0x020c1e69

   Send_SYN_traffic_key:

      cc de 26 1c 40 80 79 8c b3 e6 de c2 fd 10 04 e2
      15 67 ed 9b 96 12 aa ce f8 6b 52 ed 0d 9f 9c af

   IPv6/TCP:
     6e 07 8f cd 00 3c 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 c6 cd 00 b3 02 0c 1e 69
     00 00 00 00 f0 02 ff ff 65 cc 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 00 9d b9 5b 00 00 00 00
     1d 14 3d 54

   MAC:

      1b 21 f1 0d d8 c8 60 84 f0 14 a9 45 8f de 2d 22
]]></sourcecode>
          </section>
          <section anchor="receive-server-syn-ack-omits-options-2">
            <name>Receive (Server) SYN-ACK (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Server ISN = 0xeba3734d

   Receive_SYN_traffic_key:

      05 37 33 e3 ef 40 1b d7 e9 92 f3 cb 03 8b ac 18
      a2 bf 90 91 b1 ad dd 5e f9 39 3f 3c ab 60 d4 5e

   IPv6/TCP:
     6e 0a 7e 1f 00 3c 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 00 b3 c6 cd eb a3 73 4d
     02 0c 1e 6a f0 12 ff ff af bf 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 5e c9 9b 70 00 9d b9 5b
     1d 14 54 3d

   MAC:

      d8 51 95 7a c6 27 ce 69 62 8f a2 24 69 d7 70 d5
]]></sourcecode>
          </section>
          <section anchor="send-client-non-syn-omits-options-2">
            <name>Send (Client) Non-SYN (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Send_other_traffic_key:

      80 67 5f 71 25 52 35 f8 68 d9 7b b4 a9 76 d7 ad
      c7 d5 66 d2 25 73 24 dc 2b ea 79 c2 5f d6 41 ee

   IPv6/TCP:
     6e 07 8f cd 00 77 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 c6 cd 00 b3 02 0c 1e 6a
     eb a3 73 4e d0 18 01 00 df 66 00 00 01 01 08 0a
     00 9d b9 65 5e c9 9b 70 1d 14 3d 54 a3 56 7d 0a
     8e 8f 04 66 cc 06 26 b9 1e c7 8f d7 ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff 00 43 01 04
     fd e8 00 b4 01 01 01 79 26 02 06 01 04 00 01 00
     01 02 02 80 00 02 02 02 00 02 02 42 00 02 06

   MAC:

      a3 56 7d 0a 8e 8f 04 66 cc 06 26 b9 1e c7 8f d7

]]></sourcecode>
          </section>
          <section anchor="receive-server-non-syn-omits-options-2">
            <name>Receive (Server) Non-SYN (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Receive_other_traffic_key:

      05 37 33 e3 ef 40 1b d7 e9 92 f3 cb 03 8b ac 18
      a2 bf 90 91 b1 ad dd 5e f9 39 3f 3c ab 60 d4 5e

   IPv6/TCP:
     6e 0a 7e 1f 00 77 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 00 b3 c6 cd eb a3 73 4e
     02 0c 1e ad d0 18 01 00 5e 0c 00 00 01 01 08 0a
     5e c9 9b 7a 00 9d b9 65 1d 14 54 3d 8a 58 25 6c
     40 0e f1 a5 5f 32 b3 9d 26 ff a3 90 ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff 00 43 01 04
     fd e8 00 b4 01 01 01 7a 26 02 06 01 04 00 01 00
     01 02 02 80 00 02 02 02 00 02 02 42 00 02 06

   MAC:

      8a 58 25 6c 40 0e f1 a5 5f 32 b3 9d 26 ff a3 90

]]></sourcecode>
          </section>
        </section>
      </section>
      <section anchor="ipv6-kmac256-128-output-test-vectors">
        <name>IPv6 KMAC256-128 Output Test Vectors</name>
        <section anchor="kmac256-128-default-covers-tcp-options-1">
          <name>KMAC256-128 (Default - Covers TCP Options)</name>
          <section anchor="send-client-syn-covers-options-3">
            <name>Send (Client) SYN (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Client ISN = 0x193cccec

   Send_SYN_traffic_key:

      d2 d7 cb ea 4e 15 6b 75 c8 c8 f6 42 4d 0a 71 b6
      f5 cd c9 6c 8e 0e 65 01 dc 28 98 00 2e db 51 d8

  IPv6/TCP:
     6e 04 a7 06 00 3c 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 f8 5a 00 b3 19 3c cc ec
     00 00 00 00 f0 02 ff ff 38 a8 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 13 e4 ab 99 00 00 00 00
     1d 14 3d 54

   MAC:

      30 d5 65 1a a0 ce 84 31 cb 13 bc 5e 77 9d 12 36

]]></sourcecode>
          </section>
          <section anchor="receive-server-syn-ack-covers-options-3">
            <name>Receive (Server) SYN-ACK (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Server ISN = 0xa6744ecb

   Receive_SYN_traffic_key:

      c8 f9 c7 65 d4 05 85 e7 e2 34 63 65 b1 f5 7f ac
      9b 80 1e cc d3 c9 68 a0 22 39 7c a0 00 e9 cf bf

   IPv6/TCP:
     6e 06 15 20 00 3c 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 00 b3 f8 5a a6 74 4e cb
     19 3c cc ed f0 12 ff ff f8 14 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 71 da ab c8 13 e4 ab 99
     1d 14 54 3d

   MAC:

      41 d6 0e 40 cd d6 fb 70 67 3a 4d 43 8c e6 88 29

]]></sourcecode>
          </section>
          <section anchor="send-client-non-syn-covers-options-3">
            <name>Send (Client) Non-SYN (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Send_other_traffic_key:

      2a 86 ea c4 60 ac 2a 76 52 40 1d 08 d9 41 32 41
      fb 32 15 b0 8e 42 21 9d dc 93 1c 23 2f d0 35 14

   IPv6/TCP:
     6e 04 a7 06 00 77 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 f8 5a 00 b3 19 3c cc ed
     a6 74 4e cc d0 18 01 00 7e 67 00 00 01 01 08 0a
     13 e4 ab a3 71 da ab c8 1d 14 3d 54 5c fe 00 e1
     c8 4d f2 07 0b 7d 81 43 dd 70 7c d0 ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff 00 43 01 04
     fd e8 00 b4 01 01 01 79 26 02 06 01 04 00 01 00
     01 02 02 80 00 02 02 02 00 02 02 42 00 02 06

   MAC:

      5c fe 00 e1 c8 4d f2 07 0b 7d 81 43 dd 70 7c d0

]]></sourcecode>
          </section>
          <section anchor="receive-server-non-syn-covers-options-3">
            <name>Receive (Server) Non-SYN (Covers Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Receive_other_traffic_key:

      c8 f9 c7 65 d4 05 85 e7 e2 34 63 65 b1 f5 7f ac
      9b 80 1e cc d3 c9 68 a0 22 39 7c a0 00 e9 cf bf

   IPv6/TCP:
     6e 06 15 20 00 77 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 00 b3 f8 5a a6 74 4e cc
     19 3c cd 30 d0 18 01 00 d3 2c 00 00 01 01 08 0a
     71 da ab d3 13 e4 ab a3 1d 14 54 3d 6b d0 63 2b
     84 5b eb 5b 5b 98 e6 6e 5d af b4 cf ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff 00 43 01 04
     fd e8 00 b4 01 01 01 7a 26 02 06 01 04 00 01 00
     01 02 02 80 00 02 02 02 00 02 02 42 00 02 06

   MAC:

      6b d0 63 2b 84 5b eb 5b 5b 98 e6 6e 5d af b4 cf

]]></sourcecode>
          </section>
        </section>
        <section anchor="kmac256-128-omits-tcp-options-1">
          <name>KMAC256-128 (Omits TCP Options)</name>
          <section anchor="send-client-syn-omits-options-3">
            <name>Send (Client) SYN (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Client ISN = 0xb01da74a

   Send_SYN_traffic_key:

      9e 3f 17 70 15 9b dd d9 01 51 18 13 10 e9 7e 85
      f9 84 2c dd 67 fc b6 e1 eb 66 e2 58 4a 8b aa 92

   IPv6/TCP:
     6e 09 3d 76 00 3c 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 f2 88 00 b3 b0 1d a7 4a
     00 00 00 00 f0 02 ff ff 1a 84 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 14 27 5b 3b 00 00 00 00
     1d 14 3d 54

   MAC:

      85 33 47 e6 0e bc 68 05 3f dc 02 43 5c 7d ec 8f

]]></sourcecode>
          </section>
          <section anchor="receive-server-syn-ack-omits-options-3">
            <name>Receive (Server) SYN-ACK (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Server ISN = 0xa6246145

   Receive_SYN_traffic_key:

      fa b8 f8 8f 4c 4a ed 05 ff 0d 1e 8a d5 3b 25 ba
      59 2d 0e ae fb 4b a2 70 77 3b 43 9e fc 7c 0d 04

   IPv6/TCP:
     6e 0c 60 0a 00 3c 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 00 b3 f2 88 a6 24 61 45
     b0 1d a7 4b f0 12 ff ff af 92 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 17 82 24 5b 14 27 5b 3b
     1d 14 54 3d

   MAC:

      da 1d 61 57 9f 6f c6 41 e9 98 91 89 88 5d 3b 11

]]></sourcecode>
          </section>
          <section anchor="send-client-non-syn-omits-options-3">
            <name>Send (Client) Non-SYN (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Send_other_traffic_key:

      a1 04 09 79 51 2f 15 43 c9 0a c8 f5 e7 30 9c 86
      c4 86 16 18 a1 f7 d4 ad 11 e6 73 1b dc e3 3f 9d

   IPv6/TCP:
     6e 09 3d 76 00 77 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 f2 88 00 b3 b0 1d a7 4b
     a6 24 61 46 d0 18 01 00 6e 3c 00 00 01 01 08 0a
     14 27 5b 4f 17 82 24 5b 1d 14 3d 54 25 1c 01 3f
     a6 d3 38 1e 84 c0 33 c4 da f7 2a d8 ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff 00 43 01 04
     fd e8 00 b4 01 01 01 79 26 02 06 01 04 00 01 00
     01 02 02 80 00 02 02 02 00 02 02 42 00 02 06

   MAC:

      25 1c 01 3f a6 d3 38 1e 84 c0 33 c4 da f7 2a d8

]]></sourcecode>
          </section>
          <section anchor="receive-server-non-syn-omits-options-3">
            <name>Receive (Server) Non-SYN (Omits Options)</name>
            <sourcecode type="asvg"><![CDATA[
   Receive_other_traffic_key:

      fa b8 f8 8f 4c 4a ed 05 ff 0d 1e 8a d5 3b 25 ba
      59 2d 0e ae fb 4b a2 70 77 3b 43 9e fc 7c 0d 04

   IPv6/TCP:
     6e 0c 60 0a 00 77 06 40 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00
     00 00 00 00 00 00 00 01 00 b3 f2 88 a6 24 61 46
     b0 1d a7 8e d0 18 01 00 20 e0 00 00 01 01 08 0a
     17 82 24 65 14 27 5b 4f 1d 14 54 3d 8e 7f f5 06
     98 77 24 e1 cd fe 77 ab 72 e5 00 58 ff ff ff ff
     ff ff ff ff ff ff ff ff ff ff ff ff 00 43 01 04
     fd e8 00 b4 01 01 01 7a 26 02 06 01 04 00 01 00
     01 02 02 80 00 02 02 02 00 02 02 42 00 02 06

   MAC:

      8e 7f f5 06 98 77 24 e1 cd fe 77 ab 72 e5 00 58
]]></sourcecode>
          </section>
        </section>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+182ZLbSJble5jpH7ylF6kmyMQOUtPVVZFaOtVaW6HssurF
0hyAIwIlbg2QIUVnZn3LfMt82ZxzHQABLhFUaDebMpYSBOH7ueeee90Rg8Hg
1lE6z4rZ2X21qga6Sovi1tGto2WxnJj76kF5uVjOz0q9OC9SdTI5m5fF8nxa
qTfneqlelfNslRrleqNBUizV85MHlXo8L9XPlVF/wYPqzYNXg5OXt450kpTm
4r5apouBng/05Ky6dZTN05meopWs1PlyUJhlPsAD00HnqYEzQgf10qDly/uq
Wma3jqpVMi2qqpjPlpcLFH/y6M1j9rla6ln2i57MZ7h5adDCoriv/mM5T48V
/plPFzpdymUxy8wMl9W8XJYmr3B1ObUX9WP/xQqLRYkul6tq6TnO2PEwjtLo
++pNqWfVAmVvHb3DvGGQz9Vf5uVbzKL653K+Wtw6evvufjt4FFstz+flfV4q
NeA/ShWz6r56PVQ/zmdFqu09Ox2v57Pe3XmJRn569ch+S+er2ZJz8fPpib1j
prqY3FflfKYn2TCRkn8+X5ghxrLd5JuhelZ0m3szn122tw5sa4kyw0nx5/q/
2628GqoH52bWbecVp2d9c09LD/RMZ7rX2AIFhykK7h8Umnu6muqy116pq3M9
W3Z/2dPok1lWbLRZFx6+ZeFwf8tYwTfn86mueito/lb0bku7J2UBiKoXZvkO
YKmu7UOJWoZLqeXPWsru7sLJUJ2u/mbMUr3Ql/pttyPd++pkOl3N/mY6PXpQ
VOlcnV5WSzO9vj/VSv85ZYm93fhRz0yJFrtdOLnUs40frm17E27ofsIa+s3P
5uVUL4sLc58Pv378wHPdcXMdjqL19dgLO9dRcx15ftBcj9x4fR07XnM99vy2
7DgajeT64csnQ9cZRo43+uHFk9M3w9NXw5HjDNxReOXvYfSglJpvHQ0GA6WT
almCbDiYumsqBcMsTaW0mmDF1TzHnS4H6zUHL8nBKWY3MeBuk6l3a8olKotK
gWJXU1CdMu8XIMe6DGs+Vjoj7SuAUT03VaXPjDoBT+Fp8McS7KoezDOj7oLV
73WaPVY/4c7g9KcTL4wGoH6FitVT3Ku/D5X4AKPTc3qEdVE0iSUuSwPunEnb
T82lemjK4sK293g1S+Xi7tOHj+8p9F9Pqjk7arIhJ+nNuelXiRGaKi2LBKNP
LjG67pgXG+7pbjE0w2PlRoPkcmnuibsaqr9gxM0968FA8srM4BVRaTGrJxR+
A43ba4xiVqGNSnkOV4i/BI5iDSh9AcjqZGJUjllAATVfcFCVjIDLPi2ybGL4
7Q6sbCm9lGH/eqfg19/506+/1oj4/fdPhQnV1Bn+/vv/x8e3iY878B3/vSpK
wx5W6pmena0w883g3mJC4DywULef/3z65vax/a968VKuXz/615+fvH70kNdY
gGfP2ouj+onTn17+/Ozh+mpd8sHL588fvXhoC+Ou6t06uv385K/4hWt5++Wr
N09evjh5dpvD788p52Y5J/oAZVMuSrPELOnqaL0OKPPjg1f/9/+4AQD5DzVt
A+X2C3kYX95h1m1r89nksv6Kebw80ouF0SVr0ZMJoL4olkABnq1UdT5/N1Pn
pjTDo6M//Adn5r/uq39M0oUb/FN9gwPu3WzmrHdT5mz7zlZhO4k7bu1opp3N
3v2Nme739+Svve/NvHdu/uOfJsXMKHieP/3T0a0jC6FWp6sHE11VVMJrQoHx
Q1kIxipBZj6fTObvaG57WEWlthbRr3/YZ5SVWGV1zz5EK1yHC7b9t1mOtsUe
epDJMnQF9SuWx1IXsI1ff53qFE+vf+zbtTWWO9d1BpTKVvnwCaunZV6YEpb1
ZLZYLVmcA38Oei0LPVF3nzx9fo/QnfcnA1C7VJVJV4D3y9VyZ9GXKDpEvTKp
qUYIhKE25KD7rYOgdTYtZgUFACUMqsccF2czGMhzDU1U/sKhSU80A448L1Le
koHLRJ3rC7OxgGJzuU5NvVSdcuqP7AGio7O76/qPQeEo8h5sb0f1yzMzO1ue
yyK+oyE1a26LknLZIseyhkdi2Da9zbBe/M4A6LUuoF6F8SZSO4jXDKCuS4yV
hHb31elTzhwCSBoouIM+yKASBZehQM0Vzd0WhvewjdQ9ZwtJMdMl1mdZCorx
g8bUynzkViMCGqWZaHIRJrRmaj45M4IXoY/M5MXMEtSpva3CocdV7DpO23pv
upppAccVHFQ9zJr5u4tn4dFBv3UbW7XpyTt9WSmYKZCFHrfzUPso37PeBNNm
56Pvze1IKvHdxEq9ij/hunbMsqi1T8Zda6D83f68y04bBq+69ajWXuva8BMK
r5/tNDJU1mjv9Cr49U6nWT7Q/XFV1c3VSwBRT1KAW+C04aEBnzpHrDbIG3Eg
T1LaU+UAVNA2MFy63mK2YS8Iqc5aXnv0vhbjvKQaapxua1UNduonbXEsV13B
q9dPYWXS/fqJu5WeYIlJKpsWxYfFOF5VZpXNByUanE9pD8e1AxX5VnfZdsg2
OGRxVizlxQ0O/seUc0FEYwTvzudVa28Co6oFjVSAPjWw7ZirLs9abXRRZGtz
4RK08yA2cJJCq1mFOO+ujkX02RzArQ3AbEwXC8D0UrQD8rMctpiD/RKwYFZU
C1Ny6Px5vrhsaimEsN9a1p02rFsTJDx/iYlO8MQO3kY9KLOQiV7PM8AxXUxE
aGnrM4R+arRs93x4BR7Wq7OGA/zBGg584C7W/Fg46Vg92wLEy/WC9Om+xQp/
utCTlWmUa61pNwApRdhKU6ZhyoMX9w/qGcu27NMAp2Gfho3utVNiujOwjiXM
1qQ3TfapktEI3KV1rHyqBm5mFoY1za0VABlpgYnZH/5QUoOQEFksrVq2an1m
DEOEQxa8Z2eWrToUpkBXHaITX9z5VeiK9cxn8HBLs2AXBtlan7QkVQ+l722C
oWu9TSd/8MtW/oAmJlFd3TJdF9vUq/fFpKAjbFqpvVonAHopoYbyLRW3FWDI
dC4NQCDCgEuFST2DZ6UJdVxjr3eb2Q8w7rW9b72TbkcgAmHGwHUyMTZYvGND
UVA7nsuKPEeP8ERlJP5tezrcdH0gFvr8qsW21NU0gKJPRUj2vP0HL8DQKu0t
MuhiYYMH6p9qjyCZLlOq//ztP39T/27/87h4b7Inwg4//WJt4UesyrE63eKK
q8jiRq7B7fmGtnt1E74n8TGHeoa77nE3/J3ZdKZtAh7BlHVuoUAMn0reolmH
ZmqggZm9t239+8e4IZRvp+0j6K434T3qa6jOPnbatNGdT8d18HFdu4r8xv93
v7nOcc1KpYH2rcTEhNDQDqZSIoUUghgcjqlRt58yBn/YhNuPJc62OYqT0wdP
ngj8fjSpBt9IPXU8lzUUOmmFZDuQPqQkqAZJtRZYzC7mdVYHpZr6apxLpNWP
6MCDDND426OtRE5rW3WGgymRc70ZbeZcOGUmdaoDvy90KSbKRZAqCnaoE4Kc
rEMQJpcbadAPR0Q3YcRnZmZafbFpJfjvhnjfK9o7QqyQMPRYTRGcrEp7V9Cx
R9f3W6lFfQ9SqO6gIILza2Xhpu9vB76vE/0m6k4wL1d34taRZLW48bVabi7a
tSEmO/ZHaYOhZWfajpus4RZ7sUhPztiBbaXUhu3jTezZw2A34uwuV1017Gw1
sYyP0KOuqs5j1o9M66+2fb1ObprM5pN2Oemw8RH9kNBKBXqEn23kv5EFbfzF
8rw0ZhP7nPKtrGkv+Mao73fDpg0Q31f7YIVfemv9uN6H3Fg5tX/pNjt2pVHL
glYfvdCdNg9Z4ZoEPv8qcwU7fWv4li2VEF1NgqGdcQFEXpTVsr0nglS8QHnB
1Cjl5iqxnmC5fgJxUKrLJrG9ga1ONv1aXHWe3YWprl8WVWk5KNec2nRVLefT
4n+sY6j9XR0EiFyeLpZt3gVt3b597wsCszuyLwHKur1vCpDdOZDog/hZV9Bs
bfR0wf9Ws3mDV7uuaFqUEjpYh0o2kXzKjGeBJYamqiChyjpu+vVOZRD+z37f
Tj0VMzC9gHjSJgCqppq0X007njpx0Blc/YU7sfxCK5Eb3ILt2GJbc39P7HKQ
aDrtyu4ud+PIZF5jHKjtedi9MWVKvTxrk06b5STIXG+1LUVddxLVSvU6KjtW
G3Et6oNcMtaKbK3w8jyyMrE1167eDoe4MTPqDxsiLelabZg7x2c26I9E3D2h
drnQVdVfj7qxOQQ5l8vWL5Mru16rStI7XZFRKa4yVq8jiTbkxlrGH5TOXT9f
qXrvRGTHdiH0ts4JHTercdkUQSuN3pPp0hvrWWcgZqtpggimfhScgU9VTIuJ
Li1XryzBgjgGTf4Js1Uapl6rFYSuyNSqkk042YK8WE1YGdPbnOUSGmoANko5
gqVO31Ic5gzGRLo3ZFlYzBzDXjtD4Pydm/fsFQEcBeuAwZoqQ9+NkcmWIJF3
9YRhuMAJEQMoq/PVVM8GpdGZdLwZERvm9eK8RPNWG3aWp1nPt2axrKdlqP70
JwkAqN0vm3RlBwMZtziKZCXdX+hahGIkCx6gWs0IQ5I35WcJX0PjwdrS/U3m
BHkfIU0XEC3NzojB6dRkBVYd8UyRd2tBM9WKTLhsNoete+j07c1qMTHrOmFy
Ah9MpFYSOaC6qZgav7Te8VDmqEn0ycmLkw0C5Q9yu461TFULB51lG76LC1iY
Np1xe++JvI4HfG3O6o2l+ey2unu+XC6q+z/88O7du2GhZ3o4L89+sLtNIhN+
4Hk7rB8iKoafG1+H78+X08md/s2Bf69Wvb91BPlvaFnyNAD/b/hp0P7vf60v
B/xlS+2irPiRh40fkae63m3XE7/eV3c4IiXHFf94W+b0xO4A3v693Q5N387m
7yYmO7OyyDoPPXsrs/qoxDz+WJydYVjH6plG/P2IX0Bn/zwvy0v1WBfl+ark
kYgHw+fg858MhNmxer0Cnf40X1UTCpN/mZ/PuBm4rCom3v46r86LfDUt1IsC
V5nmEwgr5+AQqJgC+DUTAPB9s839XJ/NVpX6C6FQTlYzG4dhyYsSELkozDt5
zCJyuT5MkoBi7DDfoKj6N+B9XlatX+Zu+Swr3jdJEAyZj13Yxzh+iCB0rw6T
5fhFCi/eS5SuNzJbL7jXW3bSaj3nIB1+srUBY9UNt+/hf6xOE1fWJI94dkB5
g6w4A1GCGnUGaTPV7bNilNVCp6xtAYKT7fCWNRv/xT1BUcQYiRuJDmHSt7iw
qRx7fIDy7HLBTQOZe0yKVtlqumh8+JNXP3DXUO73k1tsqeQDYLj0rVkyy59O
VlnTPItV5sxud9fJ1vrUh7qL0FioOaUbtt6rnmx0YjZf2r4183GvW3dHqdqp
ZT6os75bHrmbEXLeO67nB2EUj8Y6SbFwH/q92YR/8uoi2LLoept8E5Wy/bfx
6N2HdbwxAE8yOSgTZnPV9kDBHRY7BZLV3QeTAtN4T53+9QW+2Me7j/7973/X
1cWZPZ+o7NPqyekLhBTO+zzJE52Euv6VNf6Cin5Z1mIezrQ+pcvDh4kKNQ/u
+J4yY+UbFaUqHinHUzpWgat0qkZjNdYq8qG061KZr4JI6bHKUuVmyksU1jRC
DZ5KIpiHGgcqzllViNqyujVOIdF1v64lCJVxlOOo0FHwCU7OfuBrnisH3h3l
Y+Vo5STKSZWT1aXQITdRrjSMHmcxiyS+yhN+tIzHcdpPXSp3OCTUjM/IUW7Y
POApJ1BOqBL86yrHl8+oLsWf8MBIuiGlUHkSd+tnN9xA+ZkKg3qcWPn1BOep
ihI1zlWIqR0rL2dduMDsjj3lhxykwTyFKh6rJK1Xt8XDa5MaWvDdU4bSpUBi
cPLg6QGwsCVaWLhu6gZe5Na/1hXvR4bKxux25ihtqBzQ5xTd1lxVjDbCmkXK
j1WKIWhgoSmG6QHcXUeNfeXxB5W6LJwLYDD3WGcUGKVckyQ8ABtRSDx0sYFm
Y7eLhGa91mipUWER4rrsROCpyO3gJFljw22wgTFh3B+KjVGgdMimYU5dnFhs
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

-->

</rfc>
