<?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-07" 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 128-bit MACs For Use With TCP-AO</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tcpm-tcp-ao-algs-07"/>
    <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 81?>

<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 87?>

<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 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 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="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 306?>

<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+18aXPcyJXtd0boP+STvkgeFhs7qvjssdlapvW0PlH9HB6P
oyMBJEhYtQ1QRYnuln/L/Jb5ZXPOTQAF1EKWqD3iOcpqFAq5n3vuuTcTHAwG
tw7SWVZMz47VshroKi2KWwe3DhbFYmyO1f3ycr6YnZV6fl6k6mR8NiuLxfmk
Uq/P9UK9LGfZMjXK9YaDpFioZyf3K/VoVqqfK6P+jAfV6/svBycvbh3oJCnN
xbFapPOBng30+Ky6dZDN0qmeoJWs1PliUJhFPsADk0HnqYETo4N6YdDy5bGq
Ftmtg2qZTIqqKmbTxeUcxR8/fP2Ifa4Wepr9osezKW5eGrQwL47VXxez9FDh
n9lkrtOFXBbTzExxWc3KRWnyCleXE3tRP/Y3VljMS3S5XFYLz3FGjodxlEYf
q9elnlZzlL118BbzhkE+U3+elW8wi+rfytlyfuvgzdvjdvAotlycz8pjXio1
4D9KFdPqWL06Uj/OpkWq7T07Ha9m097dWYlGfnr50H5LZ8vpgnPx8+mJvWMm
uhgfq3I21ePsKJGSfzqfmyOMZbPJ10fqadFt7vVsetne2rOtBcocjYs/1f/d
bOXlkbp/bqbddl5yelY3d7R0X091pnuNzVHwKEXB3YNCc0+WE1322it1da6n
i+4vOxp9PM2KtTbrwkdvWDjc3TJW8PX5bKKr3gqavxe929LuSVkAouq5WbwF
WKpr+1CilqOF1PInLWW3d+HkSJ0u/27MQj3Xl/pNtyPd++pkMllO/246Pbpf
VOlMnV5WCzO5vj/VUv8pZYmd3fhRT02JFrtdOLnU07Ufrm17HW7ofsIa+s1P
Z+VEL4oLc8yHXz2677nuqLkOh9HqeuSFneuouR66cdBex47XXI88v31+FA2H
cv3gxeMj1zmKHG/4w/PHp6+PTl8eDR1n4A7DK38Po/ul1HzrYDAYKJ1UixIE
wwHU3VEpWGVhKqXVGKusZjnudHlXr3h3Qd5NMaOJAV+bTL1d0SyRWFQKtLqc
gN6UeTcHIdZlWPOh0hmpXgGA6pmpKn1m1Am4CU+DMxZgVHV/lhl1F0x+r9Ps
ofoJdwanP514YTQA3StUrJ7gXv39SAnvG52e0wusiqJJLGtZGvDlVNp+Yi7V
A1MWF7a9R8tpKhd3nzx4dE+h/3pczdhRkx1xkl6fm36VGKGp0rJIMPrkEqPr
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
cCC35n4AAA==

-->

</rfc>
