pub type protocomm_security_t = protocomm_security;
Expand description

@brief Protocomm security object structure.

The member functions are used for implementing secure protocomm sessions.

@note This structure should not have any dynamic members to allow re-entrancy

Aliased Type§

struct protocomm_security_t {
    pub ver: i32,
    pub init: Option<unsafe extern "C" fn(_: *mut *mut c_void) -> i32>,
    pub cleanup: Option<unsafe extern "C" fn(_: *mut c_void) -> i32>,
    pub new_transport_session: Option<unsafe extern "C" fn(_: *mut c_void, _: u32) -> i32>,
    pub close_transport_session: Option<unsafe extern "C" fn(_: *mut c_void, _: u32) -> i32>,
    pub security_req_handler: Option<unsafe extern "C" fn(_: *mut c_void, _: *const c_void, _: u32, _: *const u8, _: isize, _: *mut *mut u8, _: *mut isize, _: *mut c_void) -> i32>,
    pub encrypt: Option<unsafe extern "C" fn(_: *mut c_void, _: u32, _: *const u8, _: isize, _: *mut *mut u8, _: *mut isize) -> i32>,
    pub decrypt: Option<unsafe extern "C" fn(_: *mut c_void, _: u32, _: *const u8, _: isize, _: *mut *mut u8, _: *mut isize) -> i32>,
}

Fields§

§ver: i32

Unique version number of security implementation

§init: Option<unsafe extern "C" fn(_: *mut *mut c_void) -> i32>

Function for initializing/allocating security infrastructure

§cleanup: Option<unsafe extern "C" fn(_: *mut c_void) -> i32>

Function for deallocating security infrastructure

§new_transport_session: Option<unsafe extern "C" fn(_: *mut c_void, _: u32) -> i32>

Starts new secure transport session with specified ID

§close_transport_session: Option<unsafe extern "C" fn(_: *mut c_void, _: u32) -> i32>

Closes a secure transport session with specified ID

§security_req_handler: Option<unsafe extern "C" fn(_: *mut c_void, _: *const c_void, _: u32, _: *const u8, _: isize, _: *mut *mut u8, _: *mut isize, _: *mut c_void) -> i32>

Handler function for authenticating connection request and establishing secure session

§encrypt: Option<unsafe extern "C" fn(_: *mut c_void, _: u32, _: *const u8, _: isize, _: *mut *mut u8, _: *mut isize) -> i32>

Function which implements the encryption algorithm

§decrypt: Option<unsafe extern "C" fn(_: *mut c_void, _: u32, _: *const u8, _: isize, _: *mut *mut u8, _: *mut isize) -> i32>

Function which implements the decryption algorithm