eapol/eapol_framework/eapol_symbian/eap_server/include/eap_am_stack_symbian.h
author hgs
Thu, 16 Sep 2010 13:07:04 +0300
changeset 49 43351a4f2da3
parent 26 9abfd4f00d37
permissions -rw-r--r--
201037
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"
49
hgs
parents: 26
diff changeset
    43
#include "eap_am_export.h"
hgs
parents: 26
diff changeset
    44
// Start: added by script change_export_macros.sh.
hgs
parents: 26
diff changeset
    45
#if defined(EAP_NO_EXPORT_EAP_AM_STACK_SYMBIAN_H)
hgs
parents: 26
diff changeset
    46
	#define EAP_CLASS_VISIBILITY_EAP_AM_STACK_SYMBIAN_H EAP_NONSHARABLE 
hgs
parents: 26
diff changeset
    47
	#define EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H 
hgs
parents: 26
diff changeset
    48
	#define EAP_C_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H 
hgs
parents: 26
diff changeset
    49
	#define EAP_FUNC_EXPORT_EAP_AM_STACK_SYMBIAN_H 
hgs
parents: 26
diff changeset
    50
	#define EAP_C_FUNC_EXPORT_EAP_AM_STACK_SYMBIAN_H 
hgs
parents: 26
diff changeset
    51
#elif defined(EAP_EXPORT_EAP_AM_STACK_SYMBIAN_H)
hgs
parents: 26
diff changeset
    52
	#define EAP_CLASS_VISIBILITY_EAP_AM_STACK_SYMBIAN_H EAP_EXPORT 
hgs
parents: 26
diff changeset
    53
	#define EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H EAP_FUNC_EXPORT 
hgs
parents: 26
diff changeset
    54
	#define EAP_C_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H EAP_C_FUNC_EXPORT 
hgs
parents: 26
diff changeset
    55
	#define EAP_FUNC_EXPORT_EAP_AM_STACK_SYMBIAN_H EAP_FUNC_EXPORT 
hgs
parents: 26
diff changeset
    56
	#define EAP_C_FUNC_EXPORT_EAP_AM_STACK_SYMBIAN_H EAP_C_FUNC_EXPORT 
hgs
parents: 26
diff changeset
    57
#else
hgs
parents: 26
diff changeset
    58
	#define EAP_CLASS_VISIBILITY_EAP_AM_STACK_SYMBIAN_H EAP_IMPORT 
hgs
parents: 26
diff changeset
    59
	#define EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H EAP_FUNC_IMPORT 
hgs
parents: 26
diff changeset
    60
	#define EAP_C_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H EAP_C_FUNC_IMPORT 
hgs
parents: 26
diff changeset
    61
	#define EAP_FUNC_EXPORT_EAP_AM_STACK_SYMBIAN_H 
hgs
parents: 26
diff changeset
    62
	#define EAP_C_FUNC_EXPORT_EAP_AM_STACK_SYMBIAN_H 
hgs
parents: 26
diff changeset
    63
#endif
hgs
parents: 26
diff changeset
    64
// End: added by script change_export_macros.sh.
26
hgs
parents:
diff changeset
    65
49
hgs
parents: 26
diff changeset
    66
hgs
parents: 26
diff changeset
    67
class EAP_CLASS_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_am_stack_symbian_c
26
hgs
parents:
diff changeset
    68
: public CActive
hgs
parents:
diff changeset
    69
, public eap_am_stack_c
hgs
parents:
diff changeset
    70
