eap_core_c Class Reference

class eap_core_c : public abs_eap_core_map_c

Inherits from

Public Member Functions
eap_core_c(abs_eap_am_tools_c *const , abs_eap_core_c *const , const bool, const eap_am_network_id_c *const , const bool)
~eap_core_c()
EAP_FUNC_IMPORT eap_status_eadd_rogue_ap(eap_array_c< eap_rogue_ap_entry_c > &)
EAP_FUNC_IMPORT eap_status_ecancel_all_timers()
EAP_FUNC_IMPORT eap_status_ecancel_timer(abs_eap_base_timer_c *const , const u32_t)
EAP_FUNC_IMPORT eap_status_echeck_is_valid_eap_type(const eap_type_value_e)
EAP_FUNC_IMPORT eap_status_ecomplete_eap_identity_query(const eap_am_network_id_c *const , const eap_variable_data_c *const , const u8_t)
EAP_FUNC_IMPORT eap_status_econfigure()
EAP_FUNC_IMPORT eap_status_eeap_acknowledge(const eap_am_network_id_c *const )
EAP_FUNC_IMPORT eap_status_eget_eap_type_list(eap_array_c< eap_type_value_e > *const )
EAP_FUNC_IMPORT u32_tget_header_offset(u32_t *const , u32_t *const )
EAP_FUNC_IMPORT boolget_is_tunneled_eap()
EAP_FUNC_IMPORT boolget_is_valid()
EAP_FUNC_IMPORT boolget_marked_removed()
EAP_FUNC_IMPORT abs_eap_core_c *get_partner()
EAP_FUNC_IMPORT eap_status_eget_saved_eap_identity(eap_variable_data_c *const )
EAP_FUNC_IMPORT voidignore_notifications()
EAP_FUNC_IMPORT eap_status_eload_module(const eap_type_value_e, const , abs_eap_base_type_c *const , eap_base_type_c **const , const bool, const eap_am_network_id_c *const )
EAP_FUNC_IMPORT eap_base_type_c *load_type(const eap_type_value_e, const eap_type_value_e, const eap_am_network_id_c *const )
EAP_FUNC_IMPORT u32_tobject_decrease_reference_count()
EAP_FUNC_IMPORT voidobject_increase_reference_count()
EAP_FUNC_IMPORT eap_status_epacket_data_crypto_keys(const eap_am_network_id_c *const , const eap_master_session_key_c *const )
EAP_FUNC_IMPORT eap_status_epacket_process(const eap_am_network_id_c *const , eap_general_header_base_c *const , const u32_t)
EAP_FUNC_IMPORT eap_status_epacket_send(const eap_am_network_id_c *const , eap_buf_chain_wr_c *const , const u32_t, const u32_t, const u32_t)
EAP_FUNC_IMPORT eap_status_eread_configure(const eap_configuration_field_c *const , eap_variable_data_c *const )
EAP_FUNC_IMPORT eap_status_ereset()
EAP_FUNC_IMPORT eap_status_erestart_authentication(const eap_am_network_id_c *const , const bool)
EAP_FUNC_IMPORT eap_status_esend_eap_nak_response(const eap_am_network_id_c *const , const u8_t, const eap_array_c< eap_type_value_e > *const )
EAP_FUNC_IMPORT eap_status_eset_authentication_role(const bool)
EAP_FUNC_IMPORT voidset_is_valid()
EAP_FUNC_IMPORT voidset_marked_removed()
EAP_FUNC_IMPORT voidset_partner(abs_eap_core_c *const )
EAP_FUNC_IMPORT eap_status_eset_session_timeout(const u32_t)
EAP_FUNC_IMPORT eap_status_eset_timer(abs_eap_base_timer_c *const , const u32_t, void *const , const u32_t)
EAP_FUNC_IMPORT eap_status_eshutdown()
EAP_FUNC_IMPORT voidstate_notification(const abs_eap_state_notification_c *const )
EAP_FUNC_IMPORT eap_status_etimer_delete_data(const u32_t, void *)
EAP_FUNC_IMPORT eap_status_etimer_expired(const u32_t, void *)
EAP_FUNC_IMPORT voidtrace_eap_packet(eap_const_string, const eap_header_wr_c *const )
EAP_FUNC_IMPORT eap_status_eunload_module(const eap_type_value_e)
EAP_FUNC_IMPORT voidunset_marked_removed()
EAP_FUNC_IMPORT eap_status_ewrite_configure(const eap_configuration_field_c *const , eap_variable_data_c *const )
Private Member Functions
EAP_FUNC_IMPORT eap_status_easynchronous_init_remove_eap_session()
EAP_FUNC_IMPORT eap_status_ecancel_asynchronous_init_remove_eap_session()
EAP_FUNC_IMPORT eap_status_ecancel_eap_failure_timeout()
EAP_FUNC_IMPORT eap_status_ecancel_retransmission()
EAP_FUNC_IMPORT eap_status_ecancel_session_timeout()
EAP_FUNC_IMPORT eap_status_eclient_proposes_eap_types(const eap_am_network_id_c *const , const u8_t)
EAP_FUNC_IMPORT eap_status_ecreate_eap_identity_response(eap_buf_chain_wr_c *const , const eap_variable_data_c *const , const u8_t)
EAP_FUNC_IMPORT eap_status_ehandle_eap_identity_request(const eap_type_value_e, const u8_t, const eap_am_network_id_c *const )
eap_status_e init_end_of_session(const abs_eap_state_notification_c *const )
EAP_FUNC_IMPORT eap_status_einit_retransmission(const eap_am_network_id_c *const , eap_buf_chain_wr_c *const , const u32_t, const u32_t, const eap_code_value_e, const u8_t, const eap_type_value_e)
EAP_FUNC_IMPORT eap_status_einitialize_asynchronous_init_remove_eap_session(const u32_t)
EAP_FUNC_IMPORT eap_status_einitialize_session_timeout(const u32_t)
EAP_FUNC_IMPORT eap_status_epacket_process_type(const eap_type_value_e, const eap_am_network_id_c *const , eap_general_header_base_c *const , const u32_t)
EAP_FUNC_IMPORT eap_status_eresend_packet(const eap_am_network_id_c *const , eap_buf_chain_wr_c *const , const u32_t, const u32_t, const u32_t, const u32_t)
EAP_FUNC_IMPORT eap_status_ereset_operation(eap_base_type_c *const , abs_eap_am_tools_c *const )
EAP_FUNC_IMPORT eap_status_esend_eap_identity_response(const eap_am_network_id_c *const , const eap_variable_data_c *const , const u8_t)
EAP_FUNC_IMPORT eap_status_esend_eap_notification_response(const eap_am_network_id_c *const , const u8_t)
EAP_FUNC_IMPORT eap_status_eset_eap_failure_timeout()
eap_status_e set_eap_identity_routing_info_and_nai_decoration(eap_variable_data_c *const )
EAP_FUNC_IMPORT eap_status_eshutdown_operation(eap_base_type_c *const , abs_eap_am_tools_c *const )
Inherited Functions
abs_eap_core_map_c::abs_eap_core_map_c()
abs_eap_core_map_c::~abs_eap_core_map_c()
Private Attributes
u32_t m_MTU
abs_eap_am_tools_c *constm_am_tools
boolm_client_restart_authentication_initiated
eap_type_value_e m_current_eap_type
eap_type_value_e m_default_eap_type
u32_t m_eap_core_failure_received_timeout
u32_t m_eap_header_offset
eap_variable_data_c m_eap_identity
u8_t m_eap_identity_request_identifier_client
boolm_eap_identity_response_accepted
boolm_eap_type_response_sent
boolm_ignore_eap_failure
boolm_ignore_notifications
boolm_is_client
boolm_is_client_role
boolm_is_tunneled_eap
boolm_is_valid
boolm_marked_removed
abs_eap_core_c *m_partner
eap_am_network_id_c m_receive_network_id
u32_t m_remove_session_timeout
eap_core_retransmission_c *m_retransmission
u32_t m_retransmission_counter
u32_t m_retransmission_time
u32_t m_session_timeout
boolm_shutdown_was_called
u32_t m_trailer_length
eap_core_map_c< eap_base_type_c, abs_eap_core_map_c, eap_variable_data_c >m_type_map
boolm_use_eap_expanded_type

