rfc9235.original   rfc9235.txt 
TCPM J. Touch
Internet Draft Independent consultant
Intended status: Informational J. Kuusisaari
Expires: September 2022 Infinera
March 3, 2022
TCP-AO Test Vectors Internet Engineering Task Force (IETF) J. Touch
draft-ietf-tcpm-ao-test-vectors-09.txt Request for Comments: 9235 Independent Consultant
Category: Informational J. Kuusisaari
ISSN: 2070-1721 Infinera
May 2022
TCP Authentication Option (TCP-AO) Test Vectors
Abstract Abstract
This document provides test vectors to validate implementations of This document provides test vectors to validate implementations of
the two mandatory authentication algorithms specified for the TCP the two mandatory authentication algorithms specified for the TCP
Authentication Option over both IPv4 and IPv6. This includes Authentication Option over both IPv4 and IPv6. This includes
validation of the key derivation function (KDF) based on a set of validation of the key derivation function (KDF) based on a set of
test connection parameters as well as validation of the message test connection parameters as well as validation of the message
authentication code (MAC). Vectors are provided for both currently authentication code (MAC). Vectors are provided for both currently
required pairs of KDF and MAC algorithms: KDF_HMAC_SHA1 and HMAC- 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 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 validate both whole TCP segments as well as segments whose options
are excluded for middlebox traversal. are excluded for middlebox traversal.
Status of this Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at This document is not an Internet Standards Track specification; it is
https://www.ietf.org/shadow.html published for informational purposes.
Internet-Drafts are draft documents valid for a maximum of six This document is a product of the Internet Engineering Task Force
months and may be updated, replaced, or obsoleted by other documents (IETF). It represents the consensus of the IETF community. It has
at any time. It is inappropriate to use Internet-Drafts as received public review and has been approved for publication by the
reference material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Not all documents
approved by the IESG are candidates for any level of Internet
Standard; see Section 2 of RFC 7841.
This Internet-Draft will expire on September 3, 2022. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9235.
Copyright and License Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with carefully, as they describe your rights and restrictions with respect
respect to this document. Code Components extracted from this to this document. Code Components extracted from this document must
document must include Revised BSD License text as described in include Revised BSD License text as described in Section 4.e of the
Section 4.e of the Trust Legal Provisions and are provided without Trust Legal Provisions and are provided without warranty as described
warranty as described in the Revised BSD License. in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction...................................................3 1. Introduction
2. Conventions used in this document..............................4 2. Conventions Used in This Document
3. Input Test Vectors.............................................4 3. Input Test Vectors
3.1. TCP Connection Parameters.................................4 3.1. TCP Connection Parameters
3.1.1. TCP-AO parameters....................................4 3.1.1. TCP-AO Parameters
3.1.2. Active (client) side parameters......................4 3.1.2. Active (Client) Side Parameters
3.1.3. Passive (server) side parameters.....................5 3.1.3. Passive (Server) Side Parameters
3.1.4. Other IP fields and options..........................5 3.1.4. Other IP Fields and Options
3.1.5. Other TCP fields and options.........................5 3.1.5. Other TCP Fields and Options
4. IPv4 SHA-1 Output Test Vectors.................................5 4. IPv4 SHA-1 Output Test Vectors
4.1. HMAC-SHA-1-96 (default - covers TCP options)..............6 4.1. HMAC-SHA-1-96 (Default - Covers TCP Options)
4.1.1. Send (client) SYN (covers options)...................6 4.1.1. Send (Client) SYN (Covers Options)
4.1.2. Receive (server) SYN-ACK (covers options)............6 4.1.2. Receive (Server) SYN-ACK (Covers Options)
4.1.3. Send (client) non-SYN (covers options)...............7 4.1.3. Send (Client) Non-SYN (Covers Options)
4.1.4. Receive (server) non-SYN (covers options)............7 4.1.4. Receive (Server) Non-SYN (Covers Options)
4.2. HMAC-SHA-1-96 (omits TCP options).........................8 4.2. HMAC-SHA-1-96 (Omits TCP Options)
4.2.1. Send (client) SYN (omits options)....................8 4.2.1. Send (Client) SYN (Omits Options)
4.2.2. Receive (server) SYN-ACK (omits options).............8 4.2.2. Receive (Server) SYN-ACK (Omits Options)
4.2.3. Send (client) non-SYN (omits options)................9 4.2.3. Send (Client) Non-SYN (Omits Options)
4.2.4. Receive (server) non-SYN (omits options)............10 4.2.4. Receive (Server) Non-SYN (Omits Options)
5. IPv4 AES-128 Output Test Vectors..............................10 5. IPv4 AES-128 Output Test Vectors
5.1. AES-128-CMAC-96 (default - covers TCP options)...........10 5.1. AES-128-CMAC-96 (Default - Covers TCP Options)
5.1.1. Send (client) SYN (covers options)..................10 5.1.1. Send (Client) SYN (Covers Options)
5.1.2. Receive (server) SYN-ACK (covers options)...........11 5.1.2. Receive (Server) SYN-ACK (Covers Options)
5.1.3. Send (client) non-SYN (covers options)..............12 5.1.3. Send (Client) Non-SYN (Covers Options)
5.1.4. Receive (server) non-SYN (covers options)...........12 5.1.4. Receive (Server) Non-SYN (Covers Options)
5.2. AES-128-CMAC-96 (omits TCP options)......................13 5.2. AES-128-CMAC-96 (Omits TCP Options)
5.2.1. Send (client) SYN (omits options)...................13 5.2.1. Send (Client) SYN (Omits Options)
5.2.2. Receive (server) SYN-ACK (omits options)............13 5.2.2. Receive (Server) SYN-ACK (Omits Options)
5.2.3. Send (client) non-SYN (omits options)...............14 5.2.3. Send (Client) Non-SYN (Omits Options)
5.2.4. Receive (server) non-SYN (omits options)............14 5.2.4. Receive (Server) Non-SYN (Omits Options)
6. IPv6 SHA-1 Output Test Vectors................................15 6. IPv6 SHA-1 Output Test Vectors
6.1. HMAC-SHA-1-96 (default - covers TCP options).............15 6.1. HMAC-SHA-1-96 (Default - Covers TCP Options)
6.1.1. Send (client) SYN (covers options)..................15 6.1.1. Send (Client) SYN (Covers Options)
6.1.2. Receive (server) SYN-ACK (covers options)...........16 6.1.2. Receive (Server) SYN-ACK (Covers Options)
6.1.3. Send (client) non-SYN (covers options)..............16 6.1.3. Send (Client) Non-SYN (Covers Options)
6.1.4. Receive (server) non-SYN (covers options)...........17 6.1.4. Receive (Server) Non-SYN (Covers Options)
6.2. HMAC-SHA-1-96 (omits TCP options)........................18 6.2. HMAC-SHA-1-96 (Omits TCP Options)
6.2.1. Send (client) SYN (omits options)...................18 6.2.1. Send (Client) SYN (Omits Options)
6.2.2. Receive (server) SYN-ACK (omits options)............18 6.2.2. Receive (Server) SYN-ACK (Omits Options)
6.2.3. Send (client) non-SYN (omits options)...............19 6.2.3. Send (Client) Non-SYN (Omits Options)
6.2.4. Receive (server) non-SYN (omits options)............19 6.2.4. Receive (Server) Non-SYN (Omits Options)
7. IPv6 AES-128 Output Test Vectors..............................20 7. IPv6 AES-128 Output Test Vectors
7.1. AES-128-CMAC-96 (default - covers TCP options)...........20 7.1. AES-128-CMAC-96 (Default - Covers TCP Options)
7.1.1. Send (client) SYN (covers options)..................20 7.1.1. Send (Client) SYN (Covers Options)
7.1.2. Receive (server) SYN-ACK (covers options)...........21 7.1.2. Receive (Server) SYN-ACK (Covers Options)
7.1.3. Send (client) non-SYN (covers options)..............21 7.1.3. Send (Client) Non-SYN (Covers Options)
7.1.4. Receive (server) non-SYN (covers options)...........22 7.1.4. Receive (Server) Non-SYN (Covers Options)
7.2. AES-128-CMAC-96 (omits TCP options)......................23 7.2. AES-128-CMAC-96 (Omits TCP Options)
7.2.1. Send (client) SYN (omits options)...................23 7.2.1. Send (Client) SYN (Omits Options)
7.2.2. Receive (server) SYN-ACK (omits options)............23 7.2.2. Receive (Server) SYN-ACK (Omits Options)
7.2.3. Send (client) non-SYN (omits options)...............24 7.2.3. Send (Client) Non-SYN (Omits Options)
7.2.4. Receive (server) non-SYN (omits options)............24 7.2.4. Receive (Server) Non-SYN (Omits Options)
8. Observed Implementation Errors................................25 8. Observed Implementation Errors
8.1. Algorithm issues.........................................25 8.1. Algorithm Issues
8.2. Algorithm parameters.....................................25 8.2. Algorithm Parameters
8.3. String handling issues...................................26 8.3. String Handling Issues
8.4. Header coverage issues...................................26 8.4. Header Coverage Issues
9. Security Considerations.......................................26 9. Security Considerations
10. IANA Considerations..........................................26 10. IANA Considerations
11. References...................................................27 11. References
11.1. Normative References....................................27 11.1. Normative References
11.2. Informative References..................................27 11.2. Informative References
12. Acknowledgments..............................................28 Acknowledgments
Authors' Addresses
1. Introduction 1. Introduction
This document provides test vectors to validate the correct This document provides test vectors to validate the correct
implementation of the TCP Authentication Option (TCP-AO) [RFC5925] implementation of the TCP Authentication Option (TCP-AO) [RFC5925]
and its mandatory cryptographic algorithms defined in [RFC5926]. It and its mandatory cryptographic algorithms defined in [RFC5926]. It
includes the specification of all endpoint parameters to generate includes the specification of all endpoint parameters to generate the
the variety of TCP segments covered by different keys and MAC variety of TCP segments covered by different keys and MAC coverage,
coverage, i.e., both the default case and the variant where TCP i.e., both the default case and the variant where TCP options are
options are ignored for middlebox traversal. It also includes both ignored for middlebox traversal. It also includes both default key
default key derivation functions (KDFs) and MAC generation derivation functions (KDFs) and MAC generation algorithms [RFC5926]
algorithms [RFC5926] and lists common pitfalls of implementing the and lists common pitfalls of implementing the algorithms correctly.
algorithms correctly.
The experimental extension to support NAT traversal [RFC6978] is not The experimental extension to support NAT traversal [RFC6978] is not
included in the provided test vectors. included in the provided test vectors.
This document provides test vectors from multiple implementations This document provides test vectors from multiple implementations
that have been validated against each other for interoperability. that have been validated against each other for interoperability.
2. Conventions used in this document 2. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
3. Input Test Vectors 3. Input Test Vectors
3.1. TCP Connection Parameters 3.1. TCP Connection Parameters
The following parameters are used throughout this suite of test The following parameters are used throughout this suite of test
vectors. The terms 'active' and 'passive' are used as defined for vectors. The terms 'active' and 'passive' are used as defined for
TCP [RFC793]. TCP [RFC0793].
3.1.1. TCP-AO parameters 3.1.1. TCP-AO Parameters
The following values are used for all exchanges. This suite does not The following values are used for all exchanges. This suite does not
test key switchover. The KeyIDs are as indicated for TCP-AO test key switchover. The KeyIDs are as indicated for TCP-AO
[RFC5925]. The Master_Key is used to derive the traffic keys [RFC5925]. The Master_Key is used to derive the traffic keys
[RFC5926]. [RFC5926].
Active (client) side KeyID: 61 decimal (0x3d hexadecimal) Active (client) side KeyID: 61 decimal (0x3d hexadecimal)
Passive (server) side KeyID: 84 decimal (0x54 hexadecimal) Passive (server) side KeyID: 84 decimal (0x54 hexadecimal)
Master_Key: "testvector" (length = 10 bytes) Master_Key: "testvector" (length = 10 bytes)
3.1.2. Active (client) side parameters 3.1.2. Active (Client) Side Parameters
The following endpoint parameters are used on the active side of the The following endpoint parameters are used on the active side of the
TCP connection, i.e., the side that initiates the TCP SYN. TCP connection, i.e., the side that initiates the TCP SYN.
For IPv4: 10.11.12.13 (dotted decimal) For IPv4: 10.11.12.13 (dotted decimal)
For IPv6: fd00::1 (IPv6 hexadecimal) For IPv6: fd00::1 (IPv6 hexadecimal)
TCP port: (varies) TCP port: (varies)
3.1.3. Passive (server) side parameters 3.1.3. Passive (Server) Side Parameters
The following endpoint parameters are used for the passive side of The following endpoint parameters are used for the passive side of
the TCP connection, i.e., the side that responds with a TCP SYN-ACK. the TCP connection, i.e., the side that responds with a TCP SYN-ACK.
For IPv4: 172.27.28.29 (dotted decimal) For IPv4: 172.27.28.29 (dotted decimal)
For IPv6: fd00::2 (IPv6 hexadecimal) For IPv6: fd00::2 (IPv6 hexadecimal)
TCP port = 179 decimal (BGP) TCP port = 179 decimal (BGP)
3.1.4. Other IP fields and options 3.1.4. Other IP Fields and Options
No IP options are used in these test vectors. No IP options are used in these test vectors.
All IPv4 packets use the following other parameters [RFC791]: DSCP = All IPv4 packets use the following other parameters [RFC0791]:
111000 binary (CS7) as is typical for BGP, ECN = 00 binary, set DF, Differentiated Services Code Point (DSCP) = 111000 binary (CS7) as is
and clear MF. typical for BGP, Explicit Congestion Notification (ECN) = 00 binary,
set the Don't Fragment (DF) bit, and clear the More Fragments (MF)
bit.
IPv4 uses a TTL of 255 decimal; IPv6 uses a hop limit of 255 IPv4 uses a TTL of 255 decimal; IPv6 uses a hop limit of 255 decimal.
decimal.
All IPv6 packets use the following other parameters [RFC8200]: All IPv6 packets use the following other parameters [RFC8200]:
traffic class = 0xe0 hexadecimal (DSCP = 111000 binary CS7, as is traffic class = 0xe0 hexadecimal (DSCP = 111000 binary CS7, as is
typical for BGP, with ECN = 00 binary) and no EHs. typical for BGP, with ECN = 00 binary) and no Extension Headers
(EHs).
3.1.5. Other TCP fields and options 3.1.5. Other TCP Fields and Options
The SYN and SYN-ACK segments include MSS [RFC793], NOP, WindowScale The SYN and SYN-ACK segments include Maximum Segment Size (MSS)
[RFC7323], SACK Permitted [RFC2018], TimeStamp [RFC7323], and TCP-AO [RFC0793], No Operation (NOP), Window Scale [RFC7323], Selective
[RFC5925], in that order. Acknowledgment (SACK) permitted [RFC2018], Timestamp [RFC7323], and
TCP-AO [RFC5925], in that order.
All other example segments include NOP, NOP, TimeStamp, and TCP-AO, All other example segments include NOP, NOP, Timestamp, and TCP-AO,
in that order. in that order.
All segment URG pointers are zero [RFC793]. All segments with data All segment urgent (URG) pointers are zero [RFC0793]. All segments
set the PSH flag [RFC793]. with data set the push (PSH) flag [RFC0793].
Each TCP connection below uses the Initial Sequence Numbers (ISNs) Each TCP connection below uses the Initial Sequence Numbers (ISNs) as
as indicated at the front of each corresponding section. indicated at the front of each corresponding section.
4. IPv4 SHA-1 Output Test Vectors 4. IPv4 SHA-1 Output Test Vectors
The SHA-1 KDF and MAC algorithms, KDF_HMAC_SHA1 and HMAC-SHA-1-96, The SHA-1 KDF and MAC algorithms, KDF_HMAC_SHA1 and HMAC-SHA-1-96,
are computed as specified for TCP-AO [RFC5926]. are computed as specified for TCP-AO [RFC5926].
In the following sections, all values are indicated as 2-digit In the following sections, all values are indicated as 2-digit
hexadecimal values with spacing per line representing the contents hexadecimal values with spacing per line representing the contents of
of 16 consecutive bytes, as is typical for data dumps. The IP/TCP 16 consecutive bytes, as is typical for data dumps. The IP/TCP data
data indicates the entire IP packet, including the TCP segment and indicates the entire IP packet, including the TCP segment and its
its options (whether covered by TCP-AO or not, as indicated), options (whether covered by TCP-AO or not, as indicated), including
including TCP-AO. TCP-AO.
4.1. HMAC-SHA-1-96 (default - covers TCP options) 4.1. HMAC-SHA-1-96 (Default - Covers TCP Options)
4.1.1. Send (client) SYN (covers options) 4.1.1. Send (Client) SYN (Covers Options)
Client ISN = 0xfbfbab5a Client ISN = 0xfbfbab5a
Send_SYN_traffic_key: Send_SYN_traffic_key:
6d 63 ef 1b 02 fe 15 09 d4 b1 40 27 07 fd 7b 04 6d 63 ef 1b 02 fe 15 09 d4 b1 40 27 07 fd 7b 04
16 ab b7 4f 16 ab b7 4f
IPv4/TCP: IPv4/TCP:
45 e0 00 4c dd 0f 40 00 ff 06 bf 6b 0a 0b 0c 0d 45 e0 00 4c dd 0f 40 00 ff 06 bf 6b 0a 0b 0c 0d
ac 1b 1c 1d e9 d7 00 b3 fb fb ab 5a 00 00 00 00 ac 1b 1c 1d e9 d7 00 b3 fb fb ab 5a 00 00 00 00
e0 02 ff ff ca c4 00 00 02 04 05 b4 01 03 03 08 e0 02 ff ff ca c4 00 00 02 04 05 b4 01 03 03 08
04 02 08 0a 00 15 5a b7 00 00 00 00 1d 10 3d 54 04 02 08 0a 00 15 5a b7 00 00 00 00 1d 10 3d 54
2e e4 37 c6 f8 ed e6 d7 c4 d6 02 e7 2e e4 37 c6 f8 ed e6 d7 c4 d6 02 e7
MAC: MAC:
2e e4 37 c6 f8 ed e6 d7 c4 d6 02 e7 2e e4 37 c6 f8 ed e6 d7 c4 d6 02 e7
4.1.2. Receive (server) SYN-ACK (covers options) 4.1.2. Receive (Server) SYN-ACK (Covers Options)
Server ISN = 0x11c14261 Server ISN = 0x11c14261
Receive_SYN_traffic_key: Receive_SYN_traffic_key:
d9 e2 17 e4 83 4a 80 ca 2f 3f d8 de 2e 41 b8 e6 d9 e2 17 e4 83 4a 80 ca 2f 3f d8 de 2e 41 b8 e6
79 7f ea 96 79 7f ea 96
IPv4/TCP: IPv4/TCP:
45 e0 00 4c 65 06 40 00 ff 06 37 75 ac 1b 1c 1d 45 e0 00 4c 65 06 40 00 ff 06 37 75 ac 1b 1c 1d
0a 0b 0c 0d 00 b3 e9 d7 11 c1 42 61 fb fb ab 5b 0a 0b 0c 0d 00 b3 e9 d7 11 c1 42 61 fb fb ab 5b
e0 12 ff ff 37 76 00 00 02 04 05 b4 01 03 03 08 e0 12 ff ff 37 76 00 00 02 04 05 b4 01 03 03 08
04 02 08 0a 84 a5 0b eb 00 15 5a b7 1d 10 54 3d 04 02 08 0a 84 a5 0b eb 00 15 5a b7 1d 10 54 3d
ee ab 0f e2 4c 30 10 81 51 16 b3 be ee ab 0f e2 4c 30 10 81 51 16 b3 be
MAC: MAC:
ee ab 0f e2 4c 30 10 81 51 16 b3 be ee ab 0f e2 4c 30 10 81 51 16 b3 be
4.1.3. Send (client) non-SYN (covers options) 4.1.3. Send (Client) Non-SYN (Covers Options)
Send_other_traffic_key: Send_other_traffic_key:
d2 e5 9c 65 ff c7 b1 a3 93 47 65 64 63 b7 0e dc d2 e5 9c 65 ff c7 b1 a3 93 47 65 64 63 b7 0e dc
24 a1 3d 71 24 a1 3d 71
IPv4/TCP: IPv4/TCP:
45 e0 00 87 36 a1 40 00 ff 06 65 9f 0a 0b 0c 0d 45 e0 00 87 36 a1 40 00 ff 06 65 9f 0a 0b 0c 0d
ac 1b 1c 1d e9 d7 00 b3 fb fb ab 5b 11 c1 42 62 ac 1b 1c 1d e9 d7 00 b3 fb fb ab 5b 11 c1 42 62
skipping to change at page 7, line 40 skipping to change at line 303
c2 c2 e2 bf ff ff ff ff ff ff ff ff ff ff ff ff c2 c2 e2 bf ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff 00 43 01 04 da bf 00 b4 0a 0b 0c 0d 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 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 00 02 02 42 00 02 06 41 04 00 00 da bf 02 08 40
06 00 64 00 01 01 00 06 00 64 00 01 01 00
MAC: MAC:
70 64 cf 99 8c c6 c3 15 c2 c2 e2 bf 70 64 cf 99 8c c6 c3 15 c2 c2 e2 bf
4.1.4. Receive (server) non-SYN (covers options) 4.1.4. Receive (Server) Non-SYN (Covers Options)
Receive_other_traffic_key: Receive_other_traffic_key:
d9 e2 17 e4 83 4a 80 ca 2f 3f d8 de 2e 41 b8 e6 d9 e2 17 e4 83 4a 80 ca 2f 3f d8 de 2e 41 b8 e6
79 7f ea 96 79 7f ea 96
IPv4/TCP: IPv4/TCP:
45 e0 00 87 1f a9 40 00 ff 06 7c 97 ac 1b 1c 1d 45 e0 00 87 1f a9 40 00 ff 06 7c 97 ac 1b 1c 1d
0a 0b 0c 0d 00 b3 e9 d7 11 c1 42 62 fb fb ab 9e 0a 0b 0c 0d 00 b3 e9 d7 11 c1 42 62 fb fb ab 9e
skipping to change at page 8, line 21 skipping to change at line 326
95 4d ea c7 ff ff ff ff ff ff ff ff ff ff ff ff 95 4d ea c7 ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff 00 43 01 04 da c0 00 b4 ac 1b 1c 1d 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 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 00 02 02 42 00 02 06 41 04 00 00 da c0 02 08 40
06 00 64 00 01 01 00 06 00 64 00 01 01 00
MAC: MAC:
a6 3f 0e cb bb 2e 63 5c 95 4d ea c7 a6 3f 0e cb bb 2e 63 5c 95 4d ea c7
4.2. HMAC-SHA-1-96 (omits TCP options) 4.2. HMAC-SHA-1-96 (Omits TCP Options)
4.2.1. Send (client) SYN (omits options) 4.2.1. Send (Client) SYN (Omits Options)
Client ISN = 0xcb0efbee Client ISN = 0xcb0efbee
Send_SYN_traffic_key: Send_SYN_traffic_key:
30 ea a1 56 0c f0 be 57 da b5 c0 45 22 9f b1 0a 30 ea a1 56 0c f0 be 57 da b5 c0 45 22 9f b1 0a
42 3c d7 ea 42 3c d7 ea
IPv4/TCP: IPv4/TCP:
45 e0 00 4c 53 99 40 00 ff 06 48 e2 0a 0b 0c 0d 45 e0 00 4c 53 99 40 00 ff 06 48 e2 0a 0b 0c 0d
ac 1b 1c 1d ff 12 00 b3 cb 0e fb ee 00 00 00 00 ac 1b 1c 1d ff 12 00 b3 cb 0e fb ee 00 00 00 00
e0 02 ff ff 54 1f 00 00 02 04 05 b4 01 03 03 08 e0 02 ff ff 54 1f 00 00 02 04 05 b4 01 03 03 08
04 02 08 0a 00 02 4c ce 00 00 00 00 1d 10 3d 54 04 02 08 0a 00 02 4c ce 00 00 00 00 1d 10 3d 54
80 af 3c fe b8 53 68 93 7b 8f 9e c2 80 af 3c fe b8 53 68 93 7b 8f 9e c2
MAC: MAC:
80 af 3c fe b8 53 68 93 7b 8f 9e c2 80 af 3c fe b8 53 68 93 7b 8f 9e c2
4.2.2. Receive (server) SYN-ACK (omits options) 4.2.2. Receive (Server) SYN-ACK (Omits Options)
Server ISN = 0xacd5b5e1 Server ISN = 0xacd5b5e1
Receive_SYN_traffic_key: Receive_SYN_traffic_key:
b5 b2 89 6b b3 66 4e 81 76 b0 ed c6 e7 99 52 41a b5 b2 89 6b b3 66 4e 81 76 b0 ed c6 e7 99 52 41a
01 a8 30 7f 01 a8 30 7f
IPv4/TCP: IPv4/TCP:
45 e0 00 4c 32 84 40 00 ff 06 69 f7 ac 1b 1c 1d 45 e0 00 4c 32 84 40 00 ff 06 69 f7 ac 1b 1c 1d
0a 0b 0c 0d 00 b3 ff 12 ac d5 b5 e1 cb 0e fb ef 0a 0b 0c 0d 00 b3 ff 12 ac d5 b5 e1 cb 0e fb ef
e0 12 ff ff 38 8e 00 00 02 04 05 b4 01 03 03 08 e0 12 ff ff 38 8e 00 00 02 04 05 b4 01 03 03 08
04 02 08 0a 57 67 72 f3 00 02 4c ce 1d 10 54 3d 04 02 08 0a 57 67 72 f3 00 02 4c ce 1d 10 54 3d
09 30 6f 9a ce a6 3a 8c 68 cb 9a 70 09 30 6f 9a ce a6 3a 8c 68 cb 9a 70
MAC: MAC:
09 30 6f 9a ce a6 3a 8c 68 cb 9a 70 09 30 6f 9a ce a6 3a 8c 68 cb 9a 70
4.2.3. Send (client) non-SYN (omits options) 4.2.3. Send (Client) Non-SYN (Omits Options)
Send_other_traffic_key: Send_other_traffic_key:
f3 db 17 93 d7 91 0e cd 80 6c 34 f1 55 ea 1f 00 f3 db 17 93 d7 91 0e cd 80 6c 34 f1 55 ea 1f 00
34 59 53 e3 34 59 53 e3
IPv4/TCP: IPv4/TCP:
45 e0 00 87 a8 f5 40 00 ff 06 f3 4a 0a 0b 0c 0d 45 e0 00 87 a8 f5 40 00 ff 06 f3 4a 0a 0b 0c 0d
ac 1b 1c 1d ff 12 00 b3 cb 0e fb ef ac d5 b5 e2 ac 1b 1c 1d ff 12 00 b3 cb 0e fb ef ac d5 b5 e2
skipping to change at page 10, line 5 skipping to change at line 393
71 c9 3a a5 ff ff ff ff ff ff ff ff ff ff ff ff 71 c9 3a a5 ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff 00 43 01 04 da bf 00 b4 0a 0b 0c 0d 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 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 00 02 02 42 00 02 06 41 04 00 00 da bf 02 08 40
06 00 64 00 01 01 00 06 00 64 00 01 01 00
MAC: MAC:
71 06 08 cc 69 6c 03 a2 71 c9 3a a5 71 06 08 cc 69 6c 03 a2 71 c9 3a a5
4.2.4. Receive (server) non-SYN (omits options) 4.2.4. Receive (Server) Non-SYN (Omits Options)
Receive_other_traffic_key: Receive_other_traffic_key:
b5 b2 89 6b b3 66 4e 81 76 b0 ed c6 e7 99 52 41 b5 b2 89 6b b3 66 4e 81 76 b0 ed c6 e7 99 52 41
01 a8 30 7f 01 a8 30 7f
IPv4/TCP: IPv4/TCP:
45 e0 00 87 54 37 40 00 ff 06 48 09 ac 1b 1c 1d 45 e0 00 87 54 37 40 00 ff 06 48 09 ac 1b 1c 1d
0a 0b 0c 0d 00 b3 ff 12 ac d5 b5 e2 cb 0e fc 32 0a 0b 0c 0d 00 b3 ff 12 ac d5 b5 e2 cb 0e fc 32
skipping to change at page 10, line 28 skipping to change at line 416
ae 61 b4 f9 ff ff ff ff ff ff ff ff ff ff ff ff ae 61 b4 f9 ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff 00 43 01 04 da c0 00 b4 ac 1b 1c 1d 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 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 00 02 02 42 00 02 06 41 04 00 00 da c0 02 08 40
06 00 64 00 01 01 00 06 00 64 00 01 01 00
MAC: MAC:
97 76 6e 48 ac 26 2d e9 ae 61 b4 f9 97 76 6e 48 ac 26 2d e9 ae 61 b4 f9
5. IPv4 AES-128 Output Test Vectors 5. IPv4 AES-128 Output Test Vectors
The AES-128 KDF and MAC algorithms, KDF_AES_128_CMAC and AES-128- The AES-128 KDF and MAC algorithms, KDF_AES_128_CMAC and AES-128-
CMAC-96, are computed as specified for TCP-AO [RFC5926]. CMAC-96, are computed as specified for TCP-AO [RFC5926].
In the following sections, all values are indicated as 2-digit In the following sections, all values are indicated as 2-digit
hexadecimal values with spacing per line representing the contents hexadecimal values with spacing per line representing the contents of
of 16 consecutive bytes, as is typical for data dumps. The IP/TCP 16 consecutive bytes, as is typical for data dumps. The IP/TCP data
data indicates the entire IP packet, including the TCP segment and indicates the entire IP packet, including the TCP segment and its
its options (whether covered by TCP-AO or not, as indicated), options (whether covered by TCP-AO or not, as indicated), including
including TCP-AO. TCP-AO.
5.1. AES-128-CMAC-96 (default - covers TCP options) 5.1. AES-128-CMAC-96 (Default - Covers TCP Options)
5.1.1. Send (client) SYN (covers options) 5.1.1. Send (Client) SYN (Covers Options)
Client ISN = 0x787a1ddf Client ISN = 0x787a1ddf
Send_SYN_traffic_key: Send_SYN_traffic_key:
f5 b8 b3 d5 f3 4f db b6 eb 8d 4a b9 66 0e 60 e3 f5 b8 b3 d5 f3 4f db b6 eb 8d 4a b9 66 0e 60 e3
IP/TCP: IP/TCP:
45 e0 00 4c 7b 9f 40 00 ff 06 20 dc 0a 0b 0c 0d 45 e0 00 4c 7b 9f 40 00 ff 06 20 dc 0a 0b 0c 0d
ac 1b 1c 1d c4 fa 00 b3 78 7a 1d df 00 00 00 00 ac 1b 1c 1d c4 fa 00 b3 78 7a 1d df 00 00 00 00
e0 02 ff ff 5a 0f 00 00 02 04 05 b4 01 03 03 08 e0 02 ff ff 5a 0f 00 00 02 04 05 b4 01 03 03 08
04 02 08 0a 00 01 7e d0 00 00 00 00 1d 10 3d 54 04 02 08 0a 00 01 7e d0 00 00 00 00 1d 10 3d 54
e4 77 e9 9c 80 40 76 54 98 e5 50 91 e4 77 e9 9c 80 40 76 54 98 e5 50 91
MAC: MAC:
e4 77 e9 9c 80 40 76 54 98 e5 50 91 e4 77 e9 9c 80 40 76 54 98 e5 50 91
5.1.2. Receive (server) SYN-ACK (covers options) 5.1.2. Receive (Server) SYN-ACK (Covers Options)
Server ISN = 0xfadd6de9 Server ISN = 0xfadd6de9
Receive_SYN_traffic_key: Receive_SYN_traffic_key:
4b c7 57 1a 48 6f 32 64 bb d8 88 47 40 66 b4 b1 4b c7 57 1a 48 6f 32 64 bb d8 88 47 40 66 b4 b1
IPv4/TCP: IPv4/TCP:
45 e0 00 4c 4b ad 40 00 ff 06 50 ce ac 1b 1c 1d 45 e0 00 4c 4b ad 40 00 ff 06 50 ce ac 1b 1c 1d
0a 0b 0c 0d 00 b3 c4 fa fa dd 6d e9 78 7a 1d e0 0a 0b 0c 0d 00 b3 c4 fa fa dd 6d e9 78 7a 1d e0
e0 12 ff ff f3 f2 00 00 02 04 05 b4 01 03 03 08 e0 12 ff ff f3 f2 00 00 02 04 05 b4 01 03 03 08
04 02 08 0a 93 f4 e9 e8 00 01 7e d0 1d 10 54 3d 04 02 08 0a 93 f4 e9 e8 00 01 7e d0 1d 10 54 3d
d6 ad a7 bc 4c dd 53 6d 17 69 db 5f d6 ad a7 bc 4c dd 53 6d 17 69 db 5f
MAC: MAC:
d6 ad a7 bc 4c dd 53 6d 17 69 db 5f d6 ad a7 bc 4c dd 53 6d 17 69 db 5f
5.1.3. Send (client) non-SYN (covers options) 5.1.3. Send (Client) Non-SYN (Covers Options)
Send_other_traffic_key: Send_other_traffic_key:
8c 8a e0 e8 37 1e c5 cb b9 7e a7 9d 90 41 83 91 8c 8a e0 e8 37 1e c5 cb b9 7e a7 9d 90 41 83 91
IPv4/TCP: IPv4/TCP:
45 e0 00 87 fb 4f 40 00 ff 06 a0 f0 0a 0b 0c 0d 45 e0 00 87 fb 4f 40 00 ff 06 a0 f0 0a 0b 0c 0d
ac 1b 1c 1d c4 fa 00 b3 78 7a 1d e0 fa dd 6d ea ac 1b 1c 1d c4 fa 00 b3 78 7a 1d e0 fa dd 6d ea
c0 18 01 04 95 05 00 00 01 01 08 0a 00 01 7e d0 c0 18 01 04 95 05 00 00 01 01 08 0a 00 01 7e d0
skipping to change at page 12, line 27 skipping to change at line 492
ef f0 97 3e ff ff ff ff ff ff ff ff ff ff ff ff ef f0 97 3e ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff 00 43 01 04 da bf 00 b4 0a 0b 0c 0d 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 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 00 02 02 42 00 02 06 41 04 00 00 da bf 02 08 40
06 00 64 00 01 01 00 06 00 64 00 01 01 00
MAC: MAC:
77 41 27 42 fa 4d c4 33 ef f0 97 3e 77 41 27 42 fa 4d c4 33 ef f0 97 3e
5.1.4. Receive (server) non-SYN (covers options) 5.1.4. Receive (Server) Non-SYN (Covers Options)
Receive_other_traffic_key: Receive_other_traffic_key:
4b c7 57 1a 48 6f 32 64 bb d8 88 47 40 66 b4 b1 4b c7 57 1a 48 6f 32 64 bb d8 88 47 40 66 b4 b1
IPv4/TCP: IPv4/TCP:
45 e0 00 87 b9 14 40 00 ff 06 e3 2b ac 1b 1c 1d 45 e0 00 87 b9 14 40 00 ff 06 e3 2b ac 1b 1c 1d
0a 0b 0c 0d 00 b3 c4 fa fa dd 6d ea 78 7a 1e 23 0a 0b 0c 0d 00 b3 c4 fa fa dd 6d ea 78 7a 1e 23
c0 18 01 00 e7 db 00 00 01 01 08 0a 93 f4 e9 e8 c0 18 01 00 e7 db 00 00 01 01 08 0a 93 f4 e9 e8
skipping to change at page 13, line 9 skipping to change at line 514
45 f7 2d ac ff ff ff ff ff ff ff ff ff ff ff ff 45 f7 2d ac ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff 00 43 01 04 da c0 00 b4 ac 1b 1c 1d 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 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 00 02 02 42 00 02 06 41 04 00 00 da c0 02 08 40
06 00 64 00 01 01 00 06 00 64 00 01 01 00
MAC: MAC:
f6 d9 65 a7 83 82 a7 48 45 f7 2d ac f6 d9 65 a7 83 82 a7 48 45 f7 2d ac
5.2. AES-128-CMAC-96 (omits TCP options) 5.2. AES-128-CMAC-96 (Omits TCP Options)
5.2.1. Send (client) SYN (omits options) 5.2.1. Send (Client) SYN (Omits Options)
Client ISN = 0x389bed71 Client ISN = 0x389bed71
Send_SYN_traffic_key: Send_SYN_traffic_key:
2c db ae 13 92 c4 94 49 fa 92 c4 50 97 35 d5 0e 2c db ae 13 92 c4 94 49 fa 92 c4 50 97 35 d5 0e
IPv4/TCP: IPv4/TCP:
45 e0 00 4c f2 2e 40 00 ff 06 aa 4c 0a 0b 0c 0d 45 e0 00 4c f2 2e 40 00 ff 06 aa 4c 0a 0b 0c 0d
ac 1b 1c 1d da 1c 00 b3 38 9b ed 71 00 00 00 00 ac 1b 1c 1d da 1c 00 b3 38 9b ed 71 00 00 00 00
e0 02 ff ff 70 bf 00 00 02 04 05 b4 01 03 03 08 e0 02 ff ff 70 bf 00 00 02 04 05 b4 01 03 03 08
04 02 08 0a 00 01 85 e1 00 00 00 00 1d 10 3d 54 04 02 08 0a 00 01 85 e1 00 00 00 00 1d 10 3d 54
c4 4e 60 cb 31 f7 c0 b1 de 3d 27 49 c4 4e 60 cb 31 f7 c0 b1 de 3d 27 49
MAC: MAC:
c4 4e 60 cb 31 f7 c0 b1 de 3d 27 49 c4 4e 60 cb 31 f7 c0 b1 de 3d 27 49
5.2.2. Receive (server) SYN-ACK (omits options) 5.2.2. Receive (Server) SYN-ACK (Omits Options)
Server ISN = 0xd3844a6f Server ISN = 0xd3844a6f
Receive_SYN_traffic_key: Receive_SYN_traffic_key:
3c e6 7a 55 18 69 50 6b 63 47 b6 33 c5 0a 62 4a 3c e6 7a 55 18 69 50 6b 63 47 b6 33 c5 0a 62 4a
IPv4/TCP: IPv4/TCP:
45 e0 00 4c 6c c0 40 00 ff 06 2f bb ac 1b 1c 1d 45 e0 00 4c 6c c0 40 00 ff 06 2f bb ac 1b 1c 1d
0a 0b 0c 0d 00 b3 da 1c d3 84 4a 6f 38 9b ed 72 0a 0b 0c 0d 00 b3 da 1c d3 84 4a 6f 38 9b ed 72
e0 12 ff ff e4 45 00 00 02 04 05 b4 01 03 03 08 e0 12 ff ff e4 45 00 00 02 04 05 b4 01 03 03 08
04 02 08 0a ce 45 98 38 00 01 85 e1 1d 10 54 3d 04 02 08 0a ce 45 98 38 00 01 85 e1 1d 10 54 3d
3a 6a bb 20 7e 49 b1 be 71 36 db 90 3a 6a bb 20 7e 49 b1 be 71 36 db 90
MAC: MAC:
3a 6a bb 20 7e 49 b1 be 71 36 db 90 3a 6a bb 20 7e 49 b1 be 71 36 db 90
5.2.3. Send (client) non-SYN (omits options) 5.2.3. Send (Client) Non-SYN (Omits Options)
Send_other_traffic_key: Send_other_traffic_key:
03 5b c4 00 a3 41 ff e5 95 f5 9f 58 00 50 06 ca 03 5b c4 00 a3 41 ff e5 95 f5 9f 58 00 50 06 ca
IPv4/TCP: IPv4/TCP:
45 e0 00 87 ee 91 40 00 ff 06 ad ae 0a 0b 0c 0d 45 e0 00 87 ee 91 40 00 ff 06 ad ae 0a 0b 0c 0d
ac 1b 1c 1d da 1c 00 b3 38 9b ed 72 d3 84 4a 70 ac 1b 1c 1d da 1c 00 b3 38 9b ed 72 d3 84 4a 70
c0 18 01 04 88 51 00 00 01 01 08 0a 00 01 85 e1 c0 18 01 04 88 51 00 00 01 01 08 0a 00 01 85 e1
skipping to change at page 14, line 31 skipping to change at line 578
7b 96 f8 37 ff ff ff ff ff ff ff ff ff ff ff ff 7b 96 f8 37 ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff 00 43 01 04 da bf 00 b4 0a 0b 0c 0d 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 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 00 02 02 42 00 02 06 41 04 00 00 da bf 02 08 40
06 00 64 00 01 01 00 06 00 64 00 01 01 00
MAC: MAC:
75 85 e9 e9 d5 c3 ec 85 7b 96 f8 37 75 85 e9 e9 d5 c3 ec 85 7b 96 f8 37
5.2.4. Receive (server) non-SYN (omits options) 5.2.4. Receive (Server) Non-SYN (Omits Options)
Receive_other_traffic_key: Receive_other_traffic_key:
3c e6 7a 55 18 69 50 6b 63 47 b6 33 c5 0a 62 4a 3c e6 7a 55 18 69 50 6b 63 47 b6 33 c5 0a 62 4a
IPv4/TCP: IPv4/TCP:
45 e0 00 87 6a 21 40 00 ff 06 32 1f ac 1b 1c 1d 45 e0 00 87 6a 21 40 00 ff 06 32 1f ac 1b 1c 1d
0a 0b 0c 0d 00 b3 da 1c d3 84 4a 70 38 9b ed 72 0a 0b 0c 0d 00 b3 da 1c d3 84 4a 70 38 9b ed 72
c0 18 01 00 04 49 00 00 01 01 08 0a ce 45 98 38 c0 18 01 00 04 49 00 00 01 01 08 0a ce 45 98 38
skipping to change at page 15, line 21 skipping to change at line 600
5c 09 82 f4 ff ff ff ff ff ff ff ff ff ff ff ff 5c 09 82 f4 ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff 00 43 01 04 da c0 00 b4 ac 1b 1c 1d 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 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 00 02 02 42 00 02 06 41 04 00 00 da c0 02 08 40
06 00 64 00 01 01 00 06 00 64 00 01 01 00
MAC: MAC:
5c 04 0f d9 23 33 04 76 5c 09 82 f4 5c 04 0f d9 23 33 04 76 5c 09 82 f4
6. IPv6 SHA-1 Output Test Vectors 6. IPv6 SHA-1 Output Test Vectors
The SHA-1 KDF and MAC algorithms, KDF_HMAC_SHA1 and HMAC-SHA-1-96, The SHA-1 KDF and MAC algorithms, KDF_HMAC_SHA1 and HMAC-SHA-1-96,
are computed as specified for TCP-AO [RFC5926]. are computed as specified for TCP-AO [RFC5926].
6.1. HMAC-SHA-1-96 (default - covers TCP options) 6.1. HMAC-SHA-1-96 (Default - Covers TCP Options)
6.1.1. Send (client) SYN (covers options) 6.1.1. Send (Client) SYN (Covers Options)
Client ISN = 0x176a833f Client ISN = 0x176a833f
Send_SYN_traffic_key: Send_SYN_traffic_key:
62 5e c0 9d 57 58 36 ed c9 b6 42 84 18 bb f0 69 62 5e c0 9d 57 58 36 ed c9 b6 42 84 18 bb f0 69
89 a3 61 bb 89 a3 61 bb
IPv6/TCP: IPv6/TCP:
skipping to change at page 16, line 9 skipping to change at line 629
00 00 00 00 00 00 00 01 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 00 00 00 02 f7 e4 00 b3 17 6a 83 3f
00 00 00 00 e0 02 ff ff 47 21 00 00 02 04 05 a0 00 00 00 00 e0 02 ff ff 47 21 00 00 02 04 05 a0
01 03 03 08 04 02 08 0a 00 41 d0 87 00 00 00 00 01 03 03 08 04 02 08 0a 00 41 d0 87 00 00 00 00
1d 10 3d 54 90 33 ec 3d 73 34 b6 4c 5e dd 03 9f 1d 10 3d 54 90 33 ec 3d 73 34 b6 4c 5e dd 03 9f
MAC: MAC:
90 33 ec 3d 73 34 b6 4c 5e dd 03 9f 90 33 ec 3d 73 34 b6 4c 5e dd 03 9f
6.1.2. Receive (server) SYN-ACK (covers options) 6.1.2. Receive (Server) SYN-ACK (Covers Options)
Server ISN = 0x3f51994b Server ISN = 0x3f51994b
Receive_SYN_traffic_key: Receive_SYN_traffic_key:
e4 a3 7a da 2a 0a fc a8 71 14 34 91 3f e1 38 c7 e4 a3 7a da 2a 0a fc a8 71 14 34 91 3f e1 38 c7
71 eb cb 4a 71 eb cb 4a
IPv6/TCP: IPv6/TCP:
skipping to change at page 16, line 31 skipping to change at line 651
00 00 00 00 00 00 00 02 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 00 00 00 00 00 00 00 01 00 b3 f7 e4 3f 51 99 4b
17 6a 83 40 e0 12 ff ff bf ec 00 00 02 04 05 a0 17 6a 83 40 e0 12 ff ff bf ec 00 00 02 04 05 a0
01 03 03 08 04 02 08 0a bd 33 12 9b 00 41 d0 87 01 03 03 08 04 02 08 0a bd 33 12 9b 00 41 d0 87
1d 10 54 3d f1 cb a3 46 c3 52 61 63 f7 1f 1f 55 1d 10 54 3d f1 cb a3 46 c3 52 61 63 f7 1f 1f 55
MAC: MAC:
f1 cb a3 46 c3 52 61 63 f7 1f 1f 55 f1 cb a3 46 c3 52 61 63 f7 1f 1f 55
6.1.3. Send (client) non-SYN (covers options) 6.1.3. Send (Client) Non-SYN (Covers Options)
Send_other_traffic_key: Send_other_traffic_key:
1e d8 29 75 f4 ea 44 4c 61 58 0c 5b d9 0d bd 61 1e d8 29 75 f4 ea 44 4c 61 58 0c 5b d9 0d bd 61
bb c9 1b 7e bb c9 1b 7e
IPv6/TCP: IPv6/TCP:
6e 08 91 dc 00 73 06 40 fd 00 00 00 00 00 00 00 6e 08 91 dc 00 73 06 40 fd 00 00 00 00 00 00 00
00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00
skipping to change at page 17, line 22 skipping to change at line 675
b4 ac 7b 16 3d 6f cd f2 ff ff ff ff ff ff ff ff b4 ac 7b 16 3d 6f cd f2 ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff 00 43 01 04 fd e8 00 b4 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 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 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 e8 02 08 40 06 00 64 00 01 01 00
MAC: MAC:
bf 08 05 fe b4 ac 7b 16 3d 6f cd f2 bf 08 05 fe b4 ac 7b 16 3d 6f cd f2
6.1.4. Receive (server) non-SYN (covers options) 6.1.4. Receive (Server) Non-SYN (Covers Options)
Receive_other_traffic_key: Receive_other_traffic_key:
e4 a3 7a da 2a 0a fc a8 71 14 34 91 3f e1 38 c7 e4 a3 7a da 2a 0a fc a8 71 14 34 91 3f e1 38 c7
71 eb cb 4a 71 eb cb 4a
IPv6/TCP: IPv6/TCP:
6e 01 00 9e 00 73 06 40 fd 00 00 00 00 00 00 00 6e 01 00 9e 00 73 06 40 fd 00 00 00 00 00 00 00
00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00
skipping to change at page 18, line 5 skipping to change at line 699
11 33 5b ab 9a 07 a7 97 ff ff ff ff ff ff ff ff 11 33 5b ab 9a 07 a7 97 ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff 00 43 01 04 fd e8 00 b4 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 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 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 e8 02 08 40 06 00 64 00 01 01 00
MAC: MAC:
6c 48 12 5c 11 33 5b ab 9a 07 a7 97 6c 48 12 5c 11 33 5b ab 9a 07 a7 97
6.2. HMAC-SHA-1-96 (omits TCP options) 6.2. HMAC-SHA-1-96 (Omits TCP Options)
6.2.1. Send (client) SYN (omits options) 6.2.1. Send (Client) SYN (Omits Options)
Client ISN = 0x020c1e69 Client ISN = 0x020c1e69
Send_SYN_traffic_key: Send_SYN_traffic_key:
31 a3 fa f6 9e ff ae 52 93 1b 7f 84 54 67 31 5c 31 a3 fa f6 9e ff ae 52 93 1b 7f 84 54 67 31 5c
27 0a 4e dc 27 0a 4e dc
IPv6/TCP: IPv6/TCP:
skipping to change at page 18, line 29 skipping to change at line 723
00 00 00 00 00 00 00 01 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 00 00 00 02 c6 cd 00 b3 02 0c 1e 69
00 00 00 00 e0 02 ff ff a4 1a 00 00 02 04 05 a0 00 00 00 00 e0 02 ff ff a4 1a 00 00 02 04 05 a0
01 03 03 08 04 02 08 0a 00 9d b9 5b 00 00 00 00 01 03 03 08 04 02 08 0a 00 9d b9 5b 00 00 00 00
1d 10 3d 54 88 56 98 b0 53 0e d4 d5 a1 5f 83 46 1d 10 3d 54 88 56 98 b0 53 0e d4 d5 a1 5f 83 46
MAC: MAC:
88 56 98 b0 53 0e d4 d5 a1 5f 83 46 88 56 98 b0 53 0e d4 d5 a1 5f 83 46
6.2.2. Receive (server) SYN-ACK (omits options) 6.2.2. Receive (Server) SYN-ACK (Omits Options)
Server ISN = 0xeba3734d Server ISN = 0xeba3734d
Receive_SYN_traffic_key: Receive_SYN_traffic_key:
40 51 08 94 7f 99 65 75 e7 bd bc 26 d4 02 16 a2 40 51 08 94 7f 99 65 75 e7 bd bc 26 d4 02 16 a2
c7 fa 91 bd c7 fa 91 bd
IPv6/TCP: IPv6/TCP:
skipping to change at page 19, line 9 skipping to change at line 745
00 00 00 00 00 00 00 02 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 00 00 00 00 00 00 00 01 00 b3 c6 cd eb a3 73 4d
02 0c 1e 6a e0 12 ff ff 77 4d 00 00 02 04 05 a0 02 0c 1e 6a e0 12 ff ff 77 4d 00 00 02 04 05 a0
01 03 03 08 04 02 08 0a 5e c9 9b 70 00 9d b9 5b 01 03 03 08 04 02 08 0a 5e c9 9b 70 00 9d b9 5b
1d 10 54 3d 3c 54 6b ad 97 43 f1 2d f8 b8 01 0d 1d 10 54 3d 3c 54 6b ad 97 43 f1 2d f8 b8 01 0d
MAC: MAC:
3c 54 6b ad 97 43 f1 2d f8 b8 01 0d 3c 54 6b ad 97 43 f1 2d f8 b8 01 0d
6.2.3. Send (client) non-SYN (omits options) 6.2.3. Send (Client) Non-SYN (Omits Options)
Send_other_traffic_key: Send_other_traffic_key:
b3 4e ed 6a 93 96 a6 69 f1 c4 f4 f5 76 18 f3 65 b3 4e ed 6a 93 96 a6 69 f1 c4 f4 f5 76 18 f3 65
6f 52 c7 ab 6f 52 c7 ab
IPv6/TCP: IPv6/TCP:
6e 07 8f cd 00 73 06 40 fd 00 00 00 00 00 00 00 6e 07 8f cd 00 73 06 40 fd 00 00 00 00 00 00 00
00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00
skipping to change at page 19, line 33 skipping to change at line 769
19 24 e0 01 19 2f 5b f0 ff ff ff ff ff ff ff ff 19 24 e0 01 19 2f 5b f0 ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff 00 43 01 04 fd e8 00 b4 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 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 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 e8 02 08 40 06 00 64 00 01 01 00
MAC: MAC:
48 bd 09 3b 19 24 e0 01 19 2f 5b f0 48 bd 09 3b 19 24 e0 01 19 2f 5b f0
6.2.4. Receive (server) non-SYN (omits options) 6.2.4. Receive (Server) Non-SYN (Omits Options)
Receive_other_traffic_key: Receive_other_traffic_key:
40 51 08 94 7f 99 65 75 e7 bd bc 26 d4 02 16 a2 40 51 08 94 7f 99 65 75 e7 bd bc 26 d4 02 16 a2
c7 fa 91 bd c7 fa 91 bd
IPv6/TCP: IPv6/TCP:
6e 0a 7e 1f 00 73 06 40 fd 00 00 00 00 00 00 00 6e 0a 7e 1f 00 73 06 40 fd 00 00 00 00 00 00 00
00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00
skipping to change at page 20, line 22 skipping to change at line 793
45 b4 fd e9 8d 9e 13 17 ff ff ff ff ff ff ff ff 45 b4 fd e9 8d 9e 13 17 ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff 00 43 01 04 fd e8 00 b4 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 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 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 e8 02 08 40 06 00 64 00 01 01 00
MAC: MAC:
55 9a 81 94 45 b4 fd e9 8d 9e 13 17 55 9a 81 94 45 b4 fd e9 8d 9e 13 17
7. IPv6 AES-128 Output Test Vectors 7. IPv6 AES-128 Output Test Vectors
The AES-128 KDF and MAC algorithms, KDF_AES_128_CMAC and AES-128- The AES-128 KDF and MAC algorithms, KDF_AES_128_CMAC and AES-128-
CMAC-96, are computed as specified for TCP-AO [RFC5926]. CMAC-96, are computed as specified for TCP-AO [RFC5926].
7.1. AES-128-CMAC-96 (default - covers TCP options) 7.1. AES-128-CMAC-96 (Default - Covers TCP Options)
7.1.1. Send (client) SYN (covers options) 7.1.1. Send (Client) SYN (Covers Options)
Client ISN = 0x193cccec Client ISN = 0x193cccec
Send_SYN_traffic_key: Send_SYN_traffic_key:
fa 5a 21 08 88 2d 39 d0 c7 19 29 17 5a b1 b7 b8 fa 5a 21 08 88 2d 39 d0 c7 19 29 17 5a b1 b7 b8
IP/TCP: IP/TCP:
6e 04 a7 06 00 38 06 40 fd 00 00 00 00 00 00 00 6e 04 a7 06 00 38 06 40 fd 00 00 00 00 00 00 00
00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 02 f8 5a 00 b3 19 3c cc ec
00 00 00 00 e0 02 ff ff de 5d 00 00 02 04 05 a0 00 00 00 00 e0 02 ff ff de 5d 00 00 02 04 05 a0
01 03 03 08 04 02 08 0a 13 e4 ab 99 00 00 00 00 01 03 03 08 04 02 08 0a 13 e4 ab 99 00 00 00 00
1d 10 3d 54 59 b5 88 10 74 81 ac 6d c3 92 70 40 1d 10 3d 54 59 b5 88 10 74 81 ac 6d c3 92 70 40
MAC: MAC:
59 b5 88 10 74 81 ac 6d c3 92 70 40 59 b5 88 10 74 81 ac 6d c3 92 70 40
7.1.2. Receive (server) SYN-ACK (covers options) 7.1.2. Receive (Server) SYN-ACK (Covers Options)
Server ISN = 0xa6744ecb Server ISN = 0xa6744ecb
Receive_SYN_traffic_key: Receive_SYN_traffic_key:
cf 1b 1e 22 5e 06 a6 36 16 76 4a 06 7b 46 f4 b1 cf 1b 1e 22 5e 06 a6 36 16 76 4a 06 7b 46 f4 b1
IPv6/TCP: IPv6/TCP:
6e 06 15 20 00 38 06 40 fd 00 00 00 00 00 00 00 6e 06 15 20 00 38 06 40 fd 00 00 00 00 00 00 00
00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 01 00 b3 f8 5a a6 74 4e cb
19 3c cc ed e0 12 ff ff ea bb 00 00 02 04 05 a0 19 3c cc ed e0 12 ff ff ea bb 00 00 02 04 05 a0
01 03 03 08 04 02 08 0a 71 da ab c8 13 e4 ab 99 01 03 03 08 04 02 08 0a 71 da ab c8 13 e4 ab 99
1d 10 54 3d dc 28 43 a8 4e 78 a6 bc fd c5 ed 80 1d 10 54 3d dc 28 43 a8 4e 78 a6 bc fd c5 ed 80
MAC: MAC:
dc 28 43 a8 4e 78 a6 bc fd c5 ed 80 dc 28 43 a8 4e 78 a6 bc fd c5 ed 80
7.1.3. Send (client) non-SYN (covers options) 7.1.3. Send (Client) Non-SYN (Covers Options)
Send_other_traffic_key: Send_other_traffic_key:
61 74 c3 55 7a be d2 75 74 db a3 71 85 f0 03 00 61 74 c3 55 7a be d2 75 74 db a3 71 85 f0 03 00
IPv6/TCP: IPv6/TCP:
6e 04 a7 06 00 73 06 40 fd 00 00 00 00 00 00 00 6e 04 a7 06 00 73 06 40 fd 00 00 00 00 00 00 00
00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 02 f8 5a 00 b3 19 3c cc ed
skipping to change at page 22, line 22 skipping to change at line 865
0d 4f 5f 01 83 5b aa b3 ff ff ff ff ff ff ff ff 0d 4f 5f 01 83 5b aa b3 ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff 00 43 01 04 fd e8 00 b4 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 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 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 e8 02 08 40 06 00 64 00 01 01 00
MAC: MAC:
7b 6a 45 5c 0d 4f 5f 01 83 5b aa b3 7b 6a 45 5c 0d 4f 5f 01 83 5b aa b3
7.1.4. Receive (server) non-SYN (covers options) 7.1.4. Receive (Server) Non-SYN (Covers Options)
Receive_other_traffic_key: Receive_other_traffic_key:
cf 1b 1e 22 5e 06 a6 36 16 76 4a 06 7b 46 f4 b1 cf 1b 1e 22 5e 06 a6 36 16 76 4a 06 7b 46 f4 b1
IPv6/TCP: IPv6/TCP:
6e 06 15 20 00 73 06 40 fd 00 00 00 00 00 00 00 6e 06 15 20 00 73 06 40 fd 00 00 00 00 00 00 00
00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 01 00 b3 f8 5a a6 74 4e cc
skipping to change at page 23, line 5 skipping to change at line 888
fd 3d 69 3a 6d f3 f2 89 ff ff ff ff ff ff ff ff fd 3d 69 3a 6d f3 f2 89 ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff 00 43 01 04 fd e8 00 b4 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 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 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 e8 02 08 40 06 00 64 00 01 01 00
MAC: MAC:
c1 06 9b 7d fd 3d 69 3a 6d f3 f2 89 c1 06 9b 7d fd 3d 69 3a 6d f3 f2 89
7.2. AES-128-CMAC-96 (omits TCP options) 7.2. AES-128-CMAC-96 (Omits TCP Options)
7.2.1. Send (client) SYN (omits options) 7.2.1. Send (Client) SYN (Omits Options)
Client ISN = 0xb01da74a Client ISN = 0xb01da74a
Send_SYN_traffic_key: Send_SYN_traffic_key:
a9 4f 51 12 63 e4 09 3d 35 dd 81 8c 13 bb bf 53 a9 4f 51 12 63 e4 09 3d 35 dd 81 8c 13 bb bf 53
IPv6/TCP: IPv6/TCP:
6e 09 3d 76 00 38 06 40 fd 00 00 00 00 00 00 00 6e 09 3d 76 00 38 06 40 fd 00 00 00 00 00 00 00
00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 02 f2 88 00 b3 b0 1d a7 4a
00 00 00 00 e0 02 ff ff 75 ff 00 00 02 04 05 a0 00 00 00 00 e0 02 ff ff 75 ff 00 00 02 04 05 a0
01 03 03 08 04 02 08 0a 14 27 5b 3b 00 00 00 00 01 03 03 08 04 02 08 0a 14 27 5b 3b 00 00 00 00
1d 10 3d 54 3d 45 b4 34 2d e8 bb 15 30 84 78 98 1d 10 3d 54 3d 45 b4 34 2d e8 bb 15 30 84 78 98
MAC: MAC:
3d 45 b4 34 2d e8 bb 15 30 84 78 98 3d 45 b4 34 2d e8 bb 15 30 84 78 98
7.2.2. Receive (server) SYN-ACK (omits options) 7.2.2. Receive (Server) SYN-ACK (Omits Options)
Server ISN = 0xa6246145 Server ISN = 0xa6246145
Receive_SYN_traffic_key: Receive_SYN_traffic_key:
92 de a5 bb c7 8b 1d 9f 5b 29 52 e9 cd 30 64 2a 92 de a5 bb c7 8b 1d 9f 5b 29 52 e9 cd 30 64 2a
IPv6/TCP: IPv6/TCP:
6e 0c 60 0a 00 38 06 40 fd 00 00 00 00 00 00 00 6e 0c 60 0a 00 38 06 40 fd 00 00 00 00 00 00 00
00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 01 00 b3 f2 88 a6 24 61 45
b0 1d a7 4b e0 12 ff ff a7 0c 00 00 02 04 05 a0 b0 1d a7 4b e0 12 ff ff a7 0c 00 00 02 04 05 a0
01 03 03 08 04 02 08 0a 17 82 24 5b 14 27 5b 3b 01 03 03 08 04 02 08 0a 17 82 24 5b 14 27 5b 3b
1d 10 54 3d 1d 01 f6 c8 7c 6f 93 ac ff a9 d4 b5 1d 10 54 3d 1d 01 f6 c8 7c 6f 93 ac ff a9 d4 b5
MAC: MAC:
1d 01 f6 c8 7c 6f 93 ac ff a9 d4 b5 1d 01 f6 c8 7c 6f 93 ac ff a9 d4 b5
7.2.3. Send (client) non-SYN (omits options) 7.2.3. Send (Client) Non-SYN (Omits Options)
Send_other_traffic_key: Send_other_traffic_key:
4f b2 08 6e 40 2c 67 90 79 ed 65 d4 bf 97 69 3d 4f b2 08 6e 40 2c 67 90 79 ed 65 d4 bf 97 69 3d
IPv6/TCP: IPv6/TCP:
6e 09 3d 76 00 73 06 40 fd 00 00 00 00 00 00 00 6e 09 3d 76 00 73 06 40 fd 00 00 00 00 00 00 00
00 00 00 00 00 00 00 01 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 02 f2 88 00 b3 b0 1d a7 4b
skipping to change at page 24, line 32 skipping to change at line 955
cc b4 7a 33 32 76 e7 f8 ff ff ff ff ff ff ff ff cc b4 7a 33 32 76 e7 f8 ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff 00 43 01 04 fd e8 00 b4 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 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 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 e8 02 08 40 06 00 64 00 01 01 00
MAC: MAC:
29 0c f4 14 cc b4 7a 33 32 76 e7 f8 29 0c f4 14 cc b4 7a 33 32 76 e7 f8
7.2.4. Receive (server) non-SYN (omits options) 7.2.4. Receive (Server) Non-SYN (Omits Options)
Receive_other_traffic_key: Receive_other_traffic_key:
92 de a5 bb c7 8b 1d 9f 5b 29 52 e9 cd 30 64 2a 92 de a5 bb c7 8b 1d 9f 5b 29 52 e9 cd 30 64 2a
IPv6/TCP: IPv6/TCP:
6e 0c 60 0a 00 73 06 40 fd 00 00 00 00 00 00 00 6e 0c 60 0a 00 73 06 40 fd 00 00 00 00 00 00 00
00 00 00 00 00 00 00 02 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 01 00 b3 f2 88 a6 24 61 46
skipping to change at page 25, line 22 skipping to change at line 978
d5 40 34 99 f6 19 fd 1b ff ff ff ff ff ff ff ff d5 40 34 99 f6 19 fd 1b ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff 00 43 01 04 fd e8 00 b4 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 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 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 e8 02 08 40 06 00 64 00 01 01 00
MAC: MAC:
99 51 5f fc d5 40 34 99 f6 19 fd 1b 99 51 5f fc d5 40 34 99 f6 19 fd 1b
8. Observed Implementation Errors 8. Observed Implementation Errors
The following is a partial list of implementation errors that this The following is a partial list of implementation errors that this
set of test vectors is intended to validate. set of test vectors is intended to validate.
8.1. Algorithm issues 8.1. Algorithm Issues
o Underlying implementation of HMAC-SHA-1-96 or AES-128-CMAC-96 * The underlying implementation of HMAC-SHA-1-96 or AES-128-CMAC-96
does not pass their corresponding test vectors [RFC2202] does not pass their corresponding test vectors [RFC2202]
[RFC4493] [RFC4493].
o The SNE algorithm does not consider corner cases, possibly * The SNE algorithm does not consider corner cases, possibly because
because the pseudocode in [RFC5925] was not intended as complete, the pseudocode in [RFC5925] was not intended as complete, as
as discussed in [RFC9187], the latter of which includes its own discussed in [RFC9187], the latter of which includes its own
validation sequence. validation sequence.
8.2. Algorithm parameters 8.2. Algorithm Parameters
o KDF context length is incorrect, e.g., it does not include TCP * KDF context length is incorrect, e.g., it does not include TCP
header length + payload length (it should, per 5.2 of TCP-AO header length + payload length (it should, per Section 5.2 of
[RFC5925]) TCP-AO [RFC5925]).
o KDF calculation does not start from counter i = 1 (it should, per * KDF calculation does not start from counter i = 1 (it should, per
Sec. 3.1.1 of the TCP-AO crypto algorithms [RFC5926]) Section 3.1.1 of TCP-AO crypto algorithms [RFC5926]).
o KDF calculation does not include output length in bits, contained * KDF calculation does not include output length in bits, contained
in two bytes in network byte order (it should, per Sec. 3.1.1 of in two bytes in network byte order (it should, per Section 3.1.1
the TCP-AO crypto algorithms [RFC5926]) of the TCP-AO crypto algorithms [RFC5926]).
o KDF uses keys generated from current TCP segment sequence numbers * KDF uses keys generated from current TCP segment sequence numbers
(KDF should use only local and remote ISNs or zero, as indicated (KDF should use only local and remote ISNs or zero, as indicated
in Sec. 5.2 of TCP-AO [RFC5925]) in Section 5.2 of TCP-AO [RFC5925]).
8.3. String handling issues 8.3. String Handling Issues
The strings indicated in TCP-AO and its algorithms are indicated as The strings indicated in TCP-AO and its algorithms are indicated as a
a sequence of bytes of known length. In some implementations, string sequence of bytes of known length. In some implementations, string
lengths are indicated by a terminal value (e.g., zero in C). This lengths are indicated by a terminal value (e.g., zero in C). This
terminal value is not included as part of the string for terminal value is not included as part of the string for
calculations. calculations.
o Password includes the last zero-byte (it should not) * The password includes the last zero-byte (it should not).
o Label "TCP-AO" includes the last zero byte (it should not) * The label "TCP-AO" includes the last zero byte (it should not).
8.4. Header coverage issues 8.4. Header Coverage Issues
o TCP checksum and/or MAC is not zeroed properly before calculation * TCP checksum and/or MAC is not zeroed properly before calculation
(both should be) (both should be).
o TCP header is not included in the MAC calculation (it should be) * TCP header is not included in the MAC calculation (it should be).
o TCP options are not included in the MAC calculation by default. * TCP options are not included in the MAC calculation by default.
There is a separate parameter in the Master Key Tuple (MKT) There is a separate parameter in the Master Key Tuple (MKT) [RFC5925]
[RFC5925] to ignore options; this document provides test vectors for to ignore options; this document provides test vectors for both
both options-included and options-excluded cases. options-included and options-excluded cases.
9. Security Considerations 9. Security Considerations
This document is intended to assist in the validation of This document is intended to assist in the validation of
implementations of TCP-AO, to further enable its more widespread use implementations of TCP-AO to further enable its more widespread use
as a security mechanism to authenticate not only TCP payload as a security mechanism to authenticate not only TCP payload contents
contents but the TCP headers and protocol. but the TCP headers and protocol.
The Master_Key of "testvector" used here for test vector generation The Master_Key of "testvector" used here for test vector generation
SHOULD NOT be used operationally. SHOULD NOT be used operationally.
10. IANA Considerations 10. IANA Considerations
This document contains no IANA issues. This section should be This document has no IANA actions.
removed upon publication as an RFC.
11. References 11. References
11.1. Normative References 11.1. Normative References
[RFC791] Postel, J., "Internet Protocol," RFC 791, Sept. 1981. [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791,
DOI 10.17487/RFC0791, September 1981,
<https://www.rfc-editor.org/info/rfc791>.
[RFC793] Postel, J., "Transmission Control Protocol," RFC 793, [RFC0793] Postel, J., "Transmission Control Protocol", STD 7,
September 1981. RFC 793, DOI 10.17487/RFC0793, September 1981,
<https://www.rfc-editor.org/info/rfc793>.
[RFC2018] Mathis, M., J. Mahdavi, S. Floyd, A. Romanow, "TCP [RFC2018] Mathis, M., Mahdavi, J., Floyd, S., and A. Romanow, "TCP
Selective Acknowledgment Options," RFC 2018, Oct. 1996. Selective Acknowledgment Options", RFC 2018,
DOI 10.17487/RFC2018, October 1996,
<https://www.rfc-editor.org/info/rfc2018>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels," BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC5925] Touch, J., A. Mankin, R. Bonica, "The TCP Authentication [RFC5925] Touch, J., Mankin, A., and R. Bonica, "The TCP
Option," RFC 5925, June 2010. Authentication Option", RFC 5925, DOI 10.17487/RFC5925,
June 2010, <https://www.rfc-editor.org/info/rfc5925>.
[RFC5926] Lebovitz, G., and E. Rescorla, "Cryptographic Algorithms [RFC5926] Lebovitz, G. and E. Rescorla, "Cryptographic Algorithms
for the TCP Authentication Option (TCP-AO)," RFC 5926, for the TCP Authentication Option (TCP-AO)", RFC 5926,
June 2010. DOI 10.17487/RFC5926, June 2010,
<https://www.rfc-editor.org/info/rfc5926>.
[RFC6978] Touch, J., "A TCP Authentication Option Extension for NAT [RFC6978] Touch, J., "A TCP Authentication Option Extension for NAT
Traversal," RFC 6978, July 2013. Traversal", RFC 6978, DOI 10.17487/RFC6978, July 2013,
<https://www.rfc-editor.org/info/rfc6978>.
[RFC7323] Borman, D., B. Braden, V. Jacobson, R. Scheffenegger, Ed., [RFC7323] Borman, D., Braden, B., Jacobson, V., and R.
"TCP Extensions for High Performance," RFC 7323, Sept. Scheffenegger, Ed., "TCP Extensions for High Performance",
2014. RFC 7323, DOI 10.17487/RFC7323, September 2014,
<https://www.rfc-editor.org/info/rfc7323>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words," RFC 8174, May 2017. 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8200] Deering, S., R. Hinden, "Internet Protocol Version 6 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification," RFC 8200, Jul. 2017. (IPv6) Specification", STD 86, RFC 8200,
DOI 10.17487/RFC8200, July 2017,
<https://www.rfc-editor.org/info/rfc8200>.
11.2. Informative References 11.2. Informative References
[RFC2202] Cheng, P., and R. Glenn, "Test Cases for HMAC-MD5 and [RFC2202] Cheng, P. and R. Glenn, "Test Cases for HMAC-MD5 and HMAC-
HMAC-SHA-1," RFC 2202, Sept. 1997. SHA-1", RFC 2202, DOI 10.17487/RFC2202, September 1997,
<https://www.rfc-editor.org/info/rfc2202>.
[RFC4493] Song, JH, R. Poovendran, J. Lee, T. Iwata, "The AES-CMAC [RFC4493] Song, JH., Poovendran, R., Lee, J., and T. Iwata, "The
Algorithm," RFC 4493, June 2006. AES-CMAC Algorithm", RFC 4493, DOI 10.17487/RFC4493, June
2006, <https://www.rfc-editor.org/info/rfc4493>.
[RFC9187] Touch, J., "Sequence Number Extension for Windowed [RFC9187] Touch, J., "Sequence Number Extension for Windowed
Protocols," RFC 9187, Jan. 2022. Protocols", RFC 9187, DOI 10.17487/RFC9187, January 2022,
<https://www.rfc-editor.org/info/rfc9187>.
12. Acknowledgments Acknowledgments
This document was prepared using 2-Word-v2.0.template.dot. This work benefited from feedback from Russ Housley and Michael
Scharf as well as discussions on the IETF TCPM email list and with
the IESG.
This document was initially prepared using 2-Word-v2.0.template.dot.
Authors' Addresses Authors' Addresses
Joe Touch Joe Touch
Manhattan Beach, CA 90266 USA Manhattan Beach, CA 90266
United States of America
Phone: +1 (310) 560-0334 Phone: +1 (310) 560-0334
Email: touch@strayalpha.com Email: touch@strayalpha.com
Juhamatti Kuusisaari Juhamatti Kuusisaari
Infinera Corporation Infinera Corporation
Sinimaentie 6c Sinimaentie 6c
FI-02630 Espoo, Finland FI-02630 Espoo
Finland
Email: jkuusisaari@infinera.com Email: jkuusisaari@infinera.com
 End of changes. 125 change blocks. 
265 lines changed or deleted 286 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/