示例#1
0
        private void lbMainMessages_ScrollBar_MouseUp(object sender, RoutedEventArgs e)
        {
            if (channel != "" && stopUpdating == false && lbMainMessages.Items.Count >= 50)
            {
                Border       border       = (Border)VisualTreeHelper.GetChild(lbMainMessages, 0);
                ScrollViewer scrollViewer = (ScrollViewer)VisualTreeHelper.GetChild(border, 0);

                scrollViewer.ReleaseMouseCapture();

                if (scrollViewer.VerticalOffset == 0)
                {
                    screenMain.timesUpdated += 1;
                    Dictionary <string, object> message = new Dictionary <string, object>();

                    message.Add("username", "");
                    message.Add("channel", channel);
                    message.Add("content", timesUpdated);
                    message.Add("messagetype", "messageReq");

                    List <object> encryptedMessage = EMAES.Encrypt(JsonConvert.SerializeObject(message));

                    string jsonMessage = JsonConvert.SerializeObject(encryptedMessage);

                    NM.SendMessage(jsonMessage);
                }
            }
        }
示例#2
0
        private void lbMainChannels_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            object lbi = this.lbMainChannels.SelectedItem;

            if (lbi == null)
            {
            }
            else
            {
                stopUpdating = false;
                string channelName = lbi.ToString();
                channel = channelName;
                Dictionary <string, object> message = new Dictionary <string, object>();
                message.Add("username", username);
                message.Add("channel", "");
                message.Add("content", channelName);
                message.Add("messagetype", "changedChannel");

                List <object> encryptedMessage = EMAES.Encrypt(JsonConvert.SerializeObject(message));

                string jsonMessage = JsonConvert.SerializeObject(encryptedMessage);

                NM.SendMessage(jsonMessage);
            }
        }
示例#3
0
        private void ChannelMembers_Context_Ban(object sender, RoutedEventArgs e)
        {
            if (lbMainChannelMembers.SelectedItem == null)
            {
            }
            else
            {
                string target = lbMainChannelMembers.SelectedItem.ToString();
                if (target.Substring((target.Length - 2), 2) == " \u2606")
                {
                    Dictionary <string, object> message = new Dictionary <string, object>();
                    message.Add("username", username);
                    message.Add("channel", channel);
                    message.Add("content", "/ban " + target.Substring(0, target.Length - 2));
                    message.Add("messagetype", "inboundMessage");

                    List <object> encryptedMessage = EMAES.Encrypt(JsonConvert.SerializeObject(message));

                    string jsonMessage = JsonConvert.SerializeObject(encryptedMessage);



                    NM.SendMessage(jsonMessage);
                }
                else
                {
                    Dictionary <string, object> message = new Dictionary <string, object>();
                    message.Add("username", username);
                    message.Add("channel", channel);
                    message.Add("content", "/ban " + target);
                    message.Add("messagetype", "inboundMessage");

                    List <object> encryptedMessage = EMAES.Encrypt(JsonConvert.SerializeObject(message));

                    string jsonMessage = JsonConvert.SerializeObject(encryptedMessage);



                    NM.SendMessage(jsonMessage);
                }
            }
        }
示例#4
0
        private void btnMainSendMsg_Click(object sender, RoutedEventArgs e)
        {
            if (channel != "" && this.tbMainMessageEntry.Text != "")
            {
                Dictionary <string, object> message = new Dictionary <string, object>();
                message.Add("username", username);
                message.Add("channel", channel);
                message.Add("content", this.tbMainMessageEntry.Text);
                message.Add("messagetype", "inboundMessage");

                List <object> encryptedMessage = EMAES.Encrypt(JsonConvert.SerializeObject(message));

                string jsonMessage = JsonConvert.SerializeObject(encryptedMessage);



                NM.SendMessage(jsonMessage);
            }
            this.tbMainMessageEntry.Text = "";
        }
示例#5
0
        private void viewAllUsers_Kick(object sender, RoutedEventArgs e)
        {
            if (lbMainChannelMembers.SelectedItem == null)
            {
            }
            else
            {
                string target = lbMainChannelMembers.SelectedItem.ToString();

                Dictionary <string, object> message = new Dictionary <string, object>();
                message.Add("username", username);
                message.Add("channel", channel);
                message.Add("content", "/kick " + target);
                message.Add("messagetype", "inboundMessage");

                List <object> encryptedMessage = EMAES.Encrypt(JsonConvert.SerializeObject(message));

                string jsonMessage = JsonConvert.SerializeObject(encryptedMessage);
            }
        }
