diff --git a/Source/BNetServer/BNetServer.csproj b/Source/BNetServer/BNetServer.csproj
index d18f4effa..5eb6a9878 100644
--- a/Source/BNetServer/BNetServer.csproj
+++ b/Source/BNetServer/BNetServer.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.2
+ netcoreapp3.1
BNetServer.Server
Red.ico
@@ -19,5 +19,4 @@
PreserveNewest
-
diff --git a/Source/Framework/Cryptography/PacketCrypt.cs b/Source/Framework/Cryptography/PacketCrypt.cs
index df994f882..3aeca256e 100644
--- a/Source/Framework/Cryptography/PacketCrypt.cs
+++ b/Source/Framework/Cryptography/PacketCrypt.cs
@@ -15,7 +15,6 @@
* along with this program. If not, see .
*/
-using Security.Cryptography;
using System;
using System.Security.Cryptography;
@@ -31,46 +30,25 @@ namespace Framework.Cryptography
if (IsInitialized)
throw new InvalidOperationException("PacketCrypt already initialized!");
- _clientDecrypt = new AuthenticatedAesCng();
- _clientDecrypt.Key = key;
- _clientDecrypt.CngMode = CngChainingMode.Gcm;
- _clientDecrypt.TagSize = 96;
-
- _serverEncrypt = new AuthenticatedAesCng();
- _serverEncrypt.Key = key;
- _serverEncrypt.CngMode = CngChainingMode.Gcm;
- _serverEncrypt.TagSize = 96;
+ _serverEncrypt = new AesGcm(key);
+ _clientDecrypt = new AesGcm(key);
IsInitialized = true;
}
- public bool Encrypt(ref byte[] data, int length, ref byte[] tag)
+ public bool Encrypt(ref byte[] data, ref byte[] tag)
{
if (IsInitialized)
- {
- _serverEncrypt.IV = BitConverter.GetBytes(_serverCounter).Combine(BitConverter.GetBytes(0x52565253));
-
- using (IAuthenticatedCryptoTransform encryptor = _serverEncrypt.CreateAuthenticatedEncryptor())
- {
- data = encryptor.TransformFinalBlock(data, 0, length);
- tag = encryptor.GetTag();
- }
- }
+ _serverEncrypt.Encrypt(BitConverter.GetBytes(_serverCounter).Combine(BitConverter.GetBytes(0x52565253)), data, data, tag);
++_serverCounter;
return true;
}
- public bool Decrypt(ref byte[] data, int length, byte[] tag)
+ public bool Decrypt(ref byte[] data, byte[] tag)
{
if (IsInitialized)
- {
- _clientDecrypt.IV = BitConverter.GetBytes(_clientCounter).Combine(BitConverter.GetBytes(0x544E4C43));
- _clientDecrypt.Tag = tag;
-
- using (ICryptoTransform decryptor = _clientDecrypt.CreateDecryptor())
- data = decryptor.TransformFinalBlock(data, 0, length);
- }
+ _clientDecrypt.Decrypt(BitConverter.GetBytes(_clientCounter).Combine(BitConverter.GetBytes(0x544E4C43)), data, tag, data);
++_clientCounter;
return true;
@@ -83,8 +61,8 @@ namespace Framework.Cryptography
public bool IsInitialized { get; set; }
- AuthenticatedAesCng _clientDecrypt;
- AuthenticatedAesCng _serverEncrypt;
+ AesGcm _serverEncrypt;
+ AesGcm _clientDecrypt;
ulong _clientCounter;
ulong _serverCounter;
}
diff --git a/Source/Framework/Framework.csproj b/Source/Framework/Framework.csproj
index 91d9cc2ef..047fb819c 100644
--- a/Source/Framework/Framework.csproj
+++ b/Source/Framework/Framework.csproj
@@ -1,7 +1,7 @@
- netstandard2.0
+ netstandard2.1
x64
true
@@ -11,11 +11,9 @@
-
-
-
-
-
+
+
+
diff --git a/Source/Game/Game.csproj b/Source/Game/Game.csproj
index 12ce67d3c..61028b248 100644
--- a/Source/Game/Game.csproj
+++ b/Source/Game/Game.csproj
@@ -1,7 +1,7 @@
- netstandard2.0
+ netstandard2.1
x64
true
7.3
diff --git a/Source/Game/Network/WorldSocket.cs b/Source/Game/Network/WorldSocket.cs
index 4c499cc8e..acdb07e83 100644
--- a/Source/Game/Network/WorldSocket.cs
+++ b/Source/Game/Network/WorldSocket.cs
@@ -157,7 +157,7 @@ namespace Game.Network
var data = new byte[header.Size];
Buffer.BlockCopy(GetReceiveBuffer(), 16, data, 0, header.Size);
- if (!_worldCrypt.Decrypt(ref data, header.Size, header.Tag))
+ if (!_worldCrypt.Decrypt(ref data, header.Tag))
{
Log.outError(LogFilter.Network, $"WorldSocket.ReadHandler(): client {GetRemoteIpAddress().ToString()} failed to decrypt packet (size: {header.Size})");
return;
@@ -315,7 +315,7 @@ namespace Game.Network
PacketHeader header = new PacketHeader();
header.Size = packetSize;
- _worldCrypt.Encrypt(ref data, header.Size, ref header.Tag);
+ _worldCrypt.Encrypt(ref data, ref header.Tag);
ByteBuffer byteBuffer = new ByteBuffer();
header.Write(byteBuffer);
diff --git a/Source/Scripts/Scripts.csproj b/Source/Scripts/Scripts.csproj
index 2ec347b4d..818fc7602 100644
--- a/Source/Scripts/Scripts.csproj
+++ b/Source/Scripts/Scripts.csproj
@@ -1,6 +1,6 @@
- netstandard2.0
+ netstandard2.1
x64
diff --git a/Source/WorldServer/WorldServer.csproj b/Source/WorldServer/WorldServer.csproj
index a4b710641..42c98386e 100644
--- a/Source/WorldServer/WorldServer.csproj
+++ b/Source/WorldServer/WorldServer.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.2
+ netcoreapp3.1
Blue.ico
WorldServer.Server