AuthWithBadChunkLength.seq - Authentication Chunk is received with chunk length less than AUTH chunk header
To verify that if the AUTH chunk is received with chunk length less than AUTH chunk header, the ABORT chunk SHOULD be sent with the error cause 'Protocol Violation'.
./AuthWithBadChunkLength.seq [-tooloption ...] -pkt ./AuthWithBadChunkLength.def -tooloption : v6eval tool option See Also: ../common/STD_PKT_COMMON.def ../common/SCTP_COMMON.def
Association is established between endpoint A and B. Arrange data in endpoint A such that AUTH chunk with chunk length less than AUTH chunk header is sent to endpoint B.
Endpoint A Endpoint B ULP (ESTABLISHED) (ESTABLISHED)
AUTH ------------------> (with Bad Chunk Length) <------------------ ABORT (Protocol Violation)
TEST DESCRIPTION:
1. Send AUTH chunk from endpoint A to B with chunk length less than AUTH chunk header. 2. Check A: ABORT should be received at endpoint A. And Error cause in ERROR is set to "Protocol Violation".
None
RFC 4895
5.1. Authentication Chunk (AUTH)
This chunk is used to hold the result of the HMAC calculation.
0 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = 0x0F | Flags=0 | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Shared Key Identifier | HMAC Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | \ HMAC / / \ / +-------------------------------\ | | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5
Type: 1 byte (unsigned integer) This value MUST be set to 0x0F for all AUTH-chunks.
Flags: 1 byte (unsigned integer) SHOULD be set to zero on transmit and MUST be ignored on receipt.
Length: 2 bytes (unsigned integer) This value holds the length of the HMAC in bytes plus 8.
Shared Key Identifier: 2 bytes (unsigned integer) This value describes which endpoint pair shared key is used.
HMAC Identifier: 2 bytes (unsigned integer) This value describes which message digest is being used. Table 2 shows the currently defined values.
HMAC: n bytes (unsigned integer) This holds the result of the HMAC calculation.
Padding: 0, 1, 2, or 3 bytes (unsigned integer) If the length of the HMAC is not a multiple of 4 bytes, the sender MUST pad the chunk with all zero bytes to make the chunk 32-bit aligned. The Padding MUST NOT be longer than 3 bytes and it MUST be ignored by the receiver.
The control chunk AUTH MUST NOT appear more than once in an SCTP packet. All control and data chunks that are placed after the AUTH chunk in the packet are sent in an authenticated way. Those chunks placed in a packet before the AUTH chunk are not authenticated. Please note that DATA chunks can not appear before control chunks in an SCTP packet.