<?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-bonica-tcpm-tcp-ao-long-algs-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="tcp-ao-algs">Cryptographic Algorithms That Produce 256-bit MACs For Use With TCP-AO</title>
    <seriesInfo name="Internet-Draft" value="draft-bonica-tcpm-tcp-ao-long-algs-06"/>
    <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="August" day="28"/>
    <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 and KMAC256.  For each MAC algorithm, a corresponding Key Derivation Function (KDF) is also added.</t>
      <t>The MAC algorithms described by this document produce 256-bit (i.e., 32-byte) MACs. When 32-byte MACs are encoded in TCP-AO, the TCP-AO consumes 36 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 and KMAC256.  For each MAC algorithm, a corresponding Key Derivation Function (KDF) is also added.</t>
      <t>The MAC algorithms described by this document produce 256-bit (i.e., 32-byte) MACs. When 32-byte MACs are encoded in TCP-AO, the TCP-AO consumes 36 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 is specified in <xref target="RFC5869"/>. 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>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.</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 256 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">
          <name>The Use of HMAC-SHA256</name>
          <t>The three fixed elements for HMAC-SHA256 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:  256 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA256 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>
        </section>
        <section anchor="the-use-of-kmac256">
          <name>The Use of KMAC256</name>
          <t>The three fixed elements for KMAC256 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:  256 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>KMAC256 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>
        </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</td>
            <td align="left">This Document</td>
          </tr>
          <tr>
            <td align="left">KMAC256</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="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="RFC9293">
        <front>
          <title>Transmission Control Protocol (TCP)</title>
          <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy"/>
          <date month="August" year="2022"/>
          <abstract>
            <t>This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion. This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="7"/>
        <seriesInfo name="RFC" value="9293"/>
        <seriesInfo name="DOI" value="10.17487/RFC9293"/>
      </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 303?>

