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 |