eapol/eapol_framework/eapol_symbian/eap_server/include/eap_am_stack_symbian.h
author hgs
Mon, 24 May 2010 20:32:47 +0300
changeset 26 9abfd4f00d37
child 49 43351a4f2da3
permissions -rw-r--r--
201021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2001-2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  EAP and WLAN authentication protocols.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
/*
hgs
parents:
diff changeset
    19
* %version: 27 %
hgs
parents:
diff changeset
    20
*/
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#ifndef EAP_AM_STACK_SYMBIAN_H_
hgs
parents:
diff changeset
    23
#define EAP_AM_STACK_SYMBIAN_H_
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include "eap_am_stack.h"
hgs
parents:
diff changeset
    26
#include "abs_eap_am_stack.h"
hgs
parents:
diff changeset
    27
#include "abs_eap_am_tools.h"
hgs
parents:
diff changeset
    28
#include "eap_automatic_variable.h"
hgs
parents:
diff changeset
    29
#include <e32base.h>
hgs
parents:
diff changeset
    30
#include <e32std.h>
hgs
parents:
diff changeset
    31
#include <d32dbms.h>
hgs
parents:
diff changeset
    32
#include "eap_config.h"
hgs
parents:
diff changeset
    33
#include "eap_file_config.h"
hgs
parents:
diff changeset
    34
#include "eap_am_file_input_symbian.h"
hgs
parents:
diff changeset
    35
#include "eap_type_selection.h"
hgs
parents:
diff changeset
    36
#include "eapol_key_types.h"
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
#include "eapol_wlan_database_reference.h"
hgs
parents:
diff changeset
    39
#include <EapTypePlugin.h>
hgs
parents:
diff changeset
    40
#include "eap_base_type.h"
hgs
parents:
diff changeset
    41
#include "abs_eap_configuration_if.h"
hgs
parents:
diff changeset
    42
#include "eap_tlv_header.h"
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
class EAP_EXPORT eap_am_stack_symbian_c
hgs
parents:
diff changeset
    45
: public CActive
hgs
parents:
diff changeset
    46
, public eap_am_stack_c
hgs
parents:
diff changeset
    47
