--- a/eapol/eapol_framework/eapol_common/include/eapol_core.h Thu Aug 19 09:58:27 2010 +0300
+++ b/eapol/eapol_framework/eapol_common/include/eapol_core.h Tue Aug 31 15:16:37 2010 +0300
@@ -16,7 +16,7 @@
*/
/*
-* %version: 28.1.3 %
+* %version: 47 %
*/
#if !defined(_EAPOL_CORE_H_)
@@ -24,22 +24,19 @@
#include "eap_tools.h"
#include "eap_am_export.h"
-#include "abs_eap_core.h"
+#include "abs_eap_session_core.h"
#include "eap_core.h"
#include "abs_eapol_core.h"
#include "eap_base_type.h"
#include "eap_variable_data.h"
#include "abs_eap_am_mutex.h"
-#if !defined(NO_EAP_SESSION_CORE)
- #include "eap_session_core.h"
-#endif
+#include "eap_session_core_base.h"
#include "abs_eap_stack_interface.h"
#include "abs_eapol_key_state.h"
#include "eapol_rsna_key_header.h"
-#if defined(USE_EAPOL_KEY_STATE)
- #include "eapol_key_state.h"
- #include "abs_eapol_key_state_map.h"
-#endif //#if defined(USE_EAPOL_KEY_STATE)
+#include "eapol_key_state.h"
+#include "abs_eapol_key_state_map.h"
+#include "eap_database_reference_if.h"
/** @file */
@@ -74,13 +71,12 @@
/// A eapol_core_c class implements the basic functionality of EAPOL.
class EAP_EXPORT eapol_core_c
-: public abs_eap_core_c
+: public abs_eap_session_core_c
, public abs_eap_base_timer_c
, public abs_eap_stack_interface_c
-#if defined(USE_EAPOL_KEY_STATE)
, public abs_eapol_key_state_c
, public abs_eapol_key_state_map_c
-#endif //#if defined(USE_EAPOL_KEY_STATE)
+, public eap_database_reference_if_c
{
private:
@@ -92,17 +88,11 @@
/// This is pointer to the eap_core object. The eapol_core object gives
/// the received packets to the eap_core object. The eap_core object sends
/// packets through the eapol_core object.
-#if !defined(NO_EAP_SESSION_CORE)
- eap_session_core_c * const m_eap_core;
-#else
- eap_core_c * const m_eap_core;
-#endif
+ eap_session_core_base_c * m_eap_core;
-#if defined(USE_EAPOL_KEY_STATE)
/// This stores eapol_key_state_c objects using eap_variable_data selector.
/// Selector data includes send addresses of the Ethernet packet.
eap_core_map_c<eapol_key_state_c, abs_eapol_key_state_map_c, eap_variable_data_c> m_eapol_key_state_map;
-#endif //#if defined(USE_EAPOL_KEY_STATE)
/// This is pointer to the tools class.
abs_eap_am_tools_c * const m_am_tools;
@@ -141,13 +131,10 @@
bool m_block_state_notifications;
-#if defined(USE_EAPOL_KEY_STATE)
/// This flag will skip start of 4-Way Handshake with true value.
bool m_skip_start_4_way_handshake;
-#endif //#if defined(USE_EAPOL_KEY_STATE)
-#if defined(USE_EAPOL_KEY_STATE)
EAP_FUNC_IMPORT eap_status_e indicate_eapol_key_state_started_eap_authentication(
const eap_am_network_id_c * const send_network_id);
@@ -155,7 +142,8 @@
const eap_am_network_id_c * const send_network_id);
EAP_FUNC_IMPORT eap_status_e remove_eapol_key_state(
- const eap_am_network_id_c * const send_network_id);
+ const eap_am_network_id_c * const send_network_id,
+ const bool force_remove);
eap_status_e copy_eapol_key_state(
const eap_am_network_id_c * const old_receive_network_id, ///< source includes remote address, destination includes local address.
@@ -167,7 +155,6 @@
const eap_am_network_id_c * const old_receive_network_id, ///< source includes remote address, destination includes local address.
const eap_am_network_id_c * const new_receive_network_id ///< source includes remote address, destination includes local address.
);
-#endif //#if defined(USE_EAPOL_KEY_STATE)
//--------------------------------------------------
protected:
@@ -456,24 +443,17 @@
const u32_t p_id);
//
- EAP_FUNC_IMPORT eap_status_e cancel_all_timers();
-
- //
EAP_FUNC_IMPORT eap_status_e check_is_valid_eap_type(const eap_type_value_e eap_type);
// See abs_eap_core_c::get_eap_type_list().
EAP_FUNC_IMPORT eap_status_e get_eap_type_list(
eap_array_c<eap_type_value_e> * const eap_type_list);
-#if defined(USE_EAPOL_KEY_STATE)
// See abs_eapol_key_state_c::get_and_increment_global_key_counter().
EAP_FUNC_IMPORT eap_status_e get_and_increment_global_key_counter(
eap_variable_data_c * const key_counter);
-#endif //#if defined(USE_EAPOL_KEY_STATE)
-#if defined(USE_EAPOL_KEY_STATE) && defined(USE_EAPOL_KEY_STATE_OPTIMIZED_4_WAY_HANDSHAKE)
-
/**
* Function creates a state for later use. This is for optimazing 4-Way Handshake.
* @param receive_network_id carries the MAC addresses.
@@ -486,11 +466,6 @@
const eapol_key_authentication_type_e authentication_type
);
-#endif //#if defined(USE_EAPOL_KEY_STATE) && defined(USE_EAPOL_KEY_STATE_OPTIMIZED_4_WAY_HANDSHAKE)
-
-
-#if defined(USE_EAPOL_KEY_STATE)
-
/**
* This function need to be called when client STA (re)associates to AP.
* @param receive_network_id carries the MAC addresses.
@@ -510,35 +485,25 @@
const eapol_RSNA_key_header_c::eapol_RSNA_cipher_e eapol_group_cipher,
const eap_variable_data_c * const pre_shared_key);
-#endif //#if defined(USE_EAPOL_KEY_STATE)
-
-
-#if defined(USE_EAPOL_KEY_STATE)
/**
* This function need to be called when client STA disassociates from AP.
* @param receive_network_id carries the MAC addresses.
* MAC address of Authenticator should be in source address. MAC address of Supplicant should be in destination address.
*/
EAP_FUNC_IMPORT eap_status_e disassociation(
+ const bool complete_to_lower_layer,
const eap_am_network_id_c * const receive_network_id);
-#endif //#if defined(USE_EAPOL_KEY_STATE)
-#if defined(USE_EAPOL_KEY_STATE)
EAP_FUNC_IMPORT eap_status_e asynchronous_init_remove_eapol_key_state(
const eap_am_network_id_c * const send_netword_id);
-#endif //#if defined(USE_EAPOL_KEY_STATE)
-#if defined(USE_EAPOL_KEY_STATE)
EAP_FUNC_IMPORT static eap_status_e shutdown_operation(
eapol_key_state_c * const handler,
abs_eap_am_tools_c * const m_am_tools);
-#endif //#if defined(USE_EAPOL_KEY_STATE)
-#if defined(USE_EAPOL_KEY_STATE)
EAP_FUNC_IMPORT static eap_status_e cancel_authentication_session(
eapol_key_state_c * const handler,
abs_eap_am_tools_c * const m_am_tools);
-#endif //#if defined(USE_EAPOL_KEY_STATE)
/// @see abs_eap_core_c::add_rogue_ap().
EAP_FUNC_IMPORT eap_status_e add_rogue_ap(eap_array_c<eap_rogue_ap_entry_c> & rogue_ap_list);
@@ -552,25 +517,37 @@
EAP_FUNC_IMPORT eap_status_e set_session_timeout(
const u32_t session_timeout_ms);
+#if defined(USE_EAP_SIMPLE_CONFIG)
+
+ EAP_FUNC_IMPORT eap_status_e save_simple_config_session(
+ const simple_config_state_e state,
+ EAP_TEMPLATE_CONST eap_array_c<simple_config_credential_c> * const credential_array,
+ const eap_variable_data_c * const new_password,
+ const simple_config_Device_Password_ID_e Device_Password_ID,
+ const simple_config_payloads_c * const other_configuration);
+
+#endif // #if defined(USE_EAP_SIMPLE_CONFIG)
+
+ EAP_FUNC_IMPORT eap_status_e set_eap_database_reference_values(
+ const eap_variable_data_c * const reference);
+
+ EAP_FUNC_IMPORT eap_status_e get_802_11_authentication_mode(
+ const eap_am_network_id_c * const receive_network_id,
+ const eapol_key_authentication_type_e authentication_type,
+ const eap_variable_data_c * const SSID,
+ const eap_variable_data_c * const preshared_key);
+
+ EAP_FUNC_IMPORT eap_status_e complete_get_802_11_authentication_mode(
+ const eap_status_e completion_status,
+ const eap_am_network_id_c * const receive_network_id,
+ const eapol_key_802_11_authentication_mode_e mode);
+
+ EAP_FUNC_IMPORT eap_status_e complete_remove_eap_session(
+ const bool complete_to_lower_layer,
+ const eap_am_network_id_c * const receive_network_id);
+
private:
-
-#if !defined(USE_EAPOL_KEY_STATE)
- /**
- * The handle_RC4_key_descriptor() function parses the EAPOL-Key frame
- * that includes RC4 Key Descriptor.
- * This function retrieves the traffic encryption key from it. It forwards the key
- * to lower layers. The format of EAPOL-Key frame is described in
- * draft-congdon-radius-8021x-23.txt (RFC ????)
- * @param eapol is the received packet
- * @param packet_length is the length of the packet
- */
- eap_status_e handle_RC4_key_descriptor(
- const eap_am_network_id_c * const receive_network_id,
- eapol_RC4_key_header_c * const eapol,
- const u32_t packet_length);
-#endif //#if !defined(USE_EAPOL_KEY_STATE)
-
//--------------------------------------------------
}; // class eapol_core_c