Support verification (Est: 35, Cur: 34+2i)
-
Allow users to choose trust strategies -
Don't verify anything -
Must verify everything -
Like Element: if we previously verified a person, we must verify all their sessions
-
-
Add Room::checkUnknownSessions() that determines whether there is Unseen sessions -
Change trust level in Client -
Implement verification processes -
Store verification processes in ClientModel -
user id -> [device id -> <Metadata, Maybe VerificationProcess>]
Where
Metadata = <Status (requested, started, accepted), transaction id, method, timestamp> VerificationProcess = Variant <SASVerificationProcess> SASVerificationProcess = < hash(es), keyAgreementProtocol(s), messageAuthenticationCode(s), shortAuthenticationString = [decimal | emoji], ourKey, theirKey, initiator = [Us | Them], theirCommitment, >
-
-
Receive verification requests (and cancellation), and emit triggers -
VerificationRequested
for m.key.verification.request -
VerificationStarted
with VerificationProcess data for m.key.verification.start -
VerificationAccepted
for m.key.verification.accept -
SASVerificationShouldDisplay
when ready to display SAS -
VerificationCancelled
for m.key.verification.cancel -
VerificationDone
after receiving m.key.verification.mac and passed mac verification
-
-
Send verification requests -
Send verification responses
-