Module setup

Module setup 

Source
Expand description

Transport Layer Security (TLS) is a Upper Layer Protocol (ULP) that runs over TCP. TLS provides end-to-end data integrity and confidentiality.

Once the TCP connection is established, sets the TLS ULP, which allows us to set/get TLS socket options.

This module provides the setup_ulp function, which sets the ULP (Upper Layer Protocol) to TLS for a TCP socket. The user can also determine whether the kernel supports kTLS with setup_ulp.

After the TLS handshake is completed, we have all the parameters required to move the data-path to the kernel. There is a separate socket option for moving the transmit and the receive into the kernel.

This module provides the low-level setup_tls_params function, which sets the Kernel TLS parameters on the TCP socket, allowing the kernel to handle encryption and decryption of the TLS data.

Structs§

Rx
Marker type for the “rx” (receive) direction.
TlsCryptoInfo
A wrapper around the libc::tls12_crypto_info_* structs, use with setting up the kTLS r/w parameters on the TCP socket.
Tx
Marker type for the “tx” (transmit) direction.

Functions§

setup_tls_params
Sets the kTLS parameters on the socket after the TLS handshake is completed.
setup_ulp
Sets the TLS Upper Layer Protocol (ULP).

Type Aliases§

TlsCryptoInfoRx
Type alias of TlsCryptoInfo, for receive direction.
TlsCryptoInfoTx
Type alias of TlsCryptoInfo, for transmit direction.