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.
- TlsCrypto
Info - 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§
- TlsCrypto
Info Rx - Type alias of
TlsCryptoInfo
, for receive direction. - TlsCrypto
Info Tx - Type alias of
TlsCryptoInfo
, for transmit direction.