mirror of
https://github.com/oliverbooth/TcpDotNet
synced 2024-10-18 05:16:10 +00:00
Switch to AES encryption prior to sending session token
This commit is contained in:
parent
f7a546850c
commit
a0d686109c
@ -32,10 +32,9 @@ internal sealed class EncryptionResponsePacketHandler : PacketHandler<Encryption
|
||||
client.Aes = CryptographyUtils.GenerateAes(key);
|
||||
client.State = ClientState.Connected;
|
||||
client.ParentListener.OnClientConnect(client);
|
||||
client.UseEncryption = true;
|
||||
|
||||
var sessionPacket = new SessionExchangePacket(client.SessionId);
|
||||
await client.SendPacketAsync(sessionPacket, cancellationToken);
|
||||
|
||||
client.UseEncryption = true;
|
||||
}
|
||||
}
|
||||
|
@ -114,13 +114,16 @@ public sealed class ProtocolClient : BaseClientNode
|
||||
var key = new byte[128];
|
||||
using var rng = new RNGCryptoServiceProvider();
|
||||
rng.GetBytes(key);
|
||||
|
||||
|
||||
Aes = CryptographyUtils.GenerateAes(key);
|
||||
var encryptionResponse = new EncryptionResponsePacket(encryptedPayload, rsa.Encrypt(key, true));
|
||||
var sessionPacket = await SendAndReceiveAsync<EncryptionResponsePacket, SessionExchangePacket>(encryptionResponse, cancellationToken);
|
||||
byte[] aesKey = rsa.Encrypt(key, true);
|
||||
var encryptionResponse = new EncryptionResponsePacket(encryptedPayload, aesKey);
|
||||
await SendPacketAsync(encryptionResponse, cancellationToken);
|
||||
|
||||
UseEncryption = true;
|
||||
var sessionPacket = await WaitForPacketAsync<SessionExchangePacket>(cancellationToken);
|
||||
|
||||
SessionId = sessionPacket.Session;
|
||||
UseEncryption = true;
|
||||
State = ClientState.Connected;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user