iPXE
|
A TLS connection. More...
#include <tls.h>
Data Fields | |
struct refcnt | refcnt |
Reference counter. More... | |
struct tls_session * | session |
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_algorithm * | handshake_digest |
Digest algorithm used for handshake verification. More... | |
uint8_t * | handshake_ctx |
Digest algorithm context used for handshake verification. More... | |
struct private_key * | key |
Private key. More... | |
struct x509_chain * | certs |
Client certificate chain (if used) More... | |
int | secure_renegotiation |
Secure renegotiation flag. More... | |
struct tls_verify_data | verify |
Verification data. More... | |
struct x509_root * | root |
Root of trust. More... | |
struct x509_chain * | chain |
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_buffer * | rx_handshake |
Received handshake fragment. More... | |
struct refcnt tls_connection::refcnt |
struct tls_session* tls_connection::session |
Session.
Definition at line 349 of file tls.h.
Referenced by add_tls(), free_tls(), tls_client_hello(), tls_close(), tls_new_finished(), tls_session(), tls_tx_step(), and tls_validator_done().
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().
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().
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().
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().
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().
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().
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().
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().
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().
struct tls_cipherspec tls_connection::tx_cipherspec_pending |
Next TX cipher specification.
Definition at line 371 of file tls.h.
Referenced by add_tls(), free_tls(), tls_generate_keys(), tls_select_cipher(), tls_send_client_key_exchange(), tls_send_client_key_exchange_pubkey(), tls_tx_step(), tls_validator_done(), and tls_verify_dh_params().
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().
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().
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().
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().
struct tls_client_random tls_connection::client_random |
Client random bytes.
Definition at line 381 of file tls.h.
Referenced by add_tls(), tls_client_hello(), tls_generate_keys(), tls_generate_master_secret(), tls_send_client_key_exchange_dhe(), tls_tx_step(), and tls_verify_dh_params().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().
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().