示例#6
0
        private void viewAllUsers_Click(object sender, RoutedEventArgs e)
        {
            if (true)
            {
                Dictionary <string, object> message = new Dictionary <string, object>
                {
                    { "username", "" },
                    { "channel", "" },
                    { "content", "" },
                    { "messagetype", "userReq" }
                };

                List <object> encryptedMessage = EMAES.Encrypt(JsonConvert.SerializeObject(message));

                string jsonMessage = JsonConvert.SerializeObject(encryptedMessage);

                NM.SendMessage(jsonMessage);
            }
            else
            {
                //MessageBox.Show("something else");
            }
        }
示例#7
0
        private void lbMainMessages_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Message messageContent = (Message)this.lbMainMessages.SelectedItem;

            if (messageContent == null)
            {
            }
            else if (messageContent.Content == "[Load more messages]")
            {
                screenMain.timesUpdated += 1;
                Dictionary <string, object> message = new Dictionary <string, object>();

                message.Add("username", "");
                message.Add("channel", channel);
                message.Add("content", timesUpdated);
                message.Add("messagetype", "messageReq");

                List <object> encryptedMessage = EMAES.Encrypt(JsonConvert.SerializeObject(message));

                string jsonMessage = JsonConvert.SerializeObject(encryptedMessage);

                NM.SendMessage(jsonMessage);
            }
        }
示例#8
0
        private void bStartupConn_Click(object sender, RoutedEventArgs e)
        {
            if (config[0] == "true")
            {
                CFM.UpdateSetting("username", Regex.Replace(tbStartupUsername.Text, @" ", ""));
            }
            if (this.lbStartupServers.SelectedItem == null)
            {
                MessageBox.Show("Error - Please select a server");
            }
            else if (this.tbStartupUsername.Text == "")
            {
                MessageBox.Show("Please enter a username");
            }
            else
            {
                ListBoxItem lbi      = this.lbStartupServers.SelectedItem as ListBoxItem;
                string      servName = lbi.Content.ToString();

                List <List <string> > data = DBM.SQLRaw("SELECT * FROM servers WHERE name='" + servName + "'", "servers");
                string servIP    = data[0][2];
                int    servPort  = Convert.ToInt16(data[0][3]);
                bool   connected = NM.Connect(servIP, servPort);

                if (connected == true)
                {
                    KeyGenerator.SecretKey = KeyGenerator.GetUniqueKey(16);

                    Debug.WriteLine(KeyGenerator.SecretKey);


                    Dictionary <string, object> message = new Dictionary <string, object>
                    {
                        { "username", "" },
                        { "channel", "" },
                        { "content", "" },
                        { "messagetype", "keyRequest" }
                    };

                    string jsonMessage = JsonConvert.SerializeObject(message);
                    NM.SendMessage(jsonMessage);

                    byte[] bytes = new byte[20480];

                    int    bytesRec = NM.sender.Receive(bytes); // Receieve "publicKey"
                    string jsonData = Encoding.UTF8.GetString(bytes, 0, bytesRec);

                    message = JsonConvert.DeserializeObject <Dictionary <string, object> >(jsonData);

                    string publicKey  = (string)message["content"];
                    string ciphertext = EMRSA.Encrypt(KeyGenerator.SecretKey, publicKey);

                    message = new Dictionary <string, object>
                    {
                        { "username", "" },
                        { "channel", "" },
                        { "content", ciphertext },
                        { "messagetype", "secretKey" }
                    };

                    jsonMessage = JsonConvert.SerializeObject(message);
                    NM.SendMessage(jsonMessage);

                    bytes = new byte[20480];

                    bytesRec = NM.sender.Receive(bytes); // Recieve "confirmed"
                    jsonData = Encoding.UTF8.GetString(bytes, 0, bytesRec);

                    message = JsonConvert.DeserializeObject <Dictionary <string, object> >(jsonData);



                    NM.RecieveMessage();

                    string username = tbStartupUsername.Text;
                    username = Regex.Replace(username, @" ", "");

                    List <string> connRequest = new List <string> {
                        username, this.tbStartupPassword.Password
                    };

                    message = new Dictionary <string, object>
                    {
                        { "username", "" },
                        { "channel", "" },
                        { "content", connRequest },
                        { "messagetype", "connRequest" }
                    };

                    List <object> encryptedMessage = EMAES.Encrypt(JsonConvert.SerializeObject(message));

                    jsonMessage = JsonConvert.SerializeObject(encryptedMessage);

                    NM.SendMessage(jsonMessage);
                }
            }
        }