예제 #1
0
        //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);
        }
예제 #2
0
        public static string SendMessageAndWaitResponseCrypted(string message, Networker networker, CryptoManager cryptoManager)
        {
            string encryptedResponseB64 = networker.SendMessageAndWaitResponse(cryptoManager.EncryptWithSessionB64(message));

            return(cryptoManager.DecryptWithSessionB64(encryptedResponseB64));
        }