From e844352aed4602fb0717bcd7dd74b21f385c7eb3 Mon Sep 17 00:00:00 2001 From: KubaZ2 Date: Thu, 18 Jun 2026 20:23:13 +0200 Subject: [PATCH] Stop accessing AesGcm from multiple threads in Aes256GcmRtpSizeEncryption --- .../Gateway/Voice/Encryption/Aes256GcmRtpSizeEncryption.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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(); } }