feat: implement DAVE end-to-end encryption (#10921)

* feat(voice): implement DAVE E2EE encryption

* chore(voice): update dependencies

* chore(voice): update debug logs and dependency report

* feat(voice): emit and propogate DAVESession errors

* chore(voice): export dave session things

* chore(voice): move expiry numbers to consts

* feat(voice): keep track of and pass connected client IDs

* fix(voice): dont set initial transitions as pending

* feat(voice): dave encryption

* chore(voice): directly reference package name in import

* feat(voice): dave decryption

* chore(deps): update @snazzah/davey

* fix(voice): handle decryption failure tolerance

* fix(voice): move and update decryption failure logic to DAVESession

* feat(voice): propogate voice privacy code

* fix(voice): actually send a transition ready when ready

* feat(voice): propogate transitions and verification code function

* feat(voice): add dave options

* chore: resolve format change requests

* chore: emit debug messages on bad transitions

* chore: downgrade commit/welcome errors as debug messages

* chore: resolve formatting change requests

* chore: update davey dependency

* chore: add types for underlying dave session

* fix: fix rebase

* chore: change "ID" to "id" in typedocs

---------

Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>
This commit is contained in:
Snazzah
2025-07-13 13:02:56 -04:00
committed by GitHub
parent 3cff4d7412
commit 8bdea6232b
14 changed files with 976 additions and 143 deletions

View File

@@ -344,7 +344,11 @@ describe('VoiceConnection#configureNetworking', () => {
sessionId: state.session_id,
userId: state.user_id,
},
false,
{
daveEncryption: true,
debug: false,
decryptionFailureTolerance: undefined,
},
);
expect(voiceConnection.state).toMatchObject({
status: VoiceConnectionStatus.Connecting,