示例#1
0
        bool ParseAndAddMessage(string message)
        {
            string sender   = ServerSpecificStrings.ExtractParamValue("sender", message);
            string key      = ServerSpecificStrings.ExtractParamValue("key", message);
            string chatType = ServerSpecificStrings.ExtractParamValue("ChatType", message);

            if (chatType.Contains("personal"))
            {
                if (!String.IsNullOrEmpty(key))
                {
                    StartNewChatSession(sender, key);
                    return(true);
                }
                string text = m_personalCryptoManagers[sender].DecryptWithSessionB64(ServerSpecificStrings.ExtractParamValue("text", message));
                m_viewModel.AddMessage(sender, new ChatMessage(text, sender, DateTime.Now));
                return(true);
            }

            if (chatType.Contains("group"))
            {
                foreach (ChatTab chatTab in m_viewModel.ChatTabs)
                {
                    if (chatTab.Name == sender)
                    {
                        string text   = ServerSpecificStrings.ExtractParamValue("text", message);
                        string author = ServerSpecificStrings.ExtractParamValue("author", message);

                        m_viewModel.AddMessage(sender, new ChatMessage(text, author, DateTime.Now));
                        return(true);
                    }
                }
            }
            return(false);
        }
示例#2
0
 public SCSC_RSA()
 {
     rsaTarget = new RSACryptoServiceProvider();
     rsaTarget.FromXmlString(ServerSpecificStrings.GetServerRsaPublicKey());
     //GetPersonalPublicKey();
     //GetPrivateKey();
 }
示例#3
0
 public bool SendChatMessage(ChatMessage message, string target)
 {
     if (m_personalCryptoManagers.ContainsKey(target))
     {
     }
     else
     {
         string keyBased = CryptoManager.GetAESKeyB64();
         string response = SendMessageAndWaitResponseCrypted(ServerSpecificStrings.SendSessionKeyToUser(m_userName, target, keyBased));
         if (response.Equals(ServerSpecificStrings.MesageOk))
         {
             return(StartNewChatSession(target, keyBased));
         }
     }
     return(false);
 }
示例#4
0
 public bool AddChat(string chatname, string password)
 {
     if (String.IsNullOrEmpty(password))
     {
         string keyBased = CryptoManager.GetAESKeyB64();
         string response = SendMessageAndWaitResponseCrypted(ServerSpecificStrings.SendSessionKeyToUser(m_userName, chatname, keyBased));
         if (response.Equals(ServerSpecificStrings.MesageOk))
         {
             return(StartNewChatSession(chatname, keyBased));
         }
     }
     else
     {
         string response = SendMessageAndWaitResponseCrypted(ServerSpecificStrings.SendMessageToEnterGroup(m_userName, chatname, password));
         if (response.Equals(ServerSpecificStrings.MesageOk))
         {
             return(true);
         }
     }
     return(false);
 }