eapol/eapol_framework/eapol_symbian/am/eapvpnif/inc/eap_vpn_if_implementation.h
branchRCL_3
changeset 46 c74b3d9f6b9e
parent 45 bad0cc58d154
equal deleted inserted replaced
45:bad0cc58d154 46:c74b3d9f6b9e
    14 * Description:  CEapVpnInterfaceImplementation
    14 * Description:  CEapVpnInterfaceImplementation
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 /*
    18 /*
    19 * %version: 19.1.11 %
    19 * %version: 21 %
    20 */
    20 */
    21 
    21 
    22 #ifndef __EAPPLUGIN_H__
    22 #ifndef __EAPPLUGIN_H__
    23 #define __EAPPLUGIN_H__
    23 #define __EAPPLUGIN_H__
    24 
    24 
    25 // INCLUDES
    25 // INCLUDES
    26 #include <d32dbms.h>
    26 #include <d32dbms.h>
    27 
    27 
    28 #include <wdbifwlansettings.h>
    28 #include <wdbifwlansettings.h>
    29 #include "eap_vpn_if.h"
    29 #include "eap_vpn_if.h"
    30 //#include "abs_eap_core.h"
    30 #include "abs_eap_core.h"
    31 #include "eapol_session_key.h"
    31 #include "eapol_session_key.h"
       
    32 #include "eap_core.h"
    32 #include "eap_am_tools_symbian.h"
    33 #include "eap_am_tools_symbian.h"
    33 #include "EapType.h"
    34 #include "EapType.h"
    34 #include "EapolTimer.h"
    35 #include "EapolTimer.h"
    35 #include "abs_eap_session_core.h"
       
    36 
    36 
    37 // FORWARD DECLARATIONS
    37 // FORWARD DECLARATIONS
    38 class CEapType;
    38 class CEapType;
    39 class CEapTypePlugin;
       
    40 class eap_am_tools_symbian_c;
    39 class eap_am_tools_symbian_c;
    41 class eap_file_config_c;
    40 class eap_file_config_c;
    42 class eap_session_core_base_c;
       
    43 class eap_process_tlv_message_data_c;
       
    44 
    41 
    45 /**
    42 /**
    46  * Class:       CEapVpnInterfaceImplementation
    43  * Class:       CEapVpnInterfaceImplementation
    47  *
    44  *
    48  * Description: Implements the EAP over IKEv2 adaptation
    45  * Description: Implements the EAP over IKEv2 adaptation
    49  *              This is concrete class, instance of which
    46  *              This is concrete class, instance of which
    50  *              ECOM framework gives to ECOM clients.
    47  *              ECOM framework gives to ECOM clients.
    51  */
    48  */
    52 class CEapVpnInterfaceImplementation
    49 class CEapVpnInterfaceImplementation
    53 	: public CEapVpnInterface
    50 	: public CEapVpnInterface
    54 	, public abs_eap_session_core_c
    51 	, public abs_eap_core_c
    55 	, public abs_eap_base_timer_c
    52 	, public abs_eap_base_timer_c
    56 {
    53 {
    57 public:
    54 public:
    58 	/**
    55 	/**
    59      * Function:    NewL
    56      * Function:    NewL
   321 
   318 
   322     // See abs_eap_base_timer_c::timer_delete_data().
   319     // See abs_eap_base_timer_c::timer_delete_data().
   323     eap_status_e timer_delete_data(
   320     eap_status_e timer_delete_data(
   324         const u32_t id, void *data);
   321         const u32_t id, void *data);
   325 
   322 
   326 	eap_status_e complete_get_802_11_authentication_mode(
       
   327 		const eap_status_e completion_status,
       
   328 		const eap_am_network_id_c * const receive_network_id,
       
   329 		const eapol_key_802_11_authentication_mode_e mode);
       
   330 
       
   331 	eap_status_e complete_remove_eap_session(
       
   332 		const bool complete_to_lower_layer,
       
   333 		const eap_am_network_id_c * const receive_network_id);
       
   334 
       
   335 #if defined(USE_EAP_SIMPLE_CONFIG)
       
   336 	/**
       
   337 	 * This function tells AM to save SIMPLE_CONFIG configuration parameters.
       
   338 	 * This is always syncronous call.
       
   339 	 */
       
   340 	eap_status_e save_simple_config_session(
       
   341 		const simple_config_state_e state,
       
   342 		EAP_TEMPLATE_CONST eap_array_c<simple_config_credential_c> * const credential_array,
       
   343 		const eap_variable_data_c * const new_password,
       
   344 		const simple_config_Device_Password_ID_e Device_Password_ID,
       
   345 		const simple_config_payloads_c * const other_configuration
       
   346 		);
       
   347 #endif // #if defined(USE_EAP_SIMPLE_CONFIG)
       
   348 
       
   349 	static eap_session_core_base_c * new_eap_core_client_message_if_c(
       
   350 		abs_eap_am_tools_c * const tools,
       
   351 		abs_eap_session_core_c * const partner,
       
   352 		const bool is_client_when_true,
       
   353 		const u32_t MTU);
       
   354 
       
   355 private:
   323 private:
   356 
   324 
   357     TInt CompleteAssociation(const TInt aResult);
   325     TInt CompleteAssociation(const TInt aResult);
   358     eap_status_e send_eap_identity_request();
   326     eap_status_e send_eap_identity_request();
   359     
   327     
   360     eap_status_e create_upper_stack();
   328     eap_status_e create_upper_stack();
   361 
       
   362 	eap_status_e add_configuration_data(
       
   363 		eap_process_tlv_message_data_c * const message,
       
   364 		const eap_configuration_field_c * field,
       
   365 		const eap_configure_type_e type,
       
   366 		const eap_variable_data_c * const value_data
       
   367 		);
       
   368 
   329 
   369 protected:
   330 protected:
   370 
   331 
   371 	/**
   332 	/**
   372      * Function:   CEapVpnInterfaceImplementation
   333      * Function:   CEapVpnInterfaceImplementation
   392     // From eapol_am_core_symbian.h
   353     // From eapol_am_core_symbian.h
   393 
   354 
   394     TBool iQueryIdentity;
   355     TBool iQueryIdentity;
   395 
   356 
   396     /// Pointer to the lower layer in the stack
   357     /// Pointer to the lower layer in the stack
   397     MAbsEapVpnInterface * iCaller;
   358     MAbsEapVpnInterface* iCaller;
   398 
   359 
   399     /// Pointer to the upper layer in the stack
   360     /// Pointer to the upper layer in the stack
   400     eap_session_core_base_c * iEapCore;
   361     eap_core_c* iEapCore;
   401 
   362 
       
   363 #ifdef USE_EAP_EXPANDED_TYPES
       
   364     
   402     eap_type_value_e iRequestedEapType;
   365     eap_type_value_e iRequestedEapType;
   403 
   366 
       
   367 #else
       
   368     
       
   369     TUint8 iRequestedEapType;
       
   370 
       
   371 #endif //#ifdef USE_EAP_EXPANDED_TYPES
       
   372     
   404     /// Pointer to the tools class
   373     /// Pointer to the tools class
   405     eap_am_tools_symbian_c * m_am_tools;
   374     eap_am_tools_symbian_c* m_am_tools;
   406 
   375 
   407     eap_am_network_id_c * m_receive_network_id;
   376     eap_am_network_id_c* m_receive_network_id;
   408 
   377 
   409 	eap_variable_data_c * m_trace_log_file_name;
   378 	eap_variable_data_c * m_trace_log_file_name;
   410     
   379     
   411     u32_t m_authentication_counter;
   380     u32_t m_authentication_counter;
   412 
   381 
   417     bool m_is_valid;
   386     bool m_is_valid;
   418 
   387 
   419     bool m_is_client;	
   388     bool m_is_client;	
   420 
   389 
   421     /// Array for storing the loaded EAP types.
   390     /// Array for storing the loaded EAP types.
   422     RPointerArray<CEapType> m_eap_if_array;
   391     RPointerArray<CEapType> m_plugin_if_array;
   423 
   392 
   424     /// Array for storing the loaded EAP types.
   393 #ifdef USE_EAP_EXPANDED_TYPES
   425     RPointerArray<CEapTypePlugin> m_eap_plugin_if_array;
       
   426 
   394 
   427 	/// Enabled expanded EAP configuration data from CommsDat
   395 	/// Enabled expanded EAP configuration data from CommsDat
   428 	// This is for the outer most EAP (not tunneled)
   396 	// This is for the outer most EAP (not tunneled)
   429 	RExpandedEapTypeArray m_enabled_expanded_eap_array;
   397 	RExpandedEapTypeArray m_enabled_expanded_eap_array;
   430 
   398 
   433 	RExpandedEapTypeArray m_disabled_expanded_eap_array;
   401 	RExpandedEapTypeArray m_disabled_expanded_eap_array;
   434 	
   402 	
   435 	/// Array which corresponds with m_plugin_if_array and indicates the types of the loaded EAP types.	
   403 	/// Array which corresponds with m_plugin_if_array and indicates the types of the loaded EAP types.	
   436 	eap_array_c<eap_type_value_e> * m_eap_type_array;
   404 	eap_array_c<eap_type_value_e> * m_eap_type_array;
   437 
   405 
       
   406 #else
       
   407 
       
   408     /// EAP configuration data from CommDb
       
   409     TEapArray m_iap_eap_array;
       
   410 
       
   411     /// Array which corresponds with m_plugin_if_array and indicates the types of the loaded EAP types.
       
   412     RArray<TUint8> m_eap_type_array;
       
   413 
       
   414 #endif //#ifdef USE_EAP_EXPANDED_TYPES
       
   415 
   438     /// Indicates the bearer type
   416     /// Indicates the bearer type
   439     TIndexType m_index_type;
   417     TIndexType m_index_type;
   440 
   418 
   441     /// Indicates the service index in CommDb
   419     /// Indicates the service index in CommDb
   442     TInt m_index;
   420     TInt m_index;
   443 
   421 
   444     eap_file_config_c * m_fileconfig;
   422     eap_file_config_c* m_fileconfig;
   445 
   423 
   446     u32_t m_packet_index;
   424     u32_t m_packet_index;
   447 
   425 
   448     bool m_block_packet_sends_and_notifications;
   426     bool m_block_packet_sends_and_notifications;
   449 
   427 
   450     bool m_stack_marked_to_be_deleted;
   428     bool m_stack_marked_to_be_deleted;
   451 
   429 
   452     HBufC8 * iManualUsername;
   430     HBufC8* iManualUsername;
   453     HBufC8 * iManualRealm;
   431     HBufC8* iManualRealm;
   454     HBufC8 * iRealmPrefix;
   432     HBufC8* iRealmPrefix;
   455     TBool iHideInitialIdentity;    
   433     TBool iHideInitialIdentity;    
   456 };
   434 };
   457 
   435 
   458 #endif //#ifndef __EAPPLUGIN_H__
   436 #endif //#ifndef __EAPPLUGIN_H__
   459 
   437