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...
 
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...
 
void * server_key
 Server Key Exchange record (if any) More...
 
size_t server_key_len
 Server Key Exchange record length. More...
 
struct digest_algorithmhandshake_digest
 Digest algorithm used for handshake verification. More...
 
uint8_thandshake_ctx
 Digest algorithm context used for handshake verification. More...
 
struct private_keykey
 Private key. More...
 
struct x509_chaincerts
 Client certificate chain (if used) More...
 
int secure_renegotiation
 Secure renegotiation flag. More...
 
struct tls_verify_data verify
 Verification data. More...
 
struct x509_rootroot
 Root of trust. 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...
 
struct io_bufferrx_handshake
 Received handshake fragment. More...
 

Detailed Description

A TLS connection.

Definition at line 344 of file tls.h.

Field Documentation

◆ refcnt

struct refcnt tls_connection::refcnt

Reference counter.

Definition at line 346 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 351 of file tls.h.

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

◆ session_id

uint8_t tls_connection::session_id[32]

Session ID.

Definition at line 353 of file tls.h.

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

◆ session_id_len

size_t tls_connection::session_id_len

Length of session ID.

Definition at line 355 of file tls.h.

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

◆ new_session_ticket

void* tls_connection::new_session_ticket

New session ticket.

Definition at line 357 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 359 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 362 of file tls.h.

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

◆ cipherstream

struct interface tls_connection::cipherstream

Ciphertext stream.

Definition at line 364 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

Protocol version.

Definition at line 367 of file tls.h.

Referenced by add_tls(), tls_new_server_hello(), tls_send_plaintext(), and tls_version().

◆ tx_cipherspec

struct tls_cipherspec tls_connection::tx_cipherspec

Current TX cipher specification.

Definition at line 369 of file tls.h.

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

◆ tx_cipherspec_pending

struct tls_cipherspec tls_connection::tx_cipherspec_pending

◆ rx_cipherspec

struct tls_cipherspec tls_connection::rx_cipherspec

Current RX cipher specification.

Definition at line 373 of file tls.h.

Referenced by add_tls(), free_tls(), tls_new_change_cipher(), tls_new_ciphertext(), and tls_newdata_process_header().

◆ rx_cipherspec_pending

struct tls_cipherspec tls_connection::rx_cipherspec_pending

Next RX cipher specification.

Definition at line 375 of file tls.h.

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

◆ master_secret

uint8_t tls_connection::master_secret[48]

Master secret.

Definition at line 377 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 379 of file tls.h.

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

◆ client_random

struct tls_client_random tls_connection::client_random

◆ server_key

void* tls_connection::server_key

Server Key Exchange record (if any)

Definition at line 383 of file tls.h.

Referenced by free_tls(), tls_new_server_key_exchange(), tls_send_client_key_exchange_dhe(), tls_send_client_key_exchange_ecdhe(), and tls_verify_dh_params().

◆ server_key_len

size_t tls_connection::server_key_len

Server Key Exchange record length.

Definition at line 385 of file tls.h.

Referenced by tls_new_server_key_exchange(), tls_send_client_key_exchange_dhe(), tls_send_client_key_exchange_ecdhe(), and tls_verify_dh_params().

◆ handshake_digest

struct digest_algorithm* tls_connection::handshake_digest

Digest algorithm used for handshake verification.

Definition at line 387 of file tls.h.

Referenced by tls_add_handshake(), tls_clear_handshake(), tls_new_finished(), tls_prf(), tls_select_handshake(), 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 389 of file tls.h.

Referenced by free_tls(), tls_add_handshake(), tls_clear_handshake(), tls_select_handshake(), and tls_verify_handshake().

◆ key

struct private_key* tls_connection::key

Private key.

Definition at line 391 of file tls.h.

Referenced by add_tls(), free_tls(), tls_new_certificate_request(), tls_send_certificate_verify(), and tls_session().

◆ certs

struct x509_chain* tls_connection::certs

Client certificate chain (if used)

Definition at line 393 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 395 of file tls.h.

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

◆ verify

struct tls_verify_data tls_connection::verify

Verification data.

Definition at line 397 of file tls.h.

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

◆ root

struct x509_root* tls_connection::root

Root of trust.

Definition at line 400 of file tls.h.

Referenced by add_tls(), free_tls(), tls_new_server_hello_done(), and tls_session().

◆ chain

struct x509_chain* tls_connection::chain

Server certificate chain.

Definition at line 402 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 404 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 407 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 409 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 411 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 414 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 416 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 418 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 421 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 423 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 425 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 427 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

List of received data buffers.

Definition at line 429 of file tls.h.

Referenced by add_tls(), free_tls(), tls_cipherstream_deliver(), tls_new_ciphertext(), tls_newdata_process_data(), and tls_newdata_process_header().

◆ rx_handshake

struct io_buffer* tls_connection::rx_handshake

Received handshake fragment.

Definition at line 431 of file tls.h.

Referenced by free_tls(), and tls_new_record().


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