14 * Description: CEapVpnInterfaceImplementation |
14 * Description: CEapVpnInterfaceImplementation |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 /* |
18 /* |
19 * %version: 21 % |
19 * %version: 19.1.11 % |
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" |
|
33 #include "eap_am_tools_symbian.h" |
32 #include "eap_am_tools_symbian.h" |
34 #include "EapType.h" |
33 #include "EapType.h" |
35 #include "EapolTimer.h" |
34 #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; |
39 class eap_am_tools_symbian_c; |
40 class eap_am_tools_symbian_c; |
40 class eap_file_config_c; |
41 class eap_file_config_c; |
|
42 class eap_session_core_base_c; |
|
43 class eap_process_tlv_message_data_c; |
41 |
44 |
42 /** |
45 /** |
43 * Class: CEapVpnInterfaceImplementation |
46 * Class: CEapVpnInterfaceImplementation |
44 * |
47 * |
45 * Description: Implements the EAP over IKEv2 adaptation |
48 * Description: Implements the EAP over IKEv2 adaptation |
46 * This is concrete class, instance of which |
49 * This is concrete class, instance of which |
47 * ECOM framework gives to ECOM clients. |
50 * ECOM framework gives to ECOM clients. |
48 */ |
51 */ |
49 class CEapVpnInterfaceImplementation |
52 class CEapVpnInterfaceImplementation |
50 : public CEapVpnInterface |
53 : public CEapVpnInterface |
51 , public abs_eap_core_c |
54 , public abs_eap_session_core_c |
52 , public abs_eap_base_timer_c |
55 , public abs_eap_base_timer_c |
53 { |
56 { |
54 public: |
57 public: |
55 /** |
58 /** |
56 * Function: NewL |
59 * Function: NewL |
318 |
321 |
319 // See abs_eap_base_timer_c::timer_delete_data(). |
322 // See abs_eap_base_timer_c::timer_delete_data(). |
320 eap_status_e timer_delete_data( |
323 eap_status_e timer_delete_data( |
321 const u32_t id, void *data); |
324 const u32_t id, void *data); |
322 |
325 |
|
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 |
323 private: |
355 private: |
324 |
356 |
325 TInt CompleteAssociation(const TInt aResult); |
357 TInt CompleteAssociation(const TInt aResult); |
326 eap_status_e send_eap_identity_request(); |
358 eap_status_e send_eap_identity_request(); |
327 |
359 |
328 eap_status_e create_upper_stack(); |
360 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 ); |
329 |
368 |
330 protected: |
369 protected: |
331 |
370 |
332 /** |
371 /** |
333 * Function: CEapVpnInterfaceImplementation |
372 * Function: CEapVpnInterfaceImplementation |
353 // From eapol_am_core_symbian.h |
392 // From eapol_am_core_symbian.h |
354 |
393 |
355 TBool iQueryIdentity; |
394 TBool iQueryIdentity; |
356 |
395 |
357 /// Pointer to the lower layer in the stack |
396 /// Pointer to the lower layer in the stack |
358 MAbsEapVpnInterface* iCaller; |
397 MAbsEapVpnInterface * iCaller; |
359 |
398 |
360 /// Pointer to the upper layer in the stack |
399 /// Pointer to the upper layer in the stack |
361 eap_core_c* iEapCore; |
400 eap_session_core_base_c * iEapCore; |
362 |
401 |
363 #ifdef USE_EAP_EXPANDED_TYPES |
|
364 |
|
365 eap_type_value_e iRequestedEapType; |
402 eap_type_value_e iRequestedEapType; |
366 |
403 |
367 #else |
|
368 |
|
369 TUint8 iRequestedEapType; |
|
370 |
|
371 #endif //#ifdef USE_EAP_EXPANDED_TYPES |
|
372 |
|
373 /// Pointer to the tools class |
404 /// Pointer to the tools class |
374 eap_am_tools_symbian_c* m_am_tools; |
405 eap_am_tools_symbian_c * m_am_tools; |
375 |
406 |
376 eap_am_network_id_c* m_receive_network_id; |
407 eap_am_network_id_c * m_receive_network_id; |
377 |
408 |
378 eap_variable_data_c * m_trace_log_file_name; |
409 eap_variable_data_c * m_trace_log_file_name; |
379 |
410 |
380 u32_t m_authentication_counter; |
411 u32_t m_authentication_counter; |
381 |
412 |
386 bool m_is_valid; |
417 bool m_is_valid; |
387 |
418 |
388 bool m_is_client; |
419 bool m_is_client; |
389 |
420 |
390 /// Array for storing the loaded EAP types. |
421 /// Array for storing the loaded EAP types. |
391 RPointerArray<CEapType> m_plugin_if_array; |
422 RPointerArray<CEapType> m_eap_if_array; |
392 |
423 |
393 #ifdef USE_EAP_EXPANDED_TYPES |
424 /// Array for storing the loaded EAP types. |
|
425 RPointerArray<CEapTypePlugin> m_eap_plugin_if_array; |
394 |
426 |
395 /// Enabled expanded EAP configuration data from CommsDat |
427 /// Enabled expanded EAP configuration data from CommsDat |
396 // This is for the outer most EAP (not tunneled) |
428 // This is for the outer most EAP (not tunneled) |
397 RExpandedEapTypeArray m_enabled_expanded_eap_array; |
429 RExpandedEapTypeArray m_enabled_expanded_eap_array; |
398 |
430 |
401 RExpandedEapTypeArray m_disabled_expanded_eap_array; |
433 RExpandedEapTypeArray m_disabled_expanded_eap_array; |
402 |
434 |
403 /// Array which corresponds with m_plugin_if_array and indicates the types of the loaded EAP types. |
435 /// Array which corresponds with m_plugin_if_array and indicates the types of the loaded EAP types. |
404 eap_array_c<eap_type_value_e> * m_eap_type_array; |
436 eap_array_c<eap_type_value_e> * m_eap_type_array; |
405 |
437 |
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 |
|
416 /// Indicates the bearer type |
438 /// Indicates the bearer type |
417 TIndexType m_index_type; |
439 TIndexType m_index_type; |
418 |
440 |
419 /// Indicates the service index in CommDb |
441 /// Indicates the service index in CommDb |
420 TInt m_index; |
442 TInt m_index; |
421 |
443 |
422 eap_file_config_c* m_fileconfig; |
444 eap_file_config_c * m_fileconfig; |
423 |
445 |
424 u32_t m_packet_index; |
446 u32_t m_packet_index; |
425 |
447 |
426 bool m_block_packet_sends_and_notifications; |
448 bool m_block_packet_sends_and_notifications; |
427 |
449 |
428 bool m_stack_marked_to_be_deleted; |
450 bool m_stack_marked_to_be_deleted; |
429 |
451 |
430 HBufC8* iManualUsername; |
452 HBufC8 * iManualUsername; |
431 HBufC8* iManualRealm; |
453 HBufC8 * iManualRealm; |
432 HBufC8* iRealmPrefix; |
454 HBufC8 * iRealmPrefix; |
433 TBool iHideInitialIdentity; |
455 TBool iHideInitialIdentity; |
434 }; |
456 }; |
435 |
457 |
436 #endif //#ifndef __EAPPLUGIN_H__ |
458 #endif //#ifndef __EAPPLUGIN_H__ |
437 |
459 |