Constructor & Destructor Documentation

eap_core_c(abs_eap_am_tools_c *const, abs_eap_core_c *const, const bool, const eap_am_network_id_c *const, const bool)

EAP_FUNC_IMPORTeap_core_c(abs_eap_am_tools_c *const tools,
abs_eap_core_c *const partner,
const boolis_client_when_true,
const eap_am_network_id_c *const receive_network_id,
const boolis_tunneled_eap
)

The constructor initializes member attributes using parameters passed to it. abs_eap_am_tools_c.

Parameters

abs_eap_am_tools_c *const toolsis pointer to the tools class.
abs_eap_core_c *const partneris back pointer to object which created this object.
const bool is_client_when_trueindicates whether the network entity should act
const eap_am_network_id_c *const receive_network_id
const bool is_tunneled_eaptells the EAP is run in tunnel (PEAP or other). as a client (true) or server (false), in terms of EAP-protocol whether this network entity is EAP-supplicant (true) or EAP-authenticator (false).

~eap_core_c()

EAP_FUNC_IMPORT~eap_core_c()[virtual]

The destructor of the eap_core class does nothing special.

Member Functions Documentation

add_rogue_ap(eap_array_c< eap_rogue_ap_entry_c > &)

EAP_FUNC_IMPORT eap_status_eadd_rogue_ap(eap_array_c< eap_rogue_ap_entry_c > &rogue_ap_list)

