eapol/eapol_framework/wapi_symbian/wapi_core/symbian/wapi_am_wlan_authentication_symbian.cpp
changeset 18 7aac0b9e8906
parent 17 8840d3e38314
child 20 8b3129ac4c0f
--- a/eapol/eapol_framework/wapi_symbian/wapi_core/symbian/wapi_am_wlan_authentication_symbian.cpp	Fri Mar 19 09:29:58 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1161 +0,0 @@
-/*
-* ============================================================================
-*  Name        : ./accesssec/eapol/eapol_framework/wapi_symbian/wapi_core/symbian/wapi_am_wlan_authentication_symbian.cpp
-*  Part of     : WAPI / WAPI       *** Info from the SWAD
-*  Description : WAPI authentication
-*  Version     : %version: 22.1.1 % << Don't touch! Updated by Synergy at check-out.
-*
-*  Copyright © 2001-2009 Nokia.  All rights reserved.
-*  This material, including documentation and any related computer
-*  programs, is protected by copyright controlled by Nokia.  All
-*  rights are reserved.  Copying, including reproducing, storing,
-*  adapting or translating, any or all of this material requires the
-*  prior written consent of Nokia.  This material also contains
-*  confidential information which may not be disclosed to others
-*  without the prior written consent of Nokia.
-* ============================================================================
-* Template version: 4.1.1
-*/
-
-// This is enumeration of EAPOL source code.
-#if defined(USE_EAP_MINIMUM_RELEASE_TRACES)
-	#undef EAP_FILE_NUMBER_ENUM
-	#define EAP_FILE_NUMBER_ENUM 151 
-	#undef EAP_FILE_NUMBER_DATE 
-	#define EAP_FILE_NUMBER_DATE 1127594498 
-#endif //#if defined(USE_EAP_MINIMUM_RELEASE_TRACES)
-
-#include "wapi_am_wlan_authentication_symbian.h"
-#include "abs_wapi_am_wlan_authentication.h"
-
-#include "eap_header_string.h"
-#include "eap_config.h"
-#include "eap_file_config.h"
-#include "eap_am_file_input_symbian.h"
-#include "eap_type_selection.h"
-#include "eapol_key_types.h"
-#include "eap_timer_queue.h"
-#include "eap_crypto_api.h"
-#include "abs_eapol_wlan_database_reference_if.h"
-#include "abs_eap_state_notification.h"
-#include "eap_state_notification.h"
-#include "eap_automatic_variable.h"
-#include "wapi_core.h"
-#include "WapiDbDefaults.h"
-#include "certificate_store_db_parameters.h"
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT wapi_am_wlan_authentication_symbian_c::~wapi_am_wlan_authentication_symbian_c()
-    {
-	EAP_TRACE_DEBUG(
-		m_am_tools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("wapi_am_wlan_authentication_symbian_c::~wapi_am_wlan_authentication_symbian_c(): this = 0x%08x\n"),
-		this));
-    }
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT wapi_am_wlan_authentication_symbian_c::wapi_am_wlan_authentication_symbian_c(
-	abs_eap_am_tools_c * const tools,
-	const bool is_client_when_true,
-	const abs_eapol_wlan_database_reference_if_c * const wlan_database_reference)
-: CActive(CActive::EPriorityStandard)
-, m_am_partner(0)
-, m_am_tools(tools)
-, m_fileconfig(0)
-, m_SSID(tools)
-, m_wlan_database_reference(wlan_database_reference)
-, m_receive_network_id(tools)
-, m_selected_eapol_key_authentication_type(eapol_key_authentication_type_none)
-, m_is_client(is_client_when_true)
-, m_is_valid(false)
-, m_wapi_preshared_key(tools)
-, m_wapi_psk(tools)
-, iIapIndex(0)
-    {
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	m_is_valid = true;
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-    }
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT bool wapi_am_wlan_authentication_symbian_c::get_is_valid()
-    {
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return m_is_valid;
-    }
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::reset_wapi_configuration()
-	{
-	
-	return eap_status_ok;
-	}
-
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::configure()
-    {
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	EAP_TRACE_DEBUG(
-		m_am_tools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("wapi_am_wlan_authentication_symbian_c::configure(): %s, this = 0x%08x => 0x%08x\n"),
-		 (m_is_client == true) ? "client": "server",
-		 this,
-		 dynamic_cast<abs_eap_base_timer_c *>(this)));
-
-#if defined(USE_EAP_FILECONFIG)
-	{
-		eap_am_file_input_symbian_c * const fileio = new eap_am_file_input_symbian_c(m_am_tools);
-
-		eap_automatic_variable_c<eap_am_file_input_symbian_c> automatic_fileio(m_am_tools, fileio);
-
-		if (fileio != 0
-			&& fileio->get_is_valid() == true)
-		{
-			EAP_TRACE_DEBUG(
-				m_am_tools,
-				TRACE_FLAGS_DEFAULT,
-				(EAPL("Initialize file configuration.\n")));
-
-			eap_variable_data_c file_name_c_data(m_am_tools);
-
-			eap_status_e status(eap_status_process_general_error);
-
-			{
-				#if defined(EAPOL_SYMBIAN_VERSION_7_0_s)
-					eap_const_string const FILECONFIG_FILENAME_C
-						= "c:\\system\\data\\wapi.conf";
-				#else
-					eap_const_string const FILECONFIG_FILENAME_C
-						= "c:\\private\\101F8EC5\\wapi.conf";
-				#endif
-
-				status = file_name_c_data.set_copy_of_buffer(
-					FILECONFIG_FILENAME_C,
-					m_am_tools->strlen(FILECONFIG_FILENAME_C));
-				if (status != eap_status_ok)
-				{
-					EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-					return EAP_STATUS_RETURN(m_am_tools, status);
-				}
-
-				status = file_name_c_data.add_end_null();
-				if (status != eap_status_ok)
-				{
-					EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-					return EAP_STATUS_RETURN(m_am_tools, status);
-				}
-			}
-
-			eap_variable_data_c file_name_z_data(m_am_tools);
-
-			{
-				#if defined(EAPOL_SYMBIAN_VERSION_7_0_s)
-					eap_const_string const FILECONFIG_FILENAME_Z
-						= "z:\\system\\data\\wapi.conf";
-				#else
-					eap_const_string const FILECONFIG_FILENAME_Z
-						= "z:\\private\\101F8EC5\\wapi.conf";
-				#endif
-
-				status = file_name_z_data.set_copy_of_buffer(
-					FILECONFIG_FILENAME_Z,
-					m_am_tools->strlen(FILECONFIG_FILENAME_Z));
-				if (status != eap_status_ok)
-				{
-					EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-					return EAP_STATUS_RETURN(m_am_tools, status);
-				}
-
-				status = file_name_z_data.add_end_null();
-				if (status != eap_status_ok)
-				{
-					EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-					return EAP_STATUS_RETURN(m_am_tools, status);
-				}
-			}
-
-
-
-			if (status == eap_status_ok)
-			{
-				// First try open from C: disk.
-				status = fileio->file_open(
-					&file_name_c_data,
-					eap_file_io_direction_read);
-				if (status == eap_status_ok)
-				{
-					EAP_TRACE_DEBUG(
-						m_am_tools,
-						TRACE_FLAGS_DEFAULT,
-						(EAPL("Opens configure file %s\n"),
-						file_name_c_data.get_data(file_name_c_data.get_data_length())));
-				}
-				else if (status != eap_status_ok)
-				{
-					// Second try open from Z: disk.
-					status = fileio->file_open(
-						&file_name_z_data,
-						eap_file_io_direction_read);
-					if (status == eap_status_ok)
-					{
-						EAP_TRACE_DEBUG(
-							m_am_tools,
-							TRACE_FLAGS_DEFAULT,
-							(EAPL("Opens configure file %s\n"),
-							 file_name_z_data.get_data(file_name_z_data.get_data_length())));
-					}
-				}
-
-				if (status == eap_status_ok)
-				{
-					// Some of the files were opened.
-
-					m_fileconfig = new eap_file_config_c(m_am_tools);
-					if (m_fileconfig != 0
-						&& m_fileconfig->get_is_valid() == true)
-					{
-						status = m_fileconfig->configure(fileio);
-						if (status != eap_status_ok)
-						{
-							EAP_TRACE_DEBUG(
-								m_am_tools,
-								TRACE_FLAGS_DEFAULT,
-								(EAPL("ERROR: Configure read from %s failed.\n"),
-								file_name_c_data.get_data(file_name_c_data.get_data_length())));
-						}
-						else
-						{
-							EAP_TRACE_DEBUG(
-								m_am_tools,
-								TRACE_FLAGS_DEFAULT,
-								(EAPL("Configure read from %s\n"),
-								file_name_c_data.get_data(file_name_c_data.get_data_length())));
-						}
-					}
-					else
-					{
-						// No file configuration.
-						delete m_fileconfig;
-						m_fileconfig = 0;
-
-						EAP_TRACE_DEBUG(
-							m_am_tools,
-							TRACE_FLAGS_DEFAULT,
-							(EAPL("ERROR: Cannot create configure object for file %s\n"),
-							file_name_c_data.get_data(file_name_c_data.get_data_length())));
-					}
-				}
-				else
-				{
-					EAP_TRACE_DEBUG(
-						m_am_tools,
-						TRACE_FLAGS_DEFAULT,
-						(EAPL("ERROR: Cannot open configure file neither %s nor %s\n"),
-						file_name_c_data.get_data(file_name_c_data.get_data_length()),
-						file_name_z_data.get_data(file_name_z_data.get_data_length())));
-				}
-			}
-		}
-		else
-		{
-			EAP_TRACE_DEBUG(
-				m_am_tools,
-				TRACE_FLAGS_DEFAULT,
-				(EAPL("Skips file configuration.\n")));
-		}
-	}
-
-#endif //#if defined(USE_EAP_FILECONFIG)
-
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-#if defined(USE_EAP_FILE_TRACE)
-	{
-		eap_variable_data_c trace_output_file(m_am_tools);
-
-		eap_status_e status = read_configure(
-			cf_str_EAP_TRACE_output_file_name.get_field(),
-			&trace_output_file);
-		if (status == eap_status_ok
-			&& trace_output_file.get_is_valid_data() == true)
-		    {
-			status = m_am_tools->set_trace_file_name(&trace_output_file);
-			if (status == eap_status_ok)
-			    {
-				m_am_tools->set_trace_mask(
-					eap_am_tools_c::eap_trace_mask_debug
-					| eap_am_tools_c::eap_trace_mask_always
-					| eap_am_tools_c::eap_trace_mask_error
-					| eap_am_tools_c::eap_trace_mask_message_data);
-			    }
-            }
-	}
-#endif //#if defined(USE_EAP_FILE_TRACE)
-
-
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-	{
-		eap_variable_data_c EAP_TRACE_enable_timer_queue_traces(m_am_tools);
-
-		eap_status_e status = read_configure(
-			cf_str_EAP_TRACE_enable_timer_queue_traces.get_field(),
-			&EAP_TRACE_enable_timer_queue_traces);
-		if (status == eap_status_ok
-			&& EAP_TRACE_enable_timer_queue_traces.get_is_valid_data() == true)
-		    {
-			u32_t *enable_timer_queue_traces = reinterpret_cast<u32_t *>(
-				EAP_TRACE_enable_timer_queue_traces.get_data(sizeof(u32_t)));
-			if (enable_timer_queue_traces != 0
-				&& *enable_timer_queue_traces != 0)
-			    {
-				m_am_tools->set_trace_mask(
-					m_am_tools->get_trace_mask()
-					| eap_am_tools_c::eap_trace_mask_timer_queue
-					);
-			    }
-		    }
-	}
-
-	{
-		eap_variable_data_c EAP_TRACE_enable_function_traces(m_am_tools);
-
-		eap_status_e status = read_configure(
-			cf_str_EAP_TRACE_enable_function_traces.get_field(),
-			&EAP_TRACE_enable_function_traces);
-		if (status == eap_status_ok
-			&& EAP_TRACE_enable_function_traces.get_is_valid_data() == true)
-		{
-			u32_t *enable_function_traces = reinterpret_cast<u32_t *>(
-				EAP_TRACE_enable_function_traces.get_data(sizeof(u32_t)));
-			if (enable_function_traces != 0
-				&& *enable_function_traces != 0)
-			{
-				m_am_tools->set_trace_mask(
-					m_am_tools->get_trace_mask()
-					| eap_am_tools_c::eap_trace_mask_functions
-					);
-			}
-		}
-	}
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, eap_status_ok);
-    }
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::shutdown()
-    {
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	EAP_TRACE_ALWAYS(
-		m_am_tools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("wapi_am_wlan_authentication_symbian_c::shutdown(): %s, this = 0x%08x => 0x%08x\n"),
-		 (m_is_client == true) ? "client": "server",
-		 this,
-		 dynamic_cast<abs_eap_base_timer_c *>(this)));
-
-	delete m_fileconfig;
-    m_fileconfig = 0;
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, eap_status_ok);
-    }
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::set_am_partner(
-	abs_wapi_am_wlan_authentication_c * am_partner
-	)
-    {
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	EAP_TRACE_DEBUG(
-		m_am_tools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("wapi_am_wlan_authentication_simulator_c::set_am_partner(): %s, this = 0x%08x\n"),
-		 (m_is_client == true) ? "client": "server",
-		 this));
-
-	m_am_partner = am_partner;
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, eap_status_ok);
-    }
-
-//--------------------------------------------------
-//--------------------------------------------------
-
-void wapi_am_wlan_authentication_symbian_c::send_error_notification(const eap_status_e error)
-    {
-	EAP_TRACE_DEBUG(m_am_tools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("wapi_am_wlan_authentication_symbian_c::send_error_notification, error=%d\n"),
-		error));	
-
-   eap_general_state_variable_e general_state_variable(eap_general_state_authentication_error);
-    
-    if (error == eap_status_user_cancel_authentication)
-        {
-        general_state_variable = eap_general_state_authentication_cancelled;
-        }
-
-    // Here we swap the addresses.
-	eap_am_network_id_c send_network_id(m_am_tools,
-		m_receive_network_id.get_destination_id(),
-		m_receive_network_id.get_source_id(),
-		m_receive_network_id.get_type());
-
-	// Notifies the lower level of an authentication error.
-    eap_state_notification_c notification(
-        m_am_tools,
-        &send_network_id,
-        m_is_client,
-        eap_state_notification_eap,
-        eap_protocol_layer_general,
-        eap_type_none,
-        eap_state_none,
-        general_state_variable,
-        0,
-        false);
-
-    notification.set_authentication_error(error);
-
-    m_am_partner->state_notification(&notification);
-
-
-    }
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::set_wlan_parameters(
-	const eap_variable_data_c * const SSID,
-	const bool WPA_override_enabled,
-	const eap_variable_data_c * const wapi_preshared_key,
-	const eapol_key_authentication_type_e selected_eapol_key_authentication_type)
-    {
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	EAP_TRACE_DEBUG(
-		m_am_tools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("wapi_am_wlan_authentication_symbian_c::set_wlan_parameters(): %s, this = 0x%08x => 0x%08x\n"),
-		 (m_is_client == true) ? "client": "server",
-		 this,
-		 dynamic_cast<abs_eap_base_timer_c *>(this)));
-
-	m_selected_eapol_key_authentication_type = selected_eapol_key_authentication_type;
-
-	eap_status_e status = m_SSID.set_copy_of_buffer(SSID);
-	if (status != eap_status_ok)
-	    {
-		EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-		return EAP_STATUS_RETURN(m_am_tools, status);
-	   }
-
-	status = m_wapi_preshared_key.set_copy_of_buffer(&m_wapi_psk);
-	if (status != eap_status_ok)
-	    {
-		send_error_notification(eap_status_key_error);
-		EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-		return EAP_STATUS_RETURN(m_am_tools, status);
-	    }
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, eap_status_ok);
-    }
-
-//--------------------------------------------------
-
-//
-void wapi_am_wlan_authentication_symbian_c::state_notification(
-	const abs_eap_state_notification_c * const state)
-    {
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	EAP_UNREFERENCED_PARAMETER(state);
-	
-	// nothing to show to user, so do nothing
-	
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-    }
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::association(
-	const eap_am_network_id_c * const receive_network_id)
-    {
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	EAP_TRACE_DEBUG(
-		m_am_tools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("wapi_am_wlan_authentication_symbian_c::association(): %s, this = 0x%08x => 0x%08x\n"),
-		 (m_is_client == true) ? "client": "server",
-		 this,
-		 dynamic_cast<abs_eap_base_timer_c *>(this)));
-
-	eap_status_e status = m_receive_network_id.set_copy_of_network_id(receive_network_id);
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, status);
-    }
-
-//--------------------------------------------------
-
-//
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::disassociation(
-	const eap_am_network_id_c * const /* receive_network_id */ ///< source includes remote address, destination includes local address.
-	)
-    {
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	EAP_TRACE_DEBUG(
-		m_am_tools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("wapi_am_wlan_authentication_symbian_c::disassociation(): %s, this = 0x%08x => 0x%08x\n"),
-		 (m_is_client == true) ? "client": "server",
-		 this,
-		 dynamic_cast<abs_eap_base_timer_c *>(this)));
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, eap_status_ok);
-    }
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::get_wlan_configuration(
-	eap_variable_data_c * const wapi_psk)
-    {
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	eap_status_e status = eap_status_ok;
-	
-	EAP_TRACE_DEBUG(
-		m_am_tools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("wapi_am_wlan_authentication_symbian_c::get_wlan_configuration(): %s, this = 0x%08x => 0x%08x\n"),
-		 (m_is_client == true) ? "client": "server",
-		 this,
-		 dynamic_cast<abs_eap_base_timer_c *>(this)));
-
-
-	TRAPD(err, status = GetWlanConfigurationL(wapi_psk ));
-	if (err)
-	    {
-	    EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	    return m_am_tools->convert_am_error_to_eapol_error(err);
-	    }
-	  
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return status;
-    }
-
-eap_status_e wapi_am_wlan_authentication_symbian_c::GetWlanConfigurationL(eap_variable_data_c * const wapi_psk )
-    {
-
-    EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-    
-    TIndexType index_type(ELan);
-    TUint index(0UL);
-
-    eap_status_e status = read_database_reference_values(
-        &index_type,
-        &index);
-    if (status != eap_status_ok)
-        {
-        EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-        User::Leave(m_am_tools->convert_eapol_error_to_am_error(EAP_STATUS_RETURN(m_am_tools, status)));
-        }
-
-    if (index_type == ELan)
-        {
-        EAP_TRACE_DEBUG(
-            m_am_tools,
-            TRACE_FLAGS_DEFAULT,
-            (EAPL("Beginning to read IAP settings - Type: %d, Index: %d.\n"), index_type, index));
-        
-        iIapIndex = index;
-        
-        CWLanSettings* wlan_settings = new(ELeave) CWLanSettings;
-        CleanupStack::PushL(wlan_settings);
-        SWLANSettings wlanSettings;
-        if (wlan_settings->Connect() != KErrNone)
-            {
-            // Could not connect to CommDB          
-            CleanupStack::PopAndDestroy(wlan_settings);
-            User::Leave(KErrCouldNotConnect);
-            }
-
-        EAP_TRACE_DEBUG(
-                m_am_tools,
-                TRACE_FLAGS_DEFAULT, (EAPL("Connected to CommDbIf.\n")));
-
-        if (wlan_settings->GetWlanSettingsForService(index, wlanSettings) != KErrNone)
-            {
-            wlan_settings->Disconnect();
-            CleanupStack::PopAndDestroy(wlan_settings);
-            User::Leave(KErrUnknown);
-            }
-
-        status = m_wapi_preshared_key.set_copy_of_buffer(
-                wlanSettings.WPAPreSharedKey.Ptr(),
-                wlanSettings.WPAPreSharedKey.Size());
-        if (status != eap_status_ok)
-            {
-            send_error_notification(eap_status_key_error);
-            wlan_settings->Disconnect();
-            CleanupStack::PopAndDestroy(wlan_settings);
-            EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-            User::Leave(m_am_tools->convert_eapol_error_to_am_error(EAP_STATUS_RETURN(m_am_tools, status)));
-           }
-
-       // Here we copy the SSID read from IAP.
-       TBuf8<32> tmp;
-       tmp.Copy(wlanSettings.SSID);
-       status = m_SSID.set_copy_of_buffer(tmp.Ptr(), tmp.Size());
-        if (status != eap_status_ok)
-           {
-           wlan_settings->Disconnect();
-           CleanupStack::PopAndDestroy(wlan_settings);
-           EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-           User::Leave(m_am_tools->convert_eapol_error_to_am_error(EAP_STATUS_RETURN(m_am_tools, status)));
-           }
- 
-        EAP_TRACE_DATA_DEBUG(
-               m_am_tools,
-               TRACE_FLAGS_DEFAULT,
-               (EAPL("m_wapi_preshared_key"),
-                       m_wapi_preshared_key.get_data(),
-                       m_wapi_preshared_key.get_data_length()));
-
-        TInt aPskType = wlanSettings.PresharedKeyFormat;
- 
-        if (aPskType == EWlanPresharedKeyFormatHex)
-            {
-            EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("PSK HEX\n")));
-    
-            m_wapi_psk.reset();
-            wapi_psk->reset();
-    
-            u32_t target_length(m_wapi_preshared_key.get_data_length() / 2);
-                 
-            status = m_wapi_psk.set_buffer_length(target_length);
-        
-            if (status != eap_status_ok)
-                {
-                EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("set_buffer_length NOT OK \n")));
-                send_error_notification(eap_status_key_error);
-                wlan_settings->Disconnect();                            
-                CleanupStack::PopAndDestroy(wlan_settings); 
-                EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-                return eap_status_key_error;
-                }
-            
-            status = m_wapi_psk.set_data_length(target_length);
-            if (status != eap_status_ok)
-                {
-                EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("set_data_length NOT OK \n")));
-                send_error_notification(eap_status_key_error);
-                wlan_settings->Disconnect();                            
-                CleanupStack::PopAndDestroy(wlan_settings); 
-                EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-                return eap_status_key_error;
-                }
-    
-            status = m_am_tools->convert_hex_ascii_to_bytes(
-                    m_wapi_preshared_key.get_data(m_wapi_preshared_key.get_data_length()),
-                    m_wapi_preshared_key.get_data_length(),
-                    m_wapi_psk.get_data(target_length),
-                    &target_length);
-            
-            if (status != eap_status_ok
-                    || target_length != (m_wapi_preshared_key.get_data_length()/2))
-                    {
-                    EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("convert_hex_ascii_to_bytes NOT OK \n")));
-                    send_error_notification(eap_status_key_error);
-                    wlan_settings->Disconnect();                            
-                    EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-                    CleanupStack::PopAndDestroy(wlan_settings);
-                   return eap_status_key_error;
-                    }
-                
-            status = wapi_psk->set_copy_of_buffer(&m_wapi_psk);
-            if (status != eap_status_ok)
-                {
-                EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("set_copy_of_buffer NOT OK \n")));
-                send_error_notification(eap_status_key_error);
-                wlan_settings->Disconnect();                            
-                EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-                CleanupStack::PopAndDestroy(wlan_settings); 
-                return eap_status_key_error;
-                }
-            }
-        else
-            {
-            EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("PSK ASCII\n")));
-            m_wapi_psk.reset();
-            wapi_psk->reset();
-
-            status = m_wapi_psk.set_copy_of_buffer(&m_wapi_preshared_key);
-            if (status != eap_status_ok)
-                {
-                EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("set_copy_of_buffer NOT OK \n")));
-                send_error_notification(eap_status_key_error);
-                wlan_settings->Disconnect();                            
-                EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-                CleanupStack::PopAndDestroy(wlan_settings); 
-                return eap_status_key_error;
-                }
-            
-            status = wapi_psk->set_copy_of_buffer(&m_wapi_psk); 
-            if (status != eap_status_ok)
-                {
-                EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("set_copy_of_buffer NOT OK \n")));
-                send_error_notification(eap_status_key_error);
-                wlan_settings->Disconnect();                            
-                EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-                CleanupStack::PopAndDestroy(wlan_settings); 
-               return eap_status_key_error;
-                }
-            }
-    
-        EAP_TRACE_DATA_DEBUG(
-                m_am_tools,
-                TRACE_FLAGS_DEFAULT,
-                (EAPL("new WPA-PSK SSID"),
-                        m_SSID.get_data(),
-                        m_SSID.get_data_length()));
-        
-        EAP_TRACE_DATA_DEBUG(
-                m_am_tools,
-                TRACE_FLAGS_DEFAULT,
-                (EAPL("new WPA-PSK preshared key"),
-                m_wapi_preshared_key.get_data(),
-                m_wapi_preshared_key.get_data_length()));
-            
-        EAP_TRACE_DATA_DEBUG(
-                m_am_tools,
-                TRACE_FLAGS_DEFAULT,
-                (EAPL("new WPA-PSK hash"),
-                m_wapi_psk.get_data(),
-                m_wapi_psk.get_data_length()));
-    
-        CleanupStack::PopAndDestroy(wlan_settings);
-        }
-    
-    EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-    return status;
-
-    }
-                                                         
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::authentication_finished(
-	const bool when_true_successfull,
-	const eapol_key_authentication_type_e authentication_type)
-{
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	EAP_TRACE_DEBUG(
-		m_am_tools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("wapi_am_wlan_authentication_symbian_c::authentication_finished(): %s, this = 0x%08x => 0x%08x\n"),
-		 (m_is_client == true) ? "client": "server",
-		 this,
-		 dynamic_cast<abs_eap_base_timer_c *>(this)));
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, eap_status_ok);
-}
-
-//--------------------------------------------------
-
-eap_status_e wapi_am_wlan_authentication_symbian_c::read_database_reference_values(
-	TIndexType * const type,
-	TUint * const index)
-{
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	EAP_TRACE_DEBUG(
-		m_am_tools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("wapi_am_wlan_authentication_symbian_c::read_database_reference_values(): %s, this = 0x%08x => 0x%08x\n"),
-		 (m_is_client == true) ? "client": "server",
-		 this,
-		 dynamic_cast<abs_eap_base_timer_c *>(this)));
-
-	eap_variable_data_c database_reference(m_am_tools);
-
-	eap_status_e status = m_wlan_database_reference->get_wlan_database_reference_values(&database_reference);
-	if (status != eap_status_ok)
-	{
-		EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-		return EAP_STATUS_RETURN(m_am_tools, status);
-	}
-
-	const eapol_wlan_database_reference_values_s * const database_reference_values
-		= reinterpret_cast<eapol_wlan_database_reference_values_s *>(
-		database_reference.get_data(sizeof(eapol_wlan_database_reference_values_s)));
-	if (database_reference_values == 0)
-	{
-		EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-		return EAP_STATUS_RETURN(m_am_tools, eap_status_allocation_error);
-	}
-
-	*type = static_cast<TIndexType>(database_reference_values->m_database_index_type);
-	*index = database_reference_values->m_database_index;
-
-	EAP_TRACE_DEBUG(
-		m_am_tools,
-		TRACE_FLAGS_DEFAULT,
-		(EAPL("wapi_am_wlan_authentication_symbian_c::read_database_reference_values(): Type=%d, Index=%d.\n"),
-		 *type,
-		 *index));
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, eap_status_ok);
-}
-
-//--------------------------------------------------
-
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::read_configure(
-	const eap_configuration_field_c * const field,
-	eap_variable_data_c * const data)
-{
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-	EAP_ASSERT_ALWAYS(data != NULL);
-	
-	EAP_TRACE_DEBUG(
-		m_am_tools, 
-		TRACE_FLAGS_DEFAULT, 
-		(EAPL("wapi_am_wlan_authentication_symbian_c::read_configure(): %s, this = 0x%08x => 0x%08x\n"),
-		 (m_is_client == true) ? "client": "server",
-		 this,
-		 dynamic_cast<abs_eap_base_timer_c *>(this)));
-	
-	eap_status_e status(eap_status_ok);
-
-	eap_variable_data_c wanted_field(m_am_tools);
-	eap_variable_data_c type_field(m_am_tools);
-	
-	status = wanted_field.set_buffer(
-		field->get_field(),
-		field->get_field_length(),
-		false,
-		false);
-	if (status != eap_status_ok)
-	{
-		EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-		return status;
-	}
-	
-	TInt err = KErrNone;
-	HBufC8* asciibuf = NULL;
-	TRAP( err, asciibuf = HBufC8::NewL(128));
-    if (err != KErrNone) 
-        {
-        EAP_TRACE_DEBUG(
-            m_am_tools,
-            TRACE_FLAGS_DEFAULT,
-            (EAPL("wapi_am_wlan_authentication_symbian_c::read_configure HBufC8::NewL LEAVE(): Type=%d.\n"),
-                    err));
-            status = m_am_tools->convert_am_error_to_eapol_error(err);
-            EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-            return status;
-        }
-   
-    if((cf_str_WAPI_database_reference_index.get_field()->compare((m_am_tools), field)) == true)
-        {
-        if (iIapIndex == 0)
-            {
-            TIndexType index_type(ELan);
-
-            eap_status_e status = read_database_reference_values(
-                &index_type,
-                &iIapIndex);
-            if (status != eap_status_ok)
-                {
-                EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-                User::Leave(m_am_tools->convert_eapol_error_to_am_error(EAP_STATUS_RETURN(m_am_tools, status)));
-                }
-            else
-                {
-                status = data->set_copy_of_buffer(&iIapIndex, sizeof(iIapIndex));
-                if (status != eap_status_ok)
-                    {
-                    EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-                    User::Leave(m_am_tools->convert_eapol_error_to_am_error(EAP_STATUS_RETURN(m_am_tools, status)));
-                    }
-                
-                 }
-            }
-        else
-            {
-            status = data->set_copy_of_buffer(&iIapIndex, sizeof(iIapIndex));
-            if (status != eap_status_ok)
-                {
-                EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-                User::Leave(m_am_tools->convert_eapol_error_to_am_error(EAP_STATUS_RETURN(m_am_tools, status)));
-                }
-            }
-        EAP_TRACE_DEBUG(
-              m_am_tools,
-              TRACE_FLAGS_DEFAULT,
-              (EAPL("wapi_am_wlan_authentication_symbian_c::read_configure(): index = %d\n"), iIapIndex));
- 
-        }
-
-    TPtr8 asciiString = asciibuf->Des();
-    asciiString.Copy(reinterpret_cast<const unsigned char *>(field));
-
-    eap_variable_data_c aConfigField(m_am_tools);
-    aConfigField.set_copy_of_buffer(asciiString.Ptr(), asciiString.Size());
-
-    if ((cf_str_WAPI_CORE_PSK.get_field()->compare((m_am_tools), field)) == true)
-        {
-        TRAP( err, ReadConfigureL(
-            field->get_field(),
-            field,
-            field->get_field_length(),
-            data) );
-        }
-    delete asciibuf; 
-   
-	if (err != KErrNone) 
-        {
-        EAP_TRACE_DEBUG(
-            m_am_tools,
-            TRACE_FLAGS_DEFAULT,
-            (EAPL("wapi_am_wlan_authentication_symbian_c::read_configure ReadConfigureL LEAVE(): Type=%d.\n"),
-                    err));
-            status = m_am_tools->convert_am_error_to_eapol_error(err);
-
-
-#if defined(USE_EAP_FILECONFIG)
-		if (m_fileconfig != 0
-			&& m_fileconfig->get_is_valid() == true)
-		    {
-			status = m_fileconfig->read_configure(
-				field,
-				data);
-		    }
-#endif //#if defined(USE_EAP_FILECONFIG)
-        }
-	m_am_tools->trace_configuration(
-		status,
-		field,
-		data);
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, status);
-}
-
-//--------------------------------------------------
-
-void wapi_am_wlan_authentication_symbian_c::ReadConfigureL(
-	eap_config_string fieldx,
-	const eap_configuration_field_c * const field,
-	const u32_t /*field_length*/,
-	eap_variable_data_c * const data)
-{	
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-	
-	// Create a buffer for the ascii strings - initialised with the argument
-	HBufC8* asciibuf = HBufC8::NewLC(128);
-	TPtr8 asciiString = asciibuf->Des();
-	asciiString.Copy(reinterpret_cast<const unsigned char *>(field));
-		
-	// Buffer for unicode parameter
-	HBufC* unicodebuf = HBufC::NewLC(128);
-	TPtr unicodeString = unicodebuf->Des();
-	
-	// Convert to unicode 
-	unicodeString.Copy(asciiString);
-
-    eap_variable_data_c aConfigField(m_am_tools);
-
-    if ((cf_str_WAPI_CORE_PSK.get_field()->compare((m_am_tools), field)) == true )
-        {
-        if(m_wapi_psk.get_data_length()>0)
-            {
-            data->set_copy_of_buffer(&m_wapi_psk);
-            }
-        else
-            {
-            GetWlanConfigurationL(&aConfigField);
-            data->set_copy_of_buffer(&aConfigField);
-            }
-        CleanupStack::PopAndDestroy(2); // 2 buffers
-        return;
-        }
-
-	CleanupStack::PopAndDestroy(2); // 2 buffers
-
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-}
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::write_configure(
-	const eap_configuration_field_c * const /* field */,
-	eap_variable_data_c * const /* data */)
-{
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	const eap_status_e status = eap_status_illegal_configure_field;
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, status);
-}
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::set_timer(
-	abs_eap_base_timer_c * const p_initializer, 
-	const u32_t p_id, 
-	void * const p_data,
-	const u32_t p_time_ms)
-{
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	const eap_status_e status = m_am_tools->am_set_timer(
-		p_initializer, 
-		p_id, 
-		p_data,
-		p_time_ms);
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, status);
-}
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::cancel_timer(
-	abs_eap_base_timer_c * const p_initializer, 
-	const u32_t p_id)
-{
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	const eap_status_e status = m_am_tools->am_cancel_timer(
-		p_initializer, 
-		p_id);
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, status);
-}
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT eap_status_e wapi_am_wlan_authentication_symbian_c::cancel_all_timers()
-{
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	const eap_status_e status = m_am_tools->am_cancel_all_timers();
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-	return EAP_STATUS_RETURN(m_am_tools, status);
-}
-
-//--------------------------------------------------
-
-void wapi_am_wlan_authentication_symbian_c::RunL()
-{
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);	
-	EAP_TRACE_DEBUG(
-		m_am_tools,
-		TRACE_FLAGS_DEFAULT,
-		(EAPL("wapi_am_wlan_authentication_symbian_c::RunL(): iStatus.Int() = %d\n"),
-		iStatus.Int()));
-
-	if (iStatus.Int() != KErrNone)
-	{
-		EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-		return;
-	}
-
-	// Authentication cancelled.
-	EAP_TRACE_ALWAYS(
-		m_am_tools,
-		TRACE_FLAGS_ALWAYS|TRACE_FLAGS_DEFAULT,
-		(EAPL("Authentication cancelled.\n")));
-
-    eap_status_e status = m_am_partner->disassociation(
-        &m_receive_network_id);
-
-    if (status != eap_status_ok)
-    {
-        EAP_TRACE_DEBUG(
-            m_am_tools,
-            TRACE_FLAGS_DEFAULT,
-            (EAPL("Disassociation failed in RunL().\n")));
-        EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);
-        return;
-    }
-
-    EAP_TRACE_ALWAYS(
-		m_am_tools,
-		TRACE_FLAGS_ALWAYS|TRACE_FLAGS_DEFAULT,
-		(EAPL("Indication sent to WLM: EFailedCompletely.\n")));
-
-	   m_am_partner->wapi_indication(
-	        &m_receive_network_id,
-	        eapol_wlan_authentication_state_failed_completely);
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
-}
-
-//--------------------------------------------------
-
-void wapi_am_wlan_authentication_symbian_c::DoCancel()
-{	
-	EAP_TRACE_BEGIN(m_am_tools, TRACE_FLAGS_DEFAULT);
-
-	EAP_TRACE_DEBUG(
-		m_am_tools,
-		TRACE_FLAGS_DEFAULT,
-		(EAPL("wapi_am_wlan_authentication_symbian_c::DoCancel()\n")));
-
-	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
-}
-
-//--------------------------------------------------
-
-EAP_FUNC_EXPORT wapi_am_wlan_authentication_c * wapi_am_wlan_authentication_c::new_wapi_am_wlan_authentication(
-	abs_eap_am_tools_c * const tools,
-	const bool is_client_when_true,
-	const abs_eapol_wlan_database_reference_if_c * const wlan_database_reference)
-{
-	EAP_TRACE_BEGIN(tools, TRACE_FLAGS_DEFAULT);
-
-	wapi_am_wlan_authentication_c * const wauth = new wapi_am_wlan_authentication_symbian_c(
-		tools,
-		is_client_when_true,
-		wlan_database_reference);
-
-	EAP_TRACE_END(tools, TRACE_FLAGS_DEFAULT);
-	return wauth;
-}
-
-
-//--------------------------------------------------
-// End.