Struct bearssl::br_ssl_engine_context
[−]
[src]
#[repr(C)]pub struct br_ssl_engine_context { pub err: c_int, pub ibuf: *mut c_uchar, pub obuf: *mut c_uchar, pub ibuf_len: usize, pub obuf_len: usize, pub max_frag_len: u16, pub log_max_frag_len: c_uchar, pub peer_log_max_frag_len: c_uchar, pub ixa: usize, pub ixb: usize, pub ixc: usize, pub oxa: usize, pub oxb: usize, pub oxc: usize, pub iomode: c_uchar, pub incrypt: c_uchar, pub shutdown_recv: c_uchar, pub record_type_in: c_uchar, pub record_type_out: c_uchar, pub version_in: u16, pub version_out: u16, pub in_: br_ssl_engine_context__bindgen_ty_1, pub out: br_ssl_engine_context__bindgen_ty_2, pub application_data: c_uchar, pub rng: br_hmac_drbg_context, pub rng_init_done: c_int, pub rng_os_rand_done: c_int, pub version_min: u16, pub version_max: u16, pub suites_buf: [u16; 40], pub suites_num: c_uchar, pub server_name: [c_char; 256], pub client_random: [c_uchar; 32], pub server_random: [c_uchar; 32], pub session: br_ssl_session_parameters, pub ecdhe_curve: c_uchar, pub ecdhe_point: [c_uchar; 133], pub ecdhe_point_len: c_uchar, pub reneg: c_uchar, pub saved_finished: [c_uchar; 24], pub flags: u32, pub cpu: br_ssl_engine_context__bindgen_ty_3, pub dp_stack: [u32; 32], pub rp_stack: [u32; 32], pub pad: [c_uchar; 512], pub hbuf_in: *mut c_uchar, pub hbuf_out: *mut c_uchar, pub saved_hbuf_out: *mut c_uchar, pub hlen_in: usize, pub hlen_out: usize, pub hsrun: Option<unsafe extern "C" fn(_: *mut c_void)>, pub action: c_uchar, pub alert: c_uchar, pub close_received: c_uchar, pub mhash: br_multihash_context, pub x509ctx: *mut *const br_x509_class, pub chain: *const br_x509_certificate, pub chain_len: usize, pub cert_cur: *const c_uchar, pub cert_len: usize, pub protocol_names: *mut *const c_char, pub protocol_names_num: u16, pub selected_protocol: u16, pub prf10: br_tls_prf_impl, pub prf_sha256: br_tls_prf_impl, pub prf_sha384: br_tls_prf_impl, pub iaes_cbcenc: *const br_block_cbcenc_class, pub iaes_cbcdec: *const br_block_cbcdec_class, pub iaes_ctr: *const br_block_ctr_class, pub ides_cbcenc: *const br_block_cbcenc_class, pub ides_cbcdec: *const br_block_cbcdec_class, pub ighash: br_ghash, pub ichacha: br_chacha20_run, pub ipoly: br_poly1305_run, pub icbc_in: *const br_sslrec_in_cbc_class, pub icbc_out: *const br_sslrec_out_cbc_class, pub igcm_in: *const br_sslrec_in_gcm_class, pub igcm_out: *const br_sslrec_out_gcm_class, pub ichapol_in: *const br_sslrec_in_chapol_class, pub ichapol_out: *const br_sslrec_out_chapol_class, pub iec: *const br_ec_impl, pub irsavrfy: br_rsa_pkcs1_vrfy, pub iecdsa: br_ecdsa_vrfy, }
\brief Context structure for SSL engine.
This strucuture is common to the client and server; both the client
context (br_ssl_client_context
) and the server context
(br_ssl_server_context
) include a br_ssl_engine_context
as their
first field.
The engine context manages records, including alerts, closures, and transitions to new encryption/MAC algorithms. Processing of handshake records is delegated to externally provided code. This structure should not be used directly.
Structure contents are opaque and shall not be accessed directly.
Fields
err: c_int
ibuf: *mut c_uchar
obuf: *mut c_uchar
ibuf_len: usize
obuf_len: usize
max_frag_len: u16
log_max_frag_len: c_uchar
peer_log_max_frag_len: c_uchar
ixa: usize
ixb: usize
ixc: usize
oxa: usize
oxb: usize
oxc: usize
iomode: c_uchar
incrypt: c_uchar
shutdown_recv: c_uchar
record_type_in: c_uchar
record_type_out: c_uchar
version_in: u16
version_out: u16
in_: br_ssl_engine_context__bindgen_ty_1
out: br_ssl_engine_context__bindgen_ty_2
application_data: c_uchar
rng: br_hmac_drbg_context
rng_init_done: c_int
rng_os_rand_done: c_int
version_min: u16
version_max: u16
suites_buf: [u16; 40]
suites_num: c_uchar
server_name: [c_char; 256]
client_random: [c_uchar; 32]
server_random: [c_uchar; 32]
session: br_ssl_session_parameters
ecdhe_curve: c_uchar
ecdhe_point: [c_uchar; 133]
ecdhe_point_len: c_uchar
reneg: c_uchar
saved_finished: [c_uchar; 24]
flags: u32
cpu: br_ssl_engine_context__bindgen_ty_3
dp_stack: [u32; 32]
rp_stack: [u32; 32]
pad: [c_uchar; 512]
hbuf_in: *mut c_uchar
hbuf_out: *mut c_uchar
saved_hbuf_out: *mut c_uchar
hlen_in: usize
hlen_out: usize
hsrun: Option<unsafe extern "C" fn(_: *mut c_void)>
action: c_uchar
alert: c_uchar
close_received: c_uchar
mhash: br_multihash_context
x509ctx: *mut *const br_x509_class
chain: *const br_x509_certificate
chain_len: usize
cert_cur: *const c_uchar
cert_len: usize
protocol_names: *mut *const c_char
protocol_names_num: u16
selected_protocol: u16
prf10: br_tls_prf_impl
prf_sha256: br_tls_prf_impl
prf_sha384: br_tls_prf_impl
iaes_cbcenc: *const br_block_cbcenc_class
iaes_cbcdec: *const br_block_cbcdec_class
iaes_ctr: *const br_block_ctr_class
ides_cbcenc: *const br_block_cbcenc_class
ides_cbcdec: *const br_block_cbcdec_class
ighash: br_ghash
ichacha: br_chacha20_run
ipoly: br_poly1305_run
icbc_in: *const br_sslrec_in_cbc_class
icbc_out: *const br_sslrec_out_cbc_class
igcm_in: *const br_sslrec_in_gcm_class
igcm_out: *const br_sslrec_out_gcm_class
ichapol_in: *const br_sslrec_in_chapol_class
ichapol_out: *const br_sslrec_out_chapol_class
iec: *const br_ec_impl
irsavrfy: br_rsa_pkcs1_vrfy
iecdsa: br_ecdsa_vrfy
Trait Implementations
impl Copy for br_ssl_engine_context
[src]
impl Clone for br_ssl_engine_context
[src]
fn clone(&self) -> br_ssl_engine_context
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more