<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.  It includes the specification of all endpoint parameters to generate the variety of TCP segments covered by different keys and MAC coverage, i.e., both the default case and the variant where TCP options are ignored for middlebox traversal.</t>
      <section anchor="input-test-vectors">
        <name>Input Test Vectors</name>
        <t>Input test vectors are as described in Section 3 of <xref target="RFC9235"/>, with   one exception.  The Master_Key is equal to      0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef.</t>
      </section>
      <section anchor="ipv4-hmac-sha256-output-test-vectors">
        <name>IPv4 HMAC-SHA256 Output Test Vectors</name>
        <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>
        <section anchor="hmac-sha256-default-covers-tcp-options">
          <name>HMAC-SHA256 (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:

     TBD

   IPv4/TCP:

     45 e0 00 4c dd 0f 40 00 ff 06 bf 6b 0a 0b 0c 0d
     ac 1b 1c 1d e9 d7 00 b3 fb fb ab 5a 00 00 00 00
     e0 02 ff ff ca c4 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 00 15 5a b7 00 00 00 00 1d 10 3d 54
     2e e4 37 c6 f8 ed e6 d7 c4 d6 02 e7

   MAC:

     TBD

]]></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:

     TBD

   IPv4/TCP:

     45 e0 00 4c 65 06 40 00 ff 06 37 75 ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 e9 d7 11 c1 42 61 fb fb ab 5b
     e0 12 ff ff 37 76 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 84 a5 0b eb 00 15 5a b7 1d 10 54 3d
     ee ab 0f e2 4c 30 10 81 51 16 b3 be

   MAC:

     TBD
]]></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:

     TBD

   IPv4/TCP:

     45 e0 00 87 36 a1 40 00 ff 06 65 9f 0a 0b 0c 0d
     ac 1b 1c 1d e9 d7 00 b3 fb fb ab 5b 11 c1 42 62
     c0 18 01 04 a1 62 00 00 01 01 08 0a 00 15 5a c1
     84 a5 0b eb 1d 10 3d 54 70 64 cf 99 8c c6 c3 15
     c2 c2 e2 bf 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 41 04 00 00 da bf 02 08 40
     06 00 64 00 01 01 00

   MAC:

     TBD

]]></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:

     TBD

   IPv4/TCP:

     45 e0 00 87 1f a9 40 00 ff 06 7c 97 ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 e9 d7 11 c1 42 62 fb fb ab 9e
     c0 18 01 00 40 0c 00 00 01 01 08 0a 84 a5 0b f5
     00 15 5a c1 1d 10 54 3d a6 3f 0e cb bb 2e 63 5c
     95 4d ea c7 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 41 04 00 00 da c0 02 08 40
     06 00 64 00 01 01 00

   MAC:

     TBD

]]></sourcecode>
          </section>
        </section>
        <section anchor="hmac-sha256-omits-tcp-options">
          <name>HMAC-SHA256 (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:

     TBD

   IPv4/TCP:

     45 e0 00 4c 53 99 40 00 ff 06 48 e2 0a 0b 0c 0d
     ac 1b 1c 1d ff 12 00 b3 cb 0e fb ee 00 00 00 00
     e0 02 ff ff 54 1f 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 00 02 4c ce 00 00 00 00 1d 10 3d 54
     80 af 3c fe b8 53 68 93 7b 8f 9e c2

   MAC:

     TBD

]]></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:

     TBD

   IPv4/TCP:

     45 e0 00 4c 32 84 40 00 ff 06 69 f7 ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 ff 12 ac d5 b5 e1 cb 0e fb ef
     e0 12 ff ff 38 8e 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 57 67 72 f3 00 02 4c ce 1d 10 54 3d
     09 30 6f 9a ce a6 3a 8c 68 cb 9a 70

   MAC:

     TBD

]]></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:

     TBD

   IPv4/TCP:

     45 e0 00 87 a8 f5 40 00 ff 06 f3 4a 0a 0b 0c 0d
     ac 1b 1c 1d ff 12 00 b3 cb 0e fb ef ac d5 b5 e2
     c0 18 01 04 6c 45 00 00 01 01 08 0a 00 02 4c ce
     57 67 72 f3 1d 10 3d 54 71 06 08 cc 69 6c 03 a2
     71 c9 3a a5 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 41 04 00 00 da bf 02 08 40
     06 00 64 00 01 01 00

   MAC:

     TBD

]]></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:

     TBD

   IPv4/TCP:

     45 e0 00 87 54 37 40 00 ff 06 48 09 ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 ff 12 ac d5 b5 e2 cb 0e fc 32
     c0 18 01 00 46 b6 00 00 01 01 08 0a 57 67 72 f3
     00 02 4c ce 1d 10 54 3d 97 76 6e 48 ac 26 2d e9
     ae 61 b4 f9 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 41 04 00 00 da c0 02 08 40
     06 00 64 00 01 01 00

   MAC:

     TBD

]]></sourcecode>
          </section>
        </section>
      </section>
      <section anchor="ipv4-kmac256-output-test-vectors">
        <name>IPv4 KMAC256 Output Test Vectors</name>
        <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>
        <section anchor="kmac256-default-covers-tcp-options">
          <name>KMAC256 (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:

     TBD

  IPv4/TCP:

     45 e0 00 4c 7b 9f 40 00 ff 06 20 dc 0a 0b 0c 0d
     ac 1b 1c 1d c4 fa 00 b3 78 7a 1d df 00 00 00 00
     e0 02 ff ff 5a 0f 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 00 01 7e d0 00 00 00 00 1d 10 3d 54
     e4 77 e9 9c 80 40 76 54 98 e5 50 91

   MAC:

     TBD

]]></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:

     TBD

   IPv4/TCP:

     45 e0 00 4c 4b ad 40 00 ff 06 50 ce ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 c4 fa fa dd 6d e9 78 7a 1d e0
     e0 12 ff ff f3 f2 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 93 f4 e9 e8 00 01 7e d0 1d 10 54 3d
     d6 ad a7 bc 4c dd 53 6d 17 69 db 5f

   MAC:

     TBD

]]></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:

     TBD 

   IPv4/TCP:

     45 e0 00 87 fb 4f 40 00 ff 06 a0 f0 0a 0b 0c 0d
     ac 1b 1c 1d c4 fa 00 b3 78 7a 1d e0 fa dd 6d ea
     c0 18 01 04 95 05 00 00 01 01 08 0a 00 01 7e d0
     93 f4 e9 e8 1d 10 3d 54 77 41 27 42 fa 4d c4 33
     ef f0 97 3e 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 41 04 00 00 da bf 02 08 40
     06 00 64 00 01 01 00

   MAC:

     TBD

]]></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:

     TBD

   IPv4/TCP:

     45 e0 00 87 b9 14 40 00 ff 06 e3 2b ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 c4 fa fa dd 6d ea 78 7a 1e 23
     c0 18 01 00 e7 db 00 00 01 01 08 0a 93 f4 e9 e8
     00 01 7e d0 1d 10 54 3d f6 d9 65 a7 83 82 a7 48
     45 f7 2d ac 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 41 04 00 00 da c0 02 08 40
     06 00 64 00 01 01 00

   MAC:

     TBD
]]></sourcecode>
          </section>
        </section>
        <section anchor="kmac256-omits-tcp-options">
          <name>KMAC256 (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:

     TBD

   IPv4/TCP:

     45 e0 00 4c f2 2e 40 00 ff 06 aa 4c 0a 0b 0c 0d
     ac 1b 1c 1d da 1c 00 b3 38 9b ed 71 00 00 00 00
     e0 02 ff ff 70 bf 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a 00 01 85 e1 00 00 00 00 1d 10 3d 54
     c4 4e 60 cb 31 f7 c0 b1 de 3d 27 49

   MAC:

     TBD

]]></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:

     TBD

   IPv4/TCP:

     45 e0 00 4c 6c c0 40 00 ff 06 2f bb ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 da 1c d3 84 4a 6f 38 9b ed 72
     e0 12 ff ff e4 45 00 00 02 04 05 b4 01 03 03 08
     04 02 08 0a ce 45 98 38 00 01 85 e1 1d 10 54 3d
     3a 6a bb 20 7e 49 b1 be 71 36 db 90

   MAC:

     TBD

]]></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:

     TBD

   IPv4/TCP:

     45 e0 00 87 ee 91 40 00 ff 06 ad ae 0a 0b 0c 0d
     ac 1b 1c 1d da 1c 00 b3 38 9b ed 72 d3 84 4a 70
     c0 18 01 04 88 51 00 00 01 01 08 0a 00 01 85 e1
     ce 45 98 38 1d 10 3d 54 75 85 e9 e9 d5 c3 ec 85
     7b 96 f8 37 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 41 04 00 00 da bf 02 08 40
     06 00 64 00 01 01 00

   MAC:

     TBD

]]></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:

     TBD

   IPv4/TCP:

     45 e0 00 87 6a 21 40 00 ff 06 32 1f ac 1b 1c 1d
     0a 0b 0c 0d 00 b3 da 1c d3 84 4a 70 38 9b ed 72
     c0 18 01 00 04 49 00 00 01 01 08 0a ce 45 98 38
     00 01 85 e1 1d 10 54 3d 5c 04 0f d9 23 33 04 76
     5c 09 82 f4 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 41 04 00 00 da c0 02 08 40
     06 00 64 00 01 01 00

   MAC:

     TBD
]]></sourcecode>
          </section>
        </section>
      </section>
      <section anchor="ipv6-hmac-sha256-output-test-vectors">
        <name>IPv6 HMAC-SHA256 Output Test Vectors</name>
        <section anchor="hmac-sha256-default-covers-tcp-options-1">
          <name>HMAC-SHA256 (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:

     TBD

   IPv6/TCP:

     6e 08 91 dc 00 38 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 e0 02 ff ff 47 21 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 00 41 d0 87 00 00 00 00
     1d 10 3d 54 90 33 ec 3d 73 34 b6 4c 5e dd 03 9f

   MAC:

     TBD

]]></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:

     TBD

   IPv6/TCP:

     6e 01 00 9e 00 38 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 e0 12 ff ff bf ec 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a bd 33 12 9b 00 41 d0 87
     1d 10 54 3d f1 cb a3 46 c3 52 61 63 f7 1f 1f 55

   MAC:

     TBD

]]></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:

     TBD

   IPv6/TCP:

     6e 08 91 dc 00 73 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 c0 18 01 00 32 9c 00 00 01 01 08 0a
     00 41 d0 91 bd 33 12 9b 1d 10 3d 54 bf 08 05 fe
     b4 ac 7b 16 3d 6f cd f2 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 41 04 00 00 fd
     e8 02 08 40 06 00 64 00 01 01 00

   MAC:

     TBD

]]></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:

     TBD

   IPv6/TCP:

     6e 01 00 9e 00 73 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 c0 18 01 00 ee 6e 00 00 01 01 08 0a
     bd 33 12 a5 00 41 d0 91 1d 10 54 3d 6c 48 12 5c
     11 33 5b ab 9a 07 a7 97 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 41 04 00 00 fd
     e8 02 08 40 06 00 64 00 01 01 00

   MAC:

     TBD

]]></sourcecode>
          </section>
        </section>
        <section anchor="hmac-sha256-omits-tcp-options-1">
          <name>HMAC-SHA256 (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:

     TBD

   IPv6/TCP:

     6e 07 8f cd 00 38 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 e0 02 ff ff a4 1a 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 00 9d b9 5b 00 00 00 00
     1d 10 3d 54 88 56 98 b0 53 0e d4 d5 a1 5f 83 46

   MAC:

     TBD
]]></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:

     TBD

   IPv6/TCP:

     6e 0a 7e 1f 00 38 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 e0 12 ff ff 77 4d 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 5e c9 9b 70 00 9d b9 5b
     1d 10 54 3d 3c 54 6b ad 97 43 f1 2d f8 b8 01 0d

   MAC:

     TBD
]]></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:

     TBD

   IPv6/TCP:

     6e 07 8f cd 00 73 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 c0 18 01 00 83 e6 00 00 01 01 08 0a
     00 9d b9 65 5e c9 9b 70 1d 10 3d 54 48 bd 09 3b
     19 24 e0 01 19 2f 5b f0 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 41 04 00 00 fd
     e8 02 08 40 06 00 64 00 01 01 00

   MAC:

     TBD

]]></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:

     TBD

   IPv6/TCP:

     6e 0a 7e 1f 00 73 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 c0 18 01 00 71 6a 00 00 01 01 08 0a
     5e c9 9b 7a 00 9d b9 65 1d 10 54 3d 55 9a 81 94
     45 b4 fd e9 8d 9e 13 17 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 41 04 00 00 fd
     e8 02 08 40 06 00 64 00 01 01 00

   MAC:

     TBD

]]></sourcecode>
          </section>
        </section>
      </section>
      <section anchor="ipv6-kmac256-output-test-vectors">
        <name>IPv6 KMAC256 Output Test Vectors</name>
        <section anchor="kmac256-default-covers-tcp-options-1">
          <name>KMAC256 (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:

     TBD

  IPv6/TCP:

     6e 04 a7 06 00 38 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 e0 02 ff ff de 5d 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 13 e4 ab 99 00 00 00 00
     1d 10 3d 54 59 b5 88 10 74 81 ac 6d c3 92 70 40

   MAC:

     TBD

]]></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:

     TBD

   IPv6/TCP:

     6e 06 15 20 00 38 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 e0 12 ff ff ea bb 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 71 da ab c8 13 e4 ab 99
     1d 10 54 3d dc 28 43 a8 4e 78 a6 bc fd c5 ed 80

   MAC:

     TBD

]]></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:

     TBD

   IPv6/TCP:

     6e 04 a7 06 00 73 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 c0 18 01 00 32 80 00 00 01 01 08 0a
     13 e4 ab a3 71 da ab c8 1d 10 3d 54 7b 6a 45 5c
     0d 4f 5f 01 83 5b aa b3 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 41 04 00 00 fd
     e8 02 08 40 06 00 64 00 01 01 00

   MAC:

     TBD

]]></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:

     TBD

   IPv6/TCP:

     6e 06 15 20 00 73 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 c0 18 01 00 52 f4 00 00 01 01 08 0a
     71 da ab d3 13 e4 ab a3 1d 10 54 3d c1 06 9b 7d
     fd 3d 69 3a 6d f3 f2 89 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 41 04 00 00 fd
     e8 02 08 40 06 00 64 00 01 01 00

   MAC:

     TBD

]]></sourcecode>
          </section>
        </section>
        <section anchor="kmac256-omits-tcp-options-1">
          <name>KMAC256 (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:

     TBD

   IPv6/TCP:

     6e 09 3d 76 00 38 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 e0 02 ff ff 75 ff 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 14 27 5b 3b 00 00 00 00
     1d 10 3d 54 3d 45 b4 34 2d e8 bb 15 30 84 78 98

   MAC:

     TBD

]]></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:

     TBD

   IPv6/TCP:

     6e 0c 60 0a 00 38 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 e0 12 ff ff a7 0c 00 00 02 04 05 a0
     01 03 03 08 04 02 08 0a 17 82 24 5b 14 27 5b 3b
     1d 10 54 3d 1d 01 f6 c8 7c 6f 93 ac ff a9 d4 b5

   MAC:

     TBD

]]></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:

     TBD

   IPv6/TCP:

     6e 09 3d 76 00 73 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 c0 18 01 00 c3 6d 00 00 01 01 08 0a
     14 27 5b 4f 17 82 24 5b 1d 10 3d 54 29 0c f4 14
     cc b4 7a 33 32 76 e7 f8 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 41 04 00 00 fd
     e8 02 08 40 06 00 64 00 01 01 00

   MAC:

     TBD

]]></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:

     TBD

   IPv6/TCP:

     6e 0c 60 0a 00 73 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 c0 18 01 00 34 51 00 00 01 01 08 0a
     17 82 24 65 14 27 5b 4f 1d 10 54 3d 99 51 5f fc
     d5 40 34 99 f6 19 fd 1b 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 41 04 00 00 fd
     e8 02 08 40 06 00 64 00 01 01 00

   MAC:

     TBD
]]></sourcecode>
          </section>
        </section>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1b6XLbSJL+z6eotf/YsyIbAEEQUMzRsmyPtb60lno7eo5w
