Exemple #1
0
        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);
        }
Exemple #2
0
        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));
            }
        }
Exemple #3
0
        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;
        }
Exemple #4
0
        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();
        }
Exemple #6
0
 public RegisterWindow()
 {
     context = new SuperChatContext();
     InitializeComponent();
 }