//Estabilish crypto tunnel and save session keys to CryptoManager object static CryptoManager Handshake(Networker networker) { CryptoManager cryptoManager = null; string AESKey = CryptoManager.GetAESKeyB64(); string response = networker.SendMessageAndWaitResponse( CryptoManager.EncryptRSA2B64("message=handshake&key=" + AESKey) ); if (!String.IsNullOrEmpty(response)) { CryptoManager cryptoManagerTest = new CryptoManager(AESKey, response); string responseConnected = ChatManager.SendMessageAndWaitResponseCrypted(ServerSpecificStrings.MesageOk, networker, cryptoManagerTest); if (responseConnected.Equals(ServerSpecificStrings.MesageOk)) { cryptoManager = cryptoManagerTest; } } return(cryptoManager); }
public static string SendMessageAndWaitResponseCrypted(string message, Networker networker, CryptoManager cryptoManager) { string encryptedResponseB64 = networker.SendMessageAndWaitResponse(cryptoManager.EncryptWithSessionB64(message)); return(cryptoManager.DecryptWithSessionB64(encryptedResponseB64)); }