Parameters

eap_array_c< eap_rogue_ap_entry_c > & rogue_ap_list

asynchronous_init_remove_eap_session()

EAP_FUNC_IMPORT eap_status_easynchronous_init_remove_eap_session()[private]

cancel_all_timers()

EAP_FUNC_IMPORT eap_status_ecancel_all_timers()

cancel_asynchronous_init_remove_eap_session()

EAP_FUNC_IMPORT eap_status_ecancel_asynchronous_init_remove_eap_session()[private]

cancel_eap_failure_timeout()

EAP_FUNC_IMPORT eap_status_ecancel_eap_failure_timeout()[private]

This function cancels timeout for received EAP-Failure.

cancel_retransmission()

EAP_FUNC_IMPORT eap_status_ecancel_retransmission()[private]

Re-transmission is used to test protocols. This function cancels retransmissions.

cancel_session_timeout()

EAP_FUNC_IMPORT eap_status_ecancel_session_timeout()[private]

This function cancels timeout for a session.

cancel_timer(abs_eap_base_timer_c *const, const u32_t)

EAP_FUNC_IMPORT eap_status_ecancel_timer(abs_eap_base_timer_c *const p_initializer,
const u32_tp_id
)

Parameters

abs_eap_base_timer_c *const p_initializer
const u32_t p_id

check_is_valid_eap_type(const eap_type_value_e)

EAP_FUNC_IMPORT eap_status_echeck_is_valid_eap_type(const eap_type_value_eeap_type)

Add configuration of accepted EAP-types. }

Parameters

const eap_type_value_e eap_type

client_proposes_eap_types(const eap_am_network_id_c *const, const u8_t)

EAP_FUNC_IMPORT eap_status_eclient_proposes_eap_types(const eap_am_network_id_c *const receive_network_id,
const u8_teap_identifier
)[private]

Parameters

const eap_am_network_id_c *const receive_network_id
const u8_t eap_identifier

complete_eap_identity_query(const eap_am_network_id_c *const, const eap_variable_data_c *const, const u8_t)

EAP_FUNC_IMPORT eap_status_ecomplete_eap_identity_query(const eap_am_network_id_c *const send_network_id,
const eap_variable_data_c *const identity,
const u8_teap_identifier
)

Parameters

const eap_am_network_id_c *const send_network_id
const eap_variable_data_c *const identity
const u8_t eap_identifier

configure()

EAP_FUNC_IMPORT eap_status_econfigure()

create_eap_identity_response(eap_buf_chain_wr_c *const, const eap_variable_data_c *const, const u8_t)

EAP_FUNC_IMPORT eap_status_ecreate_eap_identity_response(eap_buf_chain_wr_c *const response_packet,
const eap_variable_data_c *const identity,
const u8_teap_identifier
)[private]

