OpenVPN
|
Security parameter state of one TLS and data channel key session. More...
#include <ssl_common.h>
Security parameter state of one TLS and data channel key session.
This structure represents one security parameter session between OpenVPN peers. It includes the control channel TLS state and the data channel crypto state. It also contains the reliability layer structures used for control channel messages.
A new key_state
structure is initialized for each hard or soft reset.
key_state_init()
function.key_state_free()
function. Definition at line 198 of file ssl_common.h.
time_t key_state::acf_last_mod |
Definition at line 257 of file ssl_common.h.
struct buffer key_state::ack_write_buf |
Definition at line 234 of file ssl_common.h.
Referenced by key_state_free(), key_state_init(), and tls_process().
time_t key_state::auth_deferred_expire |
Definition at line 251 of file ssl_common.h.
Referenced by send_auth_pending_messages(), session_move_pre_start(), tls_select_encryption_key(), and update_key_auth_status().
unsigned int key_state::auth_token_state_flags |
The state of the auth-token sent from the client.
Definition at line 202 of file ssl_common.h.
Referenced by auth_token_test_env(), generate_auth_token(), and verify_user_pass().
enum ks_auth_state key_state::authenticated |
Definition at line 250 of file ssl_common.h.
Referenced by handle_data_channel_packet(), key_method_2_read(), multi_process_post(), print_key_id(), print_key_id_not_found_reason(), tls_authentication_status(), tls_deauthenticate(), tls_multi_process(), tls_select_encryption_key(), tls_session_generate_data_channel_keys(), update_key_auth_status(), verify_final_auth_checks(), and verify_user_pass().
struct crypto_options key_state::crypto_options |
Definition at line 228 of file ssl_common.h.
Referenced by cc_exit_notify_enabled(), control_packet_needs_wkc(), generate_key_expansion(), handle_data_channel_packet(), init_key_contexts(), key_state_free(), key_state_init(), parse_early_negotiation_tlvs(), tls_pre_encrypt(), tls_process(), tls_select_encryption_key(), and tls_session_generate_data_channel_keys().
enum dco_key_status key_state::dco_status |
Definition at line 262 of file ssl_common.h.
time_t key_state::established |
Definition at line 219 of file ssl_common.h.
Referenced by receive_auth_pending(), send_push_request(), session_move_active(), and tls_process().
time_t key_state::initial |
Definition at line 218 of file ssl_common.h.
Referenced by send_auth_pending_messages(), and session_move_pre_start().
int key_state::initial_opcode |
Definition at line 224 of file ssl_common.h.
Referenced by key_state_init(), and session_move_pre_start().
int key_state::key_id |
Key id for this key_state, inherited from struct tls_session.
Definition at line 208 of file ssl_common.h.
Referenced by handle_data_channel_packet(), key_method_2_read(), key_method_2_write(), key_state_init(), print_key_id(), print_key_id_not_found_reason(), tls_pre_decrypt(), tls_pre_encrypt(), tls_prepend_opcode_v1(), tls_prepend_opcode_v2(), and write_control_auth().
struct key_source2* key_state::key_src |
Definition at line 230 of file ssl_common.h.
Referenced by generate_key_expansion_openvpn_prf(), key_method_2_read(), key_method_2_write(), key_state_free(), key_state_init(), and tls_session_generate_data_channel_keys().
struct key_state_ssl key_state::ks_ssl |
Definition at line 216 of file ssl_common.h.
Referenced by flush_payload_buffer(), key_method_2_read(), key_state_free(), key_state_init(), read_incoming_tls_ciphertext(), read_incoming_tls_plaintext(), session_move_active(), tls_multi_process(), tls_process_state(), tls_send_payload(), and write_outgoing_tls_ciphertext().
struct reliable_ack* key_state::lru_acks |
Definition at line 239 of file ssl_common.h.
Referenced by calc_control_channel_frame_overhead(), key_state_free(), key_state_init(), and write_control_auth().
unsigned int key_state::mda_key_id |
Definition at line 254 of file ssl_common.h.
Referenced by key_state_init(), management_client_pending_auth(), receive_cr_response(), tls_authenticate_key(), and verify_user_pass_management().
enum auth_deferred_result key_state::mda_status |
Definition at line 255 of file ssl_common.h.
Referenced by man_def_auth_test(), tls_authenticate_key(), and verify_user_pass().
time_t key_state::must_die |
Definition at line 221 of file ssl_common.h.
Referenced by key_state_soft_reset(), and lame_duck_must_die().
time_t key_state::must_negotiate |
Definition at line 220 of file ssl_common.h.
Referenced by session_move_active(), session_move_pre_start(), tls_process(), and tls_process_state().
counter_type key_state::n_bytes |
Definition at line 244 of file ssl_common.h.
Referenced by handle_data_channel_packet(), tls_post_encrypt(), and tls_process().
counter_type key_state::n_packets |
Definition at line 245 of file ssl_common.h.
Referenced by handle_data_channel_packet(), tls_post_encrypt(), and tls_process().
struct buffer_list* key_state::paybuf |
Holds outgoing message for the control channel until ks->state reaches S_ACTIVE.
Definition at line 243 of file ssl_common.h.
Referenced by flush_payload_buffer(), key_state_free(), and tls_send_payload().
uint32_t key_state::peer_id |
Key id for this key_state, inherited from struct tls_session.
Definition at line 214 of file ssl_common.h.
time_t key_state::peer_last_packet |
Definition at line 222 of file ssl_common.h.
Referenced by send_push_request(), and tls_pre_decrypt().
struct buffer key_state::plaintext_read_buf |
Definition at line 232 of file ssl_common.h.
Referenced by key_state_free(), key_state_init(), tls_process_state(), tls_rec_payload(), and tls_test_payload_len().
struct buffer key_state::plaintext_write_buf |
Definition at line 233 of file ssl_common.h.
Referenced by key_state_free(), key_state_init(), and tls_process_state().
struct auth_deferred_status key_state::plugin_auth |
Definition at line 259 of file ssl_common.h.
Referenced by key_state_free(), multi_process_post(), tls_authentication_status(), update_key_auth_status(), and verify_user_pass_plugin().
struct reliable_ack* key_state::rec_ack |
Definition at line 238 of file ssl_common.h.
Referenced by calc_control_channel_frame_overhead(), key_state_free(), key_state_init(), tls_pre_decrypt(), tls_process(), and write_control_auth().
struct reliable* key_state::rec_reliable |
Definition at line 237 of file ssl_common.h.
Referenced by key_state_free(), key_state_init(), parse_early_negotiation_tlvs(), read_incoming_tls_ciphertext(), session_skip_to_pre_start(), tls_pre_decrypt(), and tls_process_state().
struct link_socket_actual key_state::remote_addr |
Definition at line 226 of file ssl_common.h.
Referenced by handle_data_channel_packet(), key_state_soft_reset(), session_move_active(), session_skip_to_pre_start(), tls_multi_process(), tls_pre_decrypt(), tls_update_remote_addr(), and write_control_auth().
struct auth_deferred_status key_state::script_auth |
Definition at line 260 of file ssl_common.h.
Referenced by key_state_free(), multi_process_post(), tls_authentication_status(), update_key_auth_status(), and verify_user_pass_script().
struct reliable* key_state::send_reliable |
Definition at line 236 of file ssl_common.h.
Referenced by check_outgoing_ciphertext(), check_session_buf_not_used(), control_packet_needs_wkc(), key_state_free(), key_state_init(), session_move_pre_start(), tls_pre_decrypt(), tls_process(), tls_process_state(), and write_outgoing_tls_ciphertext().
struct session_id key_state::session_id_remote |
Definition at line 225 of file ssl_common.h.
Referenced by generate_key_expansion_openvpn_prf(), key_state_soft_reset(), print_key_id(), session_skip_to_pre_start(), tls_multi_process(), tls_pre_decrypt(), and write_control_auth().
int key_state::state |
Definition at line 200 of file ssl_common.h.
Referenced by check_outgoing_ciphertext(), check_session_buf_not_used(), handle_data_channel_packet(), key_state_free(), key_state_init(), lame_duck_must_die(), print_key_id(), print_key_id_not_found_reason(), session_move_active(), session_move_pre_start(), session_skip_to_pre_start(), tls_multi_process(), tls_pre_decrypt(), tls_process(), tls_process_state(), tls_rec_payload(), tls_select_encryption_key(), tls_send_payload(), tls_session_generate_data_channel_keys(), and tls_test_payload_len().