iPXE
Data Fields
tls_connection Struct Reference

A TLS connection. More...

#include <tls.h>

Data Fields

struct refcnt refcnt
 Reference counter. More...
 
struct tls_sessionsession
 Session. More...
 
struct list_head list
 List of connections within the same session. More...
 
uint8_t session_id [32]
 Session ID. More...
 
size_t session_id_len
 Length of session ID. More...
 
void * new_session_ticket
 New session ticket. More...
 
size_t new_session_ticket_len
 Length of new session ticket. More...
 
struct interface plainstream
 Plaintext stream. More...
 
struct interface cipherstream
 Ciphertext stream. More...
 
uint16_t version
 Protocol version. More...
 
struct tls_cipherspec tx_cipherspec
 Current TX cipher specification. More...
 
struct tls_cipherspec tx_cipherspec_pending
 Next TX cipher specification. More...
 
struct tls_cipherspec rx_cipherspec
 Current RX cipher specification. More...
 
struct tls_cipherspec rx_cipherspec_pending
 Next RX cipher specification. More...
 
struct tls_pre_master_secret pre_master_secret
 Premaster secret. More...
 
uint8_t master_secret [48]
 Master secret. More...
 
uint8_t server_random [32]
 Server random bytes. More...
 
struct tls_client_random client_random
 Client random bytes. More...
 
uint8_t handshake_md5_sha1_ctx [MD5_SHA1_CTX_SIZE]
 MD5+SHA1 context for handshake verification. More...
 
uint8_t handshake_sha256_ctx [SHA256_CTX_SIZE]
 SHA256 context for handshake verification. More...
 
struct digest_algorithmhandshake_digest
 Digest algorithm used for handshake verification. More...
 
uint8_thandshake_ctx
 Digest algorithm context used for handshake verification. More...
 
struct x509_certificatecert
 Client certificate (if used) More...
 
int secure_renegotiation
 Secure renegotiation flag. More...
 
struct tls_verify_data verify
 Verification data. More...
 
struct x509_chainchain
 Server certificate chain. More...
 
struct interface validator
 Certificate validator. More...
 
struct pending_operation client_negotiation
 Client security negotiation pending operation. More...
 
struct pending_operation server_negotiation
 Server security negotiation pending operation. More...
 
struct pending_operation validation
 Certificate validation pending operation. More...
 
uint64_t tx_seq
 TX sequence number. More...
 
unsigned int tx_pending
 TX pending transmissions. More...
 
struct process process
 TX process. More...
 
uint64_t rx_seq
 RX sequence number. More...
 
enum tls_rx_state rx_state
 RX state. More...
 
struct tls_header rx_header
 Current received record header. More...
 
struct io_buffer rx_header_iobuf
 Current received record header (static I/O buffer) More...
 
struct list_head rx_data
 List of received data buffers. More...
 

Detailed Description

A TLS connection.

Definition at line 274 of file tls.h.

Field Documentation

◆ refcnt

struct refcnt tls_connection::refcnt

Reference counter.

Definition at line 276 of file tls.h.

Referenced by add_tls().

◆ session

struct tls_session* tls_connection::session

◆ list

struct list_head tls_connection::list

List of connections within the same session.

Definition at line 281 of file tls.h.

Referenced by add_tls(), free_tls(), tls_close(), tls_new_finished(), tls_new_record(), tls_tx_resume_all(), and tls_tx_step().

◆ session_id

uint8_t tls_connection::session_id[32]

Session ID.

Definition at line 283 of file tls.h.

Referenced by tls_new_finished(), tls_new_server_hello(), tls_send_client_hello(), and tls_tx_step().

◆ session_id_len

size_t tls_connection::session_id_len

Length of session ID.

Definition at line 285 of file tls.h.

Referenced by tls_new_finished(), tls_new_server_hello(), tls_send_client_hello(), and tls_tx_step().

◆ new_session_ticket

void* tls_connection::new_session_ticket

New session ticket.

