diff --git a/NetCord/Gateway/Voice/Encryption/Aes256GcmRtpSizeEncryption.cs b/NetCord/Gateway/Voice/Encryption/Aes256GcmRtpSizeEncryption.cs index e5595402..d43a13b6 100644 --- a/NetCord/Gateway/Voice/Encryption/Aes256GcmRtpSizeEncryption.cs +++ b/NetCord/Gateway/Voice/Encryption/Aes256GcmRtpSizeEncryption.cs @@ -6,6 +6,7 @@ namespace NetCord.Gateway.Voice.Encryption; public sealed class Aes256GcmRtpSizeEncryption : IVoiceEncryption { + private AesGcm? _decryption; private AesGcm? _encryption; private int _nonce; @@ -60,7 +61,7 @@ public void Decrypt(RtpPacket packet, Span plaintext) var tag = payload[^(TagSize + sizeof(int))..^sizeof(int)]; var ad = packet.ExtendedHeader; - _encryption!.Decrypt(nonce, ciphertext, tag, plaintext, ad); + _decryption!.Decrypt(nonce, ciphertext, tag, plaintext, ad); } public void Encrypt(ReadOnlySpan plaintext, RtpPacketWriter packet) @@ -87,11 +88,13 @@ public void Encrypt(ReadOnlySpan plaintext, RtpPacketWriter packet) public void SetKey(byte[] key) { + _decryption = new(key, TagSize); _encryption = new(key, TagSize); } public void Dispose() { + _decryption?.Dispose(); _encryption?.Dispose(); } }