This function creates EAP-Response/Identity.

Parameters

eap_buf_chain_wr_c *const response_packet
const eap_variable_data_c *const identity
const u8_t eap_identifier

eap_acknowledge(const eap_am_network_id_c *const)

EAP_FUNC_IMPORT eap_status_eeap_acknowledge(const eap_am_network_id_c *const receive_network_id)

The adaptation module calls the eap_acknowledge() function after any Network Protocol packet is received. This is used as a success indication. This is described in RFC 2284 "PPP Extensible Authentication Protocol (EAP)". Mostly there is only one session in the client. The server does not need eap_acknowledge() function because server (EAP-authenticator) sends the EAP-success message.

Parameters

const eap_am_network_id_c *const receive_network_id

get_eap_type_list(eap_array_c< eap_type_value_e > *const)

EAP_FUNC_IMPORT eap_status_eget_eap_type_list(eap_array_c< eap_type_value_e > *const eap_type_list)

Parameters

eap_array_c< eap_type_value_e > *const eap_type_list

get_header_offset(u32_t *const, u32_t *const)

EAP_FUNC_IMPORT u32_tget_header_offset(u32_t *const MTU,
u32_t *const trailer_length
)

Parameters

u32_t *const MTU
u32_t *const trailer_length

get_is_tunneled_eap()

EAP_FUNC_IMPORT boolget_is_tunneled_eap()const

get_is_valid()

EAP_FUNC_IMPORT boolget_is_valid()

get_marked_removed()

EAP_FUNC_IMPORT boolget_marked_removed()

Gets flag whether this session is marked removed. Session is removed later if it is not reused.

get_partner()

EAP_FUNC_IMPORT abs_eap_core_c *get_partner()

The get_partner() function returns pointer to partner class.

get_saved_eap_identity(eap_variable_data_c *const)

EAP_FUNC_IMPORT eap_status_eget_saved_eap_identity(eap_variable_data_c *const identity)

Parameters

eap_variable_data_c *const identity

handle_eap_identity_request(const eap_type_value_e, const u8_t, const eap_am_network_id_c *const)

EAP_FUNC_IMPORT eap_status_ehandle_eap_identity_request(const eap_type_value_eused_eap_type,
const u8_teap_identifier,
const eap_am_network_id_c *const receive_network_id
)[private]

This function handles EAP-Request/Identity.

Parameters

const eap_type_value_e used_eap_type
const u8_t eap_identifier
const eap_am_network_id_c *const receive_network_id

ignore_notifications()

EAP_FUNC_IMPORT voidignore_notifications()

Prevents all notifications.

init_end_of_session(const abs_eap_state_notification_c *const)

eap_status_e init_end_of_session(const abs_eap_state_notification_c *const state)[private]

Parameters

const abs_eap_state_notification_c *const state

init_retransmission(const eap_am_network_id_c *const, eap_buf_chain_wr_c *const, const u32_t, const u32_t, const eap_code_value_e, const u8_t, const eap_type_value_e)

EAP_FUNC_IMPORT eap_status_einit_retransmission(const eap_am_network_id_c *const send_network_id,
eap_buf_chain_wr_c *const sent_packet,
const u32_theader_offset,
const u32_tdata_length,
const eap_code_value_eeap_code,
const u8_teap_identifier,
const eap_type_value_eeap_type
)[private]

Re-transmission is used to test protocols. This function inits retransmission of sent packet.

Parameters

const eap_am_network_id_c *const send_network_id
eap_buf_chain_wr_c *const sent_packet
const u32_t header_offset
const u32_t data_length
const eap_code_value_e eap_code
const u8_t eap_identifier
const eap_type_value_e eap_type

initialize_asynchronous_init_remove_eap_session(const u32_t)

EAP_FUNC_IMPORT eap_status_einitialize_asynchronous_init_remove_eap_session(const u32_tremove_session_timeout)[private]

Parameters

const u32_t remove_session_timeout

initialize_session_timeout(const u32_t)

EAP_FUNC_IMPORT eap_status_einitialize_session_timeout(const u32_tsession_timeout_ms)[private]

