eapol/eapol_framework/eapol_common/include/eapol_wlan_authentication.h
branchRCL_3
changeset 45 bad0cc58d154
parent 2 1c7bc153c08e
child 46 c74b3d9f6b9e
child 49 43351a4f2da3
equal deleted inserted replaced
43:30e048a7b597 45:bad0cc58d154
    14 * Description:  EAP and WLAN authentication protocols.
    14 * Description:  EAP and WLAN authentication protocols.
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 /*
    18 /*
    19 * %version: 6.1.2 %
    19 * %version: 18 %
    20 */
    20 */
    21 
    21 
    22 #if !defined(_EAPOL_WLAN_AUTHENTICATION_H_)
    22 #if !defined(_EAPOL_WLAN_AUTHENTICATION_H_)
    23 #define _EAPOL_WLAN_AUTHENTICATION_H_
    23 #define _EAPOL_WLAN_AUTHENTICATION_H_
    24 
    24 
    30 #include "eapol_key_types.h"
    30 #include "eapol_key_types.h"
    31 #include "eap_type_selection.h"
    31 #include "eap_type_selection.h"
    32 #include "eap_array.h"
    32 #include "eap_array.h"
    33 #include "eapol_key_state.h"
    33 #include "eapol_key_state.h"
    34 #include "eapol_test_stack_if.h"
    34 #include "eapol_test_stack_if.h"
       
    35 #include "eap_database_reference_if.h"
       
    36 #include "abs_eap_configuration_if.h"
    35 
    37 
    36 #if defined(USE_EAP_SIMPLE_CONFIG)
    38 #if defined(USE_EAP_SIMPLE_CONFIG)
    37 #include "abs_eap_configuration_if.h"
    39 #include "abs_eap_configuration_if.h"
    38 #endif // #if defined(USE_EAP_SIMPLE_CONFIG)
    40 #endif // #if defined(USE_EAP_SIMPLE_CONFIG)
    39 
    41 
    49 , public abs_ethernet_core_c
    51 , public abs_ethernet_core_c
    50 , public abs_eap_base_timer_c
    52 , public abs_eap_base_timer_c
    51 #if defined(USE_TEST_EAPOL_WLAN_AUTHENTICATION)
    53 #if defined(USE_TEST_EAPOL_WLAN_AUTHENTICATION)
    52 , public eapol_test_stack_if_c
    54 , public eapol_test_stack_if_c
    53 #endif //#if defined(USE_TEST_EAPOL_WLAN_AUTHENTICATION)
    55 #endif //#if defined(USE_TEST_EAPOL_WLAN_AUTHENTICATION)
       
    56 , public eap_database_reference_if_c
    54 #if defined(USE_EAP_SIMPLE_CONFIG)
    57 #if defined(USE_EAP_SIMPLE_CONFIG)
    55 , public abs_eap_configuration_if_c
    58 , public abs_eap_configuration_if_c
    56 #endif // #if defined(USE_EAP_SIMPLE_CONFIG)
    59 #endif // #if defined(USE_EAP_SIMPLE_CONFIG)
    57 {
    60 {
    58 public:
    61 public:
    59 
    62 
    60 	EAP_FUNC_IMPORT static eapol_wlan_authentication_c * new_eapol_wlan_authentication(
    63 	EAP_FUNC_IMPORT static eapol_wlan_authentication_c * new_eapol_wlan_authentication(
    61 		abs_eap_am_tools_c * const tools,
    64 		abs_eap_am_tools_c * const tools,
    62 		abs_eapol_wlan_authentication_c * const partner,
    65 		abs_eapol_wlan_authentication_c * const partner,
    63 		const bool is_client_when_true,
    66 		const bool is_client_when_true);
    64 		const abs_eapol_wlan_database_reference_if_c * const wlan_database_reference);
       
    65 
    67 
    66 	EAP_FUNC_IMPORT eapol_wlan_authentication_c(
    68 	EAP_FUNC_IMPORT eapol_wlan_authentication_c(
    67 		abs_eap_am_tools_c * const tools,
    69 		abs_eap_am_tools_c * const tools,
    68 		abs_eapol_wlan_authentication_c * const partner,
    70 		abs_eapol_wlan_authentication_c * const partner,
    69 		eapol_am_wlan_authentication_c * const am_wauth, ///< eapol_wlan_authentication_c must always delete the am_wauth object.
    71 		eapol_am_wlan_authentication_c * const am_wauth, ///< eapol_wlan_authentication_c must always delete the am_wauth object.
    95 
    97 
    96 	EAP_FUNC_IMPORT eap_status_e start_authentication(
    98 	EAP_FUNC_IMPORT eap_status_e start_authentication(
    97 		const eap_variable_data_c * const SSID,
    99 		const eap_variable_data_c * const SSID,
    98 		const eapol_key_authentication_type_e selected_eapol_key_authentication_type,
   100 		const eapol_key_authentication_type_e selected_eapol_key_authentication_type,
    99 		const eap_variable_data_c * const wpa_preshared_key,
   101 		const eap_variable_data_c * const wpa_preshared_key,
   100 		const bool WPA_override_enabled
   102 		const bool WPA_override_enabled,
   101 #if defined(USE_EAPOL_KEY_STATE_OPTIMIZED_4_WAY_HANDSHAKE)
   103 		const eap_am_network_id_c * const receive_network_id ///< source includes remote address, destination includes local address.
   102 		,
       
   103 		const eap_am_network_id_c * const receive_network_id ///< source includes remote address, destination includes local address.
       
   104 #endif //#if defined(USE_EAPOL_KEY_STATE_OPTIMIZED_4_WAY_HANDSHAKE)
       
   105 		);
   104 		);
   106 
   105 
   107 	EAP_FUNC_IMPORT eap_status_e complete_association(
   106 	EAP_FUNC_IMPORT eap_status_e complete_association(
   108 		const eapol_wlan_authentication_state_e association_result,
   107 		const eapol_wlan_authentication_state_e association_result,
   109 		const eap_am_network_id_c * const receive_network_id, ///< source includes remote address, destination includes local address.
   108 		const eap_am_network_id_c * const receive_network_id, ///< source includes remote address, destination includes local address.
   160 		);
   159 		);
   161 
   160 
   162 	EAP_FUNC_IMPORT eap_status_e eap_acknowledge(
   161 	EAP_FUNC_IMPORT eap_status_e eap_acknowledge(
   163 		const eap_am_network_id_c * const receive_network_id ///< source includes remote address, destination includes local address.
   162 		const eap_am_network_id_c * const receive_network_id ///< source includes remote address, destination includes local address.
   164 		); 
   163 		); 
       
   164 
       
   165 	EAP_FUNC_IMPORT eap_status_e set_eap_database_reference_values(
       
   166 		const eap_variable_data_c * const reference);
   165 
   167 
   166 	/////////////////////////////////////////
   168 	/////////////////////////////////////////
   167 	/* These are called from ethernet_core */
   169 	/* These are called from ethernet_core */
   168 	
   170 	
   169 	/**
   171 	/**
   289 		const eap_variable_data_c * const new_password,
   291 		const eap_variable_data_c * const new_password,
   290 		const simple_config_Device_Password_ID_e Device_Password_ID,
   292 		const simple_config_Device_Password_ID_e Device_Password_ID,
   291 		const simple_config_payloads_c * const other_configuration);
   293 		const simple_config_payloads_c * const other_configuration);
   292 #endif // #if defined(USE_EAP_SIMPLE_CONFIG)
   294 #endif // #if defined(USE_EAP_SIMPLE_CONFIG)
   293 
   295 
       
   296 	EAP_FUNC_IMPORT eap_status_e complete_get_802_11_authentication_mode(
       
   297 		const eap_status_e completion_status,
       
   298 		const eap_am_network_id_c * const receive_network_id,
       
   299 		const eapol_key_802_11_authentication_mode_e mode);
       
   300 
       
   301 	EAP_FUNC_IMPORT eap_status_e complete_disassociation(
       
   302 		const bool complete_to_lower_layer,
       
   303 		const eap_am_network_id_c * const receive_network_id);
       
   304 
   294 private:
   305 private:
   295 
   306 
   296 	EAP_FUNC_IMPORT eap_status_e eapol_indication(
   307 	eap_status_e eapol_indication(
   297 		const eap_am_network_id_c * const receive_network_id, ///< source includes remote address, destination includes local address.
   308 		const eap_am_network_id_c * const receive_network_id, ///< source includes remote address, destination includes local address.
   298 		const eapol_wlan_authentication_state_e notification);
   309 		const eapol_wlan_authentication_state_e notification);
   299 
   310 
   300 	EAP_FUNC_IMPORT eap_status_e create_upper_stack();
   311 	eap_status_e create_upper_stack();
   301 
   312 
   302 	eap_status_e disassociation_mutex_must_be_reserved(
   313 	eap_status_e disassociation_mutex_must_be_reserved(
       
   314 		const bool complete_to_lower_layer,
       
   315 		const eap_am_network_id_c * const receive_network_id ///< source includes remote address, destination includes local address.
       
   316 		);
       
   317 
       
   318 	eap_status_e internal_disassociation(
       
   319 		const bool complete_to_lower_layer,
   303 		const eap_am_network_id_c * const receive_network_id ///< source includes remote address, destination includes local address.
   320 		const eap_am_network_id_c * const receive_network_id ///< source includes remote address, destination includes local address.
   304 		);
   321 		);
   305 
   322 
   306 	eap_status_e cancel_all_authentication_sessions();
   323 	eap_status_e cancel_all_authentication_sessions();
   307 
   324 
       
   325 	eap_status_e complete_check_pmksa_cache(
       
   326 		EAP_TEMPLATE_CONST eap_array_c<eap_am_network_id_c> * const bssid_sta_receive_network_ids);
       
   327 
       
   328 	eap_status_e cancel_timer_this_ap_failed();
       
   329 
       
   330 	eap_status_e cancel_timer_failed_completely();
       
   331 
       
   332 	eap_status_e cancel_timer_no_response();
       
   333 
       
   334 	eap_status_e cancel_timer_authentication_cancelled();
       
   335 
   308 private:
   336 private:
   309 
       
   310 
       
   311 	eap_status_e cancel_timer_this_ap_failed();
       
   312 
       
   313 	eap_status_e cancel_timer_failed_completely();
       
   314 
       
   315 	eap_status_e cancel_timer_no_response();
       
   316 
       
   317 	eap_status_e cancel_timer_authentication_cancelled();
       
   318 
       
   319 
       
   320 
   337 
   321 	/// Pointer to the lower layer in the stack
   338 	/// Pointer to the lower layer in the stack
   322 	abs_eapol_wlan_authentication_c * m_partner;
   339 	abs_eapol_wlan_authentication_c * m_partner;
   323 
   340 
   324 	/// Pointer to the AM of WAUTH.
   341 	/// Pointer to the AM of WAUTH.
   330 	/// Pointer to the tools class
   347 	/// Pointer to the tools class
   331 	abs_eap_am_tools_c * m_am_tools;
   348 	abs_eap_am_tools_c * m_am_tools;
   332 
   349 
   333 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   350 	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   334 
   351 
   335 	eap_array_c<eap_type_selection_c> m_selected_eap_types;
   352 	//eap_array_c<eap_type_selection_c> m_selected_eap_types;
   336 
   353 
   337 	eap_variable_data_c m_wpa_preshared_key_hash;
   354 	eap_variable_data_c m_wpa_preshared_key_hash;
   338 
   355 
   339 	eapol_key_authentication_type_e m_authentication_type;
   356 	eapol_key_authentication_type_e m_authentication_type;
   340 
   357