@unwanted/matrix-sdk-mini 34.12.0-2 → 34.12.0-4
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 -1221
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +331 -2821
- 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/lib/types.d.ts +0 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/types.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 +60 -2882
- 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/src/types.ts +0 -1
- package/CHANGELOG.md +0 -5910
- package/lib/@types/AESEncryptedSecretStoragePayload.d.ts +0 -14
- package/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map +0 -1
- package/lib/@types/AESEncryptedSecretStoragePayload.js +0 -1
- package/lib/@types/AESEncryptedSecretStoragePayload.js.map +0 -1
- 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/lib/utils/decryptAESSecretStorageItem.d.ts +0 -12
- package/lib/utils/decryptAESSecretStorageItem.d.ts.map +0 -1
- package/lib/utils/decryptAESSecretStorageItem.js +0 -50
- package/lib/utils/decryptAESSecretStorageItem.js.map +0 -1
- package/lib/utils/encryptAESSecretStorageItem.d.ts +0 -16
- package/lib/utils/encryptAESSecretStorageItem.d.ts.map +0 -1
- package/lib/utils/encryptAESSecretStorageItem.js +0 -68
- package/lib/utils/encryptAESSecretStorageItem.js.map +0 -1
- package/lib/utils/internal/deriveKeys.d.ts +0 -10
- package/lib/utils/internal/deriveKeys.d.ts.map +0 -1
- package/lib/utils/internal/deriveKeys.js +0 -60
- package/lib/utils/internal/deriveKeys.js.map +0 -1
- package/src/@types/AESEncryptedSecretStoragePayload.ts +0 -29
- 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
- package/src/utils/decryptAESSecretStorageItem.ts +0 -54
- package/src/utils/encryptAESSecretStorageItem.ts +0 -73
- package/src/utils/internal/deriveKeys.ts +0 -63
@@ -1,68 +0,0 @@
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
2
|
-
/*
|
3
|
-
* Copyright 2024 The Matrix.org Foundation C.I.C.
|
4
|
-
*
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
* you may not use this file except in compliance with the License.
|
7
|
-
* You may obtain a copy of the License at
|
8
|
-
*
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
*
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
* See the License for the specific language governing permissions and
|
15
|
-
* limitations under the License.
|
16
|
-
*/
|
17
|
-
|
18
|
-
import { decodeBase64, encodeBase64 } from "../base64.js";
|
19
|
-
import { deriveKeys } from "./internal/deriveKeys.js";
|
20
|
-
/**
|
21
|
-
* Encrypt a string as a secret storage item, using AES-CTR.
|
22
|
-
*
|
23
|
-
* @param data - the plaintext to encrypt
|
24
|
-
* @param key - the encryption key to use as an input to the HKDF function which is used to derive the AES key for
|
25
|
-
* encryption. Obviously, the same key must be provided when decrypting.
|
26
|
-
* @param name - the name of the secret. Used as an input to the HKDF operation which is used to derive the AES key,
|
27
|
-
* so again the same value must be provided when decrypting.
|
28
|
-
* @param ivStr - the base64-encoded initialization vector to use. If not supplied, a random one will be generated.
|
29
|
-
*
|
30
|
-
* @returns The encrypted result, including the ciphertext itself, the initialization vector (as supplied in `ivStr`,
|
31
|
-
* or generated), and an HMAC on the ciphertext — all base64-encoded.
|
32
|
-
*/
|
33
|
-
export default function encryptAESSecretStorageItem(_x, _x2, _x3, _x4) {
|
34
|
-
return _encryptAESSecretStorageItem.apply(this, arguments);
|
35
|
-
}
|
36
|
-
function _encryptAESSecretStorageItem() {
|
37
|
-
_encryptAESSecretStorageItem = _asyncToGenerator(function* (data, key, name, ivStr) {
|
38
|
-
var iv;
|
39
|
-
if (ivStr) {
|
40
|
-
iv = decodeBase64(ivStr);
|
41
|
-
} else {
|
42
|
-
iv = new Uint8Array(16);
|
43
|
-
globalThis.crypto.getRandomValues(iv);
|
44
|
-
|
45
|
-
// clear bit 63 of the IV to stop us hitting the 64-bit counter boundary
|
46
|
-
// (which would mean we wouldn't be able to decrypt on Android). The loss
|
47
|
-
// of a single bit of iv is a price we have to pay.
|
48
|
-
iv[8] &= 0x7f;
|
49
|
-
}
|
50
|
-
var [aesKey, hmacKey] = yield deriveKeys(key, name);
|
51
|
-
var encodedData = new TextEncoder().encode(data);
|
52
|
-
var ciphertext = yield globalThis.crypto.subtle.encrypt({
|
53
|
-
name: "AES-CTR",
|
54
|
-
counter: iv,
|
55
|
-
length: 64
|
56
|
-
}, aesKey, encodedData);
|
57
|
-
var hmac = yield globalThis.crypto.subtle.sign({
|
58
|
-
name: "HMAC"
|
59
|
-
}, hmacKey, ciphertext);
|
60
|
-
return {
|
61
|
-
iv: encodeBase64(iv),
|
62
|
-
ciphertext: encodeBase64(ciphertext),
|
63
|
-
mac: encodeBase64(hmac)
|
64
|
-
};
|
65
|
-
});
|
66
|
-
return _encryptAESSecretStorageItem.apply(this, arguments);
|
67
|
-
}
|
68
|
-
//# sourceMappingURL=encryptAESSecretStorageItem.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"encryptAESSecretStorageItem.js","names":["decodeBase64","encodeBase64","deriveKeys","encryptAESSecretStorageItem","_x","_x2","_x3","_x4","_encryptAESSecretStorageItem","apply","arguments","_asyncToGenerator","data","key","name","ivStr","iv","Uint8Array","globalThis","crypto","getRandomValues","aesKey","hmacKey","encodedData","TextEncoder","encode","ciphertext","subtle","encrypt","counter","length","hmac","sign","mac"],"sources":["../../src/utils/encryptAESSecretStorageItem.ts"],"sourcesContent":["/*\n * Copyright 2024 The Matrix.org Foundation C.I.C.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { decodeBase64, encodeBase64 } from \"../base64.ts\";\nimport { deriveKeys } from \"./internal/deriveKeys.ts\";\nimport { AESEncryptedSecretStoragePayload } from \"../@types/AESEncryptedSecretStoragePayload.ts\";\n\n/**\n * Encrypt a string as a secret storage item, using AES-CTR.\n *\n * @param data - the plaintext to encrypt\n * @param key - the encryption key to use as an input to the HKDF function which is used to derive the AES key for\n * encryption. Obviously, the same key must be provided when decrypting.\n * @param name - the name of the secret. Used as an input to the HKDF operation which is used to derive the AES key,\n * so again the same value must be provided when decrypting.\n * @param ivStr - the base64-encoded initialization vector to use. If not supplied, a random one will be generated.\n *\n * @returns The encrypted result, including the ciphertext itself, the initialization vector (as supplied in `ivStr`,\n * or generated), and an HMAC on the ciphertext — all base64-encoded.\n */\nexport default async function encryptAESSecretStorageItem(\n data: string,\n key: Uint8Array,\n name: string,\n ivStr?: string,\n): Promise<AESEncryptedSecretStoragePayload> {\n let iv: Uint8Array;\n if (ivStr) {\n iv = decodeBase64(ivStr);\n } else {\n iv = new Uint8Array(16);\n globalThis.crypto.getRandomValues(iv);\n\n // clear bit 63 of the IV to stop us hitting the 64-bit counter boundary\n // (which would mean we wouldn't be able to decrypt on Android). The loss\n // of a single bit of iv is a price we have to pay.\n iv[8] &= 0x7f;\n }\n\n const [aesKey, hmacKey] = await deriveKeys(key, name);\n const encodedData = new TextEncoder().encode(data);\n\n const ciphertext = await globalThis.crypto.subtle.encrypt(\n {\n name: \"AES-CTR\",\n counter: iv,\n length: 64,\n },\n aesKey,\n encodedData,\n );\n\n const hmac = await globalThis.crypto.subtle.sign({ name: \"HMAC\" }, hmacKey, ciphertext);\n\n return {\n iv: encodeBase64(iv),\n ciphertext: encodeBase64(ciphertext),\n mac: encodeBase64(hmac),\n };\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,YAAY,EAAEC,YAAY,QAAQ,cAAc;AACzD,SAASC,UAAU,QAAQ,0BAA0B;AAGrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAA8BC,2BAA2BA,CAAAC,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,4BAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAuCxD,SAAAF,6BAAA;EAAAA,4BAAA,GAAAG,iBAAA,CAvCc,WACXC,IAAY,EACZC,GAAe,EACfC,IAAY,EACZC,KAAc,EAC2B;IACzC,IAAIC,EAAc;IAClB,IAAID,KAAK,EAAE;MACPC,EAAE,GAAGhB,YAAY,CAACe,KAAK,CAAC;IAC5B,CAAC,MAAM;MACHC,EAAE,GAAG,IAAIC,UAAU,CAAC,EAAE,CAAC;MACvBC,UAAU,CAACC,MAAM,CAACC,eAAe,CAACJ,EAAE,CAAC;;MAErC;MACA;MACA;MACAA,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;IACjB;IAEA,IAAM,CAACK,MAAM,EAAEC,OAAO,CAAC,SAASpB,UAAU,CAACW,GAAG,EAAEC,IAAI,CAAC;IACrD,IAAMS,WAAW,GAAG,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACb,IAAI,CAAC;IAElD,IAAMc,UAAU,SAASR,UAAU,CAACC,MAAM,CAACQ,MAAM,CAACC,OAAO,CACrD;MACId,IAAI,EAAE,SAAS;MACfe,OAAO,EAAEb,EAAE;MACXc,MAAM,EAAE;IACZ,CAAC,EACDT,MAAM,EACNE,WACJ,CAAC;IAED,IAAMQ,IAAI,SAASb,UAAU,CAACC,MAAM,CAACQ,MAAM,CAACK,IAAI,CAAC;MAAElB,IAAI,EAAE;IAAO,CAAC,EAAEQ,OAAO,EAAEI,UAAU,CAAC;IAEvF,OAAO;MACHV,EAAE,EAAEf,YAAY,CAACe,EAAE,CAAC;MACpBU,UAAU,EAAEzB,YAAY,CAACyB,UAAU,CAAC;MACpCO,GAAG,EAAEhC,YAAY,CAAC8B,IAAI;IAC1B,CAAC;EACL,CAAC;EAAA,OAAAvB,4BAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA","ignoreList":[]}
|
@@ -1,10 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Derive AES and HMAC keys from a master key.
|
3
|
-
*
|
4
|
-
* This is used for deriving secret storage keys: see https://spec.matrix.org/v1.11/client-server-api/#msecret_storagev1aes-hmac-sha2 (step 1).
|
5
|
-
*
|
6
|
-
* @param key
|
7
|
-
* @param name
|
8
|
-
*/
|
9
|
-
export declare function deriveKeys(key: Uint8Array, name: string): Promise<[CryptoKey, CryptoKey]>;
|
10
|
-
//# sourceMappingURL=deriveKeys.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"deriveKeys.d.ts","sourceRoot":"","sources":["../../../src/utils/internal/deriveKeys.ts"],"names":[],"mappings":"AAmBA;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAmC/F"}
|
@@ -1,60 +0,0 @@
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
2
|
-
/*
|
3
|
-
* Copyright 2024 The Matrix.org Foundation C.I.C.
|
4
|
-
*
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
* you may not use this file except in compliance with the License.
|
7
|
-
* You may obtain a copy of the License at
|
8
|
-
*
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
*
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
* See the License for the specific language governing permissions and
|
15
|
-
* limitations under the License.
|
16
|
-
*/
|
17
|
-
|
18
|
-
// salt for HKDF, with 8 bytes of zeros
|
19
|
-
var zeroSalt = new Uint8Array(8);
|
20
|
-
|
21
|
-
/**
|
22
|
-
* Derive AES and HMAC keys from a master key.
|
23
|
-
*
|
24
|
-
* This is used for deriving secret storage keys: see https://spec.matrix.org/v1.11/client-server-api/#msecret_storagev1aes-hmac-sha2 (step 1).
|
25
|
-
*
|
26
|
-
* @param key
|
27
|
-
* @param name
|
28
|
-
*/
|
29
|
-
export function deriveKeys(_x, _x2) {
|
30
|
-
return _deriveKeys.apply(this, arguments);
|
31
|
-
}
|
32
|
-
function _deriveKeys() {
|
33
|
-
_deriveKeys = _asyncToGenerator(function* (key, name) {
|
34
|
-
var hkdfkey = yield globalThis.crypto.subtle.importKey("raw", key, {
|
35
|
-
name: "HKDF"
|
36
|
-
}, false, ["deriveBits"]);
|
37
|
-
var keybits = yield globalThis.crypto.subtle.deriveBits({
|
38
|
-
name: "HKDF",
|
39
|
-
salt: zeroSalt,
|
40
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
41
|
-
// @ts-ignore: https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/879
|
42
|
-
info: new TextEncoder().encode(name),
|
43
|
-
hash: "SHA-256"
|
44
|
-
}, hkdfkey, 512);
|
45
|
-
var aesKey = keybits.slice(0, 32);
|
46
|
-
var hmacKey = keybits.slice(32);
|
47
|
-
var aesProm = globalThis.crypto.subtle.importKey("raw", aesKey, {
|
48
|
-
name: "AES-CTR"
|
49
|
-
}, false, ["encrypt", "decrypt"]);
|
50
|
-
var hmacProm = globalThis.crypto.subtle.importKey("raw", hmacKey, {
|
51
|
-
name: "HMAC",
|
52
|
-
hash: {
|
53
|
-
name: "SHA-256"
|
54
|
-
}
|
55
|
-
}, false, ["sign", "verify"]);
|
56
|
-
return Promise.all([aesProm, hmacProm]);
|
57
|
-
});
|
58
|
-
return _deriveKeys.apply(this, arguments);
|
59
|
-
}
|
60
|
-
//# sourceMappingURL=deriveKeys.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"deriveKeys.js","names":["zeroSalt","Uint8Array","deriveKeys","_x","_x2","_deriveKeys","apply","arguments","_asyncToGenerator","key","name","hkdfkey","globalThis","crypto","subtle","importKey","keybits","deriveBits","salt","info","TextEncoder","encode","hash","aesKey","slice","hmacKey","aesProm","hmacProm","Promise","all"],"sources":["../../../src/utils/internal/deriveKeys.ts"],"sourcesContent":["/*\n * Copyright 2024 The Matrix.org Foundation C.I.C.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// salt for HKDF, with 8 bytes of zeros\nconst zeroSalt = new Uint8Array(8);\n\n/**\n * Derive AES and HMAC keys from a master key.\n *\n * This is used for deriving secret storage keys: see https://spec.matrix.org/v1.11/client-server-api/#msecret_storagev1aes-hmac-sha2 (step 1).\n *\n * @param key\n * @param name\n */\nexport async function deriveKeys(key: Uint8Array, name: string): Promise<[CryptoKey, CryptoKey]> {\n const hkdfkey = await globalThis.crypto.subtle.importKey(\"raw\", key, { name: \"HKDF\" }, false, [\"deriveBits\"]);\n const keybits = await globalThis.crypto.subtle.deriveBits(\n {\n name: \"HKDF\",\n salt: zeroSalt,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/879\n info: new TextEncoder().encode(name),\n hash: \"SHA-256\",\n },\n hkdfkey,\n 512,\n );\n\n const aesKey = keybits.slice(0, 32);\n const hmacKey = keybits.slice(32);\n\n const aesProm = globalThis.crypto.subtle.importKey(\"raw\", aesKey, { name: \"AES-CTR\" }, false, [\n \"encrypt\",\n \"decrypt\",\n ]);\n\n const hmacProm = globalThis.crypto.subtle.importKey(\n \"raw\",\n hmacKey,\n {\n name: \"HMAC\",\n hash: { name: \"SHA-256\" },\n },\n false,\n [\"sign\", \"verify\"],\n );\n\n return Promise.all([aesProm, hmacProm]);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAMA,QAAQ,GAAG,IAAIC,UAAU,CAAC,CAAC,CAAC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAsBC,UAAUA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,WAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAmC/B,SAAAF,YAAA;EAAAA,WAAA,GAAAG,iBAAA,CAnCM,WAA0BC,GAAe,EAAEC,IAAY,EAAmC;IAC7F,IAAMC,OAAO,SAASC,UAAU,CAACC,MAAM,CAACC,MAAM,CAACC,SAAS,CAAC,KAAK,EAAEN,GAAG,EAAE;MAAEC,IAAI,EAAE;IAAO,CAAC,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC;IAC7G,IAAMM,OAAO,SAASJ,UAAU,CAACC,MAAM,CAACC,MAAM,CAACG,UAAU,CACrD;MACIP,IAAI,EAAE,MAAM;MACZQ,IAAI,EAAElB,QAAQ;MACd;MACA;MACAmB,IAAI,EAAE,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACX,IAAI,CAAC;MACpCY,IAAI,EAAE;IACV,CAAC,EACDX,OAAO,EACP,GACJ,CAAC;IAED,IAAMY,MAAM,GAAGP,OAAO,CAACQ,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;IACnC,IAAMC,OAAO,GAAGT,OAAO,CAACQ,KAAK,CAAC,EAAE,CAAC;IAEjC,IAAME,OAAO,GAAGd,UAAU,CAACC,MAAM,CAACC,MAAM,CAACC,SAAS,CAAC,KAAK,EAAEQ,MAAM,EAAE;MAAEb,IAAI,EAAE;IAAU,CAAC,EAAE,KAAK,EAAE,CAC1F,SAAS,EACT,SAAS,CACZ,CAAC;IAEF,IAAMiB,QAAQ,GAAGf,UAAU,CAACC,MAAM,CAACC,MAAM,CAACC,SAAS,CAC/C,KAAK,EACLU,OAAO,EACP;MACIf,IAAI,EAAE,MAAM;MACZY,IAAI,EAAE;QAAEZ,IAAI,EAAE;MAAU;IAC5B,CAAC,EACD,KAAK,EACL,CAAC,MAAM,EAAE,QAAQ,CACrB,CAAC;IAED,OAAOkB,OAAO,CAACC,GAAG,CAAC,CAACH,OAAO,EAAEC,QAAQ,CAAC,CAAC;EAC3C,CAAC;EAAA,OAAAtB,WAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA","ignoreList":[]}
|
@@ -1,29 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Copyright 2024 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
|
-
* An AES-encrypted secret storage payload.
|
19
|
-
* See https://spec.matrix.org/v1.11/client-server-api/#msecret_storagev1aes-hmac-sha2-1
|
20
|
-
*/
|
21
|
-
export interface AESEncryptedSecretStoragePayload {
|
22
|
-
[key: string]: any; // extensible
|
23
|
-
/** the initialization vector in base64 */
|
24
|
-
iv: string;
|
25
|
-
/** the ciphertext in base64 */
|
26
|
-
ciphertext: string;
|
27
|
-
/** the HMAC in base64 */
|
28
|
-
mac: string;
|
29
|
-
}
|
package/src/@types/crypto.ts
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright 2022-2023 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
|
-
import type { ISignatures } from "./signed.ts";
|
18
|
-
|
19
|
-
export type OlmGroupSessionExtraData = {
|
20
|
-
untrusted?: boolean;
|
21
|
-
sharedHistory?: boolean;
|
22
|
-
};
|
23
|
-
|
24
|
-
// Backwards compatible re-export
|
25
|
-
export type { EventDecryptionResult as IEventDecryptionResult } from "../common-crypto/CryptoBackend.ts";
|
26
|
-
|
27
|
-
interface Extensible {
|
28
|
-
[key: string]: any;
|
29
|
-
}
|
30
|
-
|
31
|
-
/* eslint-disable camelcase */
|
32
|
-
|
33
|
-
/** The result of a call to {@link MatrixClient.exportRoomKeys} */
|
34
|
-
export interface IMegolmSessionData extends Extensible {
|
35
|
-
/** Sender's Curve25519 device key */
|
36
|
-
sender_key: string;
|
37
|
-
/** Devices which forwarded this session to us (normally empty). */
|
38
|
-
forwarding_curve25519_key_chain: string[];
|
39
|
-
/** Other keys the sender claims. */
|
40
|
-
sender_claimed_keys: Record<string, string>;
|
41
|
-
/** Room this session is used in */
|
42
|
-
room_id: string;
|
43
|
-
/** Unique id for the session */
|
44
|
-
session_id: string;
|
45
|
-
/** Base64'ed key data */
|
46
|
-
session_key: string;
|
47
|
-
algorithm?: string;
|
48
|
-
untrusted?: boolean;
|
49
|
-
}
|
50
|
-
|
51
|
-
/* eslint-enable camelcase */
|
52
|
-
|
53
|
-
/** the type of the `device_keys` parameter on `/_matrix/client/v3/keys/upload`
|
54
|
-
*
|
55
|
-
* @see https://spec.matrix.org/v1.5/client-server-api/#post_matrixclientv3keysupload
|
56
|
-
*/
|
57
|
-
export interface IDeviceKeys {
|
58
|
-
algorithms: Array<string>;
|
59
|
-
device_id: string; // eslint-disable-line camelcase
|
60
|
-
user_id: string; // eslint-disable-line camelcase
|
61
|
-
keys: Record<string, string>;
|
62
|
-
signatures?: ISignatures;
|
63
|
-
}
|
64
|
-
|
65
|
-
/** the type of the `one_time_keys` and `fallback_keys` parameters on `/_matrix/client/v3/keys/upload`
|
66
|
-
*
|
67
|
-
* @see https://spec.matrix.org/v1.5/client-server-api/#post_matrixclientv3keysupload
|
68
|
-
*/
|
69
|
-
export interface IOneTimeKey {
|
70
|
-
key: string;
|
71
|
-
fallback?: boolean;
|
72
|
-
signatures?: ISignatures;
|
73
|
-
}
|
@@ -1,44 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright 2024 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
|
-
import type * as RustSdkCryptoJs from "@matrix-org/matrix-sdk-crypto-wasm";
|
18
|
-
|
19
|
-
declare module "@matrix-org/matrix-sdk-crypto-wasm" {
|
20
|
-
interface OlmMachine {
|
21
|
-
importSecretsBundle(bundle: RustSdkCryptoJs.SecretsBundle): Promise<void>;
|
22
|
-
exportSecretsBundle(): Promise<RustSdkCryptoJs.SecretsBundle>;
|
23
|
-
}
|
24
|
-
|
25
|
-
interface SecretsBundle {
|
26
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
27
|
-
to_json(): Promise<{
|
28
|
-
cross_signing: {
|
29
|
-
master_key: string;
|
30
|
-
self_signing_key: string;
|
31
|
-
user_signing_key: string;
|
32
|
-
};
|
33
|
-
backup?: {
|
34
|
-
algorithm: string;
|
35
|
-
key: string;
|
36
|
-
backup_version: string;
|
37
|
-
};
|
38
|
-
}>;
|
39
|
-
}
|
40
|
-
|
41
|
-
interface Device {
|
42
|
-
requestVerification(methods?: any[]): [RustSdkCryptoJs.VerificationRequest, RustSdkCryptoJs.ToDeviceRequest];
|
43
|
-
}
|
44
|
-
}
|
@@ -1,302 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright 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
|
-
import type { IDeviceLists, IToDeviceEvent } from "../sync-accumulator.ts";
|
18
|
-
import { IClearEvent, MatrixEvent } from "../models/event.ts";
|
19
|
-
import { Room } from "../models/room.ts";
|
20
|
-
import { CryptoApi, DecryptionFailureCode, ImportRoomKeysOpts } from "../crypto-api/index.ts";
|
21
|
-
import { CrossSigningInfo, UserTrustLevel } from "../crypto/CrossSigning.ts";
|
22
|
-
import { IEncryptedEventInfo } from "../crypto/api.ts";
|
23
|
-
import { KeyBackupInfo, KeyBackupSession } from "../crypto-api/keybackup.ts";
|
24
|
-
import { IMegolmSessionData } from "../@types/crypto.ts";
|
25
|
-
|
26
|
-
/**
|
27
|
-
* Common interface for the crypto implementations
|
28
|
-
*
|
29
|
-
* @internal
|
30
|
-
*/
|
31
|
-
export interface CryptoBackend extends SyncCryptoCallbacks, CryptoApi {
|
32
|
-
/**
|
33
|
-
* Whether sendMessage in a room with unknown and unverified devices
|
34
|
-
* should throw an error and not send the message. This has 'Global' for
|
35
|
-
* symmetry with setGlobalBlacklistUnverifiedDevices but there is currently
|
36
|
-
* no room-level equivalent for this setting.
|
37
|
-
*
|
38
|
-
* @remarks This has no effect in Rust Crypto; it exists only for the sake of
|
39
|
-
* the accessors in MatrixClient.
|
40
|
-
*/
|
41
|
-
globalErrorOnUnknownDevices: boolean;
|
42
|
-
|
43
|
-
/**
|
44
|
-
* Shut down any background processes related to crypto
|
45
|
-
*/
|
46
|
-
stop(): void;
|
47
|
-
|
48
|
-
/**
|
49
|
-
* Get the verification level for a given user
|
50
|
-
*
|
51
|
-
* @param userId - user to be checked
|
52
|
-
*
|
53
|
-
* @deprecated Superceded by {@link CryptoApi#getUserVerificationStatus}.
|
54
|
-
*/
|
55
|
-
checkUserTrust(userId: string): UserTrustLevel;
|
56
|
-
|
57
|
-
/**
|
58
|
-
* Encrypt an event according to the configuration of the room.
|
59
|
-
*
|
60
|
-
* @param event - event to be sent
|
61
|
-
*
|
62
|
-
* @param room - destination room.
|
63
|
-
*
|
64
|
-
* @returns Promise which resolves when the event has been
|
65
|
-
* encrypted, or null if nothing was needed
|
66
|
-
*/
|
67
|
-
encryptEvent(event: MatrixEvent, room: Room): Promise<void>;
|
68
|
-
|
69
|
-
/**
|
70
|
-
* Decrypt a received event
|
71
|
-
*
|
72
|
-
* @returns a promise which resolves once we have finished decrypting.
|
73
|
-
* Rejects with an error if there is a problem decrypting the event.
|
74
|
-
*/
|
75
|
-
decryptEvent(event: MatrixEvent): Promise<EventDecryptionResult>;
|
76
|
-
|
77
|
-
/**
|
78
|
-
* Get information about the encryption of an event
|
79
|
-
*
|
80
|
-
* @param event - event to be checked
|
81
|
-
*/
|
82
|
-
getEventEncryptionInfo(event: MatrixEvent): IEncryptedEventInfo;
|
83
|
-
|
84
|
-
/**
|
85
|
-
* Get the cross signing information for a given user.
|
86
|
-
*
|
87
|
-
* The cross-signing API is currently UNSTABLE and may change without notice.
|
88
|
-
*
|
89
|
-
* @param userId - the user ID to get the cross-signing info for.
|
90
|
-
*
|
91
|
-
* @returns the cross signing information for the user.
|
92
|
-
* @deprecated Prefer {@link CryptoApi#userHasCrossSigningKeys}
|
93
|
-
*/
|
94
|
-
getStoredCrossSigningForUser(userId: string): CrossSigningInfo | null;
|
95
|
-
|
96
|
-
/**
|
97
|
-
* Check the cross signing trust of the current user
|
98
|
-
*
|
99
|
-
* @param opts - Options object.
|
100
|
-
*
|
101
|
-
* @deprecated Unneeded for the new crypto
|
102
|
-
*/
|
103
|
-
checkOwnCrossSigningTrust(opts?: CheckOwnCrossSigningTrustOpts): Promise<void>;
|
104
|
-
|
105
|
-
/**
|
106
|
-
* Get a backup decryptor capable of decrypting megolm session data encrypted with the given backup information.
|
107
|
-
* @param backupInfo - The backup information
|
108
|
-
* @param privKey - The private decryption key.
|
109
|
-
*/
|
110
|
-
getBackupDecryptor(backupInfo: KeyBackupInfo, privKey: ArrayLike<number>): Promise<BackupDecryptor>;
|
111
|
-
|
112
|
-
/**
|
113
|
-
* Import a list of room keys restored from backup
|
114
|
-
*
|
115
|
-
* @param keys - a list of session export objects
|
116
|
-
* @param backupVersion - the version of the backup these keys came from.
|
117
|
-
* @param opts - options object
|
118
|
-
* @returns a promise which resolves once the keys have been imported
|
119
|
-
*/
|
120
|
-
importBackedUpRoomKeys(keys: IMegolmSessionData[], backupVersion: string, opts?: ImportRoomKeysOpts): Promise<void>;
|
121
|
-
}
|
122
|
-
|
123
|
-
/** The methods which crypto implementations should expose to the Sync api
|
124
|
-
*
|
125
|
-
* @internal
|
126
|
-
*/
|
127
|
-
export interface SyncCryptoCallbacks {
|
128
|
-
/**
|
129
|
-
* Called by the /sync loop whenever there are incoming to-device messages.
|
130
|
-
*
|
131
|
-
* The implementation may preprocess the received messages (eg, decrypt them) and return an
|
132
|
-
* updated list of messages for dispatch to the rest of the system.
|
133
|
-
*
|
134
|
-
* Note that, unlike {@link ClientEvent.ToDeviceEvent} events, this is called on the raw to-device
|
135
|
-
* messages, rather than the results of any decryption attempts.
|
136
|
-
*
|
137
|
-
* @param events - the received to-device messages
|
138
|
-
* @returns A list of preprocessed to-device messages.
|
139
|
-
*/
|
140
|
-
preprocessToDeviceMessages(events: IToDeviceEvent[]): Promise<IToDeviceEvent[]>;
|
141
|
-
|
142
|
-
/**
|
143
|
-
* Called by the /sync loop when one time key counts and unused fallback key details are received.
|
144
|
-
*
|
145
|
-
* @param oneTimeKeysCounts - the received one time key counts
|
146
|
-
* @param unusedFallbackKeys - the received unused fallback keys
|
147
|
-
*/
|
148
|
-
processKeyCounts(oneTimeKeysCounts?: Record<string, number>, unusedFallbackKeys?: string[]): Promise<void>;
|
149
|
-
|
150
|
-
/**
|
151
|
-
* Handle the notification from /sync that device lists have
|
152
|
-
* been changed.
|
153
|
-
*
|
154
|
-
* @param deviceLists - device_lists field from /sync
|
155
|
-
*/
|
156
|
-
processDeviceLists(deviceLists: IDeviceLists): Promise<void>;
|
157
|
-
|
158
|
-
/**
|
159
|
-
* Called by the /sync loop whenever an m.room.encryption event is received.
|
160
|
-
*
|
161
|
-
* This is called before RoomStateEvents are emitted for any of the events in the /sync
|
162
|
-
* response (even if the other events technically happened first). This works around a problem
|
163
|
-
* if the client uses a RoomStateEvent (typically a membership event) as a trigger to send a message
|
164
|
-
* in a new room (or one where encryption has been newly enabled): that would otherwise leave the
|
165
|
-
* crypto layer confused because it expects crypto to be set up, but it has not yet been.
|
166
|
-
*
|
167
|
-
* @param room - in which the event was received
|
168
|
-
* @param event - encryption event to be processed
|
169
|
-
*/
|
170
|
-
onCryptoEvent(room: Room, event: MatrixEvent): Promise<void>;
|
171
|
-
|
172
|
-
/**
|
173
|
-
* Called by the /sync loop after each /sync response is processed.
|
174
|
-
*
|
175
|
-
* Used to complete batch processing, or to initiate background processes
|
176
|
-
*
|
177
|
-
* @param syncState - information about the completed sync.
|
178
|
-
*/
|
179
|
-
onSyncCompleted(syncState: OnSyncCompletedData): void;
|
180
|
-
}
|
181
|
-
|
182
|
-
/**
|
183
|
-
* @internal
|
184
|
-
*/
|
185
|
-
export interface OnSyncCompletedData {
|
186
|
-
/**
|
187
|
-
* The 'next_batch' result from /sync, which will become the 'since' token for the next call to /sync.
|
188
|
-
*/
|
189
|
-
nextSyncToken?: string;
|
190
|
-
|
191
|
-
/**
|
192
|
-
* True if we are working our way through a backlog of events after connecting.
|
193
|
-
*/
|
194
|
-
catchingUp?: boolean;
|
195
|
-
}
|
196
|
-
|
197
|
-
/**
|
198
|
-
* Options object for {@link CryptoBackend#checkOwnCrossSigningTrust}.
|
199
|
-
*/
|
200
|
-
export interface CheckOwnCrossSigningTrustOpts {
|
201
|
-
allowPrivateKeyRequests?: boolean;
|
202
|
-
}
|
203
|
-
|
204
|
-
/**
|
205
|
-
* The result of a (successful) call to {@link CryptoBackend.decryptEvent}
|
206
|
-
*/
|
207
|
-
export interface EventDecryptionResult {
|
208
|
-
/**
|
209
|
-
* The plaintext payload for the event (typically containing <tt>type</tt> and <tt>content</tt> fields).
|
210
|
-
*/
|
211
|
-
clearEvent: IClearEvent;
|
212
|
-
/**
|
213
|
-
* List of curve25519 keys involved in telling us about the senderCurve25519Key and claimedEd25519Key.
|
214
|
-
* See {@link MatrixEvent#getForwardingCurve25519KeyChain}.
|
215
|
-
*/
|
216
|
-
forwardingCurve25519KeyChain?: string[];
|
217
|
-
/**
|
218
|
-
* Key owned by the sender of this event. See {@link MatrixEvent#getSenderKey}.
|
219
|
-
*/
|
220
|
-
senderCurve25519Key?: string;
|
221
|
-
/**
|
222
|
-
* ed25519 key claimed by the sender of this event. See {@link MatrixEvent#getClaimedEd25519Key}.
|
223
|
-
*/
|
224
|
-
claimedEd25519Key?: string;
|
225
|
-
/**
|
226
|
-
* Whether the keys for this event have been received via an unauthenticated source (eg via key forwards, or
|
227
|
-
* restored from backup)
|
228
|
-
*/
|
229
|
-
untrusted?: boolean;
|
230
|
-
}
|
231
|
-
|
232
|
-
/**
|
233
|
-
* Responsible for decrypting megolm session data retrieved from a remote backup.
|
234
|
-
* The result of {@link CryptoBackend#getBackupDecryptor}.
|
235
|
-
*/
|
236
|
-
export interface BackupDecryptor {
|
237
|
-
/**
|
238
|
-
* Whether keys retrieved from this backup can be trusted.
|
239
|
-
*
|
240
|
-
* Depending on the backup algorithm, keys retrieved from the backup can be trusted or not.
|
241
|
-
* If false, keys retrieved from the backup must be considered unsafe (authenticity cannot be guaranteed).
|
242
|
-
* It could be by design (deniability) or for some technical reason (eg asymmetric encryption).
|
243
|
-
*/
|
244
|
-
readonly sourceTrusted: boolean;
|
245
|
-
|
246
|
-
/**
|
247
|
-
*
|
248
|
-
* Decrypt megolm session data retrieved from backup.
|
249
|
-
*
|
250
|
-
* @param ciphertexts - a Record of sessionId to session data.
|
251
|
-
*
|
252
|
-
* @returns An array of decrypted `IMegolmSessionData`
|
253
|
-
*/
|
254
|
-
decryptSessions(ciphertexts: Record<string, KeyBackupSession>): Promise<IMegolmSessionData[]>;
|
255
|
-
|
256
|
-
/**
|
257
|
-
* Free any resources held by this decryptor.
|
258
|
-
*
|
259
|
-
* Should be called once the decryptor is no longer needed.
|
260
|
-
*/
|
261
|
-
free(): void;
|
262
|
-
}
|
263
|
-
|
264
|
-
/**
|
265
|
-
* Exception thrown when decryption fails
|
266
|
-
*
|
267
|
-
* @param code - Reason code for the failure.
|
268
|
-
*
|
269
|
-
* @param msg - user-visible message describing the problem
|
270
|
-
*
|
271
|
-
* @param details - key/value pairs reported in the logs but not shown
|
272
|
-
* to the user.
|
273
|
-
*/
|
274
|
-
export class DecryptionError extends Error {
|
275
|
-
public readonly detailedString: string;
|
276
|
-
|
277
|
-
public constructor(
|
278
|
-
public readonly code: DecryptionFailureCode,
|
279
|
-
msg: string,
|
280
|
-
details?: Record<string, string | Error>,
|
281
|
-
) {
|
282
|
-
super(msg);
|
283
|
-
this.name = "DecryptionError";
|
284
|
-
this.detailedString = detailedStringForDecryptionError(this, details);
|
285
|
-
}
|
286
|
-
}
|
287
|
-
|
288
|
-
function detailedStringForDecryptionError(err: DecryptionError, details?: Record<string, string | Error>): string {
|
289
|
-
let result = err.name + "[msg: " + err.message;
|
290
|
-
|
291
|
-
if (details) {
|
292
|
-
result +=
|
293
|
-
", " +
|
294
|
-
Object.keys(details)
|
295
|
-
.map((k) => k + ": " + details[k])
|
296
|
-
.join(", ");
|
297
|
-
}
|
298
|
-
|
299
|
-
result += "]";
|
300
|
-
|
301
|
-
return result;
|
302
|
-
}
|
@@ -1,43 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Copyright 2024 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
|
-
import { deriveRecoveryKeyFromPassphrase } from "../crypto-api/index.ts";
|
18
|
-
|
19
|
-
/* eslint-disable camelcase */
|
20
|
-
interface IAuthData {
|
21
|
-
private_key_salt?: string;
|
22
|
-
private_key_iterations?: number;
|
23
|
-
private_key_bits?: number;
|
24
|
-
}
|
25
|
-
|
26
|
-
/**
|
27
|
-
* Derive a backup key from a passphrase using the salt and iterations from the auth data.
|
28
|
-
* @param authData - The auth data containing the salt and iterations
|
29
|
-
* @param passphrase - The passphrase to derive the key from
|
30
|
-
* @deprecated Deriving a backup key from a passphrase is not part of the matrix spec. Instead, a random key is generated and stored/shared via 4S.
|
31
|
-
*/
|
32
|
-
export function keyFromAuthData(authData: IAuthData, passphrase: string): Promise<Uint8Array> {
|
33
|
-
if (!authData.private_key_salt || !authData.private_key_iterations) {
|
34
|
-
throw new Error("Salt and/or iterations not found: " + "this backup cannot be restored with a passphrase");
|
35
|
-
}
|
36
|
-
|
37
|
-
return deriveRecoveryKeyFromPassphrase(
|
38
|
-
passphrase,
|
39
|
-
authData.private_key_salt,
|
40
|
-
authData.private_key_iterations,
|
41
|
-
authData.private_key_bits,
|
42
|
-
);
|
43
|
-
}
|