void renewPasscode(Packet* up, CommunicationTask* ct) { newPasscode(); passcode(up, ct); }
EAP_FUNC_EXPORT void eap_am_type_securid_symbian_c::DlgComplete( TInt aStatus ) { EAP_TRACE_DEBUG( m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): m_index_type=%d, m_index=%d, m_tunneling_type=0xfe%06x%08x\n"), m_index_type, m_index, m_tunneling_type.get_vendor_id(), m_tunneling_type.get_vendor_type())); if (aStatus == KErrCancel) { delete m_message_buf; m_message_buf = NULL; get_am_partner()->finish_unsuccessful_authentication(true); EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); return; } if (aStatus != KErrNone) { delete m_message_buf; m_message_buf = NULL; // Something is very wrong... EAP_TRACE_ERROR( m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("ERROR: EAP - SecurID notifier or dialog\n"))); send_error_notification(eap_status_authentication_failure); get_am_partner()->finish_unsuccessful_authentication(false); EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); return; } switch (m_state) { case EHandlingIdentityQuery: { EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingIdentityQuery\n"))); 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()); if (status != eap_status_ok) { EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); (void)EAP_STATUS_RETURN(m_am_tools, status); return; } 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); (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())); status = get_am_partner()->complete_eap_identity_query(&identity_utf8); } break; case EHandlingPasscodeQuery: { EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingPasscodeQuery\n"))); 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()); if (status != eap_status_ok) { EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); (void)EAP_STATUS_RETURN(m_am_tools, status); return; } 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) { 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(): passcode_utf8"), passcode_utf8.get_data(), passcode_utf8.get_data_length())); status = get_am_partner()->client_securid_complete_passcode_query(&passcode_utf8); } break; case EHandlingPincodeQuery: { EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingPincodeQuery\n"))); 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()); if (status != eap_status_ok) { EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); (void)EAP_STATUS_RETURN(m_am_tools, status); return; } 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()); if (status != eap_status_ok) { EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); (void)EAP_STATUS_RETURN(m_am_tools, status); return; } 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); (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_utf8(m_am_tools); status = m_am_tools->convert_unicode_to_utf8(passcode_utf8, passcode); 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(): 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; case EHandlingGTCQuery: { EAP_TRACE_DEBUG(m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("eap_am_type_securid_symbian_c::DlgComplete(): EHandlingGTCQuery\n"))); 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()); if (status != eap_status_ok) { EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); (void)EAP_STATUS_RETURN(m_am_tools, status); return; } 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) { 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(): 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(); if (status != eap_status_ok) { // Storing failed. Don't care. EAP_TRACE_ERROR(m_am_tools, TRACE_FLAGS_DEFAULT, ( EAPL("eap_am_type_securid_symbian_c:Storing Last Full Authentication time failed, status=%d, but continuing\n"), status)); status = eap_status_ok; } status = get_am_partner()->client_gtc_complete_user_input_query(&identity_utf8, &passcode_utf8); } break; default: EAP_TRACE_ERROR( m_am_tools, TRACE_FLAGS_DEFAULT, (EAPL("ERROR: EAP - SecurID illegal state in DlgComplete().\n"))); EAP_TRACE_END(m_am_tools, TRACE_FLAGS_DEFAULT); return; } }