-
Notifications
You must be signed in to change notification settings - Fork 217
Add e2ee for data channel messages #1595
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
🦋 Changeset detectedLatest commit: 09c8f21 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Quick question @lukasIO, is it necessary to do a key ratchet attempt after data decrypt fails? |
oh, that's a good point. I'll look at adding that! |
…nto lukas/dc-encrypt
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm besides the todo.
const dcEncryptionEnabled = false; | ||
const e2eeOptions = this.options.e2ee; | ||
|
||
// TODO(dc-e2ee): add this back in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this important in this PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this needs to be uncommented once we expose the options.encryption
field.
Because this PR doesn't actually declare that, we leave the logic commented out
export function asEncryptablePacket(packet: DataPacket): EncryptedPacketPayload | undefined { | ||
if ( | ||
packet.value?.case !== 'sipDtmf' && | ||
packet.value?.case !== 'metrics' && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like metrics is encryptable?
livekit/protocol@72e862b#diff-65ff73125c901a7593f1b81ac2dfa070f5d617c4fa3aebb570d36618526c3d89R313
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In theory yes, the question is how that would handled for the dashboard were you'd want to see the metrics
size-limit report 📦
|
depends on livekit/protocol#1127
Most importantly for a frictionless adoption this PR ships decryption support.
This means if at a later stage encryption will be turned on by default, all clients that have the decryption support from this PR will continue to work.