<?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-09" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.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-09"/>
    <author initials="R." surname="Bonica" fullname="Ron Bonica">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>ronald.bonica@hpe.com</email>
      </address>
    </author>
    <author initials="T." surname="Li" fullname="Tony Li">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>tony.li@tony.li</email>
      </address>
    </author>
    <author initials="P." surname="Chen" fullname="Ping Chen">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>ping.chen@hpe.com</email>
      </address>
    </author>
    <author initials="P." surname="Kumar" fullname="Prashant Kumar">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>prashant.kumar5@hpe.com</email>
      </address>
    </author>
    <author initials="R." surname="Thomas" fullname="Reji Thomas">
      <organization>Arista Networks</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>reji.thomas@arista.com</email>
      </address>
    </author>
    <author initials="A." surname="Sujeet Nayak" fullname="Sujeet Nayak Ammunje">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>sua@cisco.com</email>
      </address>
    </author>
    <author initials="A." surname="Banerjee" fullname="Ayan Banerjee">
      <organization>Cisco Systems</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>ayabaner@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="30"/>
    <area>Transport</area>
    <workgroup>TCPM Working Group</workgroup>
    <keyword>TCP-AO</keyword>
    <abstract>
      <?line 84?>

<t>RFC 5926 established a registry of cryptographic algorithms that can be used with TCP-AO. This document expands that registry, 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 90?>

