Title

  Test IKEv2.EN.I.1.1.1.2: Sending IKE_AUTH request
  Part A: IKE Header Format (BASIC)
  Part B: Encrypted Payload Format (BASIC)
  Part C: IDi Payload Format (BASIC)
  Part D: AUTH Payload Format (BASIC)
  Part E: Notify Payload Format (BASIC)
  Part F: SA Payload Format (BASIC)
  Part G: TSi Payload Format (BASIC)
  Part H: TSr Payload Format (BASIC)


Purpose

  To verify an IKEv2 device transmits IKE_AUTH request using properly Header and
  Payloads format.


References

  [RFC 4306] - Sections 1.2, 2.15, 3.1, 3.2, 3.3, 3.5, 3.8, 3.10, 3.13 and 3.14


Test Setup

  * Network Topology
      Connect the devices according to the Common Topology.
  * Configuration
      In each part, configure the devices according to the Common Configuration.
  * Pre-Sequence and Cleanup Sequence
      IKEv2 on the NUT is disabled after each part.


Procedure

   NUT                  TN1
(End-Node)           (End-Node)
    |                    |
    |------------------->| IKE_SA_INIT request (HDR, SAi1, KEi, Ni)
    |                    | (Judgement #1)
    |<-------------------| IKE_SA_INIT response (HDR, SAr1, KEr, Nr) 
    |                    | (Packet #1)
    |                    | 
    |------------------->| IKE_AUTH request (HDR, SK {IDi, AUTH, N, SAi2, TSi, TSr})
    |                    | (Judgement #2)
    |                    | 
    V                    V
 N: USE_TRANSPORT_MODE
Packet #1 See Common Packet #2
  Part A: IKE Header Format (BASIC)
       1. NUT starts to negotiate with TN1 by sending IKE_SA_INIT request.
       2. Observe the messages transmitted on Link A.
       3. TN1 responds with an IKE_SA_INIT response to the NUT.
       4. Observe the messages transmitted on Link A.
  Part B: Encrypted Payload Format (BASIC)
       5. NUT starts to negotiate with TN1 by sending IKE_SA_INIT request.
       6. Observe the messages transmitted on Link A.
       7. TN1 responds with an IKE_SA_INIT response to the NUT.
       8. Observe the messages transmitted on Link A.
  Part C: IDi Payload Format (BASIC)
       9. NUT starts to negotiate with TN1 by sending IKE_SA_INIT request.
      10. Observe the messages transmitted on Link A.
      11. TN1 responds with an IKE_SA_INIT response to the NUT.
      12. Observe the messages transmitted on Link A.
  Part D: AUTH Payload Format (BASIC)
      13. NUT starts to negotiate with TN1 by sending IKE_SA_INIT request.
      14. Observe the messages transmitted on Link A.
      15. TN1 responds with an IKE_SA_INIT response to the NUT.
      16. Observe the messages transmitted on Link A.
  Part E: Notify Payload Format (BASIC)
      17. NUT starts to negotiate with TN1 by sending IKE_SA_INIT request.
      18. Observe the messages transmitted on Link A.
      19. TN1 responds with an IKE_SA_INIT response to the NUT.
      20. Observe the messages transmitted on Link A.
  Part F: SA Payload Format (BASIC)
      21. NUT starts to negotiate with TN1 by sending IKE_SA_INIT request.
      22. Observe the messages transmitted on Link A.
      23. TN1 responds with an IKE_SA_INIT response to the NUT.
      24. Observe the messages transmitted on Link A.
  Part G: TSi Payload Format (BASIC)
      25. NUT starts to negotiate with TN1 by sending IKE_SA_INIT request.
      26. Observe the messages transmitted on Link A.
      27. TN1 responds with an IKE_SA_INIT response to the NUT.
      28. Observe the messages transmitted on Link A.
  Part H: TSr Payload Format (BASIC)
      29. NUT starts to negotiate with TN1 by sending IKE_SA_INIT request.
      30. Observe the messages transmitted on Link A.
      31. TN1 responds with an IKE_SA_INIT response to the NUT.
      32. Observe the messages transmitted on Link A.


Observable Result

  Part A
    Step 2: Judgment #1
      The NUT transmits an IKE_SA_INIT request including "ENCR_3DES",
      "PRF_HMAC_SHA1", "AUTH_HMAC_SHA1_96" and "D-H group 2" as proposed algorithms.
  
    Step 4: Judgment #2
      The NUT transmits an IKE_AUTH request including properly formatted IKE Header
      containing following values:
                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !                      IKE_SA Initiator s SPI                   !
      !                                                               !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !                      IKE_SA Responder s SPI                   !
      !                                                               !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !  Next Payload ! MjVer ! MnVer ! Exchange Type !     Flags     !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !                            Message ID                         !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !                              Length                           !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                              Figure 8 Header format
* An IKE_SA Initiator's SPI field is set to same as the IKE_SA_INIT request's IKE_SA Initiator's SPI field value. * An IKE_SA Responder's SPI field is set to same as the IKE_SA_INIT response's IKE_SA Responder's SPI field value. * A Next Payload field is set to Encrypted Payload (46). * A Major Version field is set to 2. * A Minor Version field is set to zero. * An Exchange Type field is set to IKE_AUTH (35). * A Flags field is set to (00010000)2 = (16)10. * A Message ID field is set to 1. * A Length field is set to the length of the message (header + payloads) in octets.
  
  Part B
    Step 6: Judgment #1
      The NUT transmits an IKE_SA_INIT request including "ENCR_3DES",
      "PRF_HMAC_SHA1", "AUTH_HMAC_SHA1_96" and "D-H group 2" as proposed algorithms
  
    Step 8: Judgment #2
      The NUT transmits an IKE_AUTH request including properly formatted Encrypted Payload
      containing following values:

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ! Next Payload  !C!  RESERVED   !         Payload Length        !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !                     Initialization Vector                     !
      !         (length is block size for encryption algorithm)       !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                    Encrypted IKE Payloads                     ~
      +               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !               !             Padding (0-255 octets)            !
      +-+-+-+-+-+-+-+-+                               --+-+-+-+-+-+-+-+
      !                                               !  Pad Length   !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ~                    Integrity Checksum Data                    ~   
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9 Encrypted payload
* A Next Payload field is set to IDi Payload (35). * A Critical field is set to zero. * A RESERVED field is set to zero. * A Payload Length field is set to length in octets of the header, IV, Encrypted * IKE Payloads, Padding, Pad Length, and Integrity Check sum Data. * An Initialization Vector field is set to a randomly chosen value whose length is equal to the block length of the underlying encryption algorithm. It is 64 bits length in ENCR_3DES case. * An Encrypted IKE Payloads field is set to subsequent payloads encrypted by ENCR_3DES. * A Padding field is set to any value which to be a multiple of the encryption block size. It is 64 bits length in ENCR_3DES case. * A Pad Length field is set to the length of the Padding field. * An Integrity Checksum Data set to the cryptographic checksum of the entire message. It is 96 bits length in AUTH_HMAC_SHA1_96 case. The checksum must be valid by calculation according to the manner described in RFC.
  
  Part C
    Step 10: Judgment #1
      The NUT transmits an IKE_SA_INIT request including "ENCR_3DES",
      "PRF_HMAC_SHA1", "AUTH_HMAC_SHA1_96" and "D-H group 2" as proposed algorithms.
    
    Step 12: Judgment #2
      The NUT transmits an IKE_AUTH request including properly formatted ID Payload
      containing following values:

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ! Next Payload  !C!  RESERVED   !         Payload Length        ! 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !   ID Type     !              RESERVED                         !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !                                                               !
      ~                   Identification Data                         ~ 
      !                                                               !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                              Figure 10 ID Payload format
* A Next Payload field is set to AUTH Payload (39). * A Critical field is set to zero. * A RESERVED field is set to zero. * A Payload Length field is set to length of the current payload. It is 24 bytes for ID_IPV6_ADDR. * An ID Type field is set to ID_IPV6_ADDR (5). * A RESERVED field is set to zero. * An Identification Data field is set to the NUT address.
  
  Part D
    Step 14: Judgment #1
      The NUT transmits an IKE_SA_INIT request including "ENCR_3DES",
      "PRF_HMAC_SHA1", "AUTH_HMAC_SHA1_96" and "D-H group 2" as proposed algorithm.
  
    Step 16: Judgment #2
      The NUT transmits an IKE_AUTH request including properly formatted AUTH Payload
      containing following values:
                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ! Next Payload  !C!  RESERVED   !         Payload Length        !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ! Auth Method   !              RESERVED                         !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !                                                               !
      ~                    Authentication  Data                       ~  
      !                                                               !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
  
                          Figure 11 AUTH Payload format
* A Next Payload field is set to Notify Payload (41). * A Critical field is set to zero. * A RESERVED field is set to zero. * A Payload Length field is set to length of the current payload. It is 28 bytes for PRF_HMAC_SHA1. * An Auth Method field is set to Shared Key Message Integrity Code (2). * A RESERVED field is set to zero. * An Authentication Data field is set to correct authentication value according to the manner described in RFC. It is 160 bytes length in PRF_HMAC_SHA1 case.
  
  Part E
    Step 18: Judgment #1
      The NUT transmits an IKE_SA_INIT request including "ENCR_3DES",
      "PRF_HMAC_SHA1", "AUTH_HMAC_SHA1_96" and "D-H group 2" as proposed algorithms.
  
    Step 20: Judgment #2
      The NUT transmits an IKE_AUTH request including properly formatted Notify Payload
      containing following values:
                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ! Next Payload  !C!  RESERVED   !         Payload Length        !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ! Protocol ID   !   SPI Size    !      Notify Message Type      !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !                                                               !
      !                Security Parameter Index (SPI)                 ! 
      !                                                               !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !                                                               !
      ~                     Notification Data                         ~
      !                                                               !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                        Figure 12 Notify Payload format
* A Next Payload field is set to SA Payload (33). * A Critical field is set to zero. * A RESERVED field is set to zero. * A Payload Length field is set to length of the current payload. It is 8 bytes for USE_TRANSPORT_MODE. * A Protocol ID field is set to undefined (0). * A SPI Size field is set to zero. * A Notify Message Type field is set to USE_TRANSPORT_MODE (16391)
  
  Part F
    Step 22: Judgment #1
      The NUT transmits an IKE_SA_INIT request including "ENCR_3DES",
      "PRF_HMAC_SHA1", "AUTH_HMAC_SHA1_96" and "D-H group 2" as proposed algorithms.
  
    Step 24: Judgment #2

                                   1                   2                   3
               0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--------------
              ! Next    44    !0!      0      ! Length          40            !             |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---          |
              !       0       !       0       ! Length          36            !  |          |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |          |
              ! Number    1   ! Prot ID   3   ! SPI Size  4   ! Trans Cnt  3  !  |          |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |          |
              ! SPI value                                                     !  |          |
          --- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |          |
           |  !       3       !       0       ! Length           8            !  |          | 
 Transform |  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |          |SA Payload 
           |  ! Type  1  (EN) !       0       ! Transform ID     3     (3DES) !  | Proposal |
          --- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |          |
           |  !       3       !       0       ! Length           8            !  |          |
 Transform |  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |          |
           |  ! Type  3  (IN) !       0       ! Transform ID     2     (SHA1) !  |          |
          --- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |          |
           |  !       0       !       0       ! Length           8            !  |          |
 Transform |  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |          |
           |  ! Type  5  (ESN)!       0       ! Transform ID     0       (No) !  |          |
          --- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |          |
Figure 13 SA Payload contents

              The NUT transmits an IKE_AUTH request including properly formatted SA Payload
              containing following values (refer following figures):
1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Next Payload !C! RESERVED ! Payload Length ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ! ~ <Proposals> ~ ! ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 14 SA Payload format
* A Next Payload field is set to TSi Payload (44). * A Critical field is set to zero. * A RESERVED field is set to zero. * A Payload Length field is set to length of the current payload.

             The following proposal must be included in Proposals field.
                                 1                   2                   3
             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ! 0 (last) or 2 !   RESERVED    !         Proposal Length       !
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ! Proposal #    !  Protocol ID  !    SPI Size   !# of Transforms!
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            !                        SPI (variable)                         !
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            !                                                               !
            ~                         <Transforms>                          ~
            !                                                               !
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 15 Proposal sub-structure format
Proposal #1 * A 0 or 2 field is set to zero if this structure is the last proposal, otherwise set to 2. * A RESREVD field is set to zero. * A Proposal Length field is set to length of this proposal, including all transforms and attributes. It is 36 bytes according to Common Configuration. * A Proposal # field is set to 1 if this structure is the first proposal, otherwise set to 1 greater than the previous proposal. * A Protocol ID field is set to ESP (3). * A SPI Size field is set to 4. * A # of Transforms field is set to 3. * A SPI field is set to the sending entity's SPI (4 octets value)

             A Transform field is set to following (There are 4 Transform Structures).
                                 1                   2                   3
             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            ! 0 (last) or 3 !   RESERVED    !       Transform Length        !
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            !Transform Type !   RESERVED    !          Transform ID         !
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            !                                                               !
            ~                      Transform Attributes                     !
            !                                                               !
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 16 Transform sub-structure format
Transform #1 * A 0 or 3 field is set to zero if this structure is the last transform, otherwise set to 3. * A RESERVED field is set to zero. * A Transform Length set to length of the Transform Substructure including Header and Attribute. It is 8 bytes for ENCR_3DES. * A Transform Type field is set to ENCR (1). * A RESERVED field is set to zero. * A Transform ID set to ENCR_3DES (3). Transform #2 * A 0 or 3 field is set to zero if this structure is the last transform, otherwise set to 3. * A RESERVED field is set to zero. * A Transform Length set to length of the Transform Substructure including Header and Attribute. It is 8 bytes for AUTH_HMAC_SHA1. * A Transform Type field is set to INTEG (3). * A RESERVED field is set to zero. * A Transform ID set to AUTH_HMAC_SHA1 (2). Transform #3 * A 0 or 3 field is set to zero if this structure is the last transform, otherwise set to 3. * A RESERVED field is set to zero. * A Transform Length set to length of the Transform Substructure including Header and Attribute. It is 8 bytes for ESN. * A Transform Type field is set to ESN (5). * A RESERVED field is set to zero. * A Transform ID set to No Extended Sequence Numbers (0).
  
  Part G
    Step 26: Judgment #1
      The NUT transmits an IKE_SA_INIT request including "ENCR_3DES",
      "PRF_HMAC_SHA1", "AUTH_HMAC_SHA1_96" and "D-H group 2" as proposed
      algorithms.

    Step 28: Judgment #2
      The NUT transmits an IKE_AUTH request including properly formatted TSi Payload
      containing following values:


                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ! Next Payload  !C!  RESERVED   !         Payload Length        !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ! Number of Tss !                 RESERVED                      !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !                                                               !
      ~                       <Traffic Selector>                      ~
      !                                                               !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 17 TSi Payload format
* A Next Payload field is set to TSr Payload (45). * A Critical field is set to zero. * A RESERVED field is set to zero. * A Payload Length field is set to length of the current payload. * A Number of TSs field is set to the number of actual traffic selectors. * A RESERVED field is set to zero.
 
The following traffic selector must be included in Traffic Selectors field.

1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! TS Type !IP Protocol ID*| Selector Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Start Port* | End Port* | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ! - Starting Address* - ! ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ! - Ending Address* - ! ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 18 Traffic Selector
* A TS Type set to TS_IPV6_ADDR_RANGE (8). * An IP Protocol ID field is set to zero. * A Selector Length field is set to length of this Traffic Selector Substructure including the header. It is 40 bytes for TS_IPV6_ADDR_RANGE. * A Start Port field is set to zero. * An End Port field is set to 65535. * A Starting Address field is set to less than or equal to NUT address. * A Ending Address field is set to greater thatn or equal to NUT address.
  
  Part H
    Step 30: Judgment #1
      The NUT transmits an IKE_SA_INIT request including "ENCR_3DES",
      "PRF_HMAC_SHA1", "AUTH_HMAC_SHA1_96" and "D-H group 2" as proposed
      algorithms.
  
    Step 32: Judgment #2
      The NUT transmits an IKE_AUTH request including properly formatted TSr Payload
      containing following values:

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ! Next Payload  !C!  RESERVED   !         Payload Length        !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      ! Number of TSs !                 RESERVED                      !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      !                                                               !
      ~                       <Traffic Selectors>                     ~
      !                                                               !
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 19 TSr Payload format
* A Next Payload field is set to zero. * A Critical field is set to zero. * A RESERVED field is set to zero. * A Payload Length field is set to length of the current payload. * A Number of TSs field is set to the number of actual traffic selectors. * A RESERVED field is set to zero.
  The following traffic selector must be included in Traffic Selectors field.

1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! TS Type !IP Protocol ID*| Selector Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! Start Port* | End Port* | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ! - Starting Address* - ! ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ! ! - Ending Address* - ! ! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 20 Traffic Selector
* A TS Type set to TS_IPV6_ADDR_RANGE (8). * An IP Protocol ID field is set to zero. * A Selector Length field is set to length of this Traffic Selector Substructure including the header. It is 40 bytes for TS_IPV6_ADDR_RANGE. * A Start Port field is set to zero. * An End Port field is set to 65535. * A Starting Address field is set to less than or equal to TN1 address. * A Ending Address field is set to less than or equal to TN1 address.


Possible Problems

    * IKE_AUTH request has following packet format.It may have additional payloads
      described below. Additional payloads can be ignored by this test. The order of payload
      may be different from this sample.


IDi, [CERT+], [N(INITIAL_CONTACT)], [[N(HTTP_CERT_LOOKUP_SUPPORTED)], CERTREQ+], [IDr], AUTH, [CP(CFG_REQUEST)], [N(IPCOMP_SUPPORTED)+], [N(USE_TRANSPORT_MODE)], [N(ESP_TFC_PADDING_NOT_SUPPORTED)], [N(NON_FIRST_FRAGMENTS_ALSO)], SA, TSi, TSr, [V+]
    * The implementation may not set single proposal by the implementation policy. In this
      case, Security Association Payload contains multiple proposals.

    * Each of transforms can be located in the any order.

    * The implementation may not set single traffic selector by the implementation policy. In
      this case, Traffic Selector Payload contains multiple proposals.