@unwanted/matrix-sdk-mini 34.12.0-2 → 34.12.0-3
Sign up to get free protection for your applications and to get access to all the features.
- package/git-revision.txt +1 -1
- package/lib/@types/global.d.js +0 -2
- package/lib/@types/global.d.js.map +1 -1
- package/lib/browser-index.d.ts.map +1 -1
- package/lib/browser-index.js +0 -11
- package/lib/browser-index.js.map +1 -1
- package/lib/client.d.ts +2 -1176
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +346 -2717
- package/lib/client.js.map +1 -1
- package/lib/embedded.d.ts +0 -22
- package/lib/embedded.d.ts.map +1 -1
- package/lib/embedded.js +24 -166
- package/lib/embedded.js.map +1 -1
- package/lib/event-mapper.d.ts.map +1 -1
- package/lib/event-mapper.js +0 -4
- package/lib/event-mapper.js.map +1 -1
- package/lib/matrix.d.ts +0 -19
- package/lib/matrix.d.ts.map +1 -1
- package/lib/matrix.js +1 -26
- package/lib/matrix.js.map +1 -1
- package/lib/models/MSC3089Branch.d.ts.map +1 -1
- package/lib/models/MSC3089Branch.js +0 -3
- package/lib/models/MSC3089Branch.js.map +1 -1
- package/lib/models/event.d.ts +0 -94
- package/lib/models/event.d.ts.map +1 -1
- package/lib/models/event.js +0 -274
- package/lib/models/event.js.map +1 -1
- package/lib/models/poll.d.ts.map +1 -1
- package/lib/models/poll.js +1 -5
- package/lib/models/poll.js.map +1 -1
- package/lib/models/relations-container.d.ts.map +1 -1
- package/lib/models/relations-container.js +1 -7
- package/lib/models/relations-container.js.map +1 -1
- package/lib/models/relations.d.ts +0 -1
- package/lib/models/relations.d.ts.map +1 -1
- package/lib/models/relations.js +0 -8
- package/lib/models/relations.js.map +1 -1
- package/lib/models/room-state.d.ts.map +1 -1
- package/lib/models/room-state.js +10 -26
- package/lib/models/room-state.js.map +1 -1
- package/lib/models/room.d.ts +0 -18
- package/lib/models/room.d.ts.map +1 -1
- package/lib/models/room.js +94 -148
- package/lib/models/room.js.map +1 -1
- package/lib/models/thread.d.ts.map +1 -1
- package/lib/models/thread.js +0 -1
- package/lib/models/thread.js.map +1 -1
- package/lib/sliding-sync-sdk.d.ts +2 -3
- package/lib/sliding-sync-sdk.d.ts.map +1 -1
- package/lib/sliding-sync-sdk.js +41 -90
- package/lib/sliding-sync-sdk.js.map +1 -1
- package/lib/sync.d.ts +0 -12
- package/lib/sync.d.ts.map +1 -1
- package/lib/sync.js +1 -73
- package/lib/sync.js.map +1 -1
- package/lib/testing.d.ts +0 -48
- package/lib/testing.d.ts.map +1 -1
- package/lib/testing.js +0 -105
- package/lib/testing.js.map +1 -1
- package/package.json +1 -3
- package/src/@types/global.d.ts +0 -3
- package/src/browser-index.ts +0 -11
- package/src/client.ts +57 -2732
- package/src/embedded.ts +3 -130
- package/src/event-mapper.ts +0 -4
- package/src/matrix.ts +0 -28
- package/src/models/MSC3089Branch.ts +0 -3
- package/src/models/event.ts +0 -289
- package/src/models/poll.ts +0 -6
- package/src/models/relations-container.ts +1 -8
- package/src/models/relations.ts +0 -8
- package/src/models/room-state.ts +2 -8
- package/src/models/room.ts +0 -62
- package/src/models/thread.ts +0 -1
- package/src/sliding-sync-sdk.ts +2 -72
- package/src/sync.ts +1 -98
- package/src/testing.ts +0 -108
- package/lib/@types/crypto.d.ts +0 -47
- package/lib/@types/crypto.d.ts.map +0 -1
- package/lib/@types/crypto.js +0 -1
- package/lib/@types/crypto.js.map +0 -1
- package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
- package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
- package/lib/common-crypto/CryptoBackend.d.ts +0 -240
- package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
- package/lib/common-crypto/CryptoBackend.js +0 -73
- package/lib/common-crypto/CryptoBackend.js.map +0 -1
- package/lib/common-crypto/key-passphrase.d.ts +0 -14
- package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
- package/lib/common-crypto/key-passphrase.js +0 -33
- package/lib/common-crypto/key-passphrase.js.map +0 -1
- package/lib/crypto/CrossSigning.d.ts +0 -184
- package/lib/crypto/CrossSigning.d.ts.map +0 -1
- package/lib/crypto/CrossSigning.js +0 -718
- package/lib/crypto/CrossSigning.js.map +0 -1
- package/lib/crypto/DeviceList.d.ts +0 -216
- package/lib/crypto/DeviceList.d.ts.map +0 -1
- package/lib/crypto/DeviceList.js +0 -892
- package/lib/crypto/DeviceList.js.map +0 -1
- package/lib/crypto/EncryptionSetup.d.ts +0 -152
- package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
- package/lib/crypto/EncryptionSetup.js +0 -356
- package/lib/crypto/EncryptionSetup.js.map +0 -1
- package/lib/crypto/OlmDevice.d.ts +0 -457
- package/lib/crypto/OlmDevice.d.ts.map +0 -1
- package/lib/crypto/OlmDevice.js +0 -1241
- package/lib/crypto/OlmDevice.js.map +0 -1
- package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
- package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
- package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
- package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
- package/lib/crypto/RoomList.d.ts +0 -26
- package/lib/crypto/RoomList.d.ts.map +0 -1
- package/lib/crypto/RoomList.js +0 -71
- package/lib/crypto/RoomList.js.map +0 -1
- package/lib/crypto/SecretSharing.d.ts +0 -24
- package/lib/crypto/SecretSharing.d.ts.map +0 -1
- package/lib/crypto/SecretSharing.js +0 -194
- package/lib/crypto/SecretSharing.js.map +0 -1
- package/lib/crypto/SecretStorage.d.ts +0 -55
- package/lib/crypto/SecretStorage.d.ts.map +0 -1
- package/lib/crypto/SecretStorage.js +0 -118
- package/lib/crypto/SecretStorage.js.map +0 -1
- package/lib/crypto/aes.d.ts +0 -6
- package/lib/crypto/aes.d.ts.map +0 -1
- package/lib/crypto/aes.js +0 -24
- package/lib/crypto/aes.js.map +0 -1
- package/lib/crypto/algorithms/base.d.ts +0 -156
- package/lib/crypto/algorithms/base.d.ts.map +0 -1
- package/lib/crypto/algorithms/base.js +0 -187
- package/lib/crypto/algorithms/base.js.map +0 -1
- package/lib/crypto/algorithms/index.d.ts +0 -4
- package/lib/crypto/algorithms/index.d.ts.map +0 -1
- package/lib/crypto/algorithms/index.js +0 -20
- package/lib/crypto/algorithms/index.js.map +0 -1
- package/lib/crypto/algorithms/megolm.d.ts +0 -385
- package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
- package/lib/crypto/algorithms/megolm.js +0 -1822
- package/lib/crypto/algorithms/megolm.js.map +0 -1
- package/lib/crypto/algorithms/olm.d.ts +0 -5
- package/lib/crypto/algorithms/olm.d.ts.map +0 -1
- package/lib/crypto/algorithms/olm.js +0 -299
- package/lib/crypto/algorithms/olm.js.map +0 -1
- package/lib/crypto/api.d.ts +0 -32
- package/lib/crypto/api.d.ts.map +0 -1
- package/lib/crypto/api.js +0 -22
- package/lib/crypto/api.js.map +0 -1
- package/lib/crypto/backup.d.ts +0 -227
- package/lib/crypto/backup.d.ts.map +0 -1
- package/lib/crypto/backup.js +0 -824
- package/lib/crypto/backup.js.map +0 -1
- package/lib/crypto/crypto.d.ts +0 -3
- package/lib/crypto/crypto.d.ts.map +0 -1
- package/lib/crypto/crypto.js +0 -19
- package/lib/crypto/crypto.js.map +0 -1
- package/lib/crypto/dehydration.d.ts +0 -34
- package/lib/crypto/dehydration.d.ts.map +0 -1
- package/lib/crypto/dehydration.js +0 -252
- package/lib/crypto/dehydration.js.map +0 -1
- package/lib/crypto/device-converter.d.ts +0 -9
- package/lib/crypto/device-converter.d.ts.map +0 -1
- package/lib/crypto/device-converter.js +0 -42
- package/lib/crypto/device-converter.js.map +0 -1
- package/lib/crypto/deviceinfo.d.ts +0 -99
- package/lib/crypto/deviceinfo.d.ts.map +0 -1
- package/lib/crypto/deviceinfo.js +0 -148
- package/lib/crypto/deviceinfo.js.map +0 -1
- package/lib/crypto/index.d.ts +0 -1209
- package/lib/crypto/index.d.ts.map +0 -1
- package/lib/crypto/index.js +0 -4097
- package/lib/crypto/index.js.map +0 -1
- package/lib/crypto/key_passphrase.d.ts +0 -14
- package/lib/crypto/key_passphrase.d.ts.map +0 -1
- package/lib/crypto/key_passphrase.js +0 -44
- package/lib/crypto/key_passphrase.js.map +0 -1
- package/lib/crypto/keybackup.d.ts +0 -18
- package/lib/crypto/keybackup.d.ts.map +0 -1
- package/lib/crypto/keybackup.js +0 -1
- package/lib/crypto/keybackup.js.map +0 -1
- package/lib/crypto/olmlib.d.ts +0 -129
- package/lib/crypto/olmlib.d.ts.map +0 -1
- package/lib/crypto/olmlib.js +0 -492
- package/lib/crypto/olmlib.js.map +0 -1
- package/lib/crypto/recoverykey.d.ts +0 -2
- package/lib/crypto/recoverykey.d.ts.map +0 -1
- package/lib/crypto/recoverykey.js +0 -19
- package/lib/crypto/recoverykey.js.map +0 -1
- package/lib/crypto/store/base.d.ts +0 -252
- package/lib/crypto/store/base.d.ts.map +0 -1
- package/lib/crypto/store/base.js +0 -64
- package/lib/crypto/store/base.js.map +0 -1
- package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
- package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
- package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
- package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
- package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
- package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
- package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
- package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
- package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
- package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
- package/lib/crypto/store/localStorage-crypto-store.js +0 -531
- package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
- package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
- package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
- package/lib/crypto/store/memory-crypto-store.js +0 -622
- package/lib/crypto/store/memory-crypto-store.js.map +0 -1
- package/lib/crypto/verification/Base.d.ts +0 -105
- package/lib/crypto/verification/Base.d.ts.map +0 -1
- package/lib/crypto/verification/Base.js +0 -372
- package/lib/crypto/verification/Base.js.map +0 -1
- package/lib/crypto/verification/Error.d.ts +0 -35
- package/lib/crypto/verification/Error.d.ts.map +0 -1
- package/lib/crypto/verification/Error.js +0 -86
- package/lib/crypto/verification/Error.js.map +0 -1
- package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
- package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
- package/lib/crypto/verification/IllegalMethod.js +0 -43
- package/lib/crypto/verification/IllegalMethod.js.map +0 -1
- package/lib/crypto/verification/QRCode.d.ts +0 -51
- package/lib/crypto/verification/QRCode.d.ts.map +0 -1
- package/lib/crypto/verification/QRCode.js +0 -277
- package/lib/crypto/verification/QRCode.js.map +0 -1
- package/lib/crypto/verification/SAS.d.ts +0 -27
- package/lib/crypto/verification/SAS.d.ts.map +0 -1
- package/lib/crypto/verification/SAS.js +0 -485
- package/lib/crypto/verification/SAS.js.map +0 -1
- package/lib/crypto/verification/SASDecimal.d.ts +0 -8
- package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
- package/lib/crypto/verification/SASDecimal.js +0 -34
- package/lib/crypto/verification/SASDecimal.js.map +0 -1
- package/lib/crypto/verification/request/Channel.d.ts +0 -18
- package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
- package/lib/crypto/verification/request/Channel.js +0 -1
- package/lib/crypto/verification/request/Channel.js.map +0 -1
- package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
- package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
- package/lib/crypto/verification/request/InRoomChannel.js +0 -351
- package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
- package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
- package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
- package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
- package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
- package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
- package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
- package/lib/crypto/verification/request/VerificationRequest.js +0 -937
- package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
- package/lib/crypto-api/CryptoEvent.d.ts +0 -69
- package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
- package/lib/crypto-api/CryptoEvent.js +0 -33
- package/lib/crypto-api/CryptoEvent.js.map +0 -1
- package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
- package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
- package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
- package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
- package/lib/crypto-api/index.d.ts +0 -978
- package/lib/crypto-api/index.d.ts.map +0 -1
- package/lib/crypto-api/index.js +0 -304
- package/lib/crypto-api/index.js.map +0 -1
- package/lib/crypto-api/key-passphrase.d.ts +0 -11
- package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
- package/lib/crypto-api/key-passphrase.js +0 -51
- package/lib/crypto-api/key-passphrase.js.map +0 -1
- package/lib/crypto-api/keybackup.d.ts +0 -88
- package/lib/crypto-api/keybackup.d.ts.map +0 -1
- package/lib/crypto-api/keybackup.js +0 -1
- package/lib/crypto-api/keybackup.js.map +0 -1
- package/lib/crypto-api/recovery-key.d.ts +0 -11
- package/lib/crypto-api/recovery-key.d.ts.map +0 -1
- package/lib/crypto-api/recovery-key.js +0 -65
- package/lib/crypto-api/recovery-key.js.map +0 -1
- package/lib/crypto-api/verification.d.ts +0 -344
- package/lib/crypto-api/verification.d.ts.map +0 -1
- package/lib/crypto-api/verification.js +0 -91
- package/lib/crypto-api/verification.js.map +0 -1
- package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
- package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
- package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
- package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
- package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
- package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousChannel.js +0 -1
- package/lib/rendezvous/RendezvousChannel.js.map +0 -1
- package/lib/rendezvous/RendezvousCode.d.ts +0 -9
- package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousCode.js +0 -1
- package/lib/rendezvous/RendezvousCode.js.map +0 -1
- package/lib/rendezvous/RendezvousError.d.ts +0 -6
- package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousError.js +0 -23
- package/lib/rendezvous/RendezvousError.js.map +0 -1
- package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
- package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousFailureReason.js +0 -38
- package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
- package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
- package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousIntent.js +0 -22
- package/lib/rendezvous/RendezvousIntent.js.map +0 -1
- package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
- package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousTransport.js +0 -1
- package/lib/rendezvous/RendezvousTransport.js.map +0 -1
- package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
- package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
- package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
- package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
- package/lib/rendezvous/channels/index.d.ts +0 -2
- package/lib/rendezvous/channels/index.d.ts.map +0 -1
- package/lib/rendezvous/channels/index.js +0 -18
- package/lib/rendezvous/channels/index.js.map +0 -1
- package/lib/rendezvous/index.d.ts +0 -10
- package/lib/rendezvous/index.d.ts.map +0 -1
- package/lib/rendezvous/index.js +0 -23
- package/lib/rendezvous/index.js.map +0 -1
- package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
- package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
- package/lib/rendezvous/transports/index.d.ts +0 -2
- package/lib/rendezvous/transports/index.d.ts.map +0 -1
- package/lib/rendezvous/transports/index.js +0 -18
- package/lib/rendezvous/transports/index.js.map +0 -1
- package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
- package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
- package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
- package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
- package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
- package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
- package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
- package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
- package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
- package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
- package/lib/rust-crypto/KeyClaimManager.js +0 -82
- package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
- package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
- package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
- package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
- package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
- package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
- package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
- package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
- package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
- package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
- package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
- package/lib/rust-crypto/RoomEncryptor.js +0 -299
- package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
- package/lib/rust-crypto/backup.d.ts +0 -254
- package/lib/rust-crypto/backup.d.ts.map +0 -1
- package/lib/rust-crypto/backup.js +0 -837
- package/lib/rust-crypto/backup.js.map +0 -1
- package/lib/rust-crypto/constants.d.ts +0 -3
- package/lib/rust-crypto/constants.d.ts.map +0 -1
- package/lib/rust-crypto/constants.js +0 -19
- package/lib/rust-crypto/constants.js.map +0 -1
- package/lib/rust-crypto/device-converter.d.ts +0 -28
- package/lib/rust-crypto/device-converter.d.ts.map +0 -1
- package/lib/rust-crypto/device-converter.js +0 -123
- package/lib/rust-crypto/device-converter.js.map +0 -1
- package/lib/rust-crypto/index.d.ts +0 -61
- package/lib/rust-crypto/index.d.ts.map +0 -1
- package/lib/rust-crypto/index.js +0 -152
- package/lib/rust-crypto/index.js.map +0 -1
- package/lib/rust-crypto/libolm_migration.d.ts +0 -81
- package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
- package/lib/rust-crypto/libolm_migration.js +0 -459
- package/lib/rust-crypto/libolm_migration.js.map +0 -1
- package/lib/rust-crypto/rust-crypto.d.ts +0 -556
- package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
- package/lib/rust-crypto/rust-crypto.js +0 -2016
- package/lib/rust-crypto/rust-crypto.js.map +0 -1
- package/lib/rust-crypto/secret-storage.d.ts +0 -22
- package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
- package/lib/rust-crypto/secret-storage.js +0 -63
- package/lib/rust-crypto/secret-storage.js.map +0 -1
- package/lib/rust-crypto/verification.d.ts +0 -319
- package/lib/rust-crypto/verification.d.ts.map +0 -1
- package/lib/rust-crypto/verification.js +0 -816
- package/lib/rust-crypto/verification.js.map +0 -1
- package/lib/secret-storage.d.ts +0 -370
- package/lib/secret-storage.d.ts.map +0 -1
- package/lib/secret-storage.js +0 -466
- package/lib/secret-storage.js.map +0 -1
- package/src/@types/crypto.ts +0 -73
- package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
- package/src/common-crypto/CryptoBackend.ts +0 -302
- package/src/common-crypto/README.md +0 -4
- package/src/common-crypto/key-passphrase.ts +0 -43
- package/src/crypto/CrossSigning.ts +0 -773
- package/src/crypto/DeviceList.ts +0 -989
- package/src/crypto/EncryptionSetup.ts +0 -351
- package/src/crypto/OlmDevice.ts +0 -1500
- package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
- package/src/crypto/RoomList.ts +0 -70
- package/src/crypto/SecretSharing.ts +0 -240
- package/src/crypto/SecretStorage.ts +0 -136
- package/src/crypto/aes.ts +0 -23
- package/src/crypto/algorithms/base.ts +0 -236
- package/src/crypto/algorithms/index.ts +0 -20
- package/src/crypto/algorithms/megolm.ts +0 -2216
- package/src/crypto/algorithms/olm.ts +0 -381
- package/src/crypto/api.ts +0 -70
- package/src/crypto/backup.ts +0 -922
- package/src/crypto/crypto.ts +0 -18
- package/src/crypto/dehydration.ts +0 -272
- package/src/crypto/device-converter.ts +0 -45
- package/src/crypto/deviceinfo.ts +0 -158
- package/src/crypto/index.ts +0 -4414
- package/src/crypto/key_passphrase.ts +0 -42
- package/src/crypto/keybackup.ts +0 -47
- package/src/crypto/olmlib.ts +0 -539
- package/src/crypto/recoverykey.ts +0 -18
- package/src/crypto/store/base.ts +0 -348
- package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
- package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
- package/src/crypto/store/localStorage-crypto-store.ts +0 -579
- package/src/crypto/store/memory-crypto-store.ts +0 -680
- package/src/crypto/verification/Base.ts +0 -409
- package/src/crypto/verification/Error.ts +0 -76
- package/src/crypto/verification/IllegalMethod.ts +0 -50
- package/src/crypto/verification/QRCode.ts +0 -310
- package/src/crypto/verification/SAS.ts +0 -494
- package/src/crypto/verification/SASDecimal.ts +0 -37
- package/src/crypto/verification/request/Channel.ts +0 -34
- package/src/crypto/verification/request/InRoomChannel.ts +0 -371
- package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
- package/src/crypto/verification/request/VerificationRequest.ts +0 -976
- package/src/crypto-api/CryptoEvent.ts +0 -93
- package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
- package/src/crypto-api/index.ts +0 -1175
- package/src/crypto-api/key-passphrase.ts +0 -58
- package/src/crypto-api/keybackup.ts +0 -115
- package/src/crypto-api/recovery-key.ts +0 -69
- package/src/crypto-api/verification.ts +0 -408
- package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
- package/src/rendezvous/RendezvousChannel.ts +0 -48
- package/src/rendezvous/RendezvousCode.ts +0 -25
- package/src/rendezvous/RendezvousError.ts +0 -26
- package/src/rendezvous/RendezvousFailureReason.ts +0 -49
- package/src/rendezvous/RendezvousIntent.ts +0 -20
- package/src/rendezvous/RendezvousTransport.ts +0 -58
- package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
- package/src/rendezvous/channels/index.ts +0 -17
- package/src/rendezvous/index.ts +0 -25
- package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
- package/src/rendezvous/transports/index.ts +0 -17
- package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
- package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
- package/src/rust-crypto/KeyClaimManager.ts +0 -86
- package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
- package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
- package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
- package/src/rust-crypto/RoomEncryptor.ts +0 -352
- package/src/rust-crypto/backup.ts +0 -881
- package/src/rust-crypto/constants.ts +0 -18
- package/src/rust-crypto/device-converter.ts +0 -128
- package/src/rust-crypto/index.ts +0 -237
- package/src/rust-crypto/libolm_migration.ts +0 -530
- package/src/rust-crypto/rust-crypto.ts +0 -2205
- package/src/rust-crypto/secret-storage.ts +0 -60
- package/src/rust-crypto/verification.ts +0 -830
- package/src/secret-storage.ts +0 -693
@@ -1,485 +0,0 @@
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
3
|
-
/*
|
4
|
-
Copyright 2018 - 2021 The Matrix.org Foundation C.I.C.
|
5
|
-
|
6
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
-
you may not use this file except in compliance with the License.
|
8
|
-
You may obtain a copy of the License at
|
9
|
-
|
10
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
|
12
|
-
Unless required by applicable law or agreed to in writing, software
|
13
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
-
See the License for the specific language governing permissions and
|
16
|
-
limitations under the License.
|
17
|
-
*/
|
18
|
-
|
19
|
-
/**
|
20
|
-
* Short Authentication String (SAS) verification.
|
21
|
-
*/
|
22
|
-
|
23
|
-
import anotherjson from "another-json";
|
24
|
-
import { VerificationBase as Base, SwitchStartEventError } from "./Base.js";
|
25
|
-
import { errorFactory, newInvalidMessageError, newKeyMismatchError, newUnknownMethodError, newUserCancelledError } from "./Error.js";
|
26
|
-
import { logger } from "../../logger.js";
|
27
|
-
import { generateDecimalSas } from "./SASDecimal.js";
|
28
|
-
import { EventType } from "../../@types/event.js";
|
29
|
-
import { VerifierEvent } from "../../crypto-api/verification.js";
|
30
|
-
import { VerificationMethod } from "../../types.js";
|
31
|
-
|
32
|
-
// backwards-compatibility exports
|
33
|
-
|
34
|
-
var START_TYPE = EventType.KeyVerificationStart;
|
35
|
-
var EVENTS = [EventType.KeyVerificationAccept, EventType.KeyVerificationKey, EventType.KeyVerificationMac];
|
36
|
-
var olmutil;
|
37
|
-
var newMismatchedSASError = errorFactory("m.mismatched_sas", "Mismatched short authentication string");
|
38
|
-
var newMismatchedCommitmentError = errorFactory("m.mismatched_commitment", "Mismatched commitment");
|
39
|
-
|
40
|
-
// This list was generated from the data in the Matrix specification [1] with the following command:
|
41
|
-
//
|
42
|
-
// jq -r '.[] | " [\"" + .emoji + "\", \"" + (.description|ascii_downcase) + "\"], // " + (.number|tostring)' sas-emoji.json
|
43
|
-
//
|
44
|
-
// [1]: https://github.com/matrix-org/matrix-spec/blob/main/data-definitions/sas-emoji.json
|
45
|
-
var emojiMapping = [["🐶", "dog"],
|
46
|
-
// 0
|
47
|
-
["🐱", "cat"],
|
48
|
-
// 1
|
49
|
-
["🦁", "lion"],
|
50
|
-
// 2
|
51
|
-
["🐎", "horse"],
|
52
|
-
// 3
|
53
|
-
["🦄", "unicorn"],
|
54
|
-
// 4
|
55
|
-
["🐷", "pig"],
|
56
|
-
// 5
|
57
|
-
["🐘", "elephant"],
|
58
|
-
// 6
|
59
|
-
["🐰", "rabbit"],
|
60
|
-
// 7
|
61
|
-
["🐼", "panda"],
|
62
|
-
// 8
|
63
|
-
["🐓", "rooster"],
|
64
|
-
// 9
|
65
|
-
["🐧", "penguin"],
|
66
|
-
// 10
|
67
|
-
["🐢", "turtle"],
|
68
|
-
// 11
|
69
|
-
["🐟", "fish"],
|
70
|
-
// 12
|
71
|
-
["🐙", "octopus"],
|
72
|
-
// 13
|
73
|
-
["🦋", "butterfly"],
|
74
|
-
// 14
|
75
|
-
["🌷", "flower"],
|
76
|
-
// 15
|
77
|
-
["🌳", "tree"],
|
78
|
-
// 16
|
79
|
-
["🌵", "cactus"],
|
80
|
-
// 17
|
81
|
-
["🍄", "mushroom"],
|
82
|
-
// 18
|
83
|
-
["🌏", "globe"],
|
84
|
-
// 19
|
85
|
-
["🌙", "moon"],
|
86
|
-
// 20
|
87
|
-
["☁️", "cloud"],
|
88
|
-
// 21
|
89
|
-
["🔥", "fire"],
|
90
|
-
// 22
|
91
|
-
["🍌", "banana"],
|
92
|
-
// 23
|
93
|
-
["🍎", "apple"],
|
94
|
-
// 24
|
95
|
-
["🍓", "strawberry"],
|
96
|
-
// 25
|
97
|
-
["🌽", "corn"],
|
98
|
-
// 26
|
99
|
-
["🍕", "pizza"],
|
100
|
-
// 27
|
101
|
-
["🎂", "cake"],
|
102
|
-
// 28
|
103
|
-
["❤️", "heart"],
|
104
|
-
// 29
|
105
|
-
["😀", "smiley"],
|
106
|
-
// 30
|
107
|
-
["🤖", "robot"],
|
108
|
-
// 31
|
109
|
-
["🎩", "hat"],
|
110
|
-
// 32
|
111
|
-
["👓", "glasses"],
|
112
|
-
// 33
|
113
|
-
["🔧", "spanner"],
|
114
|
-
// 34
|
115
|
-
["🎅", "santa"],
|
116
|
-
// 35
|
117
|
-
["👍", "thumbs up"],
|
118
|
-
// 36
|
119
|
-
["☂️", "umbrella"],
|
120
|
-
// 37
|
121
|
-
["⌛", "hourglass"],
|
122
|
-
// 38
|
123
|
-
["⏰", "clock"],
|
124
|
-
// 39
|
125
|
-
["🎁", "gift"],
|
126
|
-
// 40
|
127
|
-
["💡", "light bulb"],
|
128
|
-
// 41
|
129
|
-
["📕", "book"],
|
130
|
-
// 42
|
131
|
-
["✏️", "pencil"],
|
132
|
-
// 43
|
133
|
-
["📎", "paperclip"],
|
134
|
-
// 44
|
135
|
-
["✂️", "scissors"],
|
136
|
-
// 45
|
137
|
-
["🔒", "lock"],
|
138
|
-
// 46
|
139
|
-
["🔑", "key"],
|
140
|
-
// 47
|
141
|
-
["🔨", "hammer"],
|
142
|
-
// 48
|
143
|
-
["☎️", "telephone"],
|
144
|
-
// 49
|
145
|
-
["🏁", "flag"],
|
146
|
-
// 50
|
147
|
-
["🚂", "train"],
|
148
|
-
// 51
|
149
|
-
["🚲", "bicycle"],
|
150
|
-
// 52
|
151
|
-
["✈️", "aeroplane"],
|
152
|
-
// 53
|
153
|
-
["🚀", "rocket"],
|
154
|
-
// 54
|
155
|
-
["🏆", "trophy"],
|
156
|
-
// 55
|
157
|
-
["⚽", "ball"],
|
158
|
-
// 56
|
159
|
-
["🎸", "guitar"],
|
160
|
-
// 57
|
161
|
-
["🎺", "trumpet"],
|
162
|
-
// 58
|
163
|
-
["🔔", "bell"],
|
164
|
-
// 59
|
165
|
-
["⚓", "anchor"],
|
166
|
-
// 60
|
167
|
-
["🎧", "headphones"],
|
168
|
-
// 61
|
169
|
-
["📁", "folder"],
|
170
|
-
// 62
|
171
|
-
["📌", "pin"] // 63
|
172
|
-
];
|
173
|
-
function generateEmojiSas(sasBytes) {
|
174
|
-
var emojis = [
|
175
|
-
// just like base64 encoding
|
176
|
-
sasBytes[0] >> 2, (sasBytes[0] & 0x3) << 4 | sasBytes[1] >> 4, (sasBytes[1] & 0xf) << 2 | sasBytes[2] >> 6, sasBytes[2] & 0x3f, sasBytes[3] >> 2, (sasBytes[3] & 0x3) << 4 | sasBytes[4] >> 4, (sasBytes[4] & 0xf) << 2 | sasBytes[5] >> 6];
|
177
|
-
return emojis.map(num => emojiMapping[num]);
|
178
|
-
}
|
179
|
-
var sasGenerators = {
|
180
|
-
decimal: generateDecimalSas,
|
181
|
-
emoji: generateEmojiSas
|
182
|
-
};
|
183
|
-
function generateSas(sasBytes, methods) {
|
184
|
-
var sas = {};
|
185
|
-
for (var method of methods) {
|
186
|
-
if (method in sasGenerators) {
|
187
|
-
// @ts-ignore - ts doesn't like us mixing types like this
|
188
|
-
sas[method] = sasGenerators[method](Array.from(sasBytes));
|
189
|
-
}
|
190
|
-
}
|
191
|
-
return sas;
|
192
|
-
}
|
193
|
-
var macMethods = {
|
194
|
-
"hkdf-hmac-sha256": "calculate_mac",
|
195
|
-
"org.matrix.msc3783.hkdf-hmac-sha256": "calculate_mac_fixed_base64",
|
196
|
-
"hkdf-hmac-sha256.v2": "calculate_mac_fixed_base64",
|
197
|
-
"hmac-sha256": "calculate_mac_long_kdf"
|
198
|
-
};
|
199
|
-
function calculateMAC(olmSAS, method) {
|
200
|
-
return function (input, info) {
|
201
|
-
var mac = olmSAS[macMethods[method]](input, info);
|
202
|
-
logger.log("SAS calculateMAC:", method, [input, info], mac);
|
203
|
-
return mac;
|
204
|
-
};
|
205
|
-
}
|
206
|
-
var calculateKeyAgreement = {
|
207
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
208
|
-
"curve25519-hkdf-sha256": function curve25519HkdfSha256(sas, olmSAS, bytes) {
|
209
|
-
var ourInfo = "".concat(sas.baseApis.getUserId(), "|").concat(sas.baseApis.deviceId, "|") + "".concat(sas.ourSASPubKey, "|");
|
210
|
-
var theirInfo = "".concat(sas.userId, "|").concat(sas.deviceId, "|").concat(sas.theirSASPubKey, "|");
|
211
|
-
var sasInfo = "MATRIX_KEY_VERIFICATION_SAS|" + (sas.initiatedByMe ? ourInfo + theirInfo : theirInfo + ourInfo) + sas.channel.transactionId;
|
212
|
-
return olmSAS.generate_bytes(sasInfo, bytes);
|
213
|
-
},
|
214
|
-
"curve25519": function curve25519(sas, olmSAS, bytes) {
|
215
|
-
var ourInfo = "".concat(sas.baseApis.getUserId()).concat(sas.baseApis.deviceId);
|
216
|
-
var theirInfo = "".concat(sas.userId).concat(sas.deviceId);
|
217
|
-
var sasInfo = "MATRIX_KEY_VERIFICATION_SAS" + (sas.initiatedByMe ? ourInfo + theirInfo : theirInfo + ourInfo) + sas.channel.transactionId;
|
218
|
-
return olmSAS.generate_bytes(sasInfo, bytes);
|
219
|
-
}
|
220
|
-
};
|
221
|
-
/* lists of algorithms/methods that are supported. The key agreement, hashes,
|
222
|
-
* and MAC lists should be sorted in order of preference (most preferred
|
223
|
-
* first).
|
224
|
-
*/
|
225
|
-
var KEY_AGREEMENT_LIST = ["curve25519-hkdf-sha256", "curve25519"];
|
226
|
-
var HASHES_LIST = ["sha256"];
|
227
|
-
var MAC_LIST = ["hkdf-hmac-sha256.v2", "org.matrix.msc3783.hkdf-hmac-sha256", "hkdf-hmac-sha256", "hmac-sha256"];
|
228
|
-
var SAS_LIST = Object.keys(sasGenerators);
|
229
|
-
var KEY_AGREEMENT_SET = new Set(KEY_AGREEMENT_LIST);
|
230
|
-
var HASHES_SET = new Set(HASHES_LIST);
|
231
|
-
var MAC_SET = new Set(MAC_LIST);
|
232
|
-
var SAS_SET = new Set(SAS_LIST);
|
233
|
-
function intersection(anArray, aSet) {
|
234
|
-
return Array.isArray(anArray) ? anArray.filter(x => aSet.has(x)) : [];
|
235
|
-
}
|
236
|
-
|
237
|
-
/** @deprecated use VerifierEvent */
|
238
|
-
|
239
|
-
/** @deprecated use VerifierEvent */
|
240
|
-
export var SasEvent = VerifierEvent;
|
241
|
-
|
242
|
-
/** @deprecated Avoid referencing this class directly; instead use {@link Crypto.Verifier}. */
|
243
|
-
export class SAS extends Base {
|
244
|
-
constructor() {
|
245
|
-
var _this;
|
246
|
-
super(...arguments);
|
247
|
-
_this = this;
|
248
|
-
_defineProperty(this, "waitingForAccept", void 0);
|
249
|
-
_defineProperty(this, "ourSASPubKey", void 0);
|
250
|
-
_defineProperty(this, "theirSASPubKey", void 0);
|
251
|
-
_defineProperty(this, "sasEvent", void 0);
|
252
|
-
_defineProperty(this, "doVerification", /*#__PURE__*/_asyncToGenerator(function* () {
|
253
|
-
yield globalThis.Olm.init();
|
254
|
-
olmutil = olmutil || new globalThis.Olm.Utility();
|
255
|
-
|
256
|
-
// make sure user's keys are downloaded
|
257
|
-
yield _this.baseApis.downloadKeys([_this.userId]);
|
258
|
-
var retry = false;
|
259
|
-
do {
|
260
|
-
try {
|
261
|
-
if (_this.initiatedByMe) {
|
262
|
-
return yield _this.doSendVerification();
|
263
|
-
} else {
|
264
|
-
return yield _this.doRespondVerification();
|
265
|
-
}
|
266
|
-
} catch (err) {
|
267
|
-
if (err instanceof SwitchStartEventError) {
|
268
|
-
// this changes what initiatedByMe returns
|
269
|
-
_this.startEvent = err.startEvent;
|
270
|
-
retry = true;
|
271
|
-
} else {
|
272
|
-
throw err;
|
273
|
-
}
|
274
|
-
}
|
275
|
-
} while (retry);
|
276
|
-
}));
|
277
|
-
}
|
278
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
279
|
-
static get NAME() {
|
280
|
-
return VerificationMethod.Sas;
|
281
|
-
}
|
282
|
-
get events() {
|
283
|
-
return EVENTS;
|
284
|
-
}
|
285
|
-
canSwitchStartEvent(event) {
|
286
|
-
if (event.getType() !== START_TYPE) {
|
287
|
-
return false;
|
288
|
-
}
|
289
|
-
var content = event.getContent();
|
290
|
-
return (content === null || content === void 0 ? void 0 : content.method) === SAS.NAME && !!this.waitingForAccept;
|
291
|
-
}
|
292
|
-
sendStart() {
|
293
|
-
var _this2 = this;
|
294
|
-
return _asyncToGenerator(function* () {
|
295
|
-
var startContent = _this2.channel.completeContent(START_TYPE, {
|
296
|
-
method: SAS.NAME,
|
297
|
-
from_device: _this2.baseApis.deviceId,
|
298
|
-
key_agreement_protocols: KEY_AGREEMENT_LIST,
|
299
|
-
hashes: HASHES_LIST,
|
300
|
-
message_authentication_codes: MAC_LIST,
|
301
|
-
// FIXME: allow app to specify what SAS methods can be used
|
302
|
-
short_authentication_string: SAS_LIST
|
303
|
-
});
|
304
|
-
yield _this2.channel.sendCompleted(START_TYPE, startContent);
|
305
|
-
return startContent;
|
306
|
-
})();
|
307
|
-
}
|
308
|
-
verifyAndCheckMAC(keyAgreement, sasMethods, olmSAS, macMethod) {
|
309
|
-
var _this3 = this;
|
310
|
-
return _asyncToGenerator(function* () {
|
311
|
-
var sasBytes = calculateKeyAgreement[keyAgreement](_this3, olmSAS, 6);
|
312
|
-
var verifySAS = new Promise((resolve, reject) => {
|
313
|
-
_this3.sasEvent = {
|
314
|
-
sas: generateSas(sasBytes, sasMethods),
|
315
|
-
confirm: function () {
|
316
|
-
var _confirm = _asyncToGenerator(function* () {
|
317
|
-
try {
|
318
|
-
yield _this3.sendMAC(olmSAS, macMethod);
|
319
|
-
resolve();
|
320
|
-
} catch (err) {
|
321
|
-
reject(err);
|
322
|
-
}
|
323
|
-
});
|
324
|
-
function confirm() {
|
325
|
-
return _confirm.apply(this, arguments);
|
326
|
-
}
|
327
|
-
return confirm;
|
328
|
-
}(),
|
329
|
-
cancel: () => reject(newUserCancelledError()),
|
330
|
-
mismatch: () => reject(newMismatchedSASError())
|
331
|
-
};
|
332
|
-
_this3.emit(SasEvent.ShowSas, _this3.sasEvent);
|
333
|
-
});
|
334
|
-
var [e] = yield Promise.all([_this3.waitForEvent(EventType.KeyVerificationMac).then(e => {
|
335
|
-
// we don't expect any more messages from the other
|
336
|
-
// party, and they may send a m.key.verification.done
|
337
|
-
// when they're done on their end
|
338
|
-
_this3.expectedEvent = EventType.KeyVerificationDone;
|
339
|
-
return e;
|
340
|
-
}), verifySAS]);
|
341
|
-
var content = e.getContent();
|
342
|
-
yield _this3.checkMAC(olmSAS, content, macMethod);
|
343
|
-
})();
|
344
|
-
}
|
345
|
-
doSendVerification() {
|
346
|
-
var _this4 = this;
|
347
|
-
return _asyncToGenerator(function* () {
|
348
|
-
_this4.waitingForAccept = true;
|
349
|
-
var startContent;
|
350
|
-
if (_this4.startEvent) {
|
351
|
-
startContent = _this4.channel.completedContentFromEvent(_this4.startEvent);
|
352
|
-
} else {
|
353
|
-
startContent = yield _this4.sendStart();
|
354
|
-
}
|
355
|
-
|
356
|
-
// we might have switched to a different start event,
|
357
|
-
// but was we didn't call _waitForEvent there was no
|
358
|
-
// call that could throw yet. So check manually that
|
359
|
-
// we're still on the initiator side
|
360
|
-
if (!_this4.initiatedByMe) {
|
361
|
-
throw new SwitchStartEventError(_this4.startEvent);
|
362
|
-
}
|
363
|
-
var e;
|
364
|
-
try {
|
365
|
-
e = yield _this4.waitForEvent(EventType.KeyVerificationAccept);
|
366
|
-
} finally {
|
367
|
-
_this4.waitingForAccept = false;
|
368
|
-
}
|
369
|
-
var content = e.getContent();
|
370
|
-
var sasMethods = intersection(content.short_authentication_string, SAS_SET);
|
371
|
-
if (!(KEY_AGREEMENT_SET.has(content.key_agreement_protocol) && HASHES_SET.has(content.hash) && MAC_SET.has(content.message_authentication_code) && sasMethods.length)) {
|
372
|
-
throw newUnknownMethodError();
|
373
|
-
}
|
374
|
-
if (typeof content.commitment !== "string") {
|
375
|
-
throw newInvalidMessageError();
|
376
|
-
}
|
377
|
-
var keyAgreement = content.key_agreement_protocol;
|
378
|
-
var macMethod = content.message_authentication_code;
|
379
|
-
var hashCommitment = content.commitment;
|
380
|
-
var olmSAS = new globalThis.Olm.SAS();
|
381
|
-
try {
|
382
|
-
_this4.ourSASPubKey = olmSAS.get_pubkey();
|
383
|
-
yield _this4.send(EventType.KeyVerificationKey, {
|
384
|
-
key: _this4.ourSASPubKey
|
385
|
-
});
|
386
|
-
e = yield _this4.waitForEvent(EventType.KeyVerificationKey);
|
387
|
-
// FIXME: make sure event is properly formed
|
388
|
-
content = e.getContent();
|
389
|
-
var commitmentStr = content.key + anotherjson.stringify(startContent);
|
390
|
-
// TODO: use selected hash function (when we support multiple)
|
391
|
-
if (olmutil.sha256(commitmentStr) !== hashCommitment) {
|
392
|
-
throw newMismatchedCommitmentError();
|
393
|
-
}
|
394
|
-
_this4.theirSASPubKey = content.key;
|
395
|
-
olmSAS.set_their_key(content.key);
|
396
|
-
yield _this4.verifyAndCheckMAC(keyAgreement, sasMethods, olmSAS, macMethod);
|
397
|
-
} finally {
|
398
|
-
olmSAS.free();
|
399
|
-
}
|
400
|
-
})();
|
401
|
-
}
|
402
|
-
doRespondVerification() {
|
403
|
-
var _this5 = this;
|
404
|
-
return _asyncToGenerator(function* () {
|
405
|
-
// as m.related_to is not included in the encrypted content in e2e rooms,
|
406
|
-
// we need to make sure it is added
|
407
|
-
var content = _this5.channel.completedContentFromEvent(_this5.startEvent);
|
408
|
-
|
409
|
-
// Note: we intersect using our pre-made lists, rather than the sets,
|
410
|
-
// so that the result will be in our order of preference. Then
|
411
|
-
// fetching the first element from the array will give our preferred
|
412
|
-
// method out of the ones offered by the other party.
|
413
|
-
var keyAgreement = intersection(KEY_AGREEMENT_LIST, new Set(content.key_agreement_protocols))[0];
|
414
|
-
var hashMethod = intersection(HASHES_LIST, new Set(content.hashes))[0];
|
415
|
-
var macMethod = intersection(MAC_LIST, new Set(content.message_authentication_codes))[0];
|
416
|
-
// FIXME: allow app to specify what SAS methods can be used
|
417
|
-
var sasMethods = intersection(content.short_authentication_string, SAS_SET);
|
418
|
-
if (!(keyAgreement !== undefined && hashMethod !== undefined && macMethod !== undefined && sasMethods.length)) {
|
419
|
-
throw newUnknownMethodError();
|
420
|
-
}
|
421
|
-
var olmSAS = new globalThis.Olm.SAS();
|
422
|
-
try {
|
423
|
-
var commitmentStr = olmSAS.get_pubkey() + anotherjson.stringify(content);
|
424
|
-
yield _this5.send(EventType.KeyVerificationAccept, {
|
425
|
-
key_agreement_protocol: keyAgreement,
|
426
|
-
hash: hashMethod,
|
427
|
-
message_authentication_code: macMethod,
|
428
|
-
short_authentication_string: sasMethods,
|
429
|
-
// TODO: use selected hash function (when we support multiple)
|
430
|
-
commitment: olmutil.sha256(commitmentStr)
|
431
|
-
});
|
432
|
-
var e = yield _this5.waitForEvent(EventType.KeyVerificationKey);
|
433
|
-
// FIXME: make sure event is properly formed
|
434
|
-
content = e.getContent();
|
435
|
-
_this5.theirSASPubKey = content.key;
|
436
|
-
olmSAS.set_their_key(content.key);
|
437
|
-
_this5.ourSASPubKey = olmSAS.get_pubkey();
|
438
|
-
yield _this5.send(EventType.KeyVerificationKey, {
|
439
|
-
key: _this5.ourSASPubKey
|
440
|
-
});
|
441
|
-
yield _this5.verifyAndCheckMAC(keyAgreement, sasMethods, olmSAS, macMethod);
|
442
|
-
} finally {
|
443
|
-
olmSAS.free();
|
444
|
-
}
|
445
|
-
})();
|
446
|
-
}
|
447
|
-
sendMAC(olmSAS, method) {
|
448
|
-
var mac = {};
|
449
|
-
var keyList = [];
|
450
|
-
var baseInfo = "MATRIX_KEY_VERIFICATION_MAC" + this.baseApis.getUserId() + this.baseApis.deviceId + this.userId + this.deviceId + this.channel.transactionId;
|
451
|
-
var deviceKeyId = "ed25519:".concat(this.baseApis.deviceId);
|
452
|
-
mac[deviceKeyId] = calculateMAC(olmSAS, method)(this.baseApis.getDeviceEd25519Key(), baseInfo + deviceKeyId);
|
453
|
-
keyList.push(deviceKeyId);
|
454
|
-
var crossSigningId = this.baseApis.getCrossSigningId();
|
455
|
-
if (crossSigningId) {
|
456
|
-
var crossSigningKeyId = "ed25519:".concat(crossSigningId);
|
457
|
-
mac[crossSigningKeyId] = calculateMAC(olmSAS, method)(crossSigningId, baseInfo + crossSigningKeyId);
|
458
|
-
keyList.push(crossSigningKeyId);
|
459
|
-
}
|
460
|
-
var keys = calculateMAC(olmSAS, method)(keyList.sort().join(","), baseInfo + "KEY_IDS");
|
461
|
-
return this.send(EventType.KeyVerificationMac, {
|
462
|
-
mac,
|
463
|
-
keys
|
464
|
-
});
|
465
|
-
}
|
466
|
-
checkMAC(olmSAS, content, method) {
|
467
|
-
var _this6 = this;
|
468
|
-
return _asyncToGenerator(function* () {
|
469
|
-
var baseInfo = "MATRIX_KEY_VERIFICATION_MAC" + _this6.userId + _this6.deviceId + _this6.baseApis.getUserId() + _this6.baseApis.deviceId + _this6.channel.transactionId;
|
470
|
-
if (content.keys !== calculateMAC(olmSAS, method)(Object.keys(content.mac).sort().join(","), baseInfo + "KEY_IDS")) {
|
471
|
-
throw newKeyMismatchError();
|
472
|
-
}
|
473
|
-
yield _this6.verifyKeys(_this6.userId, content.mac, (keyId, device, keyInfo) => {
|
474
|
-
if (keyInfo !== calculateMAC(olmSAS, method)(device.keys[keyId], baseInfo + keyId)) {
|
475
|
-
throw newKeyMismatchError();
|
476
|
-
}
|
477
|
-
});
|
478
|
-
})();
|
479
|
-
}
|
480
|
-
getShowSasCallbacks() {
|
481
|
-
var _this$sasEvent;
|
482
|
-
return (_this$sasEvent = this.sasEvent) !== null && _this$sasEvent !== void 0 ? _this$sasEvent : null;
|
483
|
-
}
|
484
|
-
}
|
485
|
-
//# sourceMappingURL=SAS.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"SAS.js","names":["anotherjson","VerificationBase","Base","SwitchStartEventError","errorFactory","newInvalidMessageError","newKeyMismatchError","newUnknownMethodError","newUserCancelledError","logger","generateDecimalSas","EventType","VerifierEvent","VerificationMethod","START_TYPE","KeyVerificationStart","EVENTS","KeyVerificationAccept","KeyVerificationKey","KeyVerificationMac","olmutil","newMismatchedSASError","newMismatchedCommitmentError","emojiMapping","generateEmojiSas","sasBytes","emojis","map","num","sasGenerators","decimal","emoji","generateSas","methods","sas","method","Array","from","macMethods","calculateMAC","olmSAS","input","info","mac","log","calculateKeyAgreement","curve25519HkdfSha256","bytes","ourInfo","concat","baseApis","getUserId","deviceId","ourSASPubKey","theirInfo","userId","theirSASPubKey","sasInfo","initiatedByMe","channel","transactionId","generate_bytes","curve25519","KEY_AGREEMENT_LIST","HASHES_LIST","MAC_LIST","SAS_LIST","Object","keys","KEY_AGREEMENT_SET","Set","HASHES_SET","MAC_SET","SAS_SET","intersection","anArray","aSet","isArray","filter","x","has","SasEvent","SAS","constructor","_this","arguments","this","_defineProperty","_asyncToGenerator","globalThis","Olm","init","Utility","downloadKeys","retry","doSendVerification","doRespondVerification","err","startEvent","NAME","Sas","events","canSwitchStartEvent","event","getType","content","getContent","waitingForAccept","sendStart","_this2","startContent","completeContent","from_device","key_agreement_protocols","hashes","message_authentication_codes","short_authentication_string","sendCompleted","verifyAndCheckMAC","keyAgreement","sasMethods","macMethod","_this3","verifySAS","Promise","resolve","reject","sasEvent","confirm","_confirm","sendMAC","apply","cancel","mismatch","emit","ShowSas","e","all","waitForEvent","then","expectedEvent","KeyVerificationDone","checkMAC","_this4","completedContentFromEvent","key_agreement_protocol","hash","message_authentication_code","length","commitment","hashCommitment","get_pubkey","send","key","commitmentStr","stringify","sha256","set_their_key","free","_this5","hashMethod","undefined","keyList","baseInfo","deviceKeyId","getDeviceEd25519Key","push","crossSigningId","getCrossSigningId","crossSigningKeyId","sort","join","_this6","verifyKeys","keyId","device","keyInfo","getShowSasCallbacks","_this$sasEvent"],"sources":["../../../src/crypto/verification/SAS.ts"],"sourcesContent":["/*\nCopyright 2018 - 2021 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n/**\n * Short Authentication String (SAS) verification.\n */\n\nimport anotherjson from \"another-json\";\nimport { Utility, SAS as OlmSAS } from \"@matrix-org/olm\";\n\nimport { VerificationBase as Base, SwitchStartEventError } from \"./Base.ts\";\nimport {\n errorFactory,\n newInvalidMessageError,\n newKeyMismatchError,\n newUnknownMethodError,\n newUserCancelledError,\n} from \"./Error.ts\";\nimport { logger } from \"../../logger.ts\";\nimport { IContent, MatrixEvent } from \"../../models/event.ts\";\nimport { generateDecimalSas } from \"./SASDecimal.ts\";\nimport { EventType } from \"../../@types/event.ts\";\nimport { EmojiMapping, GeneratedSas, ShowSasCallbacks, VerifierEvent } from \"../../crypto-api/verification.ts\";\nimport { VerificationMethod } from \"../../types.ts\";\n\n// backwards-compatibility exports\nexport type {\n ShowSasCallbacks as ISasEvent,\n GeneratedSas as IGeneratedSas,\n EmojiMapping,\n} from \"../../crypto-api/verification.ts\";\n\nconst START_TYPE = EventType.KeyVerificationStart;\n\nconst EVENTS = [EventType.KeyVerificationAccept, EventType.KeyVerificationKey, EventType.KeyVerificationMac];\n\nlet olmutil: Utility;\n\nconst newMismatchedSASError = errorFactory(\"m.mismatched_sas\", \"Mismatched short authentication string\");\n\nconst newMismatchedCommitmentError = errorFactory(\"m.mismatched_commitment\", \"Mismatched commitment\");\n\n// This list was generated from the data in the Matrix specification [1] with the following command:\n//\n// jq -r '.[] | \" [\\\"\" + .emoji + \"\\\", \\\"\" + (.description|ascii_downcase) + \"\\\"], // \" + (.number|tostring)' sas-emoji.json\n//\n// [1]: https://github.com/matrix-org/matrix-spec/blob/main/data-definitions/sas-emoji.json\nconst emojiMapping: EmojiMapping[] = [\n [\"🐶\", \"dog\"], // 0\n [\"🐱\", \"cat\"], // 1\n [\"🦁\", \"lion\"], // 2\n [\"🐎\", \"horse\"], // 3\n [\"🦄\", \"unicorn\"], // 4\n [\"🐷\", \"pig\"], // 5\n [\"🐘\", \"elephant\"], // 6\n [\"🐰\", \"rabbit\"], // 7\n [\"🐼\", \"panda\"], // 8\n [\"🐓\", \"rooster\"], // 9\n [\"🐧\", \"penguin\"], // 10\n [\"🐢\", \"turtle\"], // 11\n [\"🐟\", \"fish\"], // 12\n [\"🐙\", \"octopus\"], // 13\n [\"🦋\", \"butterfly\"], // 14\n [\"🌷\", \"flower\"], // 15\n [\"🌳\", \"tree\"], // 16\n [\"🌵\", \"cactus\"], // 17\n [\"🍄\", \"mushroom\"], // 18\n [\"🌏\", \"globe\"], // 19\n [\"🌙\", \"moon\"], // 20\n [\"☁️\", \"cloud\"], // 21\n [\"🔥\", \"fire\"], // 22\n [\"🍌\", \"banana\"], // 23\n [\"🍎\", \"apple\"], // 24\n [\"🍓\", \"strawberry\"], // 25\n [\"🌽\", \"corn\"], // 26\n [\"🍕\", \"pizza\"], // 27\n [\"🎂\", \"cake\"], // 28\n [\"❤️\", \"heart\"], // 29\n [\"😀\", \"smiley\"], // 30\n [\"🤖\", \"robot\"], // 31\n [\"🎩\", \"hat\"], // 32\n [\"👓\", \"glasses\"], // 33\n [\"🔧\", \"spanner\"], // 34\n [\"🎅\", \"santa\"], // 35\n [\"👍\", \"thumbs up\"], // 36\n [\"☂️\", \"umbrella\"], // 37\n [\"⌛\", \"hourglass\"], // 38\n [\"⏰\", \"clock\"], // 39\n [\"🎁\", \"gift\"], // 40\n [\"💡\", \"light bulb\"], // 41\n [\"📕\", \"book\"], // 42\n [\"✏️\", \"pencil\"], // 43\n [\"📎\", \"paperclip\"], // 44\n [\"✂️\", \"scissors\"], // 45\n [\"🔒\", \"lock\"], // 46\n [\"🔑\", \"key\"], // 47\n [\"🔨\", \"hammer\"], // 48\n [\"☎️\", \"telephone\"], // 49\n [\"🏁\", \"flag\"], // 50\n [\"🚂\", \"train\"], // 51\n [\"🚲\", \"bicycle\"], // 52\n [\"✈️\", \"aeroplane\"], // 53\n [\"🚀\", \"rocket\"], // 54\n [\"🏆\", \"trophy\"], // 55\n [\"⚽\", \"ball\"], // 56\n [\"🎸\", \"guitar\"], // 57\n [\"🎺\", \"trumpet\"], // 58\n [\"🔔\", \"bell\"], // 59\n [\"⚓\", \"anchor\"], // 60\n [\"🎧\", \"headphones\"], // 61\n [\"📁\", \"folder\"], // 62\n [\"📌\", \"pin\"], // 63\n];\n\nfunction generateEmojiSas(sasBytes: number[]): EmojiMapping[] {\n const emojis = [\n // just like base64 encoding\n sasBytes[0] >> 2,\n ((sasBytes[0] & 0x3) << 4) | (sasBytes[1] >> 4),\n ((sasBytes[1] & 0xf) << 2) | (sasBytes[2] >> 6),\n sasBytes[2] & 0x3f,\n sasBytes[3] >> 2,\n ((sasBytes[3] & 0x3) << 4) | (sasBytes[4] >> 4),\n ((sasBytes[4] & 0xf) << 2) | (sasBytes[5] >> 6),\n ];\n\n return emojis.map((num) => emojiMapping[num]);\n}\n\nconst sasGenerators = {\n decimal: generateDecimalSas,\n emoji: generateEmojiSas,\n} as const;\n\nfunction generateSas(sasBytes: Uint8Array, methods: string[]): GeneratedSas {\n const sas: GeneratedSas = {};\n for (const method of methods) {\n if (method in sasGenerators) {\n // @ts-ignore - ts doesn't like us mixing types like this\n sas[method] = sasGenerators[method](Array.from(sasBytes));\n }\n }\n return sas;\n}\n\nconst macMethods = {\n \"hkdf-hmac-sha256\": \"calculate_mac\",\n \"org.matrix.msc3783.hkdf-hmac-sha256\": \"calculate_mac_fixed_base64\",\n \"hkdf-hmac-sha256.v2\": \"calculate_mac_fixed_base64\",\n \"hmac-sha256\": \"calculate_mac_long_kdf\",\n} as const;\n\ntype MacMethod = keyof typeof macMethods;\n\nfunction calculateMAC(olmSAS: OlmSAS, method: MacMethod) {\n return function (input: string, info: string): string {\n const mac = olmSAS[macMethods[method]](input, info);\n logger.log(\"SAS calculateMAC:\", method, [input, info], mac);\n return mac;\n };\n}\n\nconst calculateKeyAgreement = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"curve25519-hkdf-sha256\": function (sas: SAS, olmSAS: OlmSAS, bytes: number): Uint8Array {\n const ourInfo = `${sas.baseApis.getUserId()}|${sas.baseApis.deviceId}|` + `${sas.ourSASPubKey}|`;\n const theirInfo = `${sas.userId}|${sas.deviceId}|${sas.theirSASPubKey}|`;\n const sasInfo =\n \"MATRIX_KEY_VERIFICATION_SAS|\" +\n (sas.initiatedByMe ? ourInfo + theirInfo : theirInfo + ourInfo) +\n sas.channel.transactionId;\n return olmSAS.generate_bytes(sasInfo, bytes);\n },\n \"curve25519\": function (sas: SAS, olmSAS: OlmSAS, bytes: number): Uint8Array {\n const ourInfo = `${sas.baseApis.getUserId()}${sas.baseApis.deviceId}`;\n const theirInfo = `${sas.userId}${sas.deviceId}`;\n const sasInfo =\n \"MATRIX_KEY_VERIFICATION_SAS\" +\n (sas.initiatedByMe ? ourInfo + theirInfo : theirInfo + ourInfo) +\n sas.channel.transactionId;\n return olmSAS.generate_bytes(sasInfo, bytes);\n },\n} as const;\n\ntype KeyAgreement = keyof typeof calculateKeyAgreement;\n\n/* lists of algorithms/methods that are supported. The key agreement, hashes,\n * and MAC lists should be sorted in order of preference (most preferred\n * first).\n */\nconst KEY_AGREEMENT_LIST: KeyAgreement[] = [\"curve25519-hkdf-sha256\", \"curve25519\"];\nconst HASHES_LIST = [\"sha256\"];\nconst MAC_LIST: MacMethod[] = [\n \"hkdf-hmac-sha256.v2\",\n \"org.matrix.msc3783.hkdf-hmac-sha256\",\n \"hkdf-hmac-sha256\",\n \"hmac-sha256\",\n];\nconst SAS_LIST = Object.keys(sasGenerators);\n\nconst KEY_AGREEMENT_SET = new Set(KEY_AGREEMENT_LIST);\nconst HASHES_SET = new Set(HASHES_LIST);\nconst MAC_SET = new Set(MAC_LIST);\nconst SAS_SET = new Set(SAS_LIST);\n\nfunction intersection<T>(anArray: T[], aSet: Set<T>): T[] {\n return Array.isArray(anArray) ? anArray.filter((x) => aSet.has(x)) : [];\n}\n\n/** @deprecated use VerifierEvent */\nexport type SasEvent = VerifierEvent;\n/** @deprecated use VerifierEvent */\nexport const SasEvent = VerifierEvent;\n\n/** @deprecated Avoid referencing this class directly; instead use {@link Crypto.Verifier}. */\nexport class SAS extends Base {\n private waitingForAccept?: boolean;\n public ourSASPubKey?: string;\n public theirSASPubKey?: string;\n public sasEvent?: ShowSasCallbacks;\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public static get NAME(): string {\n return VerificationMethod.Sas;\n }\n\n public get events(): string[] {\n return EVENTS;\n }\n\n protected doVerification = async (): Promise<void> => {\n await globalThis.Olm.init();\n olmutil = olmutil || new globalThis.Olm.Utility();\n\n // make sure user's keys are downloaded\n await this.baseApis.downloadKeys([this.userId]);\n\n let retry = false;\n do {\n try {\n if (this.initiatedByMe) {\n return await this.doSendVerification();\n } else {\n return await this.doRespondVerification();\n }\n } catch (err) {\n if (err instanceof SwitchStartEventError) {\n // this changes what initiatedByMe returns\n this.startEvent = err.startEvent;\n retry = true;\n } else {\n throw err;\n }\n }\n } while (retry);\n };\n\n public canSwitchStartEvent(event: MatrixEvent): boolean {\n if (event.getType() !== START_TYPE) {\n return false;\n }\n const content = event.getContent();\n return content?.method === SAS.NAME && !!this.waitingForAccept;\n }\n\n private async sendStart(): Promise<Record<string, any>> {\n const startContent = this.channel.completeContent(START_TYPE, {\n method: SAS.NAME,\n from_device: this.baseApis.deviceId,\n key_agreement_protocols: KEY_AGREEMENT_LIST,\n hashes: HASHES_LIST,\n message_authentication_codes: MAC_LIST,\n // FIXME: allow app to specify what SAS methods can be used\n short_authentication_string: SAS_LIST,\n });\n await this.channel.sendCompleted(START_TYPE, startContent);\n return startContent;\n }\n\n private async verifyAndCheckMAC(\n keyAgreement: KeyAgreement,\n sasMethods: string[],\n olmSAS: OlmSAS,\n macMethod: MacMethod,\n ): Promise<void> {\n const sasBytes = calculateKeyAgreement[keyAgreement](this, olmSAS, 6);\n const verifySAS = new Promise<void>((resolve, reject) => {\n this.sasEvent = {\n sas: generateSas(sasBytes, sasMethods),\n confirm: async (): Promise<void> => {\n try {\n await this.sendMAC(olmSAS, macMethod);\n resolve();\n } catch (err) {\n reject(err);\n }\n },\n cancel: (): void => reject(newUserCancelledError()),\n mismatch: (): void => reject(newMismatchedSASError()),\n };\n this.emit(SasEvent.ShowSas, this.sasEvent);\n });\n\n const [e] = await Promise.all([\n this.waitForEvent(EventType.KeyVerificationMac).then((e) => {\n // we don't expect any more messages from the other\n // party, and they may send a m.key.verification.done\n // when they're done on their end\n this.expectedEvent = EventType.KeyVerificationDone;\n return e;\n }),\n verifySAS,\n ]);\n const content = e.getContent();\n await this.checkMAC(olmSAS, content, macMethod);\n }\n\n private async doSendVerification(): Promise<void> {\n this.waitingForAccept = true;\n let startContent;\n if (this.startEvent) {\n startContent = this.channel.completedContentFromEvent(this.startEvent);\n } else {\n startContent = await this.sendStart();\n }\n\n // we might have switched to a different start event,\n // but was we didn't call _waitForEvent there was no\n // call that could throw yet. So check manually that\n // we're still on the initiator side\n if (!this.initiatedByMe) {\n throw new SwitchStartEventError(this.startEvent);\n }\n\n let e: MatrixEvent;\n try {\n e = await this.waitForEvent(EventType.KeyVerificationAccept);\n } finally {\n this.waitingForAccept = false;\n }\n let content = e.getContent();\n const sasMethods = intersection(content.short_authentication_string, SAS_SET);\n if (\n !(\n KEY_AGREEMENT_SET.has(content.key_agreement_protocol) &&\n HASHES_SET.has(content.hash) &&\n MAC_SET.has(content.message_authentication_code) &&\n sasMethods.length\n )\n ) {\n throw newUnknownMethodError();\n }\n if (typeof content.commitment !== \"string\") {\n throw newInvalidMessageError();\n }\n const keyAgreement = content.key_agreement_protocol;\n const macMethod = content.message_authentication_code;\n const hashCommitment = content.commitment;\n const olmSAS = new globalThis.Olm.SAS();\n try {\n this.ourSASPubKey = olmSAS.get_pubkey();\n await this.send(EventType.KeyVerificationKey, {\n key: this.ourSASPubKey,\n });\n\n e = await this.waitForEvent(EventType.KeyVerificationKey);\n // FIXME: make sure event is properly formed\n content = e.getContent();\n const commitmentStr = content.key + anotherjson.stringify(startContent);\n // TODO: use selected hash function (when we support multiple)\n if (olmutil.sha256(commitmentStr) !== hashCommitment) {\n throw newMismatchedCommitmentError();\n }\n this.theirSASPubKey = content.key;\n olmSAS.set_their_key(content.key);\n\n await this.verifyAndCheckMAC(keyAgreement, sasMethods, olmSAS, macMethod);\n } finally {\n olmSAS.free();\n }\n }\n\n private async doRespondVerification(): Promise<void> {\n // as m.related_to is not included in the encrypted content in e2e rooms,\n // we need to make sure it is added\n let content = this.channel.completedContentFromEvent(this.startEvent!);\n\n // Note: we intersect using our pre-made lists, rather than the sets,\n // so that the result will be in our order of preference. Then\n // fetching the first element from the array will give our preferred\n // method out of the ones offered by the other party.\n const keyAgreement = intersection(KEY_AGREEMENT_LIST, new Set(content.key_agreement_protocols))[0];\n const hashMethod = intersection(HASHES_LIST, new Set(content.hashes))[0];\n const macMethod = intersection(MAC_LIST, new Set(content.message_authentication_codes))[0];\n // FIXME: allow app to specify what SAS methods can be used\n const sasMethods = intersection(content.short_authentication_string, SAS_SET);\n if (!(keyAgreement !== undefined && hashMethod !== undefined && macMethod !== undefined && sasMethods.length)) {\n throw newUnknownMethodError();\n }\n\n const olmSAS = new globalThis.Olm.SAS();\n try {\n const commitmentStr = olmSAS.get_pubkey() + anotherjson.stringify(content);\n await this.send(EventType.KeyVerificationAccept, {\n key_agreement_protocol: keyAgreement,\n hash: hashMethod,\n message_authentication_code: macMethod,\n short_authentication_string: sasMethods,\n // TODO: use selected hash function (when we support multiple)\n commitment: olmutil.sha256(commitmentStr),\n });\n\n const e = await this.waitForEvent(EventType.KeyVerificationKey);\n // FIXME: make sure event is properly formed\n content = e.getContent();\n this.theirSASPubKey = content.key;\n olmSAS.set_their_key(content.key);\n this.ourSASPubKey = olmSAS.get_pubkey();\n await this.send(EventType.KeyVerificationKey, {\n key: this.ourSASPubKey,\n });\n\n await this.verifyAndCheckMAC(keyAgreement, sasMethods, olmSAS, macMethod);\n } finally {\n olmSAS.free();\n }\n }\n\n private sendMAC(olmSAS: OlmSAS, method: MacMethod): Promise<void> {\n const mac: Record<string, string> = {};\n const keyList: string[] = [];\n const baseInfo =\n \"MATRIX_KEY_VERIFICATION_MAC\" +\n this.baseApis.getUserId() +\n this.baseApis.deviceId +\n this.userId +\n this.deviceId +\n this.channel.transactionId;\n\n const deviceKeyId = `ed25519:${this.baseApis.deviceId}`;\n mac[deviceKeyId] = calculateMAC(olmSAS, method)(this.baseApis.getDeviceEd25519Key()!, baseInfo + deviceKeyId);\n keyList.push(deviceKeyId);\n\n const crossSigningId = this.baseApis.getCrossSigningId();\n if (crossSigningId) {\n const crossSigningKeyId = `ed25519:${crossSigningId}`;\n mac[crossSigningKeyId] = calculateMAC(olmSAS, method)(crossSigningId, baseInfo + crossSigningKeyId);\n keyList.push(crossSigningKeyId);\n }\n\n const keys = calculateMAC(olmSAS, method)(keyList.sort().join(\",\"), baseInfo + \"KEY_IDS\");\n return this.send(EventType.KeyVerificationMac, { mac, keys });\n }\n\n private async checkMAC(olmSAS: OlmSAS, content: IContent, method: MacMethod): Promise<void> {\n const baseInfo =\n \"MATRIX_KEY_VERIFICATION_MAC\" +\n this.userId +\n this.deviceId +\n this.baseApis.getUserId() +\n this.baseApis.deviceId +\n this.channel.transactionId;\n\n if (\n content.keys !==\n calculateMAC(olmSAS, method)(Object.keys(content.mac).sort().join(\",\"), baseInfo + \"KEY_IDS\")\n ) {\n throw newKeyMismatchError();\n }\n\n await this.verifyKeys(this.userId, content.mac, (keyId, device, keyInfo) => {\n if (keyInfo !== calculateMAC(olmSAS, method)(device.keys[keyId], baseInfo + keyId)) {\n throw newKeyMismatchError();\n }\n });\n }\n\n public getShowSasCallbacks(): ShowSasCallbacks | null {\n return this.sasEvent ?? null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,8 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Implementation of decimal encoding of SAS as per:
|
3
|
-
* https://spec.matrix.org/v1.4/client-server-api/#sas-method-decimal
|
4
|
-
* @param sasBytes - the five bytes generated by HKDF
|
5
|
-
* @returns the derived three numbers between 1000 and 9191 inclusive
|
6
|
-
*/
|
7
|
-
export declare function generateDecimalSas(sasBytes: number[]): [number, number, number];
|
8
|
-
//# sourceMappingURL=SASDecimal.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"SASDecimal.d.ts","sourceRoot":"","sources":["../../../src/crypto/verification/SASDecimal.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAc/E"}
|
@@ -1,34 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright 2018 - 2022 The Matrix.org Foundation C.I.C.
|
3
|
-
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
you may not use this file except in compliance with the License.
|
6
|
-
You may obtain a copy of the License at
|
7
|
-
|
8
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
|
10
|
-
Unless required by applicable law or agreed to in writing, software
|
11
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
See the License for the specific language governing permissions and
|
14
|
-
limitations under the License.
|
15
|
-
*/
|
16
|
-
|
17
|
-
/**
|
18
|
-
* Implementation of decimal encoding of SAS as per:
|
19
|
-
* https://spec.matrix.org/v1.4/client-server-api/#sas-method-decimal
|
20
|
-
* @param sasBytes - the five bytes generated by HKDF
|
21
|
-
* @returns the derived three numbers between 1000 and 9191 inclusive
|
22
|
-
*/
|
23
|
-
export function generateDecimalSas(sasBytes) {
|
24
|
-
/*
|
25
|
-
* +--------+--------+--------+--------+--------+
|
26
|
-
* | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 |
|
27
|
-
* +--------+--------+--------+--------+--------+
|
28
|
-
* bits: 87654321 87654321 87654321 87654321 87654321
|
29
|
-
* \____________/\_____________/\____________/
|
30
|
-
* 1st number 2nd number 3rd number
|
31
|
-
*/
|
32
|
-
return [(sasBytes[0] << 5 | sasBytes[1] >> 3) + 1000, ((sasBytes[1] & 0x7) << 10 | sasBytes[2] << 2 | sasBytes[3] >> 6) + 1000, ((sasBytes[3] & 0x3f) << 7 | sasBytes[4] >> 1) + 1000];
|
33
|
-
}
|
34
|
-
//# sourceMappingURL=SASDecimal.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"SASDecimal.js","names":["generateDecimalSas","sasBytes"],"sources":["../../../src/crypto/verification/SASDecimal.ts"],"sourcesContent":["/*\nCopyright 2018 - 2022 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n/**\n * Implementation of decimal encoding of SAS as per:\n * https://spec.matrix.org/v1.4/client-server-api/#sas-method-decimal\n * @param sasBytes - the five bytes generated by HKDF\n * @returns the derived three numbers between 1000 and 9191 inclusive\n */\nexport function generateDecimalSas(sasBytes: number[]): [number, number, number] {\n /*\n * +--------+--------+--------+--------+--------+\n * | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 |\n * +--------+--------+--------+--------+--------+\n * bits: 87654321 87654321 87654321 87654321 87654321\n * \\____________/\\_____________/\\____________/\n * 1st number 2nd number 3rd number\n */\n return [\n ((sasBytes[0] << 5) | (sasBytes[1] >> 3)) + 1000,\n (((sasBytes[1] & 0x7) << 10) | (sasBytes[2] << 2) | (sasBytes[3] >> 6)) + 1000,\n (((sasBytes[3] & 0x3f) << 7) | (sasBytes[4] >> 1)) + 1000,\n ];\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,kBAAkBA,CAACC,QAAkB,EAA4B;EAC7E;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAO,CACH,CAAEA,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAKA,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAE,IAAI,IAAI,EAChD,CAAE,CAACA,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,GAAKA,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAE,GAAIA,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAE,IAAI,IAAI,EAC9E,CAAE,CAACA,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,GAAKA,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAE,IAAI,IAAI,CAC5D;AACL","ignoreList":[]}
|
@@ -1,18 +0,0 @@
|
|
1
|
-
import { MatrixEvent } from "../../../models/event.ts";
|
2
|
-
import { VerificationRequest } from "./VerificationRequest.ts";
|
3
|
-
export interface IVerificationChannel {
|
4
|
-
request?: VerificationRequest;
|
5
|
-
readonly userId?: string;
|
6
|
-
readonly roomId?: string;
|
7
|
-
readonly deviceId?: string;
|
8
|
-
readonly transactionId?: string;
|
9
|
-
readonly receiveStartFromOtherDevices?: boolean;
|
10
|
-
getTimestamp(event: MatrixEvent): number;
|
11
|
-
send(type: string, uncompletedContent: Record<string, any>): Promise<void>;
|
12
|
-
completeContent(type: string, content: Record<string, any>): Record<string, any>;
|
13
|
-
sendCompleted(type: string, content: Record<string, any>): Promise<void>;
|
14
|
-
completedContentFromEvent(event: MatrixEvent): Record<string, any>;
|
15
|
-
canCreateRequest(type: string): boolean;
|
16
|
-
handleEvent(event: MatrixEvent, request: VerificationRequest, isLiveEvent: boolean): Promise<void>;
|
17
|
-
}
|
18
|
-
//# sourceMappingURL=Channel.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../../src/crypto/verification/request/Channel.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAChD,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjF,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,yBAAyB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnE,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACxC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtG"}
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|