Commit Graph

4371 Commits

Author SHA1 Message Date
Bruno Windels
ab65745b07 fix tests 2023-03-30 14:45:59 +02:00
Bruno Windels
c2b6c44a68 actually, don't need to pass this, it's already in options 2023-03-30 14:40:58 +02:00
Bruno Windels
74fe7427af sign device or user when mac check out during sas 2023-03-30 14:39:39 +02:00
RMidhunSuresh
b8e282377e Log mac method 2023-03-30 16:09:46 +05:30
RMidhunSuresh
244d56b60f Fix broken tests 2023-03-30 16:09:30 +05:30
RMidhunSuresh
3f5e2af093 Abort SAS when disposing vm 2023-03-30 15:47:25 +05:30
Bruno Windels
e78580c4ef Merge remote-tracking branch 'origin/device-verification-ui' 2023-03-30 11:59:39 +02:00
Bruno Windels
f158197685
Update src/matrix/verification/CrossSigning.ts 2023-03-30 09:37:54 +00:00
Bruno Windels
67cc426b85
Update src/matrix/verification/CrossSigning.ts 2023-03-30 09:37:46 +00:00
Bruno Windels
d8d4f2b61b
Merge pull request #1040 from vector-im/sas-verification
Implement SAS Verification for crosssigning
2023-03-30 11:26:43 +02:00
RMidhunSuresh
ce018781f1 Make code more clear 2023-03-29 15:09:36 +05:30
RMidhunSuresh
7eb1c09a75 Use e2ee account 2023-03-29 15:09:36 +05:30
RMidhunSuresh
9884ee24eb Fix render error 2023-03-29 15:09:36 +05:30
RMidhunSuresh
6a8007fe28 Use switch case 2023-03-29 15:09:36 +05:30
RMidhunSuresh
82692edab5 cancellation can be undefined 2023-03-29 15:09:36 +05:30
RMidhunSuresh
38a82b2cb2 Use getter 2023-03-29 15:09:36 +05:30
RMidhunSuresh
b2d6a78365 Remove property 2023-03-29 15:09:35 +05:30
RMidhunSuresh
6fefc1549e Change method name 2023-03-29 15:09:35 +05:30
R Midhun Suresh
6e054fcb80 Update src/platform/web/ui/css/themes/element/theme.css
Co-authored-by: Bruno Windels <274386+bwindels@users.noreply.github.com>
2023-03-29 15:09:35 +05:30
RMidhunSuresh
9080263bc6 Fix SAS failing 2023-03-29 15:09:35 +05:30
RMidhunSuresh
6e2cd3597f Fix rebase again 2023-03-29 15:09:35 +05:30
RMidhunSuresh
53c0fc2934 Fix rebase 2023-03-29 15:09:35 +05:30
RMidhunSuresh
f822a7a344 Wrap in feature flag 2023-03-29 15:09:35 +05:30
RMidhunSuresh
e0b3e9f4c4 Use optional chaining 2023-03-29 15:09:35 +05:30
RMidhunSuresh
41ebf13156 Some more changes 2023-03-29 15:09:35 +05:30
RMidhunSuresh
5fa4afa021 Combine css styles 2023-03-29 15:09:35 +05:30
RMidhunSuresh
8becb2b605 Import as type 2023-03-29 15:09:35 +05:30
RMidhunSuresh
7e2823be5e Import as types 2023-03-29 15:09:35 +05:30
RMidhunSuresh
ac1a16d548 Remove unused code 2023-03-29 15:09:35 +05:30
RMidhunSuresh
0588d04742 Pass in cancellation object 2023-03-29 15:09:35 +05:30
RMidhunSuresh
d32d0def36 Fix emit 2023-03-29 15:09:35 +05:30
RMidhunSuresh
918ee6bf1d Change log string 2023-03-29 15:09:35 +05:30
RMidhunSuresh
e38040693b Remove "any" type 2023-03-29 15:09:35 +05:30
RMidhunSuresh
cd3e32d4ac Track view-model instance 2023-03-29 15:09:35 +05:30
RMidhunSuresh
8c06582e04 Fix rebase 2023-03-29 15:09:35 +05:30
RMidhunSuresh
15ab7e7a72 Create viewmodel inside start method 2023-03-29 15:09:35 +05:30
RMidhunSuresh
16c144868a Refactor code 2023-03-29 15:09:35 +05:30
RMidhunSuresh
4aa86c6dd2 Support multiple requests 2023-03-29 15:09:34 +05:30
RMidhunSuresh
90ce3f5d86 Remove toast when receiving cancel 2023-03-29 15:08:57 +05:30
RMidhunSuresh
4c6a240e74 WIP: Toast notification 2023-03-29 15:08:54 +05:30
RMidhunSuresh
0f7ef6912f WIP: Add views/view-models 2023-03-29 15:08:08 +05:30
Bruno Windels
8c6c957ff3
Merge pull request #1064 from vector-im/bwindels/console-logging-expand-errors
ConsoleReporter: expand all parents of item that has an error
2023-03-29 00:31:24 +02:00
Bruno Windels
c92fd6069d group imports and import types 2023-03-28 23:33:53 +02:00
Bruno Windels
6c294b1ab1 fix wrong import path that crept in merge again 2023-03-28 23:32:54 +02:00
Bruno Windels
e71ecdd0ba Merge branch 'master' into sas-verification 2023-03-28 18:18:27 +02:00
Bruno Windels
cc4da5c7a7 fix ts errors with latest tsc 4.x version (as used on CI) 2023-03-28 18:14:09 +02:00
Bruno Windels
30c0da3cd7 expand all parents of item that has an error 2023-03-28 12:40:49 +02:00
Bruno Windels
ac9c244315 fix logging after return 2023-03-28 12:39:55 +02:00
RMidhunSuresh
8c1878c671 Merge branch 'master' into sas-verification 2023-03-28 15:48:35 +05:30
Bruno Windels
58f73630b6 fix crossSigning never getting enabled if you haven't fetched your own keys yet 2023-03-28 12:16:20 +02:00
RMidhunSuresh
18d735b771 Merge branch 'master' into sas-verification 2023-03-28 15:19:53 +05:30
Bruno Windels
3b17dc60b5 fix not being able to switch to passphrase mode anymore for key backup 2023-03-28 11:48:36 +02:00
RMidhunSuresh
36fe043fbe Merge branch 'master' into sas-verification 2023-03-28 15:10:40 +05:30
Bruno Windels
1c923a720b fix login not working 2023-03-28 11:33:59 +02:00
RMidhunSuresh
10c92c56f5 Fix tests and code to use new data structure 2023-03-28 12:58:23 +05:30
RMidhunSuresh
3e7a4d95c3 Merge branch 'master' into sas-verification 2023-03-28 12:02:26 +05:30
R Midhun Suresh
aeb5e9d97f
Merge pull request #1058 from vector-im/support-arbitrary-toast-notifications
Refactor calls toast code to support other types of toasts
2023-03-28 11:46:08 +05:30
Eric Eastwood
98d4dfd8e6 Move copy function to platform 2023-03-27 15:37:28 -05:00
Eric Eastwood
acba597e8b Label magic number 2023-03-27 15:31:46 -05:00
Eric Eastwood
371916e68a Merge branch 'master' into madlittlemods/copy-permalink 2023-03-27 15:30:17 -05:00
Bruno Windels
07df6a88a3
Merge pull request #1062 from vector-im/cross-signing/user-shield2
Cross-signing: refactor secret storage loading at startup and show user shield in member details panel
2023-03-27 11:09:51 +02:00
Bruno Windels
22140614ec clear cross-signing object when disabling 4s 2023-03-27 11:06:30 +02:00
Bruno Windels
21729a6049 add newlines between getters 2023-03-27 10:57:26 +02:00
Bruno Windels
6abc918ce8 show shield as icon 2023-03-27 10:54:44 +02:00
Bruno Windels
eaa7de8a55 fix import 2023-03-24 23:16:54 +01:00
Bruno Windels
9383246f8d remove obsolete parameter here as well 2023-03-24 23:14:30 +01:00
Bruno Windels
d170c6f787 crossSigning is an observable value now 2023-03-24 23:10:54 +01:00
Bruno Windels
90faad551a remove txn argument that was removed in previous commit 2023-03-24 23:07:22 +01:00
RMidhunSuresh
2f7e67d48a Change type 2023-03-24 20:32:19 +05:30
RMidhunSuresh
8ea484e862 Inline code 2023-03-24 20:30:48 +05:30
RMidhunSuresh
ae60c30ab8 VerificationEventTypes -> VerificationEventType 2023-03-24 20:27:11 +05:30
RMidhunSuresh
225a778d1a Use deferred 2023-03-24 20:25:19 +05:30
RMidhunSuresh
7c6bcbc09c Add explaining comment 2023-03-24 19:36:27 +05:30
RMidhunSuresh
589bc161f7 Inherit from EventEmitter 2023-03-24 19:33:41 +05:30
RMidhunSuresh
1c09f20778 Pass device-id through options 2023-03-24 19:28:49 +05:30
RMidhunSuresh
321775b800 Rename CancelTypes -> CancelReason 2023-03-24 19:18:31 +05:30
RMidhunSuresh
e2ae5e716e Do not emit for now 2023-03-24 19:17:14 +05:30
Bruno Windels
762a91bd16 don't reuse existing transaction to read from 4S, as webcrypto terminates idb transactions 2023-03-24 13:42:19 +01:00
RMidhunSuresh
120c93dceb Merge branch 'support-arbitrary-toast-notifications' into sas-verification 2023-03-23 16:42:38 +05:30
RMidhunSuresh
93d37aeb93
Create views based on viewmodel 2023-03-22 15:05:58 +05:30
RMidhunSuresh
a1086a7139
Add support for arbitrary notifications 2023-03-22 14:16:02 +05:30
Bruno Windels
dd59f37dce WIP2 2023-03-21 18:24:46 +01:00
RMidhunSuresh
9d8c045c10
Move import up 2023-03-21 21:47:25 +05:30
RMidhunSuresh
ed9fc14f23
Fix import 2023-03-21 21:46:46 +05:30
RMidhunSuresh
610bbcc1ae
Remove code from room vm 2023-03-15 21:19:00 +05:30
RMidhunSuresh
cd9b3406cd
Refactor Channel 2023-03-15 16:30:14 +05:30
RMidhunSuresh
fc6e56b0ad
Pass log last 2023-03-15 14:36:14 +05:30
RMidhunSuresh
190465918e
Remove comment 2023-03-15 14:07:07 +05:30
RMidhunSuresh
672b0ac13d
Refactor SASVerification class 2023-03-15 00:31:23 +05:30
RMidhunSuresh
a5743e868e
Refactor VerifyMacStage 2023-03-15 00:12:33 +05:30
RMidhunSuresh
ed70feb316
Refactor CalculateSASStage
- Expose emoji from stage
- Await promise that resolves when emoji is matched
- Modify tests
2023-03-14 23:58:49 +05:30
RMidhunSuresh
d41746e8b7
Refactor SendAcceptVerificationStage 2023-03-14 23:25:00 +05:30
RMidhunSuresh
d60214da10
Fix string in logger 2023-03-14 23:02:27 +05:30
RMidhunSuresh
f54a4d107e
Refactor SendReadyStage
- Change log identifier string
2023-03-14 23:01:03 +05:30
RMidhunSuresh
2cde9b2f33
Refactor SendMacStage
- Convert property to argument
- Remove unnecessary olm type
- Use Channel.getEvent
- Fix ILogItem import
2023-03-14 22:58:05 +05:30
RMidhunSuresh
ec66e88180
Fix comment 2023-03-14 18:07:11 +05:30
RMidhunSuresh
fc867892c6
Fix formatting 2023-03-14 18:05:41 +05:30
RMidhunSuresh
c08e136d25
Add more logging 2023-03-14 17:02:18 +05:30
RMidhunSuresh
8e08916502
Remove magic string 2023-03-14 16:21:29 +05:30
RMidhunSuresh
65c0afb027
Rename class 2023-03-14 15:59:13 +05:30
RMidhunSuresh
d70dd660c5
Refactor code
1. Remove unused properties from base stage
2. Split UserData into fields
3. Write getter for channel prop
2023-03-14 15:42:02 +05:30
RMidhunSuresh
dedf64d011
Base stage class does not need disposable 2023-03-14 14:28:33 +05:30
RMidhunSuresh
806e672806
Convert console.log to logger calls 2023-03-14 14:21:07 +05:30
RMidhunSuresh
fd96d5843d
Throw error if verification was cancelled 2023-03-14 14:13:57 +05:30
RMidhunSuresh
9c82dd7ce3
Refactor code 2023-03-14 00:54:00 +05:30
RMidhunSuresh
720585b8f2
Write unit tests 2023-03-13 21:17:22 +05:30
RMidhunSuresh
2e653d5f76
Write a class that generates fixtures for test 2023-03-13 21:11:40 +05:30
Bruno Windels
780dfeb199 WIP 2023-03-13 09:15:49 +01:00
Bruno Windels
760da6277a remove unused transaction 2023-03-09 09:08:01 +01:00
RMidhunSuresh
1f8fb93ba2
Implement timeout and cancel 2023-03-07 23:38:04 +05:30
Bruno Windels
a69246fb5a return undefined if we don't have the signing key 2023-03-07 14:40:11 +01:00
RMidhunSuresh
0b51fc0168
Throw specific error when cancelled 2023-03-07 17:27:27 +05:30
Bruno Windels
a065189836 delay signature validation of cross-signing keys until calculating trust
always store them, if not we'll think that the user hasn't uploaded
the cross-signing keys if we don't store them in spite of invalid or
missing signature.
2023-03-07 11:00:52 +01:00
Bruno Windels
f1ecad5b58 adjust UI to more detailed trust level 2023-03-07 10:54:07 +01:00
Bruno Windels
bae18c037f return enum explaining user trust level rather than boolean 2023-03-07 10:53:32 +01:00
RMidhunSuresh
b3cc07cf1e
Accept verification from device message 2023-03-06 16:22:45 +05:30
RMidhunSuresh
4540ba2f37
Implement send ready stage 2023-03-05 15:25:09 +05:30
RMidhunSuresh
c9b462c803
Implement mac and done stage 2023-03-04 22:30:53 +05:30
Bruno Windels
e00d02a599 fix ts error 2023-03-03 16:18:30 +01:00
Bruno Windels
149f187904 expose user trust in member panel 2023-03-03 15:22:02 +01:00
Bruno Windels
4c7f784911 implement verifying signaturs for user trust (green shield/red shield) 2023-03-03 15:21:37 +01:00
Bruno Windels
774efc17d9 extract method to sign key, as most params are always the same 2023-03-03 12:15:54 +01:00
Bruno Windels
c2ee824c1c fix lint warning from previous cross-signing PR 2023-03-03 12:03:31 +01:00
Bruno Windels
eff495c36d also delete old crossSigningKeys field on userIdentities 2023-03-03 11:57:29 +01:00
Bruno Windels
08984ad1bc log amount of marked user identities in migration 2023-03-03 11:57:15 +01:00
Bruno Windels
2563aa23e1 actually write modified values in migration 2023-03-03 11:56:51 +01:00
Bruno Windels
c747d5f228 rename deviceTrackingStatus to keysTrackingStatus
as this field also reflects the tracking status of the cross-signing
keys for a given user.
2023-03-03 11:34:09 +01:00
Bruno Windels
7d806b03b3 mark all existing user identities outdated as cross-signing keys missing 2023-03-03 11:33:19 +01:00
Bruno Windels
1dc3acad03 use enum for device tracking status 2023-03-02 17:32:46 +01:00
Bruno Windels
9789e5881d cleanup 2023-03-02 17:29:30 +01:00
Bruno Windels
fa662db70b show cross-sign user option in right panel 2023-03-02 17:16:53 +01:00
Bruno Windels
3a303ff84d cleanup comments 2023-03-02 17:15:05 +01:00
Bruno Windels
34b113b26e don't upload pre-existing signatures when signing 2023-03-02 17:14:50 +01:00
Bruno Windels
504d869b38 provide correct user id for signing key owner when signing other user 2023-03-02 17:14:27 +01:00
Bruno Windels
20a6fcda72 don't allow signing own user 2023-03-02 17:14:05 +01:00
Bruno Windels
4dce93e5ef make sure the key property doesn't leak out of the storage layer
as it ends up in the value we're signing and uploading,
corrupting the signature
2023-03-02 17:13:15 +01:00
Bruno Windels
a9412aa57c fix import paths after TS conversion 2023-03-02 17:12:56 +01:00
Bruno Windels
daf66e1d6c implement signing users and other devices 2023-03-02 15:02:42 +01:00
RMidhunSuresh
683e055757
WIP 2023-03-01 16:59:24 +05:30
Bruno Windels
b8fb2b6df1 Store device keys in format needed to sign/verify, convert to TS
In order to sign and verify signatures of design keys, we need
to have them in the format as they are uploaded and downloaded
from the homeserver. So, like the cross-signing keys, we store
them in locally in the same format to avoid constant convertions.