This function cancels previous session timeout and initializes new timeout for the session.

Parameters

const u32_t session_timeout_ms

load_module(const eap_type_value_e, const, abs_eap_base_type_c *const, eap_base_type_c **const, const bool, const eap_am_network_id_c *const)

EAP_FUNC_IMPORT eap_status_eload_module(const eap_type_value_etype,
const eap_type_value_e,
abs_eap_base_type_c *const partner,
eap_base_type_c **const eap_type,
const boolis_client_when_true,
const eap_am_network_id_c *const receive_network_id
)

Parameters

const eap_type_value_e type
const eap_type_value_e
abs_eap_base_type_c *const partner
eap_base_type_c **const eap_type
const bool is_client_when_true
const eap_am_network_id_c *const receive_network_id

load_type(const eap_type_value_e, const eap_type_value_e, const eap_am_network_id_c *const)

EAP_FUNC_IMPORT eap_base_type_c *load_type(const eap_type_value_etype,
const eap_type_value_etunneling_type,
const eap_am_network_id_c *const receive_network_id
)

The load_type() function function indicates the lower level to load new module including EAP-type. The type parameter is the requested EAP-type.

Parameters

const eap_type_value_e typeis the identifier of the required EAP type.
const eap_type_value_e tunneling_type
const eap_am_network_id_c *const receive_network_id

object_decrease_reference_count()

EAP_FUNC_IMPORT u32_tobject_decrease_reference_count()

eap_core_map_c class increases reference count each time reference to stored object is get. Here is always just one state for one session so no references are used.

object_increase_reference_count()

EAP_FUNC_IMPORT voidobject_increase_reference_count()

eap_core_map_c class increases reference count each time reference to stored object is get. Here is always just one state for one session so no references are used.

packet_data_crypto_keys(const eap_am_network_id_c *const, const eap_master_session_key_c *const)

EAP_FUNC_IMPORT eap_status_epacket_data_crypto_keys(const eap_am_network_id_c *const send_network_id,
const eap_master_session_key_c *const master_session_key
)

Parameters

const eap_am_network_id_c *const send_network_id
const eap_master_session_key_c *const master_session_key

packet_process(const eap_am_network_id_c *const, eap_general_header_base_c *const, const u32_t)

EAP_FUNC_IMPORT eap_status_epacket_process(const eap_am_network_id_c *const receive_network_id,
eap_general_header_base_c *const packet_data,
const u32_tpacket_length
)

2003-10-01 draft-ietf-eap-rfc2284bis-06.txt chapter 2.1 Support for sequences: An EAP conversation MAY utilize a sequence of methods. A common example of this is an Identity request followed by a single EAP authentication method such as an MD5-Challenge. However the peer and authenticator MUST utilize only one authentication method (Type 4 or greater) within an EAP conversation, after which the authenticator MUST send a Success or Failure packet. Once a peer has sent a Response of the same Type as the initial Request, an authenticator MUST NOT send a Request of a different Type prior to completion of the final round of a given method (with the exception of a Notification-Request) and MUST NOT send a Request for an additional method of any Type after completion of the initial authentication method; a peer receiving such Requests MUST treat them as invalid, and silently discard them. As a result, Identity Requery is not supported. A peer MUST NOT send a Nak (legacy or expanded) in reply to a Request, after an initial non-Nak Response has been sent. Since spoofed EAP Request packets may be sent by an attacker, an authenticator receiving an unexpected Nak SHOULD discard it and log the event. Multiple authentication methods within an EAP conversation are not supported due to their vulnerability to man-in-the-middle attacks (see Section 7.4) and incompatibility with existing implementations. }

Parameters

const eap_am_network_id_c *const receive_network_id
eap_general_header_base_c *const packet_data
const u32_t packet_length

packet_process_type(const eap_type_value_e, const eap_am_network_id_c *const, eap_general_header_base_c *const, const u32_t)

EAP_FUNC_IMPORT eap_status_epacket_process_type(const eap_type_value_eused_eap_type,
const eap_am_network_id_c *const receive_network_id,
eap_general_header_base_c *const packet_data,
const u32_tpacket_length
)[private]

