private bool Buddies(IMLibrary.Client client) { if (GeneratedClientList.ToList().Single(cli => cli.UserName == _clientHandler.ClientInfo.UserName).Buddies == null) { return(false); } return(GeneratedClientList.ToList().Single(cli => cli.UserName == _clientHandler.ClientInfo.UserName).Buddies.Contains(client.UserName)); }
private void RemoveBuddy(object sender, RoutedEventArgs e) { if (ListBuddies.SelectedIndex == -1) { return; } IMLibrary.Client selectedClient = (IMLibrary.Client)ListBuddies.SelectedItem; if (selectedClient != null) { this._clientHandler.Buddy(selectedClient.UserName, true); } }
private bool Search(IMLibrary.Client client) { if (SearchForclientTextBox.Text == "Search...") { return(true); } var bc = new BrushConverter(); var colour = FavouriteButton.Background as SolidColorBrush; var colour2 = (System.Windows.Media.SolidColorBrush)bc.ConvertFrom("#FF038297"); if (Equals(colour.Color, colour2.Color)) { return((SearchForclientTextBox.Text != "" && client.UserName.Contains(SearchForclientTextBox.Text)) && GeneratedClientList.ToList().Single(cli => cli.UserName == _clientHandler.ClientInfo.UserName).Buddies.Contains(client.UserName)); } return(SearchForclientTextBox.Text != "" && client.UserName.Contains(SearchForclientTextBox.Text)); }
private void ListBuddies_PreviewMouseDown(object sender, MouseButtonEventArgs e) { if (e.OriginalSource == null) { return; } var item = ItemsControl.ContainerFromElement(ListBuddies, (DependencyObject)e.OriginalSource) as ListBoxItem; if (item == null) { return; } IMLibrary.Client selectedClient = (IMLibrary.Client)item.Content; gridBuddies.Children.Clear(); _clientPromtList.Find(c => c.Item1 == selectedClient).Item2.PreviewKeyDown += ChatDialogoue_PreviewKeyDown; gridBuddies.Children.Add(_clientPromtList.Find(c => c.Item1 == selectedClient).Item2); GeneratedClientList.ToList().Find(cli => cli.UserName == selectedClient.UserName).Received = 0; GeneratedClientList.ToList().Find(cli => cli.UserName == selectedClient.UserName).NewMessages = false; }
private void ChatDialogoue_PreviewKeyDown(object sender, KeyEventArgs e) { IMLibrary.Client selectedClient = (IMLibrary.Client)ListBuddies.Items[ListBuddies.SelectedIndex]; if (selectedClient == null) { return; } if (e.Key != Key.Enter) { return; } e.Handled = true; if (_clientPromtList.Find(c => c.Item1.UserName == selectedClient.UserName).Item2.txtSend.Text == "") { return; } string message = _clientPromtList.Find(c => c.Item1 == selectedClient).Item2.txtSend.Text; /* Actual message that is to be sent, this is where we can encrypt it*/ GeneratedClientList.ToList().Find(cli => cli.UserName == selectedClient.UserName).NewMessages = false; GeneratedClientList.ToList().Find(cli => cli.UserName == selectedClient.UserName).Received = 0; string encryptedMessage = ""; try { if (_clientKeyIvDictionary.ContainsKey(selectedClient.UserName)) { int selectedEncryptionMethod = _clientPromtList.Find(c => c.Item1 == selectedClient).Item2.EncryptionMethod.SelectedIndex; switch (selectedEncryptionMethod) { case 0: //symmetrical encryption int selectedStandard = _clientPromtList.Find(c => c.Item1 == selectedClient).Item2.EncryptionStandard.SelectedIndex; switch (selectedStandard) { case 0: encryptedMessage = Cryptography.Encrypt <AesManaged>(message, _clientKeyIvDictionary[selectedClient.UserName].Item1, Encoding.Unicode.GetString(_clientKeyIvDictionary[selectedClient.UserName].Item2)); break; case 1: // encryptedMessage = Cryptography.Encrypt <TripleDESCryptoServiceProvider>(message, _clientKeyIvDictionary[selectedClient.UserName].Item1, Encoding.Unicode.GetString(_clientKeyIvDictionary[selectedClient.UserName].Item2)); break; //case 2: // encryptedMessage = Cryptography.Encrypt<RC2CryptoServiceProvider>(message, _clientKeyIvDictionary[selectedClient.UserName].Item1, Encoding.Unicode.GetString(_clientKeyIvDictionary[selectedClient.UserName].Item2)); // break; } break; case 1: //one-time-pad if (_clientPromtList.Find(c => c.Item1 == selectedClient).Item2.txtOneTimePad.Text.Length >= message.Length) { encryptedMessage = Cryptography.EncryptMessageWithPad(_clientPromtList.Find(c => c.Item1 == selectedClient).Item2.txtOneTimePad.Text, message); } break; } } else { encryptedMessage = Cryptography.EncryptData(message, selectedClient.PublicKey); } var isChecked = _clientPromtList.Find(c => c.Item1 == selectedClient).Item2.SynchroniseCheckBox.IsChecked; bool syncFlag = isChecked != null && (bool)isChecked; int encryptionStandardFlag = _clientPromtList.Find(c => c.Item1 == selectedClient).Item2.EncryptionStandard.SelectedIndex; int encryptionMethodFlag = _clientPromtList.Find(c => c.Item1 == selectedClient).Item2.EncryptionMethod.SelectedIndex; IMLibrary.Message messagePacket = new IMLibrary.Message(encryptedMessage, selectedClient.UserName, this._clientHandler.ClientInfo.UserName, encryptionStandardFlag, encryptionMethodFlag, syncFlag); _clientPromtList.Find(c => c.Item1 == selectedClient).Item2.RecieveText.AppendNewLine(String.Format("[{0}] << {1}", DateTime.Now.ToString("HH:mm:ss"), _clientPromtList.Find(c => c.Item1 == selectedClient).Item2.txtSend.Text)); _clientPromtList.Find(c => c.Item1 == selectedClient).Item2.txtSend.Text = ""; this._clientHandler.SendMessage(messagePacket); } catch { _clientPromtList.Find(c => c.Item1 == selectedClient).Item2.RecieveText.AppendNewLine(String.Format("[{0}] << {1}", DateTime.Now.ToString("HH:mm:ss"), "This user may have removed their public key from the server; this message cannot be sent to ensure security integrity.")); } }