Definition at line 287 of file tls.h.

Referenced by free_tls(), tls_new_finished(), and tls_new_session_ticket().

◆ new_session_ticket_len

size_t tls_connection::new_session_ticket_len

Length of new session ticket.

Definition at line 289 of file tls.h.

Referenced by tls_new_finished(), and tls_new_session_ticket().

◆ plainstream

struct interface tls_connection::plainstream

Plaintext stream.

Definition at line 292 of file tls.h.

Referenced by add_tls(), tls_cipherstream_window(), tls_close(), tls_new_finished(), tls_new_record(), and tls_tx_step().

◆ cipherstream

struct interface tls_connection::cipherstream

Ciphertext stream.

Definition at line 294 of file tls.h.

Referenced by add_tls(), tls_close(), tls_plainstream_window(), tls_progress(), tls_send_plaintext(), and tls_tx_step().

◆ version

uint16_t tls_connection::version

◆ tx_cipherspec

struct tls_cipherspec tls_connection::tx_cipherspec

Current TX cipher specification.

Definition at line 299 of file tls.h.

Referenced by add_tls(), free_tls(), tls_assemble_block(), tls_assemble_stream(), tls_send_plaintext(), and tls_tx_step().

◆ tx_cipherspec_pending

struct tls_cipherspec tls_connection::tx_cipherspec_pending

Next TX cipher specification.

Definition at line 301 of file tls.h.

Referenced by add_tls(), free_tls(), tls_generate_keys(), tls_select_cipher(), tls_send_client_key_exchange(), tls_tx_step(), and tls_validator_done().

◆ rx_cipherspec

struct tls_cipherspec tls_connection::rx_cipherspec

Current RX cipher specification.

Definition at line 303 of file tls.h.

Referenced by add_tls(), free_tls(), tls_new_change_cipher(), tls_new_ciphertext(), tls_split_block(), and tls_split_stream().

◆ rx_cipherspec_pending

struct tls_cipherspec tls_connection::rx_cipherspec_pending

Next RX cipher specification.

Definition at line 305 of file tls.h.

Referenced by add_tls(), free_tls(), tls_generate_keys(), tls_new_change_cipher(), and tls_select_cipher().

◆ pre_master_secret

struct tls_pre_master_secret tls_connection::pre_master_secret

Premaster secret.

Definition at line 307 of file tls.h.

Referenced by add_tls(), tls_generate_master_secret(), and tls_send_client_key_exchange().

◆ master_secret

uint8_t tls_connection::master_secret[48]

Master secret.

Definition at line 309 of file tls.h.

Referenced by tls_generate_keys(), tls_generate_master_secret(), tls_new_finished(), tls_send_finished(), and tls_tx_step().

◆ server_random

uint8_t tls_connection::server_random[32]

Server random bytes.

Definition at line 311 of file tls.h.

Referenced by tls_generate_keys(), tls_generate_master_secret(), and tls_new_server_hello().

◆ client_random

struct tls_client_random tls_connection::client_random

Client random bytes.

Definition at line 313 of file tls.h.

Referenced by add_tls(), tls_generate_keys(), tls_generate_master_secret(), tls_send_client_hello(), and tls_tx_step().

◆ handshake_md5_sha1_ctx

uint8_t tls_connection::handshake_md5_sha1_ctx[MD5_SHA1_CTX_SIZE]

MD5+SHA1 context for handshake verification.

Definition at line 315 of file tls.h.

Referenced by tls_add_handshake(), tls_new_server_hello(), and tls_restart().

◆ handshake_sha256_ctx

uint8_t tls_connection::handshake_sha256_ctx[SHA256_CTX_SIZE]

SHA256 context for handshake verification.

Definition at line 317 of file tls.h.

Referenced by tls_add_handshake(), and tls_restart().

◆ handshake_digest

struct digest_algorithm* tls_connection::handshake_digest

Digest algorithm used for handshake verification.

Definition at line 319 of file tls.h.