, public abs_eap_configuration_if_c
hgs
parents:
diff changeset
    71
{
hgs
parents:
diff changeset
    72
public:
hgs
parents:
diff changeset
    73
   
49
hgs
parents: 26
diff changeset
    74
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_am_stack_symbian_c(class abs_eap_am_tools_c * tools, bool is_client_when_true);
26
hgs
parents:
diff changeset
    75
    
49
hgs
parents: 26
diff changeset
    76
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H virtual ~eap_am_stack_symbian_c();
26
hgs
parents:
diff changeset
    77
  
49
hgs
parents: 26
diff changeset
    78
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H bool get_is_valid();
26
hgs
parents:
diff changeset
    79
49
hgs
parents: 26
diff changeset
    80
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_status_e set_partner(
26
hgs
parents:
diff changeset
    81
        abs_eap_am_stack_c * const partner
hgs
parents:
diff changeset
    82
        , abs_eap_configuration_if_c * const configuration_if
hgs
parents:
diff changeset
    83
        );
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
    // This is documented in abs_eap_stack_interface_c::configure().
49
hgs
parents: 26
diff changeset
    86
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_status_e configure(
26
hgs
parents:
diff changeset
    87
		const eap_variable_data_c * const client_configuration);
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
    // This is documented in abs_eap_stack_interface_c::shutdown().
49
hgs
parents: 26
diff changeset
    90
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_status_e shutdown();
26
hgs
parents:
diff changeset
    91
49
hgs
parents: 26
diff changeset
    92
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_status_e read_configure(
26
hgs
parents:
diff changeset
    93
        const eap_configuration_field_c * const field,
hgs
parents:
diff changeset
    94
        eap_variable_data_c * const data);
hgs
parents:
diff changeset
    95
49
hgs
parents: 26
diff changeset
    96
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_status_e set_timer(
26
hgs
parents:
diff changeset
    97
        abs_eap_base_timer_c * const p_initializer, 
hgs
parents:
diff changeset
    98
        const u32_t p_id, 
hgs
parents:
diff changeset
    99
        void * const p_data,
hgs
parents:
diff changeset
   100
        const u32_t p_time_ms);
hgs
parents:
diff changeset
   101
49
hgs
parents: 26
diff changeset
   102
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_status_e cancel_timer(
26
hgs
parents:
diff changeset
   103
        abs_eap_base_timer_c * const p_initializer, 
hgs
parents:
diff changeset
   104
        const u32_t p_id);
hgs
parents:
diff changeset
   105
49
hgs
parents: 26
diff changeset
   106
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_status_e check_is_valid_eap_type(
26
hgs
parents:
diff changeset
   107
        const eap_type_value_e eap_type);
hgs
parents:
diff changeset
   108
49
hgs
parents: 26
diff changeset
   109
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_status_e get_eap_type_list(
26
hgs
parents:
diff changeset
   110
        eap_array_c<eap_type_value_e> * const eap_type_list);
hgs
parents:
diff changeset
   111
49
hgs
parents: 26
diff changeset
   112
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_status_e load_module(
26
hgs
parents:
diff changeset
   113
        const eap_type_value_e type,
hgs
parents:
diff changeset
   114
        const eap_type_value_e tunneling_type,
hgs
parents:
diff changeset
   115
        abs_eap_base_type_c * const partner,
hgs
parents:
diff changeset
   116
        eap_base_type_c ** const eap_type,
hgs
parents:
diff changeset
   117
        const bool is_client_when_true,
hgs
parents:
diff changeset
   118
        const eap_am_network_id_c * const receive_network_id);
hgs
parents:
diff changeset
   119
49
hgs
parents: 26
diff changeset
   120
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_status_e save_simple_config_session(
26
hgs
parents:
diff changeset
   121
        const simple_config_state_e state,
hgs
parents:
diff changeset
   122
        EAP_TEMPLATE_CONST eap_array_c<simple_config_credential_c> * const credential_array,
hgs
parents:
diff changeset
   123
        const eap_variable_data_c * const new_password,
hgs
parents:
diff changeset
   124
        const simple_config_Device_Password_ID_e Device_Password_ID,
hgs
parents:
diff changeset
   125
        const simple_config_payloads_c * const other_configuration);
hgs
parents:
diff changeset
   126
    
49
hgs
parents: 26
diff changeset
   127
    EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_status_e set_eap_database_reference_values(
26
hgs
parents:
diff changeset
   128
            const eap_variable_data_c * const reference);
hgs
parents:
diff changeset
   129
49
hgs
parents: 26
diff changeset
   130
	EAP_FUNC_VISIBILITY_EAP_AM_STACK_SYMBIAN_H eap_status_e get_802_11_authentication_mode(
26
hgs
parents:
diff changeset
   131
		const eap_am_network_id_c * const receive_network_id,
hgs
parents:
diff changeset
   132
		const eapol_key_authentication_type_e authentication_type);
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
private:
hgs
parents:
diff changeset
   135
    
hgs
parents:
diff changeset
   136
    /// Function reads one configuration value from database.
hgs
parents:
diff changeset
   137
    void read_configureL(
hgs
parents:
diff changeset
   138
        const TDesC& aDbName,
hgs
parents:
diff changeset
   139
        const TDesC& aTableName,
hgs
parents:
diff changeset
   140
        eap_config_string field,
hgs
parents:
diff changeset
   141
        const u32_t /*field_length*/,
hgs
parents:
diff changeset
   142
        eap_variable_data_c * const data);
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
    /// Control function of this active-object.
hgs
parents:
diff changeset
   145
    void RunL();
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
    /// Cancel function for active-object.
hgs
parents:
diff changeset
   148
    void DoCancel();
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
    /// RunError function for active-object.
hgs
parents:
diff changeset
   151
	TInt RunError(TInt aError);
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
	void SetToTopPriorityL(const eap_type_value_e aEapType);
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
	eap_status_e reset_eap_configuration();
hgs
parents:
diff changeset
   157
hgs
parents:
diff changeset
   158
	void ReadEAPSettingsL();
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
	eap_status_e reset_eap_plugins();
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
	TInt get_current_eap_index();
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
	void set_current_eap_index(const TInt ind);
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
    
hgs
parents:
diff changeset
   167
    abs_eap_am_tools_c * const iTools;
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
    TBool iIsValid;
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
    const TBool iIsClient;
hgs
parents:
diff changeset
   172
hgs
parents:
diff changeset
   173
    abs_eap_am_stack_c* iPartner;
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
    /// Handle of database session.
hgs
parents:
diff changeset
   176
    RDbs iSession;
hgs
parents:
diff changeset
   177
hgs
parents:
diff changeset
   178
    /// Handle of database file.
hgs
parents:
diff changeset
   179
    RFs iFs;
hgs
parents:
diff changeset
   180
    
hgs
parents:
diff changeset
   181
	eap_file_config_c m_client_config;
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
    eap_file_config_c * iFileconfig;
hgs
parents:
diff changeset
   184
    
hgs
parents:
diff changeset
   185
    RPointerArray<CEapTypePlugin> m_plugin_if_array;
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
	eap_array_c<eap_type_value_e> iEnabledEapMethodsArray;
hgs
parents:
diff changeset
   189
	eap_array_c<eap_type_value_e> iDisabledEapMethodsArray;
hgs
parents:
diff changeset
   190
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
    /// Array which corresponds with m_plugin_if_array and indicates the types of the loaded EAP types. 
hgs
parents:
diff changeset
   193
    eap_array_c<eap_type_value_e> m_eap_type_array;
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
	abs_eap_configuration_if_c* iConfigurationIf;
hgs
parents:
diff changeset
   196
hgs
parents:
diff changeset
   197
	TIndexType iIndexType;
hgs
parents:
diff changeset
   198
hgs
parents:
diff changeset
   199
	TUint iIndex;
hgs
parents:
diff changeset
   200
hgs
parents:
diff changeset
   201
	TInt iCurrentEapIndex;
hgs
parents:
diff changeset
   202
hgs
parents:
diff changeset
   203
	/// WLAN authentication type.
hgs
parents:
diff changeset
   204
	eapol_key_authentication_type_e m_selected_eapol_key_authentication_type;
hgs
parents:
diff changeset
   205
};
hgs
parents:
diff changeset
   206
hgs
parents:
diff changeset
   207
#endif /* EAP_AM_STACK_SYMBIAN_H_ */
hgs
parents:
diff changeset
   208
hgs
parents:
diff changeset
   209
// end