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); }
public SCSC_RSA() { rsaTarget = new RSACryptoServiceProvider(); rsaTarget.FromXmlString(ServerSpecificStrings.GetServerRsaPublicKey()); //GetPersonalPublicKey(); //GetPrivateKey(); }
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); }
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); }