Referenced by tls_new_finished(), tls_new_server_hello(), tls_restart(), tls_send_certificate_verify(), tls_send_finished(), and tls_verify_handshake().

◆ handshake_ctx

uint8_t* tls_connection::handshake_ctx

Digest algorithm context used for handshake verification.

Definition at line 321 of file tls.h.

Referenced by tls_new_server_hello(), tls_restart(), and tls_verify_handshake().

◆ cert

struct x509_certificate* tls_connection::cert

Client certificate (if used)

Definition at line 323 of file tls.h.

Referenced by free_tls(), tls_new_certificate_request(), tls_send_certificate(), tls_send_certificate_verify(), and tls_validator_done().

◆ secure_renegotiation

int tls_connection::secure_renegotiation

Secure renegotiation flag.

Definition at line 325 of file tls.h.

Referenced by tls_new_hello_request(), tls_new_server_hello(), and tls_send_client_hello().

◆ verify

struct tls_verify_data tls_connection::verify

Verification data.

Definition at line 327 of file tls.h.

Referenced by tls_new_finished(), tls_new_server_hello(), tls_send_client_hello(), and tls_send_finished().

◆ chain

struct x509_chain* tls_connection::chain

Server certificate chain.

Definition at line 330 of file tls.h.

Referenced by free_tls(), tls_new_server_hello_done(), tls_parse_chain(), and tls_validator_done().

◆ validator

struct interface tls_connection::validator

Certificate validator.

Definition at line 332 of file tls.h.

Referenced by add_tls(), tls_close(), tls_new_server_hello_done(), tls_progress(), and tls_validator_done().

◆ client_negotiation

struct pending_operation tls_connection::client_negotiation

Client security negotiation pending operation.

Definition at line 335 of file tls.h.

Referenced by tls_close(), tls_new_finished(), tls_ready(), tls_restart(), and tls_send_finished().

◆ server_negotiation

struct pending_operation tls_connection::server_negotiation

Server security negotiation pending operation.

Definition at line 337 of file tls.h.

Referenced by tls_close(), tls_new_finished(), tls_ready(), tls_restart(), and tls_tx_step().

◆ validation

struct pending_operation tls_connection::validation

Certificate validation pending operation.

Definition at line 339 of file tls.h.

Referenced by tls_close(), tls_new_server_hello_done(), tls_progress(), tls_restart(), and tls_validator_done().

◆ tx_seq

uint64_t tls_connection::tx_seq

TX sequence number.

Definition at line 342 of file tls.h.

Referenced by tls_send_plaintext(), and tls_tx_step().

◆ tx_pending

unsigned int tls_connection::tx_pending

TX pending transmissions.

Definition at line 344 of file tls.h.

Referenced by tls_new_finished(), tls_restart(), tls_tx_step(), and tls_validator_done().

◆ process

struct process tls_connection::process

TX process.

Definition at line 346 of file tls.h.

Referenced by add_tls(), tls_close(), and tls_tx_resume().

◆ rx_seq

uint64_t tls_connection::rx_seq

RX sequence number.

Definition at line 349 of file tls.h.

Referenced by tls_new_change_cipher(), tls_new_ciphertext(), and tls_newdata_process_data().

◆ rx_state

enum tls_rx_state tls_connection::rx_state

RX state.

Definition at line 351 of file tls.h.

Referenced by tls_cipherstream_deliver(), tls_newdata_process_data(), and tls_newdata_process_header().

◆ rx_header

struct tls_header tls_connection::rx_header

Current received record header.

Definition at line 353 of file tls.h.

Referenced by add_tls(), tls_newdata_process_data(), and tls_newdata_process_header().

◆ rx_header_iobuf

struct io_buffer tls_connection::rx_header_iobuf

Current received record header (static I/O buffer)

Definition at line 355 of file tls.h.

Referenced by add_tls(), tls_cipherstream_deliver(), and tls_newdata_process_data().

◆ rx_data

struct list_head tls_connection::rx_data

The documentation for this struct was generated from the following file: