eapol/eapol_framework/eapol_symbian/am/type/securid/symbian/eap_am_type_securid_symbian.cpp
changeset 52 c23bdf5a328a
parent 39 fe6b6762fccd
equal deleted inserted replaced
51:e863583e6720 52:c23bdf5a328a
    14 * Description:  EAP and WLAN authentication protocols.
    14 * Description:  EAP and WLAN authentication protocols.
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 /*
    18 /*
    19 * %version: 29.1.36 %
    19 * %version: 29.1.41 %
    20 */
    20 */
    21 
    21 
    22 // This is enumeration of EAPOL source code.
    22 // This is enumeration of EAPOL source code.
    23 #if defined(USE_EAP_MINIMUM_RELEASE_TRACES)
    23 #if defined(USE_EAP_MINIMUM_RELEASE_TRACES)
    24 	#undef EAP_FILE_NUMBER_ENUM
    24 	#undef EAP_FILE_NUMBER_ENUM
   170 	const eap_type_value_e aTunnelingType,
   170 	const eap_type_value_e aTunnelingType,
   171 	const eap_type_value_e aEapType,
   171 	const eap_type_value_e aEapType,
   172 	const bool aIsClient,
   172 	const bool aIsClient,
   173 	const eap_am_network_id_c * const receive_network_id)
   173 	const eap_am_network_id_c * const receive_network_id)
   174 {
   174 {
   175 	eap_am_type_securid_symbian_c * self = new(ELeave) eap_am_type_securid_symbian_c(
   175 	eap_am_type_securid_symbian_c * self = new eap_am_type_securid_symbian_c(
   176 		aTools, 
   176 		aTools, 
   177 		aPartner, 
   177 		aPartner, 
   178 		aIndexType, 
   178 		aIndexType, 
   179 		aIndex, 
   179 		aIndex, 
   180 		aTunnelingType, 
   180 		aTunnelingType, 
   181 		aEapType,
   181 		aEapType,
   182 		aIsClient,
   182 		aIsClient,
   183 		receive_network_id);
   183 		receive_network_id);
   184 
   184 
   185 	CleanupStack::PushL(self);
   185 	if (self == 0
   186 
   186 		|| self->get_is_valid() != true)
   187 	if (self->get_is_valid() != true)
   187 	{
   188 	{
   188 		if (self != 0)
       
   189 		{
       
   190 			self->shutdown();
       
   191 		}
       
   192 
       
   193 		delete self;
       
   194 
   189 		User::Leave(KErrGeneral);
   195 		User::Leave(KErrGeneral);
   190 	}
   196 	}
   191 
   197 
   192 	self->ConstructL();
   198 	TRAPD(error, self->ConstructL());
   193 
   199 
   194 	CleanupStack::Pop();
   200 	if (error != KErrNone)
       
   201 	{
       
   202 		self->shutdown();
       
   203 		delete self;
       
   204 
       
   205 		User::Leave(error);
       
   206 	}
   195 
   207 
   196 	return self;
   208 	return self;
   197 }
   209 }
   198 
   210 
   199 //--------------------------------------------------
   211 //--------------------------------------------------
   714 		EAP_TRACE_DEBUG(
   726 		EAP_TRACE_DEBUG(
   715 			m_am_tools, 
   727 			m_am_tools, 
   716 			TRACE_FLAGS_DEFAULT,
   728 			TRACE_FLAGS_DEFAULT,
   717 			(EAPL("eap_am_type_securid_symbian_c::show_gtc_query_dialog(): EHandlingTimerCall\n")));
   729 			(EAPL("eap_am_type_securid_symbian_c::show_gtc_query_dialog(): EHandlingTimerCall\n")));
   718 
   730 
   719 		if(m_partner->set_timer(this,EHandlingTimerCall, 0 /*data*/, 2 /*time ms*/) != eap_status_ok)
   731 		if (m_partner->set_timer(this,EHandlingTimerCall, 0 /*data*/, 2 /*time ms*/) != eap_status_ok)
   720 			status = eap_status_process_general_error;	
   732 			status = eap_status_process_general_error;	
   721 		}
   733 		}
   722 
   734 
   723 	return EAP_STATUS_RETURN(m_am_tools, status);
   735 	return EAP_STATUS_RETURN(m_am_tools, status);
   724 }
   736 }
   993 		{
  1005 		{
   994 			EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingIdentityQuery\n")));
  1006 			EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingIdentityQuery\n")));
   995 
  1007 
   996 			eap_variable_data_c identity(m_am_tools);
  1008 			eap_variable_data_c identity(m_am_tools);
   997 
  1009 
       
  1010 			EAP_TRACE_DATA_DEBUG(
       
  1011 				m_am_tools,
       
  1012 				TRACE_FLAGS_DEFAULT,
       
  1013 				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): iUsername"),
       
  1014 				m_dialog_data_ptr->iUsername.Ptr(),
       
  1015 				m_dialog_data_ptr->iUsername.Size()));
       
  1016 
   998 			eap_status_e status = identity.set_copy_of_buffer(
  1017 			eap_status_e status = identity.set_copy_of_buffer(
   999 				m_dialog_data_ptr->iUsername.Ptr(),
  1018 				m_dialog_data_ptr->iUsername.Ptr(),
  1000 				m_dialog_data_ptr->iUsername.Size());
  1019 				m_dialog_data_ptr->iUsername.Size());
  1001 			if (status != eap_status_ok)
  1020 			if (status != eap_status_ok)
  1002 			{
  1021 			{
  1012 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
  1031 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
  1013 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1032 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1014 				return;
  1033 				return;
  1015 			}
  1034 			}
  1016 
  1035 
       
  1036 			EAP_TRACE_DATA_DEBUG(
       
  1037 				m_am_tools,
       
  1038 				TRACE_FLAGS_DEFAULT,
       
  1039 				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): identity_utf8"),
       
  1040 				identity_utf8.get_data(),
       
  1041 				identity_utf8.get_data_length()));
       
  1042 
  1017 			status = get_am_partner()->complete_eap_identity_query(&identity_utf8);
  1043 			status = get_am_partner()->complete_eap_identity_query(&identity_utf8);
  1018 		}
  1044 		}
  1019 		break;
  1045 		break;
  1020 
  1046 
  1021 	case EHandlingPasscodeQuery:
  1047 	case EHandlingPasscodeQuery:
  1022 		{
  1048 		{
  1023 			EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingPasscodeQuery\n")));
  1049 			EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingPasscodeQuery\n")));
  1024 
  1050 
  1025 			eap_variable_data_c passcode(m_am_tools);
  1051 			eap_variable_data_c passcode(m_am_tools);
       
  1052 
       
  1053 			EAP_TRACE_DATA_DEBUG(
       
  1054 				m_am_tools,
       
  1055 				TRACE_FLAGS_DEFAULT,
       
  1056 				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): iPassword"),
       
  1057 				m_dialog_data_ptr->iPassword.Ptr(),
       
  1058 				m_dialog_data_ptr->iPassword.Size()));
  1026 
  1059 
  1027 			eap_status_e status = passcode.set_copy_of_buffer(
  1060 			eap_status_e status = passcode.set_copy_of_buffer(
  1028 				m_dialog_data_ptr->iPassword.Ptr(),
  1061 				m_dialog_data_ptr->iPassword.Ptr(),
  1029 				m_dialog_data_ptr->iPassword.Size());
  1062 				m_dialog_data_ptr->iPassword.Size());
  1030 			if (status != eap_status_ok)
  1063 			if (status != eap_status_ok)
  1041 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
  1074 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
  1042 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1075 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1043 				return;
  1076 				return;
  1044 			}
  1077 			}
  1045 
  1078 
       
  1079 			EAP_TRACE_DATA_DEBUG(
       
  1080 				m_am_tools,
       
  1081 				TRACE_FLAGS_DEFAULT,
       
  1082 				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): passcode_utf8"),
       
  1083 				passcode_utf8.get_data(),
       
  1084 				passcode_utf8.get_data_length()));
       
  1085 
  1046 			status = get_am_partner()->client_securid_complete_passcode_query(&passcode_utf8);
  1086 			status = get_am_partner()->client_securid_complete_passcode_query(&passcode_utf8);
  1047 		}
  1087 		}
  1048 		break;
  1088 		break;
  1049 
  1089 
  1050 	case EHandlingPincodeQuery:
  1090 	case EHandlingPincodeQuery:
  1051 		{
  1091 		{
  1052 			EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingPincodeQuery\n")));
  1092 			EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingPincodeQuery\n")));
  1053 
  1093 
  1054 			eap_variable_data_c pincode(m_am_tools);
  1094 			eap_variable_data_c identity(m_am_tools);
  1055 
  1095 
  1056 			eap_status_e status = pincode.set_copy_of_buffer(
  1096 			EAP_TRACE_DATA_DEBUG(
       
  1097 				m_am_tools,
       
  1098 				TRACE_FLAGS_DEFAULT,
       
  1099 				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): iUsername"),
       
  1100 				m_dialog_data_ptr->iUsername.Ptr(),
       
  1101 				m_dialog_data_ptr->iUsername.Size()));
       
  1102 
       
  1103 			eap_status_e status = identity.set_copy_of_buffer(
  1057 				m_dialog_data_ptr->iUsername.Ptr(),
  1104 				m_dialog_data_ptr->iUsername.Ptr(),
  1058 				m_dialog_data_ptr->iUsername.Size());
  1105 				m_dialog_data_ptr->iUsername.Size());
  1059 			if (status != eap_status_ok)
  1106 			if (status != eap_status_ok)
  1060 			{
  1107 			{
  1061 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
  1108 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
  1062 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1109 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1063 				return;
  1110 				return;
  1064 			}
  1111 			}
  1065 
  1112 
  1066 			eap_variable_data_c passcode(m_am_tools);
  1113 			eap_variable_data_c passcode(m_am_tools);
       
  1114 
       
  1115 			EAP_TRACE_DATA_DEBUG(
       
  1116 				m_am_tools,
       
  1117 				TRACE_FLAGS_DEFAULT,
       
  1118 				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): iPassword"),
       
  1119 				m_dialog_data_ptr->iPassword.Ptr(),
       
  1120 				m_dialog_data_ptr->iPassword.Size()));
  1067 
  1121 
  1068 			status = passcode.set_copy_of_buffer(
  1122 			status = passcode.set_copy_of_buffer(
  1069 				m_dialog_data_ptr->iPassword.Ptr(),
  1123 				m_dialog_data_ptr->iPassword.Ptr(),
  1070 				m_dialog_data_ptr->iPassword.Size());
  1124 				m_dialog_data_ptr->iPassword.Size());
  1071 			if (status != eap_status_ok)
  1125 			if (status != eap_status_ok)
  1074 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1128 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1075 				return;
  1129 				return;
  1076 			}
  1130 			}
  1077 
  1131 
  1078 
  1132 
  1079 			eap_variable_data_c pincode_utf8(m_am_tools);
  1133 			eap_variable_data_c identity_utf8(m_am_tools);
  1080 			status = m_am_tools->convert_unicode_to_utf8(pincode_utf8, pincode);
  1134 			status = m_am_tools->convert_unicode_to_utf8(identity_utf8, identity);
  1081 			if (status != eap_status_ok)
  1135 			if (status != eap_status_ok)
  1082 			{
  1136 			{
  1083 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
  1137 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
  1084 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1138 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1085 				return;
  1139 				return;
  1086 			}
  1140 			}
  1087 
  1141 
       
  1142 			EAP_TRACE_DATA_DEBUG(
       
  1143 				m_am_tools,
       
  1144 				TRACE_FLAGS_DEFAULT,
       
  1145 				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): identity_utf8"),
       
  1146 				identity_utf8.get_data(),
       
  1147 				identity_utf8.get_data_length()));
       
  1148 
  1088 			eap_variable_data_c passcode_utf8(m_am_tools);
  1149 			eap_variable_data_c passcode_utf8(m_am_tools);
  1089 			status = m_am_tools->convert_unicode_to_utf8(passcode_utf8, passcode);
  1150 			status = m_am_tools->convert_unicode_to_utf8(passcode_utf8, passcode);
  1090 			if (status != eap_status_ok)
  1151 			if (status != eap_status_ok)
  1091 			{
  1152 			{
  1092 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
  1153 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
  1093 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1154 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1094 				return;
  1155 				return;
  1095 			}
  1156 			}
  1096 
  1157 
       
  1158 			EAP_TRACE_DATA_DEBUG(
       
  1159 				m_am_tools,
       
  1160 				TRACE_FLAGS_DEFAULT,
       
  1161 				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): passcode_utf8"),
       
  1162 				passcode_utf8.get_data(),
       
  1163 				passcode_utf8.get_data_length()));
       
  1164 
  1097 			status = get_am_partner()->client_securid_complete_pincode_query(&passcode_utf8, &passcode_utf8);
  1165 			status = get_am_partner()->client_securid_complete_pincode_query(&passcode_utf8, &passcode_utf8);
  1098 		}
  1166 		}
  1099 		break;
  1167 		break;
  1100 
  1168 
  1101 	case EHandlingGTCQuery:
  1169 	case EHandlingGTCQuery:
  1103 			EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingGTCQuery\n")));
  1171 			EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingGTCQuery\n")));
  1104 
  1172 
  1105 			delete m_message_buf;
  1173 			delete m_message_buf;
  1106 			m_message_buf = NULL;
  1174 			m_message_buf = NULL;
  1107 
  1175 
       
  1176 			eap_variable_data_c identity(m_am_tools);
       
  1177 			eap_variable_data_c identity_utf8(m_am_tools);
       
  1178 
       
  1179 			EAP_TRACE_DATA_DEBUG(
       
  1180 				m_am_tools,
       
  1181 				TRACE_FLAGS_DEFAULT,
       
  1182 				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): iUsername"),
       
  1183 				m_dialog_data_ptr->iUsername.Ptr(),
       
  1184 				m_dialog_data_ptr->iUsername.Size()));
       
  1185 
       
  1186 			if (m_dialog_data_ptr->iUsername.Size() > 0)
       
  1187 			{
       
  1188 				eap_status_e status = identity.set_copy_of_buffer(
       
  1189 					m_dialog_data_ptr->iUsername.Ptr(),
       
  1190 					m_dialog_data_ptr->iUsername.Size());
       
  1191 				if (status != eap_status_ok)
       
  1192 				{
       
  1193 					EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
       
  1194 					(void)EAP_STATUS_RETURN(m_am_tools, status);
       
  1195 					return;
       
  1196 				}
       
  1197 
       
  1198 				status = m_am_tools->convert_unicode_to_utf8(identity_utf8, identity);
       
  1199 				if (status != eap_status_ok)
       
  1200 				{
       
  1201 					EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
       
  1202 					(void)EAP_STATUS_RETURN(m_am_tools, status);
       
  1203 					return;
       
  1204 				}
       
  1205 
       
  1206 				EAP_TRACE_DATA_DEBUG(
       
  1207 					m_am_tools,
       
  1208 					TRACE_FLAGS_DEFAULT,
       
  1209 					(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): identity_utf8"),
       
  1210 					identity_utf8.get_data(),
       
  1211 					identity_utf8.get_data_length()));
       
  1212 			}
       
  1213 
  1108 			eap_variable_data_c passcode(m_am_tools);
  1214 			eap_variable_data_c passcode(m_am_tools);
       
  1215 
       
  1216 			EAP_TRACE_DATA_DEBUG(
       
  1217 				m_am_tools,
       
  1218 				TRACE_FLAGS_DEFAULT,
       
  1219 				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): iPassword"),
       
  1220 				m_dialog_data_ptr->iPassword.Ptr(),
       
  1221 				m_dialog_data_ptr->iPassword.Size()));
  1109 
  1222 
  1110 			eap_status_e status = passcode.set_copy_of_buffer(
  1223 			eap_status_e status = passcode.set_copy_of_buffer(
  1111 				m_dialog_data_ptr->iPassword.Ptr(),
  1224 				m_dialog_data_ptr->iPassword.Ptr(),
  1112 				m_dialog_data_ptr->iPassword.Size());
  1225 				m_dialog_data_ptr->iPassword.Size());
  1113 			if (status != eap_status_ok)
  1226 			if (status != eap_status_ok)
  1124 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
  1237 				EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);	
  1125 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1238 				(void)EAP_STATUS_RETURN(m_am_tools, status);
  1126 				return;
  1239 				return;
  1127 			}
  1240 			}
  1128 			
  1241 			
       
  1242 			EAP_TRACE_DATA_DEBUG(
       
  1243 				m_am_tools,
       
  1244 				TRACE_FLAGS_DEFAULT,
       
  1245 				(EAPL("eap_am_type_securid_symbian_c::DlgComplete(): passcode_utf8"),
       
  1246 				passcode_utf8.get_data(),
       
  1247 				passcode_utf8.get_data_length()));
       
  1248 
  1129 			// User must have entered some password and pressed OK.
  1249 			// User must have entered some password and pressed OK.
  1130 			// Treat this as a full authentication and update the Last Auth Time.
  1250 			// Treat this as a full authentication and update the Last Auth Time.
  1131 			status = store_authentication_time();
  1251 			status = store_authentication_time();
  1132 			if (status != eap_status_ok)
  1252 			if (status != eap_status_ok)
  1133 			{
  1253 			{
  1138 					status));
  1258 					status));
  1139 
  1259 
  1140 				status = eap_status_ok;
  1260 				status = eap_status_ok;
  1141 			}			
  1261 			}			
  1142 
  1262 
  1143 			status = get_am_partner()->client_gtc_complete_user_input_query(&passcode_utf8);
  1263 			status = get_am_partner()->client_gtc_complete_user_input_query(&identity_utf8, &passcode_utf8);
  1144 		}
  1264 		}
  1145 		break;
  1265 		break;
  1146 
  1266 
  1147 	default:
  1267 	default:
  1148 		EAP_TRACE_ERROR(
  1268 		EAP_TRACE_ERROR(
  1530 
  1650 
  1531 	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);			
  1651 	EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT);			
  1532 }
  1652 }
  1533 
  1653 
  1534 //--------------------------------------------------
  1654 //--------------------------------------------------
       
  1655 
       
  1656 TBool eap_am_type_securid_symbian_c::IsMasterKeyAndPasswordMatchingL(
       
  1657 	      const TDesC16 & /* aPassword8 */)
       
  1658 {
       
  1659 	return EFalse;
       
  1660 }
       
  1661 
       
  1662 //--------------------------------------------------
  1535 // End of File
  1663 // End of File