2.2.3.7 Key Dictation Payload (Payload Type 0x88)
The Key Dictation payload is used by an AuthIP node to explicitly supply quick mode keys to the peer node. The payload carries keys for a unidirectional SA. Inbound and outbound keys need separate payloads.
The Key Dictation payload is constructed in a manner similar to the Crypto payload minus the Sequence Number.
The payload is structured as follows.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Initialization_Vector (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
Encrypted_Payloads (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
Padding (variable) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
Pad_Length |
Next_Payload |
Integrity_Checksum_Data (variable) |
|||||||||||||||||||||||||||||
... |
Initialization_Vector (variable): The length of the Initialization_Vector field MUST equal the length of the Initialization_Vector field used by the Crypto payload (section 2.2.3.2.1).
Encrypted_Payloads (variable): A variable-length sequence of encrypted plain-text quick mode keys. Use the same encryption algorithm as the Crypto payload (section 2.2.3.2.1).
Padding (variable): 0 to 255 bytes of padding as required by the encryption algorithm.
Pad_Length (1 byte): The length of the preceding padding. The Pad_Length field is located after the variable-length padding; hence, the payload MUST be decoded starting from the end. ESP uses an identical technique for encoding the pad length, as specified in [RFC4303] sections 2.4 and 2.5.
Next_Payload (1 byte): The payload type of the first payload in the Encrypted payload sequence that is carried by this Crypto payload. Setting this is optional since the generic payload header already has this information.
Integrity_Checksum_Data (variable): Use the same encryption algorithm as the Crypto payload (section 2.2.3.2.1). The integrity checksum data covers the encrypted portion of the payload.