-
-
Notifications
You must be signed in to change notification settings - Fork 624
MatrixRTC: Refactor | Introduce a new Encryption manager (used with experimental to device transport) #4799
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
Conversation
fixup: bad do not commit
73f738b
to
3af1d3e
Compare
3af1d3e
to
b19c7a6
Compare
public getEncryptionKeys(): Map<string, Array<{ key: Uint8Array; timestamp: number }>> { | ||
// This is deprecated should be ignored. Only use by tests? | ||
return new Map(); | ||
} |
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.
The deprecation could already be added to IEncryptionManager
(@deprecated
)
import { type CallMembership } from "./CallMembership.ts"; | ||
import { decodeBase64, encodeBase64 } from "../base64.ts"; | ||
import { type IKeyTransport, type KeyTransportEventListener, KeyTransportEvents } from "./IKeyTransport.ts"; | ||
import { logger as rootLogger, type Logger } from "../logger.ts"; |
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.
please don't use logger.logger
in new code: we should be threading the correct logger through from the parent MatrixClient
.
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.
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.
Did a sync (call) review session.
Open todos:
- solve
reemission
(possible missing keys) situation- either by adding a stop gap key buffer to the new encryption manager
- or by forcing to allocate + subscribe on
joinRoomSession
(passing the matrixKeyProvider (as a keySink interface) tojoinRoomSession
Add a new simplified EncryptionManager that will rotate the key for any membership change (join or leave or same)
There is no specific experimental flag to use it, it will use it for to device transport
Checklist
public
/exported
symbols have accurate TSDoc documentation.