This function processes EAP-packet with known EAP-type.

Parameters

const eap_type_value_e used_eap_type
const eap_am_network_id_c *const receive_network_id
eap_general_header_base_c *const packet_data
const u32_t packet_length

packet_send(const eap_am_network_id_c *const, eap_buf_chain_wr_c *const, const u32_t, const u32_t, const u32_t)

EAP_FUNC_IMPORT eap_status_epacket_send(const eap_am_network_id_c *const send_network_id,
eap_buf_chain_wr_c *const sent_packet,
const u32_theader_offset,
const u32_tdata_length,
const u32_tbuffer_length
)

Parameters

const eap_am_network_id_c *const send_network_id
eap_buf_chain_wr_c *const sent_packet
const u32_t header_offset
const u32_t data_length
const u32_t buffer_length

read_configure(const eap_configuration_field_c *const, eap_variable_data_c *const)

EAP_FUNC_IMPORT eap_status_eread_configure(const eap_configuration_field_c *const field,
eap_variable_data_c *const data
)[virtual]

Parameters

const eap_configuration_field_c *const field
eap_variable_data_c *const data

resend_packet(const eap_am_network_id_c *const, eap_buf_chain_wr_c *const, const u32_t, const u32_t, const u32_t, const u32_t)

EAP_FUNC_IMPORT eap_status_eresend_packet(const eap_am_network_id_c *const send_network_id,
eap_buf_chain_wr_c *const sent_packet,
const u32_theader_offset,
const u32_tdata_length,
const u32_tbuffer_free,
const u32_tretransmission_counter
)[private]

Re-transmission is used to test protocols. This function resends the packet.

Parameters

const eap_am_network_id_c *const send_network_id
eap_buf_chain_wr_c *const sent_packet
const u32_t header_offset
const u32_t data_length
const u32_t buffer_free
const u32_t retransmission_counter

reset()

EAP_FUNC_IMPORT eap_status_ereset()

This function must reset the state of object to same as state was after the configure() function call. If object reset succeeds this function must return eap_status_ok. If object reset fails this function must return corresponding error status.

reset_operation(eap_base_type_c *const, abs_eap_am_tools_c *const)

EAP_FUNC_IMPORT eap_status_ereset_operation(eap_base_type_c *const handler,
abs_eap_am_tools_c *const m_am_tools
)[private, static]

This function calls reset() for one eap_base_type_c object.

Parameters

eap_base_type_c *const handler
abs_eap_am_tools_c *const m_am_tools

restart_authentication(const eap_am_network_id_c *const, const bool)

EAP_FUNC_IMPORT eap_status_erestart_authentication(const eap_am_network_id_c *const send_network_id,
const boolis_client_when_true
)

Parameters

const eap_am_network_id_c *const send_network_id
const bool is_client_when_true

send_eap_identity_response(const eap_am_network_id_c *const, const eap_variable_data_c *const, const u8_t)

EAP_FUNC_IMPORT eap_status_esend_eap_identity_response(const eap_am_network_id_c *const send_network_id,
const eap_variable_data_c *const identity,
const u8_teap_identifier
)[private]

This function sends EAP-Response/Identity.

Parameters

const eap_am_network_id_c *const send_network_id
const eap_variable_data_c *const identity
const u8_t eap_identifier

send_eap_nak_response(const eap_am_network_id_c *const, const u8_t, const eap_array_c< eap_type_value_e > *const)

EAP_FUNC_IMPORT eap_status_esend_eap_nak_response(const eap_am_network_id_c *const receive_network_id,
const u8_teap_identifier,
const eap_array_c< eap_type_value_e > *const eap_type_list
)

The EAP Core calls the send_eap_nak_response() function when EAP-authentication with requested EAP type is not possible.

Parameters

const eap_am_network_id_c *const receive_network_idincludes the addresses (network identity) and packet type.
const u8_t eap_identifieris the EAP-Identifier to be used with EAP-Nak message.
const eap_array_c< eap_type_value_e > *const eap_type_list

send_eap_notification_response(const eap_am_network_id_c *const, const u8_t)

EAP_FUNC_IMPORT eap_status_esend_eap_notification_response(const eap_am_network_id_c *const send_network_id,
const u8_teap_identifier
)[private]

