@unwanted/matrix-sdk-mini 34.12.0-1 → 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/event.d.ts +0 -19
- package/lib/@types/event.d.ts.map +1 -1
- package/lib/@types/event.js.map +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 -1224
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +345 -2826
- 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 -167
- 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 -25
- package/lib/matrix.d.ts.map +1 -1
- package/lib/matrix.js +1 -30
- 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/event.ts +2 -36
- package/src/@types/global.d.ts +0 -3
- package/src/browser-index.ts +0 -11
- package/src/client.ts +52 -2876
- package/src/embedded.ts +3 -132
- package/src/event-mapper.ts +0 -4
- package/src/matrix.ts +0 -41
- 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/matrixrtc/CallMembership.d.ts +0 -66
- package/lib/matrixrtc/CallMembership.d.ts.map +0 -1
- package/lib/matrixrtc/CallMembership.js +0 -197
- package/lib/matrixrtc/CallMembership.js.map +0 -1
- package/lib/matrixrtc/LivekitFocus.d.ts +0 -16
- package/lib/matrixrtc/LivekitFocus.d.ts.map +0 -1
- package/lib/matrixrtc/LivekitFocus.js +0 -20
- package/lib/matrixrtc/LivekitFocus.js.map +0 -1
- package/lib/matrixrtc/MatrixRTCSession.d.ts +0 -295
- package/lib/matrixrtc/MatrixRTCSession.d.ts.map +0 -1
- package/lib/matrixrtc/MatrixRTCSession.js +0 -1043
- package/lib/matrixrtc/MatrixRTCSession.js.map +0 -1
- package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +0 -40
- package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +0 -1
- package/lib/matrixrtc/MatrixRTCSessionManager.js +0 -146
- package/lib/matrixrtc/MatrixRTCSessionManager.js.map +0 -1
- package/lib/matrixrtc/focus.d.ts +0 -10
- package/lib/matrixrtc/focus.d.ts.map +0 -1
- package/lib/matrixrtc/focus.js +0 -1
- package/lib/matrixrtc/focus.js.map +0 -1
- package/lib/matrixrtc/index.d.ts +0 -7
- package/lib/matrixrtc/index.d.ts.map +0 -1
- package/lib/matrixrtc/index.js +0 -21
- package/lib/matrixrtc/index.js.map +0 -1
- package/lib/matrixrtc/types.d.ts +0 -19
- package/lib/matrixrtc/types.d.ts.map +0 -1
- package/lib/matrixrtc/types.js +0 -1
- package/lib/matrixrtc/types.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/webrtc/audioContext.d.ts +0 -15
- package/lib/webrtc/audioContext.d.ts.map +0 -1
- package/lib/webrtc/audioContext.js +0 -46
- package/lib/webrtc/audioContext.js.map +0 -1
- package/lib/webrtc/call.d.ts +0 -560
- package/lib/webrtc/call.d.ts.map +0 -1
- package/lib/webrtc/call.js +0 -2541
- package/lib/webrtc/call.js.map +0 -1
- package/lib/webrtc/callEventHandler.d.ts +0 -37
- package/lib/webrtc/callEventHandler.d.ts.map +0 -1
- package/lib/webrtc/callEventHandler.js +0 -344
- package/lib/webrtc/callEventHandler.js.map +0 -1
- package/lib/webrtc/callEventTypes.d.ts +0 -73
- package/lib/webrtc/callEventTypes.d.ts.map +0 -1
- package/lib/webrtc/callEventTypes.js +0 -13
- package/lib/webrtc/callEventTypes.js.map +0 -1
- package/lib/webrtc/callFeed.d.ts +0 -128
- package/lib/webrtc/callFeed.d.ts.map +0 -1
- package/lib/webrtc/callFeed.js +0 -289
- package/lib/webrtc/callFeed.js.map +0 -1
- package/lib/webrtc/groupCall.d.ts +0 -323
- package/lib/webrtc/groupCall.d.ts.map +0 -1
- package/lib/webrtc/groupCall.js +0 -1337
- package/lib/webrtc/groupCall.js.map +0 -1
- package/lib/webrtc/groupCallEventHandler.d.ts +0 -31
- package/lib/webrtc/groupCallEventHandler.d.ts.map +0 -1
- package/lib/webrtc/groupCallEventHandler.js +0 -178
- package/lib/webrtc/groupCallEventHandler.js.map +0 -1
- package/lib/webrtc/mediaHandler.d.ts +0 -89
- package/lib/webrtc/mediaHandler.d.ts.map +0 -1
- package/lib/webrtc/mediaHandler.js +0 -437
- package/lib/webrtc/mediaHandler.js.map +0 -1
- package/lib/webrtc/stats/callFeedStatsReporter.d.ts +0 -8
- package/lib/webrtc/stats/callFeedStatsReporter.d.ts.map +0 -1
- package/lib/webrtc/stats/callFeedStatsReporter.js +0 -82
- package/lib/webrtc/stats/callFeedStatsReporter.js.map +0 -1
- package/lib/webrtc/stats/callStatsReportGatherer.d.ts +0 -25
- package/lib/webrtc/stats/callStatsReportGatherer.d.ts.map +0 -1
- package/lib/webrtc/stats/callStatsReportGatherer.js +0 -199
- package/lib/webrtc/stats/callStatsReportGatherer.js.map +0 -1
- package/lib/webrtc/stats/callStatsReportSummary.d.ts +0 -17
- package/lib/webrtc/stats/callStatsReportSummary.d.ts.map +0 -1
- package/lib/webrtc/stats/callStatsReportSummary.js +0 -1
- package/lib/webrtc/stats/callStatsReportSummary.js.map +0 -1
- package/lib/webrtc/stats/connectionStats.d.ts +0 -28
- package/lib/webrtc/stats/connectionStats.d.ts.map +0 -1
- package/lib/webrtc/stats/connectionStats.js +0 -26
- package/lib/webrtc/stats/connectionStats.js.map +0 -1
- package/lib/webrtc/stats/connectionStatsBuilder.d.ts +0 -5
- package/lib/webrtc/stats/connectionStatsBuilder.d.ts.map +0 -1
- package/lib/webrtc/stats/connectionStatsBuilder.js +0 -27
- package/lib/webrtc/stats/connectionStatsBuilder.js.map +0 -1
- package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts +0 -7
- package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts.map +0 -1
- package/lib/webrtc/stats/connectionStatsReportBuilder.js +0 -121
- package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +0 -1
- package/lib/webrtc/stats/groupCallStats.d.ts +0 -22
- package/lib/webrtc/stats/groupCallStats.d.ts.map +0 -1
- package/lib/webrtc/stats/groupCallStats.js +0 -78
- package/lib/webrtc/stats/groupCallStats.js.map +0 -1
- package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts +0 -10
- package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts.map +0 -1
- package/lib/webrtc/stats/media/mediaSsrcHandler.js +0 -57
- package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackHandler.d.ts +0 -12
- package/lib/webrtc/stats/media/mediaTrackHandler.d.ts.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackHandler.js +0 -62
- package/lib/webrtc/stats/media/mediaTrackHandler.js.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackStats.d.ts +0 -86
- package/lib/webrtc/stats/media/mediaTrackStats.d.ts.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackStats.js +0 -142
- package/lib/webrtc/stats/media/mediaTrackStats.js.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts +0 -22
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +0 -76
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +0 -1
- package/lib/webrtc/stats/statsReport.d.ts +0 -99
- package/lib/webrtc/stats/statsReport.d.ts.map +0 -1
- package/lib/webrtc/stats/statsReport.js +0 -32
- package/lib/webrtc/stats/statsReport.js.map +0 -1
- package/lib/webrtc/stats/statsReportEmitter.d.ts +0 -15
- package/lib/webrtc/stats/statsReportEmitter.d.ts.map +0 -1
- package/lib/webrtc/stats/statsReportEmitter.js +0 -33
- package/lib/webrtc/stats/statsReportEmitter.js.map +0 -1
- package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts +0 -16
- package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts.map +0 -1
- package/lib/webrtc/stats/summaryStatsReportGatherer.js +0 -116
- package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +0 -1
- package/lib/webrtc/stats/trackStatsBuilder.d.ts +0 -19
- package/lib/webrtc/stats/trackStatsBuilder.d.ts.map +0 -1
- package/lib/webrtc/stats/trackStatsBuilder.js +0 -168
- package/lib/webrtc/stats/trackStatsBuilder.js.map +0 -1
- package/lib/webrtc/stats/transportStats.d.ts +0 -11
- package/lib/webrtc/stats/transportStats.d.ts.map +0 -1
- package/lib/webrtc/stats/transportStats.js +0 -1
- package/lib/webrtc/stats/transportStats.js.map +0 -1
- package/lib/webrtc/stats/transportStatsBuilder.d.ts +0 -5
- package/lib/webrtc/stats/transportStatsBuilder.d.ts.map +0 -1
- package/lib/webrtc/stats/transportStatsBuilder.js +0 -34
- package/lib/webrtc/stats/transportStatsBuilder.js.map +0 -1
- package/lib/webrtc/stats/valueFormatter.d.ts +0 -4
- package/lib/webrtc/stats/valueFormatter.d.ts.map +0 -1
- package/lib/webrtc/stats/valueFormatter.js +0 -25
- package/lib/webrtc/stats/valueFormatter.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/matrixrtc/CallMembership.ts +0 -247
- package/src/matrixrtc/LivekitFocus.ts +0 -39
- package/src/matrixrtc/MatrixRTCSession.ts +0 -1319
- package/src/matrixrtc/MatrixRTCSessionManager.ts +0 -166
- package/src/matrixrtc/focus.ts +0 -25
- package/src/matrixrtc/index.ts +0 -22
- package/src/matrixrtc/types.ts +0 -36
- 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/webrtc/audioContext.ts +0 -44
- package/src/webrtc/call.ts +0 -3074
- package/src/webrtc/callEventHandler.ts +0 -425
- package/src/webrtc/callEventTypes.ts +0 -93
- package/src/webrtc/callFeed.ts +0 -364
- package/src/webrtc/groupCall.ts +0 -1735
- package/src/webrtc/groupCallEventHandler.ts +0 -234
- package/src/webrtc/mediaHandler.ts +0 -484
- package/src/webrtc/stats/callFeedStatsReporter.ts +0 -94
- package/src/webrtc/stats/callStatsReportGatherer.ts +0 -219
- package/src/webrtc/stats/callStatsReportSummary.ts +0 -30
- package/src/webrtc/stats/connectionStats.ts +0 -47
- package/src/webrtc/stats/connectionStatsBuilder.ts +0 -28
- package/src/webrtc/stats/connectionStatsReportBuilder.ts +0 -140
- package/src/webrtc/stats/groupCallStats.ts +0 -93
- package/src/webrtc/stats/media/mediaSsrcHandler.ts +0 -57
- package/src/webrtc/stats/media/mediaTrackHandler.ts +0 -76
- package/src/webrtc/stats/media/mediaTrackStats.ts +0 -176
- package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +0 -90
- package/src/webrtc/stats/statsReport.ts +0 -133
- package/src/webrtc/stats/statsReportEmitter.ts +0 -49
- package/src/webrtc/stats/summaryStatsReportGatherer.ts +0 -148
- package/src/webrtc/stats/trackStatsBuilder.ts +0 -207
- package/src/webrtc/stats/transportStats.ts +0 -26
- package/src/webrtc/stats/transportStatsBuilder.ts +0 -48
- package/src/webrtc/stats/valueFormatter.ts +0 -27
@@ -1,194 +0,0 @@
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
3
|
-
/*
|
4
|
-
Copyright 2019-2023 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
|
-
import { v4 as uuidv4 } from "uuid";
|
19
|
-
import { defer } from "../utils.js";
|
20
|
-
import { ToDeviceMessageId } from "../@types/event.js";
|
21
|
-
import { logger } from "../logger.js";
|
22
|
-
import * as olmlib from "./olmlib.js";
|
23
|
-
export class SecretSharing {
|
24
|
-
constructor(baseApis, cryptoCallbacks) {
|
25
|
-
this.baseApis = baseApis;
|
26
|
-
this.cryptoCallbacks = cryptoCallbacks;
|
27
|
-
_defineProperty(this, "requests", new Map());
|
28
|
-
}
|
29
|
-
|
30
|
-
/**
|
31
|
-
* Request a secret from another device
|
32
|
-
*
|
33
|
-
* @param name - the name of the secret to request
|
34
|
-
* @param devices - the devices to request the secret from
|
35
|
-
*/
|
36
|
-
request(name, devices) {
|
37
|
-
var requestId = this.baseApis.makeTxnId();
|
38
|
-
var deferred = defer();
|
39
|
-
this.requests.set(requestId, {
|
40
|
-
name,
|
41
|
-
devices,
|
42
|
-
deferred
|
43
|
-
});
|
44
|
-
var cancel = reason => {
|
45
|
-
// send cancellation event
|
46
|
-
var cancelData = {
|
47
|
-
action: "request_cancellation",
|
48
|
-
requesting_device_id: this.baseApis.deviceId,
|
49
|
-
request_id: requestId
|
50
|
-
};
|
51
|
-
var toDevice = new Map();
|
52
|
-
for (var device of devices) {
|
53
|
-
toDevice.set(device, cancelData);
|
54
|
-
}
|
55
|
-
this.baseApis.sendToDevice("m.secret.request", new Map([[this.baseApis.getUserId(), toDevice]]));
|
56
|
-
|
57
|
-
// and reject the promise so that anyone waiting on it will be
|
58
|
-
// notified
|
59
|
-
deferred.reject(new Error(reason || "Cancelled"));
|
60
|
-
};
|
61
|
-
|
62
|
-
// send request to devices
|
63
|
-
var requestData = {
|
64
|
-
name,
|
65
|
-
action: "request",
|
66
|
-
requesting_device_id: this.baseApis.deviceId,
|
67
|
-
request_id: requestId,
|
68
|
-
[ToDeviceMessageId]: uuidv4()
|
69
|
-
};
|
70
|
-
var toDevice = new Map();
|
71
|
-
for (var device of devices) {
|
72
|
-
toDevice.set(device, requestData);
|
73
|
-
}
|
74
|
-
logger.info("Request secret ".concat(name, " from ").concat(devices, ", id ").concat(requestId));
|
75
|
-
this.baseApis.sendToDevice("m.secret.request", new Map([[this.baseApis.getUserId(), toDevice]]));
|
76
|
-
return {
|
77
|
-
requestId,
|
78
|
-
promise: deferred.promise,
|
79
|
-
cancel
|
80
|
-
};
|
81
|
-
}
|
82
|
-
onRequestReceived(event) {
|
83
|
-
var _this = this;
|
84
|
-
return _asyncToGenerator(function* () {
|
85
|
-
var sender = event.getSender();
|
86
|
-
var content = event.getContent();
|
87
|
-
if (sender !== _this.baseApis.getUserId() || !(content.name && content.action && content.requesting_device_id && content.request_id)) {
|
88
|
-
// ignore requests from anyone else, for now
|
89
|
-
return;
|
90
|
-
}
|
91
|
-
var deviceId = content.requesting_device_id;
|
92
|
-
// check if it's a cancel
|
93
|
-
if (content.action === "request_cancellation") {
|
94
|
-
/*
|
95
|
-
Looks like we intended to emit events when we got cancelations, but
|
96
|
-
we never put anything in the _incomingRequests object, and the request
|
97
|
-
itself doesn't use events anyway so if we were to wire up cancellations,
|
98
|
-
they probably ought to use the same callback interface. I'm leaving them
|
99
|
-
disabled for now while converting this file to typescript.
|
100
|
-
if (this._incomingRequests[deviceId]
|
101
|
-
&& this._incomingRequests[deviceId][content.request_id]) {
|
102
|
-
logger.info(
|
103
|
-
"received request cancellation for secret (" + sender +
|
104
|
-
", " + deviceId + ", " + content.request_id + ")",
|
105
|
-
);
|
106
|
-
this.baseApis.emit("crypto.secrets.requestCancelled", {
|
107
|
-
user_id: sender,
|
108
|
-
device_id: deviceId,
|
109
|
-
request_id: content.request_id,
|
110
|
-
});
|
111
|
-
}
|
112
|
-
*/
|
113
|
-
} else if (content.action === "request") {
|
114
|
-
if (deviceId === _this.baseApis.deviceId) {
|
115
|
-
// no point in trying to send ourself the secret
|
116
|
-
return;
|
117
|
-
}
|
118
|
-
|
119
|
-
// check if we have the secret
|
120
|
-
logger.info("received request for secret (" + sender + ", " + deviceId + ", " + content.request_id + ")");
|
121
|
-
if (!_this.cryptoCallbacks.onSecretRequested) {
|
122
|
-
return;
|
123
|
-
}
|
124
|
-
var secret = yield _this.cryptoCallbacks.onSecretRequested(sender, deviceId, content.request_id, content.name, _this.baseApis.checkDeviceTrust(sender, deviceId));
|
125
|
-
if (secret) {
|
126
|
-
logger.info("Preparing ".concat(content.name, " secret for ").concat(deviceId));
|
127
|
-
var payload = {
|
128
|
-
type: "m.secret.send",
|
129
|
-
content: {
|
130
|
-
request_id: content.request_id,
|
131
|
-
secret: secret
|
132
|
-
}
|
133
|
-
};
|
134
|
-
var encryptedContent = {
|
135
|
-
algorithm: olmlib.OLM_ALGORITHM,
|
136
|
-
sender_key: _this.baseApis.crypto.olmDevice.deviceCurve25519Key,
|
137
|
-
ciphertext: {},
|
138
|
-
[ToDeviceMessageId]: uuidv4()
|
139
|
-
};
|
140
|
-
yield olmlib.ensureOlmSessionsForDevices(_this.baseApis.crypto.olmDevice, _this.baseApis, new Map([[sender, [_this.baseApis.getStoredDevice(sender, deviceId)]]]));
|
141
|
-
yield olmlib.encryptMessageForDevice(encryptedContent.ciphertext, _this.baseApis.getUserId(), _this.baseApis.deviceId, _this.baseApis.crypto.olmDevice, sender, _this.baseApis.getStoredDevice(sender, deviceId), payload);
|
142
|
-
var contentMap = new Map([[sender, new Map([[deviceId, encryptedContent]])]]);
|
143
|
-
logger.info("Sending ".concat(content.name, " secret for ").concat(deviceId));
|
144
|
-
_this.baseApis.sendToDevice("m.room.encrypted", contentMap);
|
145
|
-
} else {
|
146
|
-
logger.info("Request denied for ".concat(content.name, " secret for ").concat(deviceId));
|
147
|
-
}
|
148
|
-
}
|
149
|
-
})();
|
150
|
-
}
|
151
|
-
onSecretReceived(event) {
|
152
|
-
if (event.getSender() !== this.baseApis.getUserId()) {
|
153
|
-
// we shouldn't be receiving secrets from anyone else, so ignore
|
154
|
-
// because someone could be trying to send us bogus data
|
155
|
-
return;
|
156
|
-
}
|
157
|
-
if (!olmlib.isOlmEncrypted(event)) {
|
158
|
-
logger.error("secret event not properly encrypted");
|
159
|
-
return;
|
160
|
-
}
|
161
|
-
var content = event.getContent();
|
162
|
-
var senderKeyUser = this.baseApis.crypto.deviceList.getUserByIdentityKey(olmlib.OLM_ALGORITHM, event.getSenderKey() || "");
|
163
|
-
if (senderKeyUser !== event.getSender()) {
|
164
|
-
logger.error("sending device does not belong to the user it claims to be from");
|
165
|
-
return;
|
166
|
-
}
|
167
|
-
logger.log("got secret share for request", content.request_id);
|
168
|
-
var requestControl = this.requests.get(content.request_id);
|
169
|
-
if (requestControl) {
|
170
|
-
// make sure that the device that sent it is one of the devices that
|
171
|
-
// we requested from
|
172
|
-
var deviceInfo = this.baseApis.crypto.deviceList.getDeviceByIdentityKey(olmlib.OLM_ALGORITHM, event.getSenderKey());
|
173
|
-
if (!deviceInfo) {
|
174
|
-
logger.log("secret share from unknown device with key", event.getSenderKey());
|
175
|
-
return;
|
176
|
-
}
|
177
|
-
if (!requestControl.devices.includes(deviceInfo.deviceId)) {
|
178
|
-
logger.log("unsolicited secret share from device", deviceInfo.deviceId);
|
179
|
-
return;
|
180
|
-
}
|
181
|
-
// unsure that the sender is trusted. In theory, this check is
|
182
|
-
// unnecessary since we only accept secret shares from devices that
|
183
|
-
// we requested from, but it doesn't hurt.
|
184
|
-
var deviceTrust = this.baseApis.crypto.checkDeviceInfoTrust(event.getSender(), deviceInfo);
|
185
|
-
if (!deviceTrust.isVerified()) {
|
186
|
-
logger.log("secret share from unverified device");
|
187
|
-
return;
|
188
|
-
}
|
189
|
-
logger.log("Successfully received secret ".concat(requestControl.name, " ") + "from ".concat(deviceInfo.deviceId));
|
190
|
-
requestControl.deferred.resolve(content.secret);
|
191
|
-
}
|
192
|
-
}
|
193
|
-
}
|
194
|
-
//# sourceMappingURL=SecretSharing.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"SecretSharing.js","names":["v4","uuidv4","defer","ToDeviceMessageId","logger","olmlib","SecretSharing","constructor","baseApis","cryptoCallbacks","_defineProperty","Map","request","name","devices","requestId","makeTxnId","deferred","requests","set","cancel","reason","cancelData","action","requesting_device_id","deviceId","request_id","toDevice","device","sendToDevice","getUserId","reject","Error","requestData","info","concat","promise","onRequestReceived","event","_this","_asyncToGenerator","sender","getSender","content","getContent","onSecretRequested","secret","checkDeviceTrust","payload","type","encryptedContent","algorithm","OLM_ALGORITHM","sender_key","crypto","olmDevice","deviceCurve25519Key","ciphertext","ensureOlmSessionsForDevices","getStoredDevice","encryptMessageForDevice","contentMap","onSecretReceived","isOlmEncrypted","error","senderKeyUser","deviceList","getUserByIdentityKey","getSenderKey","log","requestControl","get","deviceInfo","getDeviceByIdentityKey","includes","deviceTrust","checkDeviceInfoTrust","isVerified","resolve"],"sources":["../../src/crypto/SecretSharing.ts"],"sourcesContent":["/*\nCopyright 2019-2023 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*/\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { MatrixClient } from \"../client.ts\";\nimport { ICryptoCallbacks, IEncryptedContent } from \"./index.ts\";\nimport { defer, IDeferred } from \"../utils.ts\";\nimport { ToDeviceMessageId } from \"../@types/event.ts\";\nimport { logger } from \"../logger.ts\";\nimport { MatrixEvent } from \"../models/event.ts\";\nimport * as olmlib from \"./olmlib.ts\";\n\nexport interface ISecretRequest {\n requestId: string;\n promise: Promise<string>;\n cancel: (reason: string) => void;\n}\n\ninterface ISecretRequestInternal {\n name: string;\n devices: string[];\n deferred: IDeferred<string>;\n}\n\nexport class SecretSharing {\n private requests = new Map<string, ISecretRequestInternal>();\n\n public constructor(\n private readonly baseApis: MatrixClient,\n private readonly cryptoCallbacks: ICryptoCallbacks,\n ) {}\n\n /**\n * Request a secret from another device\n *\n * @param name - the name of the secret to request\n * @param devices - the devices to request the secret from\n */\n public request(name: string, devices: string[]): ISecretRequest {\n const requestId = this.baseApis.makeTxnId();\n\n const deferred = defer<string>();\n this.requests.set(requestId, { name, devices, deferred });\n\n const cancel = (reason: string): void => {\n // send cancellation event\n const cancelData = {\n action: \"request_cancellation\",\n requesting_device_id: this.baseApis.deviceId,\n request_id: requestId,\n };\n const toDevice: Map<string, typeof cancelData> = new Map();\n for (const device of devices) {\n toDevice.set(device, cancelData);\n }\n this.baseApis.sendToDevice(\"m.secret.request\", new Map([[this.baseApis.getUserId()!, toDevice]]));\n\n // and reject the promise so that anyone waiting on it will be\n // notified\n deferred.reject(new Error(reason || \"Cancelled\"));\n };\n\n // send request to devices\n const requestData = {\n name,\n action: \"request\",\n requesting_device_id: this.baseApis.deviceId,\n request_id: requestId,\n [ToDeviceMessageId]: uuidv4(),\n };\n const toDevice: Map<string, typeof requestData> = new Map();\n for (const device of devices) {\n toDevice.set(device, requestData);\n }\n logger.info(`Request secret ${name} from ${devices}, id ${requestId}`);\n this.baseApis.sendToDevice(\"m.secret.request\", new Map([[this.baseApis.getUserId()!, toDevice]]));\n\n return {\n requestId,\n promise: deferred.promise,\n cancel,\n };\n }\n\n public async onRequestReceived(event: MatrixEvent): Promise<void> {\n const sender = event.getSender();\n const content = event.getContent();\n if (\n sender !== this.baseApis.getUserId() ||\n !(content.name && content.action && content.requesting_device_id && content.request_id)\n ) {\n // ignore requests from anyone else, for now\n return;\n }\n const deviceId = content.requesting_device_id;\n // check if it's a cancel\n if (content.action === \"request_cancellation\") {\n /*\n Looks like we intended to emit events when we got cancelations, but\n we never put anything in the _incomingRequests object, and the request\n itself doesn't use events anyway so if we were to wire up cancellations,\n they probably ought to use the same callback interface. I'm leaving them\n disabled for now while converting this file to typescript.\n if (this._incomingRequests[deviceId]\n && this._incomingRequests[deviceId][content.request_id]) {\n logger.info(\n \"received request cancellation for secret (\" + sender +\n \", \" + deviceId + \", \" + content.request_id + \")\",\n );\n this.baseApis.emit(\"crypto.secrets.requestCancelled\", {\n user_id: sender,\n device_id: deviceId,\n request_id: content.request_id,\n });\n }\n */\n } else if (content.action === \"request\") {\n if (deviceId === this.baseApis.deviceId) {\n // no point in trying to send ourself the secret\n return;\n }\n\n // check if we have the secret\n logger.info(\"received request for secret (\" + sender + \", \" + deviceId + \", \" + content.request_id + \")\");\n if (!this.cryptoCallbacks.onSecretRequested) {\n return;\n }\n const secret = await this.cryptoCallbacks.onSecretRequested(\n sender,\n deviceId,\n content.request_id,\n content.name,\n this.baseApis.checkDeviceTrust(sender, deviceId),\n );\n if (secret) {\n logger.info(`Preparing ${content.name} secret for ${deviceId}`);\n const payload = {\n type: \"m.secret.send\",\n content: {\n request_id: content.request_id,\n secret: secret,\n },\n };\n const encryptedContent: IEncryptedContent = {\n algorithm: olmlib.OLM_ALGORITHM,\n sender_key: this.baseApis.crypto!.olmDevice.deviceCurve25519Key!,\n ciphertext: {},\n [ToDeviceMessageId]: uuidv4(),\n };\n await olmlib.ensureOlmSessionsForDevices(\n this.baseApis.crypto!.olmDevice,\n this.baseApis,\n new Map([[sender, [this.baseApis.getStoredDevice(sender, deviceId)!]]]),\n );\n await olmlib.encryptMessageForDevice(\n encryptedContent.ciphertext,\n this.baseApis.getUserId()!,\n this.baseApis.deviceId!,\n this.baseApis.crypto!.olmDevice,\n sender,\n this.baseApis.getStoredDevice(sender, deviceId)!,\n payload,\n );\n const contentMap = new Map([[sender, new Map([[deviceId, encryptedContent]])]]);\n\n logger.info(`Sending ${content.name} secret for ${deviceId}`);\n this.baseApis.sendToDevice(\"m.room.encrypted\", contentMap);\n } else {\n logger.info(`Request denied for ${content.name} secret for ${deviceId}`);\n }\n }\n }\n\n public onSecretReceived(event: MatrixEvent): void {\n if (event.getSender() !== this.baseApis.getUserId()) {\n // we shouldn't be receiving secrets from anyone else, so ignore\n // because someone could be trying to send us bogus data\n return;\n }\n\n if (!olmlib.isOlmEncrypted(event)) {\n logger.error(\"secret event not properly encrypted\");\n return;\n }\n\n const content = event.getContent();\n\n const senderKeyUser = this.baseApis.crypto!.deviceList.getUserByIdentityKey(\n olmlib.OLM_ALGORITHM,\n event.getSenderKey() || \"\",\n );\n if (senderKeyUser !== event.getSender()) {\n logger.error(\"sending device does not belong to the user it claims to be from\");\n return;\n }\n\n logger.log(\"got secret share for request\", content.request_id);\n const requestControl = this.requests.get(content.request_id);\n if (requestControl) {\n // make sure that the device that sent it is one of the devices that\n // we requested from\n const deviceInfo = this.baseApis.crypto!.deviceList.getDeviceByIdentityKey(\n olmlib.OLM_ALGORITHM,\n event.getSenderKey()!,\n );\n if (!deviceInfo) {\n logger.log(\"secret share from unknown device with key\", event.getSenderKey());\n return;\n }\n if (!requestControl.devices.includes(deviceInfo.deviceId)) {\n logger.log(\"unsolicited secret share from device\", deviceInfo.deviceId);\n return;\n }\n // unsure that the sender is trusted. In theory, this check is\n // unnecessary since we only accept secret shares from devices that\n // we requested from, but it doesn't hurt.\n const deviceTrust = this.baseApis.crypto!.checkDeviceInfoTrust(event.getSender()!, deviceInfo);\n if (!deviceTrust.isVerified()) {\n logger.log(\"secret share from unverified device\");\n return;\n }\n\n logger.log(`Successfully received secret ${requestControl.name} ` + `from ${deviceInfo.deviceId}`);\n requestControl.deferred.resolve(content.secret);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,55 +0,0 @@
|
|
1
|
-
import { ICryptoCallbacks } from "./index.ts";
|
2
|
-
import { MatrixEvent } from "../models/event.ts";
|
3
|
-
import { MatrixClient } from "../client.ts";
|
4
|
-
import { SecretStorageKeyDescription, SecretStorageKeyTuple, SecretStorageKeyObject, AddSecretStorageKeyOpts, AccountDataClient, ServerSideSecretStorage } from "../secret-storage.ts";
|
5
|
-
import { ISecretRequest } from "./SecretSharing.ts";
|
6
|
-
export type { AccountDataClient as IAccountDataClient, SecretStorageKeyTuple, SecretStorageKeyObject, SECRET_STORAGE_ALGORITHM_V1_AES, } from "../secret-storage.ts";
|
7
|
-
export type { ISecretRequest } from "./SecretSharing.ts";
|
8
|
-
/**
|
9
|
-
* Implements Secure Secret Storage and Sharing (MSC1946)
|
10
|
-
*
|
11
|
-
* @deprecated This is just a backwards-compatibility hack which will be removed soon.
|
12
|
-
* Use {@link SecretStorage.ServerSideSecretStorageImpl} from `../secret-storage` and/or {@link SecretSharing} from `./SecretSharing`.
|
13
|
-
*/
|
14
|
-
export declare class SecretStorage<B extends MatrixClient | undefined = MatrixClient> implements ServerSideSecretStorage {
|
15
|
-
private readonly storageImpl;
|
16
|
-
private readonly sharingImpl;
|
17
|
-
constructor(accountDataAdapter: AccountDataClient, cryptoCallbacks: ICryptoCallbacks, baseApis: B);
|
18
|
-
getDefaultKeyId(): Promise<string | null>;
|
19
|
-
setDefaultKeyId(keyId: string): Promise<void>;
|
20
|
-
/**
|
21
|
-
* Add a key for encrypting secrets.
|
22
|
-
*/
|
23
|
-
addKey(algorithm: string, opts: AddSecretStorageKeyOpts, keyId?: string): Promise<SecretStorageKeyObject>;
|
24
|
-
/**
|
25
|
-
* Get the key information for a given ID.
|
26
|
-
*/
|
27
|
-
getKey(keyId?: string | null): Promise<SecretStorageKeyTuple | null>;
|
28
|
-
/**
|
29
|
-
* Check whether we have a key with a given ID.
|
30
|
-
*/
|
31
|
-
hasKey(keyId?: string): Promise<boolean>;
|
32
|
-
/**
|
33
|
-
* Check whether a key matches what we expect based on the key info
|
34
|
-
*/
|
35
|
-
checkKey(key: Uint8Array, info: SecretStorageKeyDescription): Promise<boolean>;
|
36
|
-
/**
|
37
|
-
* Store an encrypted secret on the server
|
38
|
-
*/
|
39
|
-
store(name: string, secret: string, keys?: string[] | null): Promise<void>;
|
40
|
-
/**
|
41
|
-
* Get a secret from storage.
|
42
|
-
*/
|
43
|
-
get(name: string): Promise<string | undefined>;
|
44
|
-
/**
|
45
|
-
* Check if a secret is stored on the server.
|
46
|
-
*/
|
47
|
-
isStored(name: string): Promise<Record<string, SecretStorageKeyDescription> | null>;
|
48
|
-
/**
|
49
|
-
* Request a secret from another device
|
50
|
-
*/
|
51
|
-
request(name: string, devices: string[]): ISecretRequest;
|
52
|
-
onRequestReceived(event: MatrixEvent): Promise<void>;
|
53
|
-
onSecretReceived(event: MatrixEvent): void;
|
54
|
-
}
|
55
|
-
//# sourceMappingURL=SecretStorage.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"SecretStorage.d.ts","sourceRoot":"","sources":["../../src/crypto/SecretStorage.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACH,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EAE1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAiB,MAAM,oBAAoB,CAAC;AAGnE,YAAY,EACR,iBAAiB,IAAI,kBAAkB,EACvC,qBAAqB,EACrB,sBAAsB,EACtB,+BAA+B,GAClC,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;;;GAKG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,CAAE,YAAW,uBAAuB;IAC5G,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;gBAWzB,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAKjG,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD;;OAEG;IACI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIhH;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAI3E;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/C;;OAEG;IACI,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrF;;OAEG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjF;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIrD;;OAEG;IACU,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,GAAG,IAAI,CAAC;IAIhG;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc;IAIxD,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAGpD"}
|
@@ -1,118 +0,0 @@
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
3
|
-
/*
|
4
|
-
Copyright 2019 - 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
|
-
import { ServerSideSecretStorageImpl } from "../secret-storage.js";
|
20
|
-
import { SecretSharing } from "./SecretSharing.js";
|
21
|
-
|
22
|
-
/* re-exports for backwards compatibility */
|
23
|
-
|
24
|
-
/**
|
25
|
-
* Implements Secure Secret Storage and Sharing (MSC1946)
|
26
|
-
*
|
27
|
-
* @deprecated This is just a backwards-compatibility hack which will be removed soon.
|
28
|
-
* Use {@link SecretStorage.ServerSideSecretStorageImpl} from `../secret-storage` and/or {@link SecretSharing} from `./SecretSharing`.
|
29
|
-
*/
|
30
|
-
export class SecretStorage {
|
31
|
-
// In its pure javascript days, this was relying on some proper Javascript-style
|
32
|
-
// type-abuse where sometimes we'd pass in a fake client object with just the account
|
33
|
-
// data methods implemented, which is all this class needs unless you use the secret
|
34
|
-
// sharing code, so it was fine. As a low-touch TypeScript migration, we added
|
35
|
-
// an extra, optional param for a real matrix client, so you can not pass it as long
|
36
|
-
// as you don't request any secrets.
|
37
|
-
//
|
38
|
-
// Nowadays, the whole class is scheduled for destruction, once we get rid of the legacy
|
39
|
-
// Crypto impl that exposes it.
|
40
|
-
constructor(accountDataAdapter, cryptoCallbacks, baseApis) {
|
41
|
-
_defineProperty(this, "storageImpl", void 0);
|
42
|
-
_defineProperty(this, "sharingImpl", void 0);
|
43
|
-
this.storageImpl = new ServerSideSecretStorageImpl(accountDataAdapter, cryptoCallbacks);
|
44
|
-
this.sharingImpl = new SecretSharing(baseApis, cryptoCallbacks);
|
45
|
-
}
|
46
|
-
getDefaultKeyId() {
|
47
|
-
return this.storageImpl.getDefaultKeyId();
|
48
|
-
}
|
49
|
-
setDefaultKeyId(keyId) {
|
50
|
-
return this.storageImpl.setDefaultKeyId(keyId);
|
51
|
-
}
|
52
|
-
|
53
|
-
/**
|
54
|
-
* Add a key for encrypting secrets.
|
55
|
-
*/
|
56
|
-
addKey(algorithm, opts, keyId) {
|
57
|
-
return this.storageImpl.addKey(algorithm, opts, keyId);
|
58
|
-
}
|
59
|
-
|
60
|
-
/**
|
61
|
-
* Get the key information for a given ID.
|
62
|
-
*/
|
63
|
-
getKey(keyId) {
|
64
|
-
return this.storageImpl.getKey(keyId);
|
65
|
-
}
|
66
|
-
|
67
|
-
/**
|
68
|
-
* Check whether we have a key with a given ID.
|
69
|
-
*/
|
70
|
-
hasKey(keyId) {
|
71
|
-
return this.storageImpl.hasKey(keyId);
|
72
|
-
}
|
73
|
-
|
74
|
-
/**
|
75
|
-
* Check whether a key matches what we expect based on the key info
|
76
|
-
*/
|
77
|
-
checkKey(key, info) {
|
78
|
-
return this.storageImpl.checkKey(key, info);
|
79
|
-
}
|
80
|
-
|
81
|
-
/**
|
82
|
-
* Store an encrypted secret on the server
|
83
|
-
*/
|
84
|
-
store(name, secret, keys) {
|
85
|
-
return this.storageImpl.store(name, secret, keys);
|
86
|
-
}
|
87
|
-
|
88
|
-
/**
|
89
|
-
* Get a secret from storage.
|
90
|
-
*/
|
91
|
-
get(name) {
|
92
|
-
return this.storageImpl.get(name);
|
93
|
-
}
|
94
|
-
|
95
|
-
/**
|
96
|
-
* Check if a secret is stored on the server.
|
97
|
-
*/
|
98
|
-
isStored(name) {
|
99
|
-
var _this = this;
|
100
|
-
return _asyncToGenerator(function* () {
|
101
|
-
return _this.storageImpl.isStored(name);
|
102
|
-
})();
|
103
|
-
}
|
104
|
-
|
105
|
-
/**
|
106
|
-
* Request a secret from another device
|
107
|
-
*/
|
108
|
-
request(name, devices) {
|
109
|
-
return this.sharingImpl.request(name, devices);
|
110
|
-
}
|
111
|
-
onRequestReceived(event) {
|
112
|
-
return this.sharingImpl.onRequestReceived(event);
|
113
|
-
}
|
114
|
-
onSecretReceived(event) {
|
115
|
-
this.sharingImpl.onSecretReceived(event);
|
116
|
-
}
|
117
|
-
}
|
118
|
-
//# sourceMappingURL=SecretStorage.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"SecretStorage.js","names":["ServerSideSecretStorageImpl","SecretSharing","SecretStorage","constructor","accountDataAdapter","cryptoCallbacks","baseApis","_defineProperty","storageImpl","sharingImpl","getDefaultKeyId","setDefaultKeyId","keyId","addKey","algorithm","opts","getKey","hasKey","checkKey","key","info","store","name","secret","keys","get","isStored","_this","_asyncToGenerator","request","devices","onRequestReceived","event","onSecretReceived"],"sources":["../../src/crypto/SecretStorage.ts"],"sourcesContent":["/*\nCopyright 2019 - 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\nimport { ICryptoCallbacks } from \"./index.ts\";\nimport { MatrixEvent } from \"../models/event.ts\";\nimport { MatrixClient } from \"../client.ts\";\nimport {\n SecretStorageKeyDescription,\n SecretStorageKeyTuple,\n SecretStorageKeyObject,\n AddSecretStorageKeyOpts,\n AccountDataClient,\n ServerSideSecretStorage,\n ServerSideSecretStorageImpl,\n} from \"../secret-storage.ts\";\nimport { ISecretRequest, SecretSharing } from \"./SecretSharing.ts\";\n\n/* re-exports for backwards compatibility */\nexport type {\n AccountDataClient as IAccountDataClient,\n SecretStorageKeyTuple,\n SecretStorageKeyObject,\n SECRET_STORAGE_ALGORITHM_V1_AES,\n} from \"../secret-storage.ts\";\n\nexport type { ISecretRequest } from \"./SecretSharing.ts\";\n\n/**\n * Implements Secure Secret Storage and Sharing (MSC1946)\n *\n * @deprecated This is just a backwards-compatibility hack which will be removed soon.\n * Use {@link SecretStorage.ServerSideSecretStorageImpl} from `../secret-storage` and/or {@link SecretSharing} from `./SecretSharing`.\n */\nexport class SecretStorage<B extends MatrixClient | undefined = MatrixClient> implements ServerSideSecretStorage {\n private readonly storageImpl: ServerSideSecretStorageImpl;\n private readonly sharingImpl: SecretSharing;\n\n // In its pure javascript days, this was relying on some proper Javascript-style\n // type-abuse where sometimes we'd pass in a fake client object with just the account\n // data methods implemented, which is all this class needs unless you use the secret\n // sharing code, so it was fine. As a low-touch TypeScript migration, we added\n // an extra, optional param for a real matrix client, so you can not pass it as long\n // as you don't request any secrets.\n //\n // Nowadays, the whole class is scheduled for destruction, once we get rid of the legacy\n // Crypto impl that exposes it.\n public constructor(accountDataAdapter: AccountDataClient, cryptoCallbacks: ICryptoCallbacks, baseApis: B) {\n this.storageImpl = new ServerSideSecretStorageImpl(accountDataAdapter, cryptoCallbacks);\n this.sharingImpl = new SecretSharing(baseApis as MatrixClient, cryptoCallbacks);\n }\n\n public getDefaultKeyId(): Promise<string | null> {\n return this.storageImpl.getDefaultKeyId();\n }\n\n public setDefaultKeyId(keyId: string): Promise<void> {\n return this.storageImpl.setDefaultKeyId(keyId);\n }\n\n /**\n * Add a key for encrypting secrets.\n */\n public addKey(algorithm: string, opts: AddSecretStorageKeyOpts, keyId?: string): Promise<SecretStorageKeyObject> {\n return this.storageImpl.addKey(algorithm, opts, keyId);\n }\n\n /**\n * Get the key information for a given ID.\n */\n public getKey(keyId?: string | null): Promise<SecretStorageKeyTuple | null> {\n return this.storageImpl.getKey(keyId);\n }\n\n /**\n * Check whether we have a key with a given ID.\n */\n public hasKey(keyId?: string): Promise<boolean> {\n return this.storageImpl.hasKey(keyId);\n }\n\n /**\n * Check whether a key matches what we expect based on the key info\n */\n public checkKey(key: Uint8Array, info: SecretStorageKeyDescription): Promise<boolean> {\n return this.storageImpl.checkKey(key, info);\n }\n\n /**\n * Store an encrypted secret on the server\n */\n public store(name: string, secret: string, keys?: string[] | null): Promise<void> {\n return this.storageImpl.store(name, secret, keys);\n }\n\n /**\n * Get a secret from storage.\n */\n public get(name: string): Promise<string | undefined> {\n return this.storageImpl.get(name);\n }\n\n /**\n * Check if a secret is stored on the server.\n */\n public async isStored(name: string): Promise<Record<string, SecretStorageKeyDescription> | null> {\n return this.storageImpl.isStored(name);\n }\n\n /**\n * Request a secret from another device\n */\n public request(name: string, devices: string[]): ISecretRequest {\n return this.sharingImpl.request(name, devices);\n }\n\n public onRequestReceived(event: MatrixEvent): Promise<void> {\n return this.sharingImpl.onRequestReceived(event);\n }\n\n public onSecretReceived(event: MatrixEvent): void {\n this.sharingImpl.onSecretReceived(event);\n }\n}\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,SAOIA,2BAA2B,QACxB,sBAAsB;AAC7B,SAAyBC,aAAa,QAAQ,oBAAoB;;AAElE;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,CAAuF;EAI7G;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACOC,WAAWA,CAACC,kBAAqC,EAAEC,eAAiC,EAAEC,QAAW,EAAE;IAAAC,eAAA;IAAAA,eAAA;IACtG,IAAI,CAACC,WAAW,GAAG,IAAIR,2BAA2B,CAACI,kBAAkB,EAAEC,eAAe,CAAC;IACvF,IAAI,CAACI,WAAW,GAAG,IAAIR,aAAa,CAACK,QAAQ,EAAkBD,eAAe,CAAC;EACnF;EAEOK,eAAeA,CAAA,EAA2B;IAC7C,OAAO,IAAI,CAACF,WAAW,CAACE,eAAe,CAAC,CAAC;EAC7C;EAEOC,eAAeA,CAACC,KAAa,EAAiB;IACjD,OAAO,IAAI,CAACJ,WAAW,CAACG,eAAe,CAACC,KAAK,CAAC;EAClD;;EAEA;AACJ;AACA;EACWC,MAAMA,CAACC,SAAiB,EAAEC,IAA6B,EAAEH,KAAc,EAAmC;IAC7G,OAAO,IAAI,CAACJ,WAAW,CAACK,MAAM,CAACC,SAAS,EAAEC,IAAI,EAAEH,KAAK,CAAC;EAC1D;;EAEA;AACJ;AACA;EACWI,MAAMA,CAACJ,KAAqB,EAAyC;IACxE,OAAO,IAAI,CAACJ,WAAW,CAACQ,MAAM,CAACJ,KAAK,CAAC;EACzC;;EAEA;AACJ;AACA;EACWK,MAAMA,CAACL,KAAc,EAAoB;IAC5C,OAAO,IAAI,CAACJ,WAAW,CAACS,MAAM,CAACL,KAAK,CAAC;EACzC;;EAEA;AACJ;AACA;EACWM,QAAQA,CAACC,GAAe,EAAEC,IAAiC,EAAoB;IAClF,OAAO,IAAI,CAACZ,WAAW,CAACU,QAAQ,CAACC,GAAG,EAAEC,IAAI,CAAC;EAC/C;;EAEA;AACJ;AACA;EACWC,KAAKA,CAACC,IAAY,EAAEC,MAAc,EAAEC,IAAsB,EAAiB;IAC9E,OAAO,IAAI,CAAChB,WAAW,CAACa,KAAK,CAACC,IAAI,EAAEC,MAAM,EAAEC,IAAI,CAAC;EACrD;;EAEA;AACJ;AACA;EACWC,GAAGA,CAACH,IAAY,EAA+B;IAClD,OAAO,IAAI,CAACd,WAAW,CAACiB,GAAG,CAACH,IAAI,CAAC;EACrC;;EAEA;AACJ;AACA;EACiBI,QAAQA,CAACJ,IAAY,EAA+D;IAAA,IAAAK,KAAA;IAAA,OAAAC,iBAAA;MAC7F,OAAOD,KAAI,CAACnB,WAAW,CAACkB,QAAQ,CAACJ,IAAI,CAAC;IAAC;EAC3C;;EAEA;AACJ;AACA;EACWO,OAAOA,CAACP,IAAY,EAAEQ,OAAiB,EAAkB;IAC5D,OAAO,IAAI,CAACrB,WAAW,CAACoB,OAAO,CAACP,IAAI,EAAEQ,OAAO,CAAC;EAClD;EAEOC,iBAAiBA,CAACC,KAAkB,EAAiB;IACxD,OAAO,IAAI,CAACvB,WAAW,CAACsB,iBAAiB,CAACC,KAAK,CAAC;EACpD;EAEOC,gBAAgBA,CAACD,KAAkB,EAAQ;IAC9C,IAAI,CAACvB,WAAW,CAACwB,gBAAgB,CAACD,KAAK,CAAC;EAC5C;AACJ","ignoreList":[]}
|
package/lib/crypto/aes.d.ts
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
import encryptAESSecretStorageItem from "../utils/encryptAESSecretStorageItem.ts";
|
2
|
-
import decryptAESSecretStorageItem from "../utils/decryptAESSecretStorageItem.ts";
|
3
|
-
export type { AESEncryptedSecretStoragePayload as IEncryptedPayload } from "../@types/AESEncryptedSecretStoragePayload.ts";
|
4
|
-
export { encryptAESSecretStorageItem as encryptAES, decryptAESSecretStorageItem as decryptAES };
|
5
|
-
export { calculateKeyCheck } from "../secret-storage.ts";
|
6
|
-
//# sourceMappingURL=aes.d.ts.map
|
package/lib/crypto/aes.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"aes.d.ts","sourceRoot":"","sources":["../../src/crypto/aes.ts"],"names":[],"mappings":"AAgBA,OAAO,2BAA2B,MAAM,yCAAyC,CAAC;AAClF,OAAO,2BAA2B,MAAM,yCAAyC,CAAC;AAGlF,YAAY,EAAE,gCAAgC,IAAI,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAC3H,OAAO,EAAE,2BAA2B,IAAI,UAAU,EAAE,2BAA2B,IAAI,UAAU,EAAE,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/lib/crypto/aes.js
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright 2020 - 2021 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 encryptAESSecretStorageItem from "../utils/encryptAESSecretStorageItem.js";
|
18
|
-
import decryptAESSecretStorageItem from "../utils/decryptAESSecretStorageItem.js";
|
19
|
-
|
20
|
-
// Export for backwards compatibility
|
21
|
-
|
22
|
-
export { encryptAESSecretStorageItem as encryptAES, decryptAESSecretStorageItem as decryptAES };
|
23
|
-
export { calculateKeyCheck } from "../secret-storage.js";
|
24
|
-
//# sourceMappingURL=aes.js.map
|
package/lib/crypto/aes.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"aes.js","names":["encryptAESSecretStorageItem","decryptAESSecretStorageItem","encryptAES","decryptAES","calculateKeyCheck"],"sources":["../../src/crypto/aes.ts"],"sourcesContent":["/*\nCopyright 2020 - 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\nimport encryptAESSecretStorageItem from \"../utils/encryptAESSecretStorageItem.ts\";\nimport decryptAESSecretStorageItem from \"../utils/decryptAESSecretStorageItem.ts\";\n\n// Export for backwards compatibility\nexport type { AESEncryptedSecretStoragePayload as IEncryptedPayload } from \"../@types/AESEncryptedSecretStoragePayload.ts\";\nexport { encryptAESSecretStorageItem as encryptAES, decryptAESSecretStorageItem as decryptAES };\nexport { calculateKeyCheck } from \"../secret-storage.ts\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,2BAA2B,MAAM,yCAAyC;AACjF,OAAOC,2BAA2B,MAAM,yCAAyC;;AAEjF;;AAEA,SAASD,2BAA2B,IAAIE,UAAU,EAAED,2BAA2B,IAAIE,UAAU;AAC7F,SAASC,iBAAiB,QAAQ,sBAAsB","ignoreList":[]}
|
@@ -1,156 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Internal module. Defines the base classes of the encryption implementations
|
3
|
-
*/
|
4
|
-
import type { IMegolmSessionData } from "../../@types/crypto.ts";
|
5
|
-
import { MatrixClient } from "../../client.ts";
|
6
|
-
import { Room } from "../../models/room.ts";
|
7
|
-
import { OlmDevice } from "../OlmDevice.ts";
|
8
|
-
import { IContent, MatrixEvent, RoomMember } from "../../matrix.ts";
|
9
|
-
import { Crypto, IEncryptedContent, IEventDecryptionResult, IncomingRoomKeyRequest } from "../index.ts";
|
10
|
-
import { DeviceInfo } from "../deviceinfo.ts";
|
11
|
-
import { IRoomEncryption } from "../RoomList.ts";
|
12
|
-
import { DeviceInfoMap } from "../DeviceList.ts";
|
13
|
-
/**
|
14
|
-
* Map of registered encryption algorithm classes. A map from string to {@link EncryptionAlgorithm} class
|
15
|
-
*/
|
16
|
-
export declare const ENCRYPTION_CLASSES: Map<string, new (params: IParams) => EncryptionAlgorithm>;
|
17
|
-
export type DecryptionClassParams<P extends IParams = IParams> = Omit<P, "deviceId" | "config">;
|
18
|
-
/**
|
19
|
-
* map of registered encryption algorithm classes. Map from string to {@link DecryptionAlgorithm} class
|
20
|
-
*/
|
21
|
-
export declare const DECRYPTION_CLASSES: Map<string, new (params: DecryptionClassParams) => DecryptionAlgorithm>;
|
22
|
-
export interface IParams {
|
23
|
-
/** The UserID for the local user */
|
24
|
-
userId: string;
|
25
|
-
/** The identifier for this device. */
|
26
|
-
deviceId: string;
|
27
|
-
/** crypto core */
|
28
|
-
crypto: Crypto;
|
29
|
-
/** olm.js wrapper */
|
30
|
-
olmDevice: OlmDevice;
|
31
|
-
/** base matrix api interface */
|
32
|
-
baseApis: MatrixClient;
|
33
|
-
/** The ID of the room we will be sending to */
|
34
|
-
roomId?: string;
|
35
|
-
/** The body of the m.room.encryption event */
|
36
|
-
config: IRoomEncryption & object;
|
37
|
-
}
|
38
|
-
/**
|
39
|
-
* base type for encryption implementations
|
40
|
-
*/
|
41
|
-
export declare abstract class EncryptionAlgorithm {
|
42
|
-
protected readonly userId: string;
|
43
|
-
protected readonly deviceId: string;
|
44
|
-
protected readonly crypto: Crypto;
|
45
|
-
protected readonly olmDevice: OlmDevice;
|
46
|
-
protected readonly baseApis: MatrixClient;
|
47
|
-
/**
|
48
|
-
* @param params - parameters
|
49
|
-
*/
|
50
|
-
constructor(params: IParams);
|
51
|
-
/**
|
52
|
-
* Perform any background tasks that can be done before a message is ready to
|
53
|
-
* send, in order to speed up sending of the message.
|
54
|
-
*
|
55
|
-
* @param room - the room the event is in
|
56
|
-
*/
|
57
|
-
prepareToEncrypt(room: Room): void;
|
58
|
-
/**
|
59
|
-
* Encrypt a message event
|
60
|
-
*
|
61
|
-
* @public
|
62
|
-
*
|
63
|
-
* @param content - event content
|
64
|
-
*
|
65
|
-
* @returns Promise which resolves to the new event body
|
66
|
-
*/
|
67
|
-
abstract encryptMessage(room: Room, eventType: string, content: IContent): Promise<IEncryptedContent>;
|
68
|
-
/**
|
69
|
-
* Called when the membership of a member of the room changes.
|
70
|
-
*
|
71
|
-
* @param event - event causing the change
|
72
|
-
* @param member - user whose membership changed
|
73
|
-
* @param oldMembership - previous membership
|
74
|
-
* @public
|
75
|
-
*/
|
76
|
-
onRoomMembership(event: MatrixEvent, member: RoomMember, oldMembership?: string): void;
|
77
|
-
reshareKeyWithDevice?(senderKey: string, sessionId: string, userId: string, device: DeviceInfo): Promise<void>;
|
78
|
-
forceDiscardSession?(): void;
|
79
|
-
}
|
80
|
-
/**
|
81
|
-
* base type for decryption implementations
|
82
|
-
*/
|
83
|
-
export declare abstract class DecryptionAlgorithm {
|
84
|
-
protected readonly userId: string;
|
85
|
-
protected readonly crypto: Crypto;
|
86
|
-
protected readonly olmDevice: OlmDevice;
|
87
|
-
protected readonly baseApis: MatrixClient;
|
88
|
-
constructor(params: DecryptionClassParams);
|
89
|
-
/**
|
90
|
-
* Decrypt an event
|
91
|
-
*
|
92
|
-
* @param event - undecrypted event
|
93
|
-
*
|
94
|
-
* @returns promise which
|
95
|
-
* resolves once we have finished decrypting. Rejects with an
|
96
|
-
* `algorithms.DecryptionError` if there is a problem decrypting the event.
|
97
|
-
*/
|
98
|
-
abstract decryptEvent(event: MatrixEvent): Promise<IEventDecryptionResult>;
|
99
|
-
/**
|
100
|
-
* Handle a key event
|
101
|
-
*
|
102
|
-
* @param params - event key event
|
103
|
-
*/
|
104
|
-
onRoomKeyEvent(params: MatrixEvent): Promise<void>;
|
105
|
-
/**
|
106
|
-
* Import a room key
|
107
|
-
*
|
108
|
-
* @param opts - object
|
109
|
-
*/
|
110
|
-
importRoomKey(session: IMegolmSessionData, opts: object): Promise<void>;
|
111
|
-
/**
|
112
|
-
* Determine if we have the keys necessary to respond to a room key request
|
113
|
-
*
|
114
|
-
* @returns true if we have the keys and could (theoretically) share
|
115
|
-
* them; else false.
|
116
|
-
*/
|
117
|
-
hasKeysForKeyRequest(keyRequest: IncomingRoomKeyRequest): Promise<boolean>;
|
118
|
-
/**
|
119
|
-
* Send the response to a room key request
|
120
|
-
*
|
121
|
-
*/
|
122
|
-
shareKeysWithDevice(keyRequest: IncomingRoomKeyRequest): void;
|
123
|
-
/**
|
124
|
-
* Retry decrypting all the events from a sender that haven't been
|
125
|
-
* decrypted yet.
|
126
|
-
*
|
127
|
-
* @param senderKey - the sender's key
|
128
|
-
*/
|
129
|
-
retryDecryptionFromSender(senderKey: string): Promise<boolean>;
|
130
|
-
onRoomKeyWithheldEvent?(event: MatrixEvent): Promise<void>;
|
131
|
-
sendSharedHistoryInboundSessions?(devicesByUser: Map<string, DeviceInfo[]>): Promise<void>;
|
132
|
-
}
|
133
|
-
export declare class UnknownDeviceError extends Error {
|
134
|
-
readonly devices: DeviceInfoMap;
|
135
|
-
event?: MatrixEvent | undefined;
|
136
|
-
/**
|
137
|
-
* Exception thrown specifically when we want to warn the user to consider
|
138
|
-
* the security of their conversation before continuing
|
139
|
-
*
|
140
|
-
* @param msg - message describing the problem
|
141
|
-
* @param devices - set of unknown devices per user we're warning about
|
142
|
-
*/
|
143
|
-
constructor(msg: string, devices: DeviceInfoMap, event?: MatrixEvent | undefined);
|
144
|
-
}
|
145
|
-
/**
|
146
|
-
* Registers an encryption/decryption class for a particular algorithm
|
147
|
-
*
|
148
|
-
* @param algorithm - algorithm tag to register for
|
149
|
-
*
|
150
|
-
* @param encryptor - {@link EncryptionAlgorithm} implementation
|
151
|
-
*
|
152
|
-
* @param decryptor - {@link DecryptionAlgorithm} implementation
|
153
|
-
*/
|
154
|
-
export declare function registerAlgorithm<P extends IParams = IParams>(algorithm: string, encryptor: new (params: P) => EncryptionAlgorithm, decryptor: new (params: DecryptionClassParams<P>) => DecryptionAlgorithm): void;
|
155
|
-
export { DecryptionError } from "../../common-crypto/CryptoBackend.ts";
|
156
|
-
//# sourceMappingURL=base.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/crypto/algorithms/base.ts"],"names":[],"mappings":"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"}
|