private void SentMessage(string input) { byte[] encrypted; ICryptoTransform encryptor = _symKeyAes.CreateEncryptor(_symKeyAes.Key, _symKeyAes.IV); using (MemoryStream msEncrypt = new MemoryStream()) { using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) { using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) { //Write all data to the stream. swEncrypt.Write(input); } encrypted = msEncrypt.ToArray(); } } Message message = new Message(); message.Content = JsonConvert.SerializeObject(encrypted); message.Iv = _symKeyAes.IV; message.RecieverId = _targetUser.Id; message.SenderId = _loggedInUser.Id; message.TimeSend = DateTime.Now; SuperChatContext context = new SuperChatContext(); context.Messages.Add(message); context.SaveChanges(); InputTextbox.Text = ""; ListMessages(_loggedInUser, _targetUser); }
private void LoadData() { SuperChatContext context = new SuperChatContext(); var loggedInUserKeyLijst = context.Keys.Where(key => key.User == _loggedInUser).ToList(); _chats = new List <Chat>(); foreach (var key in loggedInUserKeyLijst) { var chat = context.Chats.Find(key.ChatId); _chats.Add(chat); } _otherUserInChat = new List <Key>(); foreach (var chat in _chats) { var sleutels = context.Keys.Where(key => key.ChatId == chat.Id); var var = sleutels.First(key => key.UserId != _loggedInUser.Id); _otherUserInChat.Add(var); } ChatToUsersListView.Items.Clear(); foreach (var key in _otherUserInChat) { ChatToUsersListView.Items.Add(context.Users.Find(key.UserId)); } }
public NewChatWindow(User logedInUser, List <Key> otherUserInChat) { _logedInUser = logedInUser; InitializeComponent(); _context = new SuperChatContext(); var users = _context.Users.Where(user => user != _logedInUser).ToList(); foreach (var key in otherUserInChat) { var currentUser = _context.Users.Find(key.UserId); users.Remove(currentUser); } SelectedUserComboBox.ItemsSource = users; }
private void ListMessages(User senderUser, User receiverUser) { SuperChatContext context = new SuperChatContext(); MessagesListView.Items.Clear(); var messageList = context.Messages .Where(message => message.RecieverId == receiverUser.Id || message.RecieverId == senderUser.Id) .Where(message => message.SenderId == receiverUser.Id || message.SenderId == senderUser.Id) .OrderBy(message => message.TimeSend).ToList(); foreach (var message in messageList) { _symKeyAes.IV = message.Iv; message.Content = SymmetricEncryption.DecryptStringFromBytes_Aes(JsonConvert.DeserializeObject <byte[]>(message.Content), _symKeyAes); message.Content = context.Users.Find(message.SenderId).Name + ":\t" + message.Content; MessagesListView.Items.Add(message); } }
private void Login() { SuperChatContext context = new SuperChatContext(); if (UsernameTextBox.Text == "" || PasswordPasswordBox.Password == "") { UsernameTextBox.BorderBrush = UsernameTextBox.Text == "" ? new SolidColorBrush(Colors.Red) : new SolidColorBrush(Colors.DarkGray); PasswordPasswordBox.BorderBrush = PasswordPasswordBox.Password == "" ? new SolidColorBrush(Colors.Red) : new SolidColorBrush(Colors.DarkGray); return; } User user = context.Users.First(u => u.Name == UsernameTextBox.Text.ToLower()); if (Hash.HashInput(PasswordPasswordBox.Password, user.Salt) != user.Password) { MessageBox.Show("foutieve inloggegevens"); UsernameTextBox.Text = ""; PasswordPasswordBox.Password = ""; return; } CspParameters cp = new CspParameters(); cp.KeyContainerName = "superChat" + user.Name; var rsa = new RSACryptoServiceProvider(cp); ChatListWindow window = new ChatListWindow(rsa, user); window.Show(); Close(); }
public RegisterWindow() { context = new SuperChatContext(); InitializeComponent(); }