FAoFCWMS4ACgjnF7nmWeZZ5sv6wqAAWSumW7Y9oOWgIB1JX5ZeaXWaXhcDgQ
RZLlR9tsWQ15JbJsMKizeia32W55vqiLo5IvjjPBdmZHRZnVx/OKHR7zmu2X
RbIUknmTYBhnNXu9s1ux50XJfqgk+xEvssPd/eHO2wGP41KebLNaLIa8GPLZ
UTVICpHzOcZISp7Ww7jIM8GHeGM+NK/NivxIvTt0goHgtcTo59usqpNBtYzn
WVVlRV6fL9DH3rPD54NBVfM8ec/RDrfOZTVYZNvsz3Uhthh+FPMFF7W6zPJE
5risirIuZVrh6nyuL8xrfx0MskWJGZfLqvYcJ3K8AS8l32aHJc+rBRoOTiEx
LPA1+7EoP0B+7I9lsVwMPpxuN+se8GV9XJTbgwFjQ/xnLMurbfZuxJ6o5apb
Wgrvity+WZTo/MX+M/VFFMu8pqX/cLCjbsg5z2bbrCxyPktGWnTfHy/kCLNf
GetwxF5l1jiHRX7e3LnWIDUajGbZ9+b3Svf7I7Z7LHNrgH2SRHtv8xC7POcJ
t0dZoNVIoNUFy8A4L5dzXtoDlbw65nltPdg82l6eZP3BTMvRB2o5uWBIaOnw
uJjzytaS/Ftm31UD7pQZkMfeyPoUQKiuGLxEF6NadfE9Vy03jL0zYgfLv0lZ
szf8nH+wZmDfZjvz+TL/m+ymsptVomAH51Ut51dNpFry7wW9v3n8JzyXJcay
xt4553n//lWDrmAJk46puT1uXpRzXmcnchtvvnu+67luZC4nYdBeRt6kuwzM
ZehO/eZy6njmMvLGk/YyGjeXQRjS5dO3eyPXGQWOF373Zu/gcHSwPwodZ+iG
k8seT4LdkgYYDIdDxuOqLuElBgMzHybgG2pZMc5mUCkrUtyxXSfvXGdNrlNA
krGEw5UJO+08JUEuqxh843IOD8Xk2QIuzbShnrcYT8hXM2CNvZZVxY8k24GX
wdtwAjU8ItstEskewRk/tobdYi9wZ3jwYgfemqFT9hLfcT1iymVLLo7JgXdN
MBQUWZYS3i5XY76U5+ypLLMTPc7zZS7UxaOXT58/Zpg3n1UFTVAmo8Hg8Fj2
O8S6ZCXKLMaa43OsyV7pYiWWPMpGcrTFxt4wPq/lYxVbRuxHrLO5p8MNnDKT
OQIYOs1yI0Y4eQyur7GGvMIYFRsHpBd64juMekDrE+CSxzPJUsgADVixoCVV
mD8pep4lyUwOBg9hPrWaoVrwx4cZff00GHz8aBDw6dN9YYA1fU4+ffqGh18O
Hh7C+/99mZWS5lexVzw/WkLaemEfIAp4f6jmwesfDg4fbOnf7M1bdf3u2f/+
sPfu2VO6hshfvWovBuaNgxdvf3j1tLvqWu6+ff362ZunujHust6twYPXOz/h
CWnwwdv9w723b3ZePaCl9+VJcqkLwhugK8tFKWtICGGs0wHaPNnd//e/XB8Q
/C/jioFr/YV8Lb6cQuJ6tCKfnZuvkOH5gC8WkpfUC5/NAO5FVkP/eLdi1XFx
mrNjWUrI8Td/Jsn8dZv9NhYL1/+9uUEL7t1sZNa7qWS2fmetsRbihlsbhmml
2bu/Iun+fHd+6n1v5G7d/O0fZlkuGcLKH34/GBB6WvbMdme8qkBPB5algxco
cFUKkGkxmxWnZGMXuBAmdB+glr+5yA4rZYjVY3qFDK+j7zTyhyTFqMoAejhJ
EkwCPTNqC/1mMIaPH+dc4O3uYd+QyToeXjUNeE0aczDYoa7JDE9kCUPayxfL
mhrTcl/Dg5YZn7FHey9fPyasFn0RAFvnrJJiCTy/XdYbm75F0xH6VaIUHMkI
ltl4At4fHT6YJ/MszyiiEw1B95BsdpTDIl5zcJryPS1MzYQT+0/TTNAtLFqJ
6JifyBWlKRNLuZBKPVYb9jsaHSnK0aOu7y14aDQ4gzPXK3r/SuZH9TEUd0o2
o3Wsm5FXpbFoDR0YYkmjUiAZKWVb06ZwdAKeqZzaTPUL3yqHIMAlVkh+69H+
wUuSFxI4skO4CAouEp2Q92XwvhVZtW6M8EBDmBlT/3GW8xI6qUuFVzzgEKeS
Qqq5HcBQyhknhwMhGldMb+ZSIUT5iESmWa690IG+zSYjjzRnx0MauyekRiBw
YxktyCzROHZbXRoQFtZ1VFjrjc9O+XnFYI7AEubbyqANQcRodcCA2Ege/SCt
V1KpkEwIUfp7gSsTbUmbOtYOcZNskR7qZ5tMsvHQld0Ja03T9IVHaNy9aw0x
YmSfD3vNPz60Bh0M7EcYu1pIkaWZVsefDRX/q8KIPIPxUazM8hXUI5U5Mh7p
2Znmx3RFjEUHydYsGhiY13RLjKva7r97CTNREzLPH1V8Bm2RR7BNgl5U+N6v
5DIphkjMk2JOkN4yoU5RKzNPPRE91AitqU/VXMWr4T9kWSidNkA+PS6q1mIU
GCpSvVI7tcdsGuxZ9sbLo5a/nGRJh3gy2Hb9gPGOAJfSzK0wCIeIP33SoDwq
gD2DYbkiJGoA2xEYBR5Lu55FAZcVw3UlGVRX0rLpcbE4b3rJlJf9oF3lvHGV
xqshPpcQcIw3Njhb9IM2CyXkTsYAw3wxU2SIazevvIeBx/rMRxdioNNLAwE4
8A4C9PgRdL2lHMoWe9UDwdtODT3f3MKDnpzw2VI2lNKQzRX0UQvqv2nSOLjr
KvQ37BU1bb1GA5XGazRe5LGRg7SX3dF6uSbnZry+g6PEAGFNB0B6ywA1kQtJ
PRUa9MaOxcWZCPFceBKQ/VrTWE2hcymJtV9Hx7ZZKTdjeR4GP2P5J0RM69my
MmynyBGParmg4YdJxyDSJqHouaMmOvgjV0cHK2V/v5ayk0Wp5MqMTKGGxuTL
s2yWUeBqRjFRyMpI3iruz8aboGsvpIda88D4LFUJkSX7y89/+Zn9Sf96np3J
ZE9h+cV7rcInQMYWO+gh+xJo38p5ubb3aidmBqAcClkWLfEId90tO4nKdWVL
jwCvJUvVxZ/u4P/QvBXD7U2uJ7+e+TXmpt46aEawReS4Dj6uq3VC3+i//c11
toxplBKUqVJpn7IqDAPxKFopwKPgROBz2YOXlKE9bZKx5yoLC5Vcdw529/YA
oydScMBe9WIIf9JY8axlIO0q+vBQCRdspYVylp8UJsdHq6Y/Tcb7hB9mSAx+
MHi2lta3xMtkvJQiH/PVNCQlZTE5M8kvni94qWocJHnVRUYTabnqTsdVqXjY
hKE+b1XxGes8krlsY9kK1vFrhepdSPGseJ+pFGWLzUFjl6W+q/BwAQvsj2Io
oA0i9HYtxkmy1eRjNdy0y75oDv0h1uYwUPUN2p9Y1qvquiIDoUn9TvVPmYcl
sa2mZtTzPPR6L3LqBa2VVUbm5SYx6WGuS0dsDZluYU3LmYIP0VPVjaldmRfm
5qsemXcFLZnoisKmiDBpIoKdL6iQRO77B50HWmUv7dbr41LKVYCTdHsFMisN
wxK3bS7dR+k2uwA3vQeD52pbaEU17CLd2FO51E6Vvqo7adEa62r1GZv+sio0
/u8K9bUBf1V1duhW1EBbc8ppTWJZ1cU8+4d2qyZWGA6n+M58UbfJLkZ58ODx
F9B/s5bPrfumBvxL0Ts9X8KdnBM5qMAFSsNDPz6sJDKo/NNq8p3lcGMUk6gI
aSZaNZ2IfiftgCbzskY3X2hXib5QQFc3aBdJze3Q7rdf6j8fxpwCUaV3xGxO
HhcGbgBQL2xcyM8FMblcTWBTO0XYux2EWvE+qzDHWG+iqiC/kiOgP8R/qQGt
e0Xoog3zme7ZxC+9HFKrzCmm6k2ImqKGThkKfPJhfyUqhhESzhe8qvraMIMV
J1AIlKX7h2hVUX9ZqdzYjpsVIw1Dc1aQX4mgHRG9Vimre79ipjysYul6I8zV
JNRbjS7OmyYYpSEwSlh8RZsml8uX8xjU2rwKQ8anyubZjJc6m1tq7wZrHjbJ
O2RVSio9VUvwNsW6qkrtM6j9lZPljDqj0h7JuAQxGMJFCFpBzcUHojspJQmK
fzZeK9OIQT5dW0sg+R3LM5oVwTfwO9arfSGmtroytetBuLtcYFguUEJ4AZDZ
8XLO82EpeaIm3qyIBqbrxXGJ4YnuWMpptPlBLmojlBH7978UmyUiet5UeXQj
VYpOqKSbxUs1+QU3rArrWNDpjWVOECR/SoyqhMsnw4Fm0UzMCgL4yOqtmwII
f35ECJzPZZJB5yDlWWr3QvWzJXm5Wu97aX9tYfNwiaS66xHGpqADIXKmaDA6
mysjoy9tiLquz1B7VXs7b3ZWnOZgoG6aVEFWph7Lk2QlkJDiMlk1adeDC08B
WeHonTwyJfQif8AeHdf1otr+7rvT09NRxnM+Ksqj73RdXUXo7+iMDzSH1IBy
p5Wvo7Pjej572L85HFPtZPCzRTF/xrAp/A/lYj8Pfh62//67uxziQY/KoZUK
GU+bkEEvNAF2w8OP2+whLYGpM1G/e6CEuKO3Nh580ls74kNenM5kcqT5B4UH
nn9QEnxWQmZPsiOk1cjhXnEkis/oC1zWH4uyPGfPeVYeL0vay90dvYbHfiF5
Cet8t4TDfFEsqxlxgf8pjnPa4qirikoVPxXVcZYu5xl7k+Eq4fQGkqECfgLE
AUkrlzMA7azZrXvNj/JlxX4ktZezZa4TCKg3KwGHk0yeqtc08upm/zuGE6EF
HqIZ+z8guigrE3Fpuy9PsrMmS8di6aUT/RKtHMwDEzNZndo5FojPvYJStzHT
RrgLI6G1QdBz/ZDYHsV9MVsmpqDUlL06x4X4gtkuiozKCi2k1nJP2imROjTR
FkUljzSfFBSktHdPslRBrjbFMpIt2JZ6A7QHXlVxxTbSt8SSGwfTjENHl1TO
Ze8zq0gKIylKk+LpEwhxccZgXBii4jNdzjf7Zn3N6Hs9RVCHvcKWxbrGLQWi
MzNtqYypKoM8E1JNypCI/q5SW6NQ/5wzx/XG/iSYhhGPBdZ80++6arG3f+L3
jNVs8a2ucnXnQa+HNpuhaM2DtSSBUKGdK1LpYZIdIeYhyvEEAJnz9l217GrB
BfW2gMtXm7dtAGyoCG1uKTxAbG6g6CRVQrMTXVrSm91Eg88XVDxXCoQFcJYs
54uGjO3tf0cKV/eb+VWGidVZSS8AouKDrLcMqpvhLUgqJKk4a3DzCFBSUdaC
qrEsTCIvaj23Rh6P7b7bXEBtElnSf/TUgHeIUELgU1PQZVHaV35IDQ5gWOzR
7izDtB6zg5/e4It+uXvxn//8J69OjuiUGdNvsr2DN0h8nLM0TmMeT7h6Rn29
Rxfva5N8wMbU6Un8O3zyVF0RRkiCzX1/wqTDHIf5giGUOSkd58DXNGUOyEjK
gpg5nDn4KZiT6EZcMDdmLn4ia4xYMqUW8ZilMX14zCac7jQf3YiG8ahffAS4
kN8895iD6wmL8dNlzlh9Qt2InuB5qObgMHdCXcdTu3eahOuwccImvm7kAQw+
G0+ZQM4XMkptA5okhkwC6k9O1eqhq554IGejlXdSSMLlowNZQhlKMcOd3ZdX
KEe/3SrHdYXre4Grnpku76KfYEI6sfWDNU4ntjqM1DqFGc1oLbkuEy7zPRa4
lq7iVj9uox/qN7ipfkKf8QkNLOOerrR+JtCImZ6UNC6gJj1a1tih56HLJi75
Bcw2lpv006mnbzRvkDddbTjKOAoy8luJP5zSiSfu9sQPhUTpbcwjtlTh6UYC
UgiVgH0aJvAa8bvq07cA4epGtsgtM2BThyEFESmLIhYKsgMxRlMzkkcfyD5O
jbov/ehG9j1C49hMNeHUDa3PXxeEp6wNgtLvmtXonx59whZh9DGQam74XnMN
0LcdOM2QCna+cS6OQmvgWxJzbmrjV+PIMuM7IckFp4p6SJoKFk1vY8heh6pI
riLJUWOIDUhqgZNOWqk30LINlnE4GcwQ0TtmcUyuNRizidCNognzAXE0mt4L
koRjkLQmiM+GJOHcAUlsQ9B/Oydicb1Ir9+9VqAXsSPTWMp7CfSTMTkGG39+
SA7hUk+GF13PoBBgACQAO7jySwM9QOSmtwj0jooMotf7eqCH0jmClWApKGRI
ywpCFo3ZNGYhfB9A69060F+mm5U4z0UyiSfy3uL82CP77AWaiKXXcg9aSXgx
gZjRpWupKt0Q50MWypuqZzJlAfgB+hj3VLUW552IYnsATXB6Tq6EUziCkjAr
3Jxe5aMvCPSX6+aucZ6H8Io98WOhPr+NdaSWKjbE+UDQwBvjfCNV3cgWeS/O
u8pfQZ6CMIL+oDNuRsJDEZHI4em/xfkNcf4yGN1LnJ+oLGTFz8IqbmHIXoMq
cg8b4jx4c7ABSRZwbKmvGSyxDzD+QNIMMSo06hF5NUCXlDFA82n0q4zzXXWl
qXR+q6x86cpKI/kvUVWZhlPuJkl6XbJ1WTAHF4n6RRUPgBSXRxMBU+PGE0xD
NuV0M2mJ1AVci1NOfQuu5bKpZIlj977OtSSizZTSj0iQEWJB8BfwHRGYIxIH
h0Xu/RdV1rlWypMkSOCY7olr+Uidkp56sBQiK1e7aK0kfJKEBSrTb1UlO/W0
XAuhO/Vuqh6Q2dSnrmXYU9Ua10oCWgefsliYUh6xYbw1JWKQxGyS3o5r3a2o
wq6MkaBJft8+OC6cW9gHuuyUwdfZFrJV5yK2ZeRq0lpL6D22NaWo4k0pzmAk
X81jbAIruB5mjTA6lt/Y1o2qKvdGt+KIuf28SY6ZF9/GlnkDK8m88TrdklMy
qXUoWcjpxL7BZlkasCSi+iEsNhyz0KMLP2zXhGwP/AsT/7XRrQZJXbz/TAWV
cRjFMpm691JQgWP3ZN+Jcbp/qRODmFxh8IdEPIppp2LqXh7kp47xDDcP8qGq
B1wa5GEGPri+Q8nG2CUUQpGxyxJJb5Hni+69oLIe45Nx6Ps8SO9t30TQMnoU
LKVi5jX8gtZRMlYFGU61jE5T3nqMB0nqEvrragdsA43Ao8ZhT1NrMR6pfMBV
FdYhl+JHpJpYEmbGATmk6BdZT5ES3LBvHAmllLcwDq9TxdRZj/BhSHtIF0V4
JVXTyBJ5L8JP1FuRKrNPaNNEgu2aEjkxebWhOL6favd/XIT/7PUUoN/rI2ns
qc2UGxsy3OiaIdsBHkKDea0jyQKOHeDXDJZNhBJ8SmHeA4TH9HUamHKeoCoQ
gj7Iwq80wJOeg6sPqxDgbn6o4q75vzsNeDgeXzv/V4uxQRtIEg28XqJ8GDl2
tXGfJr342w/zm56QHG/RyKPQLX2DfVdZDmjmOF1vZJMLf0r2tRK+eDNSF8NW
yQWwkSgDXZue7Vwjh8wADhVfp5iMTyVL2o2S6uTJmEVXpaj3cyxjnE7cKPLj
G9KLNQUrSUXyrgr2bocKrVqt5nFKcY+29MxZjlbjvtPjJ/D/UnQDX0/BcUJ6
Qx9RbCvbVrBJatRuEx9TNRqhc6LOmQRqknDS+EwmX6MGcR0LBR5/ERbaeNNO
o6IXlxDvog37+e1IWjlYlq002wiJAYSk9dRsLemoAW7jBvQKGK5IKJ+5diy6
KC5BKLpoFfsdvtRnGl0nLq3EIsfrri+KS2lzwChsg9MvtIZxmTO5Cxbv1ZmI
FWeCT68IItXMN2OxxR+f9HBp+wva/gzpneY8ietSo4k+zYLIMqWqSHQh274X
LPJfMha/yNESx3OEK4PoTmxnSicuRHLXYHhLX0oH3BqmT9IWVLgLosvZDveZ
y7s+rs12ooQqjZN4fXq2o6VcNKBMIXaoFO+A5PiUU3KXTVLl6oPLDzney9EU
GfPxdOwnd+U6nAoO+iTPV+M6WslSMQz4SL/J9Vp98x7XoWp90g18PfWCi4qI
YubUsVW9znXGgi4CtXsEDwVPA/bjJVQeiLWDTG51hvVeSjGXWedXYDqbrdME
ik6fshddYCFyw4mGdiStmmDSU5ltgAgtCEJ0BqlRH2iHrzyAq65TsuHU+cZ0
Pmct5zJP8tWIzqonkSueBDZtQ3Hqkm+5AIod/KzgAFj2ikETojMhWJXfFrVi
jZuIhQnxPlclAb9WoqOhcvnpGlXY+ZKnQNxoLISQ4ganQNbQ7hOD1dL4GkWg
0PwlDqWYEcUsIZgUl9OiRLLJjeMm4IvUgWh7tD492ytPIjrOBnKEO1OfbALZ
Z5BQvSDyyIX7N/ZZtyoC8WDq+1LcuQgU0LF5z7mrgu+Wtyk184AESlG0i3dG
40l/k0rtId1QwfCBCScFi9BW9joxSgTzQnJIPKTJTEOaWCxofWJCUwlvuUn1
mYpAloV+jSLQRgtt9sNaja4VgUIbBL141CqHYputNHubK6aAhiDUJN5OQodw
kJfQXobOwLk5hfqNGn25IpDlTL5eEWjFmYieM0noRL+NxYnaxLoAiy3+knEP
l7a/EC4tlPiT0RvmTrUhdXIdgUEfmwsvPHj8H8+NPv9RmNhxEz71b/RHxGvY
jdS2zldjOh5xCo3gWOWBdJ6KrzfqnaWZGIjcJBC6Pp2DgYccX1EAwk9N88e+
OksfUtSFfcOAQp/iYhTe+1majUTH8wPXn9yV6Ag6FqQLYF+P6Cgtwzchjw9c
iFc36hQe94gOBfYb73YhCws9GoD+SLfT9TrRwTWhNaDgOhXqz5zG5sQej6jY
F99yt+vzlIAs+/waPGejfcYtzzEKDXqxRagTzBfEllY3IC49nVkm6EUEAMQn
tznfJsgg4e7HY2JREIecUsT7xnO+ZAnIciVfj+asuJJgxZWE/WokfPimk2UG
ig38qOxjw9L++6qIOgDDTg2hStSfGKJfPIETAb/Catz4V0dzCIn/D+eOi1BG
bwAA

-->

</rfc>
