From 341f8829d67b197ece20fe1cb0da929486665853 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Fri, 24 Jul 2020 23:44:04 +0300 Subject: Add very crude interactive verification support --- ui/commands.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'ui/commands.go') diff --git a/ui/commands.go b/ui/commands.go index b406278..a10445f 100644 --- a/ui/commands.go +++ b/ui/commands.go @@ -472,7 +472,7 @@ func cmdDevices(cmd *Command) { } var buf strings.Builder for _, device := range devices { - _, _ = fmt.Fprintf(&buf, "%s (%s) - %s - %s\n", device.DeviceID, device.Name, device.Trust.String(), device.Fingerprint()) + _, _ = fmt.Fprintf(&buf, "%s (%s) - %s\n Fingerprint: %s\n", device.DeviceID, device.Name, device.Trust.String(), device.Fingerprint()) } resp := buf.String() cmd.Reply(resp[:len(resp)-1]) @@ -499,7 +499,17 @@ func cmdVerify(cmd *Command) { return } if len(cmd.Args) == 2 { - cmd.Reply("Interactive verification UI is not yet implemented") + mach := cmd.Matrix.Crypto().(*crypto.OlmMachine) + timeout := 60 * time.Second + err := mach.NewSASVerificationWith(device, "", timeout, true) + if err != nil { + cmd.Reply("Failed to start interactive verification: %v", err) + return + } + modal := NewVerificationModal(cmd.MainView, device, timeout) + mach.VerifySASEmojisMatch = modal.VerifyEmojisMatch + mach.VerifySASNumbersMatch = modal.VerifyNumbersMatch + cmd.MainView.ShowModal(modal) } else { fingerprint := strings.Join(cmd.Args[2:], "") if string(device.SigningKey) != fingerprint { -- cgit v1.2.3