OpenVPN
Data Fields
key_state Struct Reference

Security parameter state of one TLS and data channel key session. More...

#include <ssl_common.h>

Collaboration diagram for key_state:
Collaboration graph
[legend]

Data Fields

int state
 
int key_id
 Key id for this key_state, inherited from struct tls_session. More...
 
struct key_state_ssl ks_ssl
 
time_t established
 
time_t must_negotiate
 
time_t must_die
 
int initial_opcode
 
struct session_id session_id_remote
 
struct link_socket_actual remote_addr
 
struct crypto_options crypto_options
 
struct key_source2key_src
 
struct buffer plaintext_read_buf
 
struct buffer plaintext_write_buf
 
struct buffer ack_write_buf
 
struct reliablesend_reliable
 
struct reliablerec_reliable
 
struct reliable_ackrec_ack
 
struct buffer_listpaybuf
 
counter_type n_bytes
 
counter_type n_packets
 
bool authenticated
 
time_t auth_deferred_expire
 

Detailed Description

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.

See also

Definition at line 161 of file ssl_common.h.

Field Documentation

◆ ack_write_buf

struct buffer key_state::ack_write_buf

Definition at line 187 of file ssl_common.h.

Referenced by key_state_free(), key_state_init(), and tls_process().

◆ auth_deferred_expire

time_t key_state::auth_deferred_expire

◆ authenticated

bool key_state::authenticated

◆ crypto_options

struct crypto_options key_state::crypto_options

◆ established

time_t key_state::established

Definition at line 173 of file ssl_common.h.

Referenced by tls_process().

◆ initial_opcode

int key_state::initial_opcode

Definition at line 177 of file ssl_common.h.

Referenced by key_state_init(), and tls_process().

◆ key_id

int key_state::key_id

◆ key_src

struct key_source2* key_state::key_src

◆ ks_ssl

struct key_state_ssl key_state::ks_ssl

◆ must_die

time_t key_state::must_die

Definition at line 175 of file ssl_common.h.

Referenced by key_state_soft_reset(), and lame_duck_must_die().

◆ must_negotiate

time_t key_state::must_negotiate

Definition at line 174 of file ssl_common.h.

Referenced by tls_process().

◆ n_bytes

counter_type key_state::n_bytes

Definition at line 195 of file ssl_common.h.

Referenced by tls_post_encrypt(), tls_pre_decrypt(), and tls_process().

◆ n_packets

counter_type key_state::n_packets

Definition at line 196 of file ssl_common.h.

Referenced by tls_post_encrypt(), tls_pre_decrypt(), and tls_process().

◆ paybuf

struct buffer_list* key_state::paybuf

Definition at line 193 of file ssl_common.h.

Referenced by flush_payload_buffer(), key_state_free(), and tls_send_payload().

◆ plaintext_read_buf

struct buffer key_state::plaintext_read_buf

◆ plaintext_write_buf

struct buffer key_state::plaintext_write_buf

Definition at line 186 of file ssl_common.h.

Referenced by key_state_free(), key_state_init(), and tls_process().

◆ rec_ack

struct reliable_ack* key_state::rec_ack

◆ rec_reliable

struct reliable* key_state::rec_reliable

Definition at line 190 of file ssl_common.h.

Referenced by key_state_free(), key_state_init(), tls_pre_decrypt(), and tls_process().

◆ remote_addr

struct link_socket_actual key_state::remote_addr

◆ send_reliable

struct reliable* key_state::send_reliable

Definition at line 189 of file ssl_common.h.

Referenced by key_state_free(), key_state_init(), tls_pre_decrypt(), and tls_process().

◆ session_id_remote

struct session_id key_state::session_id_remote

◆ state

int key_state::state

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