<section anchor="intro">
      <name>Introduction</name>
      <t><xref target="RFC5926"/> established a registry of cryptographic algorithms that can be used with TCP-AO <xref target="RFC5925"/>. This document expands that registry, 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 strong 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), represented as an octet string. It <bcp14>MUST</bcp14> be at least 256 bits (32 octets) in length. The octet string is used directly as the KDF input. A configuration interface <bcp14>MAY</bcp14> accept a textual encoding (for example, hex or base64), but <bcp14>MUST</bcp14> decode it to octets before use. A text string that has not been decoded <bcp14>MUST NOT</bcp14> be used as the Master_Key. If a Master_Key shorter than 256 bits is configured for an algorithm defined in this document, the implementation <bcp14>MUST</bcp14> reject it and <bcp14>MUST NOT</bcp14> use it.</t>
          </li>
          <li>
            <t>Context is a binary string containing information related to the TCP connection, as defined in Section 5.2 of <xref target="RFC5925"/> (Figures 7 and 8).</t>
          </li>
          <li>
            <t>Output_Length is the desired length of the Traffic_Key. In this document, the Output_Length is always equal to 256 bits (i.e., 32 bytes).</t>
          </li>
        </ul>
        <t>This document defines two KDFs:</t>
        <ul spacing="normal">
          <li>
            <t>HKDF-SHA256</t>
          </li>
          <li>
            <t>KMAC256-KDF</t>
          </li>
        </ul>
        <t><xref target="HKDFSHA256"/> of this document describes HKDF-SHA256 while <xref target="KMAC256KDF"/> describes KMAC256-KDF.</t>
        <section anchor="HKDFSHA256">
          <name>HKDF-SHA256</name>
          <t>HKDF-SHA256 uses HKDF <xref target="RFC5869"/> and the SHA-256 hash function <xref target="RFC6234"/>. It executes in the following stages:</t>
          <ul spacing="normal">
            <li>
              <t>Extract</t>
            </li>
            <li>
              <t>Expand</t>
            </li>
          </ul>
          <t>The interface to the Extract stage is:</t>
          <ul spacing="normal">
            <li>
              <t>PRK = HKDF-Extract(salt, IKM)</t>
            </li>
          </ul>
          <t>where:</t>
          <ul spacing="normal">
            <li>
              <t>PRK is a pseudorandom 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. 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><xref target="DOI.10.6028_NIST.SP.800-185"/> defines KMAC256 and its arguments. <xref target="DOI.10.6028_NIST.SP.800-56Cr2"/> uses the name KMAC# to refer to either KMAC128 or KMAC256. It also renames some of the arguments.</t>
          <t>This document uses the KMAC# argument names as defined in Section 4.1 of <xref target="DOI.10.6028_NIST.SP.800-56Cr2"/>.</t>
          <t>The interface to KMAC256-KDF is:</t>
          <ul spacing="normal">
            <li>
              <t>OKM = KMAC256(salt, counter || Z || FixedInfo, H_outputBits, S)</t>
            </li>
          </ul>
          <t>where:</t>
          <ul spacing="normal">
            <li>
              <t>OKM is the Traffic_Key.</t>
            </li>
            <li>
              <t>salt is an all-zero byte string whose length equals 132 bytes. It is used as the KMAC key K.</t>
            </li>
            <li>
              <t>counter is the 32-bit integer 1, encoded in network byte order. The counter is equal to 1 because, due to the requested output length, only the first iteration is needed.</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>
          <t>In the notation of <xref target="DOI.10.6028_NIST.SP.800-185"/>, that is:</t>
          <ul spacing="normal">
            <li>
              <t>OKM = KMAC256(K = 132 zero octets, X = 00000001 || Master_Key || Context, L = 256, S = "KDF")</t>
            </li>
          </ul>
        </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 the MAC algorithm used.</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 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>In the interface:</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 its leftmost 128 bits (the first 16 octets).</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.</t>
            </li>
            <li>
              <t>Key_Length:  256 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  128 bits.</t>
            </li>
          </ul>
          <t>In the interface:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg(Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>KMAC256 takes more arguments than the generic two-argument interface above. In the notation of <xref target="DOI.10.6028_NIST.SP.800-185"/>, KMAC256-128 for TCP-AO is:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = KMAC256(K = Traffic_Key, X = Message, L = 128, S = "")</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>
            <li>
              <t>L = 128 (bits) is the requested MAC length.</t>
            </li>
            <li>
              <t>S is the empty (zero-length) string.</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>As specified in <xref target="kdf"/>, the Master_Key used with the algorithms in this document is 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 a textual encoding is used for configuration, it <bcp14>SHOULD</bcp14> be the hex or base64 encoding of a cryptographic key whose decoded length is at least 256 bits and which has at least 256 bits of entropy, rather than a human-readable password or passphrase. The 256-bit minimum applies to the decoded octets, not to the length of the text string (for example, a hex-encoded key must be at least 64 characters). Implementations <bcp14>MUST NOT</bcp14> apply the length check to the encoded string.</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 (MKTs) <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" registry in the "Transmission Control Protocol (TCP) Parameters" registry group. This registry was created by <xref target="RFC5926"/>, and its registration procedure is "RFC Publication After Expert Review".</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 Tuexen, and Magnus Westerlund for their review and comments.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="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="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="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>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="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>
      </references>
    </references>
    <?line 325?>

<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. The format of these test vectors follows <xref target="RFC9235"/>.</t>
      <t>In the following sections, all values are shown as space-separated two-digit hexadecimal octets, 16 octets per line, as is typical for data dumps.  The IP/TCP data shows the entire IP packet, including the TCP segment, the TCP-AO option, and any other TCP options (whether or not they are covered by TCP-AO, as indicated).</t>
      <t>In these test vectors, the Master_Key is the following 32-octet string, used directly as an octet string (not as ASCII hex text): 0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef.</t>
      <t>All vectors are shown from the client's perspective. In the IPv4 vectors, the client is 10.11.12.13 and the server is 172.27.28.29. In the IPv6 vectors, the client is fd00::1 and the server is fd00::2. The client uses an ephemeral port and the server uses port 179. The Sequence Number Extension (SNE) is 0. The TCP-AO option is 20 bytes long (Kind 29, Length 20, KeyID, RNextKeyID, and a 16-byte MAC). Segments sent by the client carry KeyID 61 (0x3d) and RNextKeyID 84 (0x54). Segments sent by the server carry KeyID 84 and RNextKeyID 61.</t>
      <t>For the "Omits TCP Options" test vectors, the MAC is computed as described in Section 5.1 of <xref target="RFC5925"/>. All TCP options other than TCP-AO are removed from the MAC input. The Data Offset field of the TCP header and the TCP length in the pseudoheader retain the values of the original segment; they are not recomputed to reflect the removed options. The TCP checksum and the MAC field are set to zero. The MAC input therefore consists of the following, in order:</t>
      <ul spacing="normal">
        <li>
          <t>The 4-byte SNE.</t>
        </li>
        <li>
          <t>The IP pseudoheader, using the TCP length of the original segment.</t>
        </li>
        <li>
          <t>The 20-byte fixed TCP header, with the original Data Offset and the checksum set to zero.</t>
        </li>
        <li>
          <t>The TCP-AO option, with the MAC field set to zero.</t>
        </li>
        <li>
          <t>The TCP payload, if any.</t>
        </li>
      </ul>
      <t>The KDF Context contains the sender's ISN followed by the receiver's ISN. The receiver's ISN is zero only for a segment with SYN set and ACK clear (the initial SYN). A SYN-ACK carries the client's ISN in its acknowledgment, so its traffic key is derived with both ISNs and is the same as the key for subsequent non-SYN segments in that direction.</t>
      <section anchor="intermediate-values">
        <name>Intermediate Values</name>
        <t>This section shows the intermediate values for the first test vector of each algorithm: the IPv4 Send (Client) SYN that covers TCP options. The Master_Key is the 32-octet string given above.</t>
        <section anchor="hmac-sha256-128">
          <name>HMAC-SHA256-128</name>
          <t>The Context is the source address, destination address, source port, destination port, sender ISN, and receiver ISN (zero for a SYN), for a total of 20 octets:</t>
          <sourcecode type="asvg"><![CDATA[
   Context:
     0a 0b 0c 0d ac 1b 1c 1d e9 d7 00 b3 fb fb ab 5a
     00 00 00 00

]]></sourcecode>
          <t>The PRK is HKDF-Extract(salt, Master_Key), where the salt is 32 zero octets:</t>
          <sourcecode type="asvg"><![CDATA[
   PRK:
     62 84 2b 29 23 28 54 21 3a 1d 32 03 c3 71 91 bf
     ee ad bd 80 ec 84 89 e9 93 4c 44 51 e0 24 ac 7e

]]></sourcecode>
          <t>The traffic key is HKDF-Expand(PRK, Context, 32), which is the Send_SYN_traffic_key shown in the vector. The MAC input is the following 76 octets. The MAC is the first 16 octets of HMAC-SHA256(Traffic_Key, MAC input):</t>
          <sourcecode type="asvg"><![CDATA[
   MAC input:
     00 00 00 00 0a 0b 0c 0d ac 1b 1c 1d 00 06 00 3c
     e9 d7 00 b3 fb fb ab 5a 00 00 00 00 f0 02 ff ff
     00 00 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 00 00 00 00
     00 00 00 00 00 00 00 00 00 00 00 00

]]></sourcecode>
        </section>
        <section anchor="kmac256-128">
          <name>KMAC256-128</name>
          <t>The Context is:</t>
          <sourcecode type="asvg"><![CDATA[
   Context:
     0a 0b 0c 0d ac 1b 1c 1d c4 fa 00 b3 78 7a 1d df
     00 00 00 00

]]></sourcecode>
          <t>The traffic key is KMAC256 with a key of 132 zero octets, the following 56 octets as input (counter, Master_Key, and Context), an output length of 256 bits, and the customization string "KDF". It is the Send_SYN_traffic_key shown in the vector:</t>
          <sourcecode type="asvg"><![CDATA[
   KDF input:
     00 00 00 01 01 23 45 67 89 ab cd ef 01 23 45 67
     89 ab cd ef 01 23 45 67 89 ab cd ef 01 23 45 67
     89 ab cd ef 0a 0b 0c 0d ac 1b 1c 1d c4 fa 00 b3
     78 7a 1d df 00 00 00 00

]]></sourcecode>
          <t>The MAC input is the following 76 octets. The MAC is KMAC256(Traffic_Key, MAC input, 128 bits, ""):</t>
          <sourcecode type="asvg"><![CDATA[
   MAC input:
     00 00 00 00 0a 0b 0c 0d ac 1b 1c 1d 00 06 00 3c
     c4 fa 00 b3 78 7a 1d df 00 00 00 00 f0 02 ff ff
     00 00 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 00 00 00 00
     00 00 00 00 00 00 00 00 00 00 00 00

]]></sourcecode>
        </section>
      </section>
      <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
     fc 6b 9f 5e 69 2f 0a 69 a7 92 35 67 ec 55 79 bc

   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_other_traffic_key (also used for the SYN-ACK):

     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
     ac 1e c2 63 e1 45 25 78 88 77 69 1d b4 d7 e4 50

   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 41 04 00 00 da
     bf 02 08 40 06 00 64 00 01 01 00

   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 (same key as for the SYN-ACK):

     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 41 04 00 00 da
     c0 02 08 40 06 00 64 00 01 01 00

   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
     06 19 b9 b5 16 73 1c 24 66 8c 40 04 1e 65 f5 4e

   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_other_traffic_key (also used for the SYN-ACK):

     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
     12 a4 eb 6d 6c e7 07 e1 d5 cd 4b 5b 74 24 78 6f

   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 41 04 00 00 da
     bf 02 08 40 06 00 64 00 01 01 00

   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 (same key as for the SYN-ACK):

     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 41 04 00 00 da
     c0 02 08 40 06 00 64 00 01 01 00

   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
     90 13 67 b3 82 47 5f 0f 3e aa ce af 06 a7 d0 71

   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_other_traffic_key (also used for the SYN-ACK):

     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
     b8 ef 2e 1f 29 f0 f5 8a 8b ce 3b 08 e8 14 3a 3a

   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 41 04 00 00 da
     bf 02 08 40 06 00 64 00 01 01 00

   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 (same key as for the SYN-ACK):

     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 41 04 00 00 da
     c0 02 08 40 06 00 64 00 01 01 00

   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
     8c 05 05 09 3f 3e 69 a9 81 62 4e c7 1b de c7 d0

   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_other_traffic_key (also used for the SYN-ACK):

     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
     e5 dc fd 62 c5 67 9d 29 17 31 9c 89 19 f0 05 6a

   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 41 04 00 00 da
     bf 02 08 40 06 00 64 00 01 01 00

   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 (same key as for the SYN-ACK):

     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 41 04 00 00 da
     c0 02 08 40 06 00 64 00 01 01 00

   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 74 90 45 01 59 9b 53 71 8a d3 43 94
     05 c9 f9 f3

   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_other_traffic_key (also used for the SYN-ACK):

     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 57 50 d1 27 db cc d2 97 ce 22 80 97
     e5 aa 0d 50

   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 41
     04 00 00 fd e8 02 08 40 06 00 64 00 01 01 00

   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 (same key as for the SYN-ACK):

     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 41
     04 00 00 fd e8 02 08 40 06 00 64 00 01 01 00

   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 1b 21 f1 0d d8 c8 60 84 f0 14 a9 45
     8f de 2d 22

   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_other_traffic_key (also used for the SYN-ACK):

     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 d8 51 95 7a c6 27 ce 69 62 8f a2 24
     69 d7 70 d5

   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 41
     04 00 00 fd e8 02 08 40 06 00 64 00 01 01 00

   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 (same key as for the SYN-ACK):

     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 41
     04 00 00 fd e8 02 08 40 06 00 64 00 01 01 00

   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 30 d5 65 1a a0 ce 84 31 cb 13 bc 5e
     77 9d 12 36

   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_other_traffic_key (also used for the SYN-ACK):

     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 41 d6 0e 40 cd d6 fb 70 67 3a 4d 43
     8c e6 88 29

   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 41
     04 00 00 fd e8 02 08 40 06 00 64 00 01 01 00

   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 (same key as for the SYN-ACK):

     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 41
     04 00 00 fd e8 02 08 40 06 00 64 00 01 01 00

   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 85 33 47 e6 0e bc 68 05 3f dc 02 43
     5c 7d ec 8f

   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_other_traffic_key (also used for the SYN-ACK):

     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 da 1d 61 57 9f 6f c6 41 e9 98 91 89
     88 5d 3b 11

   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 41
     04 00 00 fd e8 02 08 40 06 00 64 00 01 01 00

   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 (same key as for the SYN-ACK):

     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 41
     04 00 00 fd e8 02 08 40 06 00 64 00 01 01 00

   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:
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
VperiZ4eL4zOZereJhwlP88vF5obO7Qp6Zp5ILf+JquJ0vP5uDRVU0mz4/Rp
FTd93FdtoR5uEbX3nTQNdOzZnCaYrKpla9MMZmuy1cMd9Tpu2HB0V2Hv2aXJ
3vkR+T4CygwB7Pfq3nG7zALnREkWxwTsylfDA0fKuRtapivh+7l2C4VYO+eh
zNWU7moRMgE3TEqSzJRbeVU2npEM2h7kB4C5Ti/owpOJyUt4BeZUFmEr6KZa
0deX/hyJjaS2NdljfruCjQD8F8/eAuu+6QXlAEs53BCULBCtToSZ+EtNCvsS
rTsCcn728mwt3oga4mWX3tvYtpTDL2vRnigNMPVg52HfQDN8b0/9SF8PmtNG
bo0eyMlYdzhXMvkFaPm15+cDNHKoXgNRE0NIBQ1c8NisO29UX/wA/wIcPD8F
p56O6vLnIhgQIwFSUbI9mnnAI3SvV+nYn0I6K7hITz7ODfL678370nx44AL4
L8FRiF/wXYEwwXrNL/jquP7ff2s+HvObjeQIz8oMHnsil7tC+bXtjp9P1cNS
T0F3PHT9pweyfGf2eMKDX+uzGtm76ezD2OQXVlrbsK6n72QBn1CZflteXMCs
EIF6Uakn/AVJ9z/NFrDlU10uLlcQ9kfq0cmLE/Wd0QuoqO9XiHPfzVbVmEry
f8wupzyosKwqUuqPs+qyLFaTUr0s8SnXvMOotzOQOhQ0KFCbMRBvPvozOC/0
xXRVqb8QdYvxamqZGtAoF1gpWlxus+BfNqfeUpC+neZbPKr+GR42W1S1YuJR
nmlefvQlPkyZt723t3H+UKgYn6uuyNkw7iu3t5zrUxa1PtmpY3ZtZVtytlvN
zkdZmgsHY/2rchIsTrwAPd/YhrSClSeSoCes9BZpYk8nib5FYnFcGfCgTduQ
eeTlBcICqFsjBpQTbri5GFAnbAoAVzztIyKZGvZqzl0xWQsYSat8NZl7tXX+
+u+4Qy7X2bOTvBDaC34Jfs3emSW3sLLxym79uU31ylw0ZR1nWXtEzYJBT6Ga
JP4Fh9fUwYdLIxcxGAlbl1II5qpBWllPrw/DUPXkVvEfBlZcs/mG0irXE5sk
Pg5Pdxxtnu1YO0WiDjg2XJdCrGgJhtLDU9X52InipNvrD4YjnWZAyqf+bkUj
19xBpln0AoHGIhPRfrr8r7KWEnDKILk8f/2+2567vZ3zRpoZRSdRfBIljQw3
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
WGofGznP+n83bG06K50AAA==

-->

</rfc>