This function sends EAP-Response/Notification.

Parameters

const eap_am_network_id_c *const send_network_id
const u8_t eap_identifier

set_authentication_role(const bool)

EAP_FUNC_IMPORT eap_status_eset_authentication_role(const boolwhen_true_set_client)

Parameters

const bool when_true_set_client

set_eap_failure_timeout()

EAP_FUNC_IMPORT eap_status_eset_eap_failure_timeout()[private]

This function initializes timeout for received EAP-Failure.

set_eap_identity_routing_info_and_nai_decoration(eap_variable_data_c *const)

eap_status_e set_eap_identity_routing_info_and_nai_decoration(eap_variable_data_c *const identity)[private]

Parameters

eap_variable_data_c *const identity

set_is_valid()

EAP_FUNC_IMPORT voidset_is_valid()

set_marked_removed()

EAP_FUNC_IMPORT voidset_marked_removed()

Marks this session removed. Session is removed later if it is not reused.

set_partner(abs_eap_core_c *const)

EAP_FUNC_IMPORT voidset_partner(abs_eap_core_c *const partner)

The set_partner() function sets pointer to partner class.

Parameters

abs_eap_core_c *const partner

set_session_timeout(const u32_t)

EAP_FUNC_IMPORT eap_status_eset_session_timeout(const u32_tsession_timeout_ms)

Parameters

const u32_t session_timeout_ms

set_timer(abs_eap_base_timer_c *const, const u32_t, void *const, const u32_t)

EAP_FUNC_IMPORT eap_status_eset_timer(abs_eap_base_timer_c *const p_initializer,
const u32_tp_id,
void *const p_data,
const u32_tp_time_ms
)

Parameters

abs_eap_base_timer_c *const p_initializer
const u32_t p_id
void *const p_data
const u32_t p_time_ms

shutdown()

EAP_FUNC_IMPORT eap_status_eshutdown()

shutdown_operation(eap_base_type_c *const, abs_eap_am_tools_c *const)

EAP_FUNC_IMPORT eap_status_eshutdown_operation(eap_base_type_c *const value,
abs_eap_am_tools_c *const m_am_tools
)[private, static]

This function calls shutdown() for one eap_base_type_c object.

Parameters

eap_base_type_c *const value
abs_eap_am_tools_c *const m_am_tools

state_notification(const abs_eap_state_notification_c *const)

EAP_FUNC_IMPORT voidstate_notification(const abs_eap_state_notification_c *const state)

Parameters

const abs_eap_state_notification_c *const state

timer_delete_data(const u32_t, void *)

EAP_FUNC_IMPORT eap_status_etimer_delete_data(const u32_tid,
void *data
)

Parameters

const u32_t id
void * data

timer_expired(const u32_t, void *)

EAP_FUNC_IMPORT eap_status_etimer_expired(const u32_tid,
void *data
)

Parameters

const u32_t id
void * data

trace_eap_packet(eap_const_string, const eap_header_wr_c *const)

EAP_FUNC_IMPORT voidtrace_eap_packet(eap_const_stringprefix,
const eap_header_wr_c *const eap_header
)

Parameters

eap_const_string prefix
const eap_header_wr_c *const eap_header

unload_module(const eap_type_value_e)

EAP_FUNC_IMPORT eap_status_eunload_module(const eap_type_value_etype)

Parameters

const eap_type_value_e type

unset_marked_removed()

EAP_FUNC_IMPORT voidunset_marked_removed()

Marks this session not removed. Session is not removed it is reused.

write_configure(const eap_configuration_field_c *const, eap_variable_data_c *const)

EAP_FUNC_IMPORT eap_status_ewrite_configure(const eap_configuration_field_c *const field,
eap_variable_data_c *const data
)[virtual]

Parameters

const eap_configuration_field_c *const field
eap_variable_data_c *const data

Member Data Documentation

u32_t m_MTU

u32_t m_MTU[private]

abs_eap_am_tools_c *const m_am_tools

abs_eap_am_tools_c *constm_am_tools[private]

bool m_client_restart_authentication_initiated

