iPXE
Data Fields
tls_connection Struct Reference

A TLS connection. More...

#include <tls.h>

Data Fields

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

Detailed Description

A TLS connection.

Definition at line 274 of file tls.h.


Field Documentation

Reference counter.

Definition at line 276 of file tls.h.

Referenced by add_tls().

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.

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().

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.

Definition at line 287 of file tls.h.

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

Length of new session ticket.

Definition at line 289 of file tls.h.

Referenced by tls_new_finished(), and tls_new_session_ticket().

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().

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().

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().

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().

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().

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().

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.

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 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 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().

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().

SHA256 context for handshake verification.

Definition at line 317 of file tls.h.

Referenced by tls_add_handshake(), and tls_restart().

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().

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().

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 flag.

Definition at line 325 of file tls.h.

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

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().

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().

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 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 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().

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 sequence number.

Definition at line 342 of file tls.h.

Referenced by tls_send_plaintext(), and tls_tx_step().

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().

TX process.

Definition at line 346 of file tls.h.

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

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.

Definition at line 351 of file tls.h.

Referenced by tls_cipherstream_deliver(), tls_newdata_process_data(), and tls_newdata_process_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().

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().

List of received data buffers.

Definition at line 357 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().


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