eapol/eapol_framework/eapol_symbian/am/type/securid/symbian/eap_am_type_securid_symbian.cpp
changeset 52 c23bdf5a328a
parent 39 fe6b6762fccd
--- a/eapol/eapol_framework/eapol_symbian/am/type/securid/symbian/eap_am_type_securid_symbian.cpp	Fri Sep 17 08:30:11 2010 +0300
+++ b/eapol/eapol_framework/eapol_symbian/am/type/securid/symbian/eap_am_type_securid_symbian.cpp	Mon Oct 04 00:19:54 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 /*
-* %version: 29.1.36 %
+* %version: 29.1.41 %
 */
 
 // This is enumeration of EAPOL source code.
@@ -172,7 +172,7 @@
 	const bool aIsClient,
 	const eap_am_network_id_c * const receive_network_id)
 {
-	eap_am_type_securid_symbian_c * self = new(ELeave) eap_am_type_securid_symbian_c(
+	eap_am_type_securid_symbian_c * self = new eap_am_type_securid_symbian_c(
 		aTools, 
 		aPartner, 
 		aIndexType, 
@@ -182,16 +182,28 @@
 		aIsClient,
 		receive_network_id);
 
-	CleanupStack::PushL(self);
+	if (self == 0
+		|| self->get_is_valid() != true)
+	{
+		if (self != 0)
+		{
+			self->shutdown();
+		}
 
-	if (self->get_is_valid() != true)
-	{
+		delete self;
+
 		User::Leave(KErrGeneral);
 	}
 
-	self->ConstructL();
+	TRAPD(error, self->ConstructL());
 
-	CleanupStack::Pop();
+	if (error != KErrNone)
+	{
+		self->shutdown();
+		delete self;
+
+		User::Leave(error);
+	}
 
 	return self;
 }
@@ -716,7 +728,7 @@
 			TRACE_FLAGS_DEFAULT,
 			(EAPL("eap_am_type_securid_symbian_c::show_gtc_query_dialog(): EHandlingTimerCall\n")));
 
-		if(m_partner->set_timer(this,EHandlingTimerCall, 0 /*data*/, 2 /*time ms*/) != eap_status_ok)
+		if (m_partner->set_timer(this,EHandlingTimerCall, 0 /*data*/, 2 /*time ms*/) != eap_status_ok)
 			status = eap_status_process_general_error;	
 		}
 
@@ -995,6 +1007,13 @@
 
 			eap_variable_data_c identity(m_am_tools);
 
+			EAP_TRACE_DATA_DEBUG(
+				m_am_tools,
+				TRACE_FLAGS_DEFAULT,
+				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): iUsername"),
+				m_dialog_data_ptr->iUsername.Ptr(),
+				m_dialog_data_ptr->iUsername.Size()));
+
 			eap_status_e status = identity.set_copy_of_buffer(
 				m_dialog_data_ptr->iUsername.Ptr(),
 				m_dialog_data_ptr->iUsername.Size());
@@ -1014,6 +1033,13 @@
 				return;
 			}
 
+			EAP_TRACE_DATA_DEBUG(
+				m_am_tools,
+				TRACE_FLAGS_DEFAULT,
+				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): identity_utf8"),
+				identity_utf8.get_data(),
+				identity_utf8.get_data_length()));
+
 			status = get_am_partner()->complete_eap_identity_query(&identity_utf8);
 		}
 		break;
@@ -1024,6 +1050,13 @@
 
 			eap_variable_data_c passcode(m_am_tools);
 
+			EAP_TRACE_DATA_DEBUG(
+				m_am_tools,
+				TRACE_FLAGS_DEFAULT,
+				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): iPassword"),
+				m_dialog_data_ptr->iPassword.Ptr(),
+				m_dialog_data_ptr->iPassword.Size()));
+
 			eap_status_e status = passcode.set_copy_of_buffer(
 				m_dialog_data_ptr->iPassword.Ptr(),
 				m_dialog_data_ptr->iPassword.Size());
@@ -1043,6 +1076,13 @@
 				return;
 			}
 
+			EAP_TRACE_DATA_DEBUG(
+				m_am_tools,
+				TRACE_FLAGS_DEFAULT,
+				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): passcode_utf8"),
+				passcode_utf8.get_data(),
+				passcode_utf8.get_data_length()));
+
 			status = get_am_partner()->client_securid_complete_passcode_query(&passcode_utf8);
 		}
 		break;
@@ -1051,9 +1091,16 @@
 		{
 			EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingPincodeQuery\n")));
 
-			eap_variable_data_c pincode(m_am_tools);
+			eap_variable_data_c identity(m_am_tools);
 
-			eap_status_e status = pincode.set_copy_of_buffer(
+			EAP_TRACE_DATA_DEBUG(
+				m_am_tools,
+				TRACE_FLAGS_DEFAULT,
+				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): iUsername"),
+				m_dialog_data_ptr->iUsername.Ptr(),
+				m_dialog_data_ptr->iUsername.Size()));
+
+			eap_status_e status = identity.set_copy_of_buffer(
 				m_dialog_data_ptr->iUsername.Ptr(),
 				m_dialog_data_ptr->iUsername.Size());
 			if (status != eap_status_ok)
@@ -1065,6 +1112,13 @@
 
 			eap_variable_data_c passcode(m_am_tools);
 
+			EAP_TRACE_DATA_DEBUG(
+				m_am_tools,
+				TRACE_FLAGS_DEFAULT,
+				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): iPassword"),
+				m_dialog_data_ptr->iPassword.Ptr(),
+				m_dialog_data_ptr->iPassword.Size()));
+
 			status = passcode.set_copy_of_buffer(
 				m_dialog_data_ptr->iPassword.Ptr(),
 				m_dialog_data_ptr->iPassword.Size());
@@ -1076,8 +1130,8 @@
 			}
 
 
-			eap_variable_data_c pincode_utf8(m_am_tools);
-			status = m_am_tools->convert_unicode_to_utf8(pincode_utf8, pincode);
+			eap_variable_data_c identity_utf8(m_am_tools);
+			status = m_am_tools->convert_unicode_to_utf8(identity_utf8, identity);
 			if (status != eap_status_ok)
 			{
 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
@@ -1085,6 +1139,13 @@
 				return;
 			}
 
+			EAP_TRACE_DATA_DEBUG(
+				m_am_tools,
+				TRACE_FLAGS_DEFAULT,
+				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): identity_utf8"),
+				identity_utf8.get_data(),
+				identity_utf8.get_data_length()));
+
 			eap_variable_data_c passcode_utf8(m_am_tools);
 			status = m_am_tools->convert_unicode_to_utf8(passcode_utf8, passcode);
 			if (status != eap_status_ok)
@@ -1094,6 +1155,13 @@
 				return;
 			}
 
+			EAP_TRACE_DATA_DEBUG(
+				m_am_tools,
+				TRACE_FLAGS_DEFAULT,
+				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): passcode_utf8"),
+				passcode_utf8.get_data(),
+				passcode_utf8.get_data_length()));
+
 			status = get_am_partner()->client_securid_complete_pincode_query(&passcode_utf8, &passcode_utf8);
 		}
 		break;
@@ -1105,8 +1173,53 @@
 			delete m_message_buf;
 			m_message_buf = NULL;
 
+			eap_variable_data_c identity(m_am_tools);
+			eap_variable_data_c identity_utf8(m_am_tools);
+
+			EAP_TRACE_DATA_DEBUG(
+				m_am_tools,
+				TRACE_FLAGS_DEFAULT,
+				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): iUsername"),
+				m_dialog_data_ptr->iUsername.Ptr(),
+				m_dialog_data_ptr->iUsername.Size()));
+
+			if (m_dialog_data_ptr->iUsername.Size() > 0)
+			{
+				eap_status_e status = identity.set_copy_of_buffer(
+					m_dialog_data_ptr->iUsername.Ptr(),
+					m_dialog_data_ptr->iUsername.Size());
+				if (status != eap_status_ok)
+				{
+					EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
+					(void)EAP_STATUS_RETURN(m_am_tools, status);
+					return;
+				}
+
+				status = m_am_tools->convert_unicode_to_utf8(identity_utf8, identity);
+				if (status != eap_status_ok)
+				{
+					EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
+					(void)EAP_STATUS_RETURN(m_am_tools, status);
+					return;
+				}
+
+				EAP_TRACE_DATA_DEBUG(
+					m_am_tools,
+					TRACE_FLAGS_DEFAULT,
+					(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): identity_utf8"),
+					identity_utf8.get_data(),
+					identity_utf8.get_data_length()));
+			}
+
 			eap_variable_data_c passcode(m_am_tools);
 
+			EAP_TRACE_DATA_DEBUG(
+				m_am_tools,
+				TRACE_FLAGS_DEFAULT,
+				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): iPassword"),
+				m_dialog_data_ptr->iPassword.Ptr(),
+				m_dialog_data_ptr->iPassword.Size()));
+
 			eap_status_e status = passcode.set_copy_of_buffer(
 				m_dialog_data_ptr->iPassword.Ptr(),
 				m_dialog_data_ptr->iPassword.Size());
@@ -1126,6 +1239,13 @@
 				return;
 			}
 			
+			EAP_TRACE_DATA_DEBUG(
+				m_am_tools,
+				TRACE_FLAGS_DEFAULT,
+				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): passcode_utf8"),
+				passcode_utf8.get_data(),
+				passcode_utf8.get_data_length()));
+
 			// User must have entered some password and pressed OK.
 			// Treat this as a full authentication and update the Last Auth Time.
 			status = store_authentication_time();
@@ -1140,7 +1260,7 @@
 				status = eap_status_ok;
 			}			
 
-			status = get_am_partner()->client_gtc_complete_user_input_query(&passcode_utf8);
+			status = get_am_partner()->client_gtc_complete_user_input_query(&identity_utf8, &passcode_utf8);
 		}
 		break;
 
@@ -1532,4 +1652,12 @@
 }
 
 //--------------------------------------------------
+
+TBool eap_am_type_securid_symbian_c::IsMasterKeyAndPasswordMatchingL(
+	      const TDesC16 & /* aPassword8 */)
+{
+	return EFalse;
+}
+
+//--------------------------------------------------
 // End of File