• Jason Baron's avatar
    tcp: add support to TCP_FASTOPEN_KEY for optional backup key · 0f1ce023
    Jason Baron authored
    Add support for get/set of an optional backup key via TCP_FASTOPEN_KEY, in
    addition to the current 'primary' key. The primary key is used to encrypt
    and decrypt TFO cookies, while the backup is only used to decrypt TFO
    cookies. The backup key is used to maximize successful TFO connections when
    TFO keys are rotated.
    
    Currently, TCP_FASTOPEN_KEY allows a single 16-byte primary key to be set.
    This patch now allows a 32-byte value to be set, where the first 16 bytes
    are used as the primary key and the second 16 bytes are used for the backup
    key. Similarly, for getsockopt(), we can receive a 32-byte value as output
    if requested. If a 16-byte value is used to set the primary key via
    TCP_FASTOPEN_KEY, then any previously set backup key will be removed.
    Signed-off-by: default avatarJason Baron <jbaron@akamai.com>
    Signed-off-by: default avatarChristoph Paasch <cpaasch@apple.com>
    Acked-by: default avatarYuchung Cheng <ycheng@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0f1ce023
tcp.c 103 KB