I also renamed deviceIdentities to deviceKeys, analogue to
crossSigningKeys. In order to prevent mistakes in this refactor,
I also converted DeviceTracker to typescript.
2023-02-28 17:25:01 +01:00
Bruno Windels
151090527b Store cross-signing keys in format as returned from server, in separate store
This will make it easier to sign and verify signatures with these keys,
as the signed value needs to have the same layout when signing and
for every verification.
2023-02-28 14:07:55 +01:00
RMidhunSuresh
b6041cd20c
Channel WIP 2023-02-27 23:33:05 +05:30
RMidhunSuresh
e46b760fb7
Remove log 2023-02-27 23:32:05 +05:30
RMidhunSuresh
ed4eb9bde0
Emit event from DeviceMessageHandler 2023-02-27 23:31:30 +05:30
RMidhunSuresh
75688cf6f3
REFACTOR: Extract methods and functions 2023-02-22 13:01:58 +05:30
RMidhunSuresh
af918e3df0
Remove comment 2023-02-22 13:01:34 +05:30
RMidhunSuresh
5e1dca946b
Free olmSas after all stages have completed 2023-02-22 13:00:36 +05:30
RMidhunSuresh
3321859ae6
Add more stages 2023-02-22 12:03:03 +05:30
RMidhunSuresh
e6ea003bef
WIP +1 2023-02-17 17:18:17 +05:30
RMidhunSuresh
d81864e901
WIP 2023-02-16 21:41:33 +05:30
RMidhunSuresh
772d91f924
WIP 2023-02-16 11:27:43 +05:30
Bruno Windels
1113f2ffb9
Merge pull request #1036 from vector-im/cross-signing/self-sign
Allow to sign own device once MSK is trusted
2023-02-14 16:36:29 +01:00
Bruno Windels
2a6baef259
Merge pull request #1031 from vector-im/cross-signing/verify-msk
Cross-signing: verify MSK with 4S security key
2023-02-14 16:32:52 +01:00
Bruno Windels
7519878264 add stronger warning to enable cross-signing 2023-02-14 16:30:25 +01:00
Bruno Windels
71d7dcb0ca store self-signing keys on userIdentity 2023-02-14 16:26:55 +01:00
Bruno Windels
c7a2b4dc2e expose self-signing in settings UI 2023-02-14 16:26:02 +01:00
Bruno Windels
088fcdc77b logging type definition fix 2023-02-14 16:25:46 +01:00
Bruno Windels
693640d222 implement signing our own device 2023-02-14 16:25:32 +01:00
Bruno Windels
103ae1e789 fix unit tests 2023-02-14 13:24:26 +01:00
Bruno Windels
45d45cb690 show MSK trust status in settings after enabling key backup 2023-02-14 12:13:07 +01:00
Bruno Windels
fdce098245 create cross-signing class, support deriving msk from 4s stored privkey
and check if they match the publicized one and then trust it
2023-02-14 12:12:20 +01:00
Bruno Windels
ce5b27f4b8 support fetching the master signing key for a user in the device tracker 2023-02-14 12:11:59 +01:00
Bruno Windels
2043541f56 fix missing free in key backup 2023-02-10 17:36:14 +01:00
Bruno Windels
ab67a28c74 add feature flag for cross-signing 2023-02-10 17:35:45 +01:00
Bruno Windels
3bb0d26d3f fix missing msgtype on emote 2023-02-10 16:17:47 +01:00
Bruno Windels
c3da2acfb2 adjust margin on features UI 2023-02-10 14:11:45 +01:00
Bruno Windels
7c1117ddd4 keep token in memory to compare stored token with after /messages
and don't look at response.start as it can be different as
the format can change after a server upgrade while
(still pointing at the same location)
2023-02-10 14:08:35 +01:00
Bruno Windels
9e28bdcc88 don't try to fill when we had an error before 2023-02-10 12:35:02 +01:00
Bruno Windels
7777ef83dd adopt errorViewModel in GapTile to report errors 2023-02-10 12:34:47 +01:00
Bruno Windels
c946319891 remove double experimal warning in UI 2023-02-10 11:33:24 +01:00
Bruno Windels
83d1ea05a1 fix unit test 2023-02-10 11:22:13 +01:00
Bruno Windels
da1b7d4108 UI in settings for toggling features 2023-02-10 09:27:18 +01:00
Bruno Windels
bb477b6aad fix not passing features to client construction 2023-02-10 08:48:31 +01:00
Bruno Windels
f9fa59609f fix local variable usage after extracting method 2023-02-10 08:48:10 +01:00
Bruno Windels
4a46c98d12 don't assume the call handler is always set in device message handler 2023-02-09 11:57:45 +01:00
Bruno Windels
22a8182266 feature-gate calls everywhere in the app 2023-02-09 11:57:30 +01:00
Bruno Windels
f86663fe7b pass features to tilesCreator (and all options really for comfort) 2023-02-09 11:56:22 +01:00
Bruno Windels
d5929d9ebe make features available in Client and Session 2023-02-09 11:53:39 +01:00
Bruno Windels
f65b43f612 load features at startup and pass them along in all view models 2023-02-09 11:53:11 +01:00
Bruno Windels
c4944599cf add feature set to keep track of enabled features
already include the calls feature
2023-02-09 11:52:00 +01:00
Bruno Windels
fe5794a4bc don't clear options as error boundary may fire after dispose 2023-02-07 23:26:02 +01:00
Bruno Windels
928419502e no point in ref'ing an item on its parent 2023-02-07 22:44:43 +01:00
Bruno Windels
93661690e1 fix bg color of calls 2023-02-07 22:18:13 +01:00
Bruno Windels
b6c7bbb05c
Merge pull request #1016 from vector-im/calls-fix-1012
Calls: Emit update after sending signalling message + other error fixes
2023-02-07 22:03:36 +01:00
Bruno Windels
dd89aab516 fix typescript error in unit test 2023-02-07 20:19:06 +01:00
Bruno Windels
5ad3f0c671 look at signalingState when even is fired, not later when it may have changed 2023-02-07 20:11:35 +01:00
Bruno Windels
3ff91639c6 log signalingState on negotiationneeded 2023-02-07 20:07:16 +01:00
Bruno Windels
5c2889aa5b show DOM errors on the member error boundary rather than one for call
gives a bit more context
2023-02-07 19:59:13 +01:00
Bruno Windels
7114428b23 now that the dom handler uses an error boundary, don't need this anymore 2023-02-07 19:57:42 +01:00
Bruno Windels
a49c9c17c0
Merge pull request #1017 from vector-im/bwindels/fix-1015
Improve `seq` handling to prevent queue blocking for call signalling messages
2023-02-07 19:50:55 +01:00
Bruno Windels
0fa9d193d9 fix comment typo 2023-02-07 19:42:43 +01:00
Bruno Windels
7f9d64c972 improve logging of arrival of to_device call signalling messages 2023-02-07 19:42:20 +01:00
Bruno Windels
ddb5865ccb actually forgot to dispose peerCall here when replacing 2023-02-07 15:00:56 +01:00
Bruno Windels
02108c69dc remove debug logging 2023-02-07 15:00:45 +01:00
Bruno Windels
f67fb7add6 add unit test for this particular error case 2023-02-07 14:58:57 +01:00
Bruno Windels
e39dd176a4 remove debug logging 2023-02-07 14:58:32 +01:00
RMidhunSuresh
496dfee593
Catch error in promise chain 2023-02-07 19:25:48 +05:30
RMidhunSuresh
6d800ff359
WIP 2023-02-07 19:15:36 +05:30
Bruno Windels
5f4ad30d03 don't block if it does happen that we have processed a message too early
allow dequeueing if the first seq in the queue is actually lower
than what we already processed. Normally should not happen,
but the bug fixed in the previous commit was aggravated by
this behavior, so be more lenient here.
2023-02-07 14:43:28 +01:00
Bruno Windels
39e9a43a1b be strict about the first seq being 0
otherwise if first 2 messages are delivered in reverse order,
the queue gets blocked
2023-02-07 14:42:44 +01:00