private void ClientMode(Settings settings) { if (settings.publicRSAkey == "") { throw new SettingsException("Client needs public RSA key from server"); } using (var exchange = new AES_KeyExchange(settings)) { _sessionKey = exchange._privateSessionKey; encrypedsessionkey = exchange._publicEnryptedSessionKey; } }
private void ServerMode(Settings settings) { if (RSAPrivateKey == null) { using (var exchange = new AES_KeyExchange(settings)) { RsaPublicKey = exchange._publicKey; RSAPrivateKey = exchange._privateKey; } } else { using (var exchange = new AES_KeyExchange(settings)) { if (settings.encryptedSessionKey.Length >= 0) { throw new SettingsException("Needs a encrypted session key from client"); } exchange._privateKey = RSAPrivateKey; _sessionKey = exchange.DecryptData(Encoding.UTF8.GetBytes(settings.encryptedSessionKey)); } } }