The RFC is very superficial on the implementation details. What is the injective function being used?
https://www.rfc-editor.org/rfc/rfc2385
MD5 digest is produced by applying the MD5 algorithm to these items in the following order:
1. the TCP pseudo-header (in the order: source IP address,
destination IP address, zero-padded protocol number, and
segment length)
2. the TCP header, excluding options, and assuming a checksum of
zero
3. the TCP segment data (if any)
4. an independently-specified key or password, known to both TCPs
and presumably connection-specific
How are the above items concatenated? I wasn't able to find much information, could someone please point me in the right direction?