lwip/src
David van Moolenbroek a8b986bbb6 Add hook for TCP Initial Sequence Number generation
lwIP produces a TCP Initial Sequence Number (ISN) for each new TCP
connection. The current algorithm is simple and predictable however.
The result is that lwIP TCP connections may be the target of TCP
spoofing attacks.  The problem of such attacks is well known, and a
recommended ISN generation algorithm is standardized in RFC 6528.
This algorithm requires a high-resolution timer and cryptographic
hashing function, though.  The implementation (or best-effort
approximation) of both of these aspects is well beyond the scope of
lwIP itself.

For that reason, this patch adds LWIP_HOOK_TCP_ISN, a hook that
allows each platform to implement its own ISN generation using
locally available means.  The hook provides full flexibility, in
that the hook may generate anything from a simple random number
(by being set to LWIP_RAND()) to a full RFC 6528 implementation.

Implementation note:

Users of the hook would typically declare the function prototype of
the hook function in arch/cc.h, as this is the last place where such
prototypes can be supplied.  However, at that point, the ip_addr_t
type has not yet been defined.  For that reason, this patch removes
the leading underscore from "struct _ip_addr", so that a prototype
of the hook function can use "struct ip_addr" instead of "ip_addr_t".

Signed-off-by: sg <goldsimon@gmx.de>
2016-12-15 20:18:08 +01:00
..
api Fix bug #49827: wrong cast to size_t on 16-bit x86 architecture 2016-12-12 10:07:00 +01:00
apps Continue to fix incorrect casts via size_t for some platforms 2016-12-12 10:17:33 +01:00
core Add hook for TCP Initial Sequence Number generation 2016-12-15 20:18:08 +01:00
include Add hook for TCP Initial Sequence Number generation 2016-12-15 20:18:08 +01:00
netif Minor: nd6_packet_send_check() -> nd6_get_next_hop_addr_or_queue() (too long, but a little more self-explaining); cosmetics... 2016-12-14 20:52:44 +01:00
Filelists.mk task #14150: Add TFTP server from Logan Gunthorpe 2016-10-03 09:47:41 +02:00
FILES update some FILES list files 2016-08-03 20:21:54 +02:00