, public abs_eap_configuration_if_c
hgs
parents:
diff changeset
    48
{
hgs
parents:
diff changeset
    49
public:
hgs
parents:
diff changeset
    50
   
hgs
parents:
diff changeset
    51
    EAP_FUNC_IMPORT eap_am_stack_symbian_c(class abs_eap_am_tools_c * tools, bool is_client_when_true);
hgs
parents:
diff changeset
    52
    
hgs
parents:
diff changeset
    53
    EAP_FUNC_IMPORT virtual ~eap_am_stack_symbian_c();
hgs
parents:
diff changeset
    54
  
hgs
parents:
diff changeset
    55
    EAP_FUNC_IMPORT bool get_is_valid();
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
    EAP_FUNC_IMPORT eap_status_e set_partner(
hgs
parents:
diff changeset
    58
        abs_eap_am_stack_c * const partner
hgs
parents:
diff changeset
    59
        , abs_eap_configuration_if_c * const configuration_if
hgs
parents:
diff changeset
    60
        );
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
    // This is documented in abs_eap_stack_interface_c::configure().
hgs
parents:
diff changeset
    63
    EAP_FUNC_IMPORT eap_status_e configure(
hgs
parents:
diff changeset
    64
		const eap_variable_data_c * const client_configuration);
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
    // This is documented in abs_eap_stack_interface_c::shutdown().
hgs
parents:
diff changeset
    67
    EAP_FUNC_IMPORT eap_status_e shutdown();
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
    EAP_FUNC_IMPORT eap_status_e read_configure(
hgs
parents:
diff changeset
    70
        const eap_configuration_field_c * const field,
hgs
parents:
diff changeset
    71
        eap_variable_data_c * const data);
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
    EAP_FUNC_IMPORT eap_status_e set_timer(
hgs
parents:
diff changeset
    74
        abs_eap_base_timer_c * const p_initializer, 
hgs
parents:
diff changeset
    75
        const u32_t p_id, 
hgs
parents:
diff changeset
    76
        void * const p_data,
hgs
parents:
diff changeset
    77
        const u32_t p_time_ms);
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
    EAP_FUNC_IMPORT eap_status_e cancel_timer(
hgs
parents:
diff changeset
    80
        abs_eap_base_timer_c * const p_initializer, 
hgs
parents:
diff changeset
    81
        const u32_t p_id);
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
    EAP_FUNC_IMPORT eap_status_e check_is_valid_eap_type(
hgs
parents:
diff changeset
    84
        const eap_type_value_e eap_type);
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
    EAP_FUNC_IMPORT eap_status_e get_eap_type_list(
hgs
parents:
diff changeset
    87
        eap_array_c<eap_type_value_e> * const eap_type_list);
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
    EAP_FUNC_IMPORT eap_status_e load_module(
hgs
parents:
diff changeset
    90
        const eap_type_value_e type,
hgs
parents:
diff changeset
    91
        const eap_type_value_e tunneling_type,
hgs
parents:
diff changeset
    92
        abs_eap_base_type_c * const partner,
hgs
parents:
diff changeset
    93
        eap_base_type_c ** const eap_type,
hgs
parents:
diff changeset
    94
        const bool is_client_when_true,
hgs
parents:
diff changeset
    95
        const eap_am_network_id_c * const receive_network_id);
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
    EAP_FUNC_IMPORT eap_status_e save_simple_config_session(
hgs
parents:
diff changeset
    98
        const simple_config_state_e state,
hgs
parents:
diff changeset
    99
        EAP_TEMPLATE_CONST eap_array_c<simple_config_credential_c> * const credential_array,
hgs
parents:
diff changeset
   100
        const eap_variable_data_c * const new_password,
hgs
parents:
diff changeset
   101
        const simple_config_Device_Password_ID_e Device_Password_ID,
hgs
parents:
diff changeset
   102
        const simple_config_payloads_c * const other_configuration);
hgs
parents:
diff changeset
   103
    
hgs
parents:
diff changeset
   104
    EAP_FUNC_IMPORT eap_status_e set_eap_database_reference_values(
hgs
parents:
diff changeset
   105
            const eap_variable_data_c * const reference);
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
	EAP_FUNC_IMPORT eap_status_e get_802_11_authentication_mode(
hgs
parents:
diff changeset
   108
		const eap_am_network_id_c * const receive_network_id,
hgs
parents:
diff changeset
   109
		const eapol_key_authentication_type_e authentication_type);
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
private:
hgs
parents:
diff changeset
   112
    
hgs
parents:
diff changeset
   113
    /// Function reads one configuration value from database.
hgs
parents:
diff changeset
   114
    void read_configureL(
hgs
parents:
diff changeset
   115
        const TDesC& aDbName,
hgs
parents:
diff changeset
   116
        const TDesC& aTableName,
hgs
parents:
diff changeset
   117
        eap_config_string field,
hgs
parents:
diff changeset
   118
        const u32_t /*field_length*/,
hgs
parents:
diff changeset
   119
        eap_variable_data_c * const data);
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
    /// Control function of this active-object.
hgs
parents:
diff changeset
   122
    void RunL();
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
    /// Cancel function for active-object.
hgs
parents:
diff changeset
   125
    void DoCancel();
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
    /// RunError function for active-object.
hgs
parents:
diff changeset
   128
	TInt RunError(TInt aError);
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
	void SetToTopPriorityL(const eap_type_value_e aEapType);
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
	eap_status_e reset_eap_configuration();
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
	void ReadEAPSettingsL();
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
	eap_status_e reset_eap_plugins();
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
	TInt get_current_eap_index();
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
	void set_current_eap_index(const TInt ind);
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
    
hgs
parents:
diff changeset
   144
    abs_eap_am_tools_c * const iTools;
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
    TBool iIsValid;
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148
    const TBool iIsClient;
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
    abs_eap_am_stack_c* iPartner;
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
    /// Handle of database session.
hgs
parents:
diff changeset
   153
    RDbs iSession;
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
    /// Handle of database file.
hgs
parents:
diff changeset
   156
    RFs iFs;
hgs
parents:
diff changeset
   157
    
hgs
parents:
diff changeset
   158
	eap_file_config_c m_client_config;
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
    eap_file_config_c * iFileconfig;
hgs
parents:
diff changeset
   161
    
hgs
parents:
diff changeset
   162
    RPointerArray<CEapTypePlugin> m_plugin_if_array;
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
	eap_array_c<eap_type_value_e> iEnabledEapMethodsArray;
hgs
parents:
diff changeset
   166
	eap_array_c<eap_type_value_e> iDisabledEapMethodsArray;
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
    /// Array which corresponds with m_plugin_if_array and indicates the types of the loaded EAP types. 
hgs
parents:
diff changeset
   170
    eap_array_c<eap_type_value_e> m_eap_type_array;
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
	abs_eap_configuration_if_c* iConfigurationIf;
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
	TIndexType iIndexType;
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
	TUint iIndex;
hgs
parents:
diff changeset
   177
hgs
parents:
diff changeset
   178
	TInt iCurrentEapIndex;
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
	/// WLAN authentication type.
hgs
parents:
diff changeset
   181
	eapol_key_authentication_type_e m_selected_eapol_key_authentication_type;
hgs
parents:
diff changeset
   182
};
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
#endif /* EAP_AM_STACK_SYMBIAN_H_ */
hgs
parents:
diff changeset
   185
hgs
parents:
diff changeset
   186
// end