Skip to content

Commit 5bc0074

Browse files
authored
Stop accessing AesGcm from multiple threads in Aes256GcmRtpSizeEncryption (#367)
1 parent 532e99d commit 5bc0074

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

NetCord/Gateway/Voice/Encryption/Aes256GcmRtpSizeEncryption.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ namespace NetCord.Gateway.Voice.Encryption;
66

77
public sealed class Aes256GcmRtpSizeEncryption : IVoiceEncryption
88
{
9+
private AesGcm? _decryption;
910
private AesGcm? _encryption;
1011
private int _nonce;
1112

@@ -60,7 +61,7 @@ public void Decrypt(RtpPacket packet, Span<byte> plaintext)
6061
var tag = payload[^(TagSize + sizeof(int))..^sizeof(int)];
6162
var ad = packet.ExtendedHeader;
6263

63-
_encryption!.Decrypt(nonce, ciphertext, tag, plaintext, ad);
64+
_decryption!.Decrypt(nonce, ciphertext, tag, plaintext, ad);
6465
}
6566

6667
public void Encrypt(ReadOnlySpan<byte> plaintext, RtpPacketWriter packet)
@@ -87,11 +88,13 @@ public void Encrypt(ReadOnlySpan<byte> plaintext, RtpPacketWriter packet)
8788

8889
public void SetKey(byte[] key)
8990
{
91+
_decryption = new(key, TagSize);
9092
_encryption = new(key, TagSize);
9193
}
9294

9395
public void Dispose()
9496
{
97+
_decryption?.Dispose();
9598
_encryption?.Dispose();
9699
}
97100
}

0 commit comments

Comments
 (0)