feat: v8 encryption modes (#264)
This PR adds support for the new AEAD cryptosystems advertised by Discord, AES256-GCM and XChaCha20Poly1305. These schemes will shortly become mandatory, and provider stronger integrity/authentication guarantees over the cleartext portions of any voice packet by correctly specifying additional authenticated data. To provide smooth switchover, we've added basic negotiation over the `CryptoMode`. This ensures that any clients who are manually specifying one of the legacy modes will automatically migrate to `Aes256Gcm` when Discord cease to advertise their original preference. Closes #246. --------- Co-authored-by: Kyle Simpson <kyleandrew.simpson@gmail.com>
This commit is contained in:
@@ -38,13 +38,16 @@ impl AsyncReadOnlySource {
|
||||
}
|
||||
|
||||
/// Gets a reference to the underlying reader.
|
||||
#[allow(clippy::borrowed_box)] // FIXME: Changing this may break compatibility. remedy in v0.5
|
||||
#[must_use]
|
||||
pub fn get_ref(&self) -> &Box<dyn AsyncRead + Send + Sync + Unpin> {
|
||||
&self.stream
|
||||
}
|
||||
|
||||
/// Unwraps this `AsyncReadOnlySource`, returning the underlying reader.
|
||||
#[must_use]
|
||||
pub fn into_inner<R>(self) -> Box<dyn AsyncRead + Send + Sync + Unpin> {
|
||||
self.stream.into()
|
||||
self.stream
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user