boolm_client_restart_authentication_initiated[private]

eap_type_value_e m_current_eap_type

eap_type_value_e m_current_eap_type[private]

This stores the current EAP-type. When requested, we send our ID using our default EAP-type. This is our best quess of other peer's EAP-type. Other peer will sent the real EAP-type later and we can NAK it then and send our own EAP-type. This is due the limitations of EAP-protocol.

eap_type_value_e m_default_eap_type

eap_type_value_e m_default_eap_type[private]

u32_t m_eap_core_failure_received_timeout

u32_t m_eap_core_failure_received_timeout[private]

u32_t m_eap_header_offset

u32_t m_eap_header_offset[private]

eap_variable_data_c m_eap_identity

eap_variable_data_c m_eap_identity[private]

This is the queried EAP-identity. This is saved because other EAP-types may be load afterwards and they may query EAP-identity.

u8_t m_eap_identity_request_identifier_client

u8_t m_eap_identity_request_identifier_client[private]

Latest received EAP-identifier. Used only for EAP-Request/Identity handling in client. Ensures that the EAP-Response/Identity is sent with the latest EAP-identifier.

bool m_eap_identity_response_accepted

boolm_eap_identity_response_accepted[private]

This flag prevents server receiving of multiple EAP-Response/Identity message. This is set true after the server accepts EAP-Response/Identity message.

bool m_eap_type_response_sent

boolm_eap_type_response_sent[private]

Server received EAP-Response from client. Server must not sent any other EAP-type. Server could send EAP-Failure or EAP-Success. Client sent a response. Client must not accept any other EAP-type.

bool m_ignore_eap_failure

boolm_ignore_eap_failure[private]

bool m_ignore_notifications

boolm_ignore_notifications[private]

bool m_is_client

boolm_is_client[private]

This indicates whether this object is client (true) or server (false). In terms of EAP-protocol whether this network entity is EAP-supplicant (true) or EAP-authenticator (false).

bool m_is_client_role

boolm_is_client_role[private]

This indicates whether the authentication role of this object is client (true) or server (false). In terms of EAP-protocol whether this network entitys authentication role is EAP-supplicant (true) or EAP-authenticator (false). NOTE the LEAP type changes authentication role during the authentication session.

bool m_is_tunneled_eap

boolm_is_tunneled_eap[private]

Tells whether this is tunneled EAP-session. For example inside PEAP or TTLS tunnel. This causes some changes to timeouts.

bool m_is_valid

boolm_is_valid[private]

bool m_marked_removed

boolm_marked_removed[private]

This flag indicates that this object is marked to removed asynchronously. The very same object could be taken use before the removing timer elapses.

abs_eap_core_c * m_partner

abs_eap_core_c *m_partner[private]

This is back pointer to object which created this object. Packets are sent to the partner.

eap_am_network_id_c m_receive_network_id

eap_am_network_id_c m_receive_network_id[private]

u32_t m_remove_session_timeout

u32_t m_remove_session_timeout[private]

eap_core_retransmission_c * m_retransmission

eap_core_retransmission_c *m_retransmission[private]

Re-transmission is used to test protocols. This stores the information to resent a message. This is used for testing purposes.

u32_t m_retransmission_counter

u32_t m_retransmission_counter[private]

Re-transmission is used to test protocols. This is the maximum count of retransmission of one message. This is used for testing purposes.

u32_t m_retransmission_time

u32_t m_retransmission_time[private]

Re-transmission is used to test protocols. This is the time after resent a message. This is used for testing purposes.

u32_t m_session_timeout

u32_t m_session_timeout[private]

This is the maximum time authentication could succeed. Authentication is terminated after this time elapses. The EAP-type could change the timeout by calling set_session_timeout() function.

bool m_shutdown_was_called

boolm_shutdown_was_called[private]

u32_t m_trailer_length

u32_t m_trailer_length[private]

eap_core_map_c< eap_base_type_c, abs_eap_core_map_c, eap_variable_data_c > m_type_map

eap_core_map_c< eap_base_type_c, abs_eap_core_map_c, eap_variable_data_c >m_type_map[private]

bool m_use_eap_expanded_type

boolm_use_eap_expanded_type[private]