@unwanted/matrix-sdk-mini 34.12.0-2 → 34.12.0-3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (467) hide show
  1. package/git-revision.txt +1 -1
  2. package/lib/@types/global.d.js +0 -2
  3. package/lib/@types/global.d.js.map +1 -1
  4. package/lib/browser-index.d.ts.map +1 -1
  5. package/lib/browser-index.js +0 -11
  6. package/lib/browser-index.js.map +1 -1
  7. package/lib/client.d.ts +2 -1176
  8. package/lib/client.d.ts.map +1 -1
  9. package/lib/client.js +346 -2717
  10. package/lib/client.js.map +1 -1
  11. package/lib/embedded.d.ts +0 -22
  12. package/lib/embedded.d.ts.map +1 -1
  13. package/lib/embedded.js +24 -166
  14. package/lib/embedded.js.map +1 -1
  15. package/lib/event-mapper.d.ts.map +1 -1
  16. package/lib/event-mapper.js +0 -4
  17. package/lib/event-mapper.js.map +1 -1
  18. package/lib/matrix.d.ts +0 -19
  19. package/lib/matrix.d.ts.map +1 -1
  20. package/lib/matrix.js +1 -26
  21. package/lib/matrix.js.map +1 -1
  22. package/lib/models/MSC3089Branch.d.ts.map +1 -1
  23. package/lib/models/MSC3089Branch.js +0 -3
  24. package/lib/models/MSC3089Branch.js.map +1 -1
  25. package/lib/models/event.d.ts +0 -94
  26. package/lib/models/event.d.ts.map +1 -1
  27. package/lib/models/event.js +0 -274
  28. package/lib/models/event.js.map +1 -1
  29. package/lib/models/poll.d.ts.map +1 -1
  30. package/lib/models/poll.js +1 -5
  31. package/lib/models/poll.js.map +1 -1
  32. package/lib/models/relations-container.d.ts.map +1 -1
  33. package/lib/models/relations-container.js +1 -7
  34. package/lib/models/relations-container.js.map +1 -1
  35. package/lib/models/relations.d.ts +0 -1
  36. package/lib/models/relations.d.ts.map +1 -1
  37. package/lib/models/relations.js +0 -8
  38. package/lib/models/relations.js.map +1 -1
  39. package/lib/models/room-state.d.ts.map +1 -1
  40. package/lib/models/room-state.js +10 -26
  41. package/lib/models/room-state.js.map +1 -1
  42. package/lib/models/room.d.ts +0 -18
  43. package/lib/models/room.d.ts.map +1 -1
  44. package/lib/models/room.js +94 -148
  45. package/lib/models/room.js.map +1 -1
  46. package/lib/models/thread.d.ts.map +1 -1
  47. package/lib/models/thread.js +0 -1
  48. package/lib/models/thread.js.map +1 -1
  49. package/lib/sliding-sync-sdk.d.ts +2 -3
  50. package/lib/sliding-sync-sdk.d.ts.map +1 -1
  51. package/lib/sliding-sync-sdk.js +41 -90
  52. package/lib/sliding-sync-sdk.js.map +1 -1
  53. package/lib/sync.d.ts +0 -12
  54. package/lib/sync.d.ts.map +1 -1
  55. package/lib/sync.js +1 -73
  56. package/lib/sync.js.map +1 -1
  57. package/lib/testing.d.ts +0 -48
  58. package/lib/testing.d.ts.map +1 -1
  59. package/lib/testing.js +0 -105
  60. package/lib/testing.js.map +1 -1
  61. package/package.json +1 -3
  62. package/src/@types/global.d.ts +0 -3
  63. package/src/browser-index.ts +0 -11
  64. package/src/client.ts +57 -2732
  65. package/src/embedded.ts +3 -130
  66. package/src/event-mapper.ts +0 -4
  67. package/src/matrix.ts +0 -28
  68. package/src/models/MSC3089Branch.ts +0 -3
  69. package/src/models/event.ts +0 -289
  70. package/src/models/poll.ts +0 -6
  71. package/src/models/relations-container.ts +1 -8
  72. package/src/models/relations.ts +0 -8
  73. package/src/models/room-state.ts +2 -8
  74. package/src/models/room.ts +0 -62
  75. package/src/models/thread.ts +0 -1
  76. package/src/sliding-sync-sdk.ts +2 -72
  77. package/src/sync.ts +1 -98
  78. package/src/testing.ts +0 -108
  79. package/lib/@types/crypto.d.ts +0 -47
  80. package/lib/@types/crypto.d.ts.map +0 -1
  81. package/lib/@types/crypto.js +0 -1
  82. package/lib/@types/crypto.js.map +0 -1
  83. package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
  84. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
  85. package/lib/common-crypto/CryptoBackend.d.ts +0 -240
  86. package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
  87. package/lib/common-crypto/CryptoBackend.js +0 -73
  88. package/lib/common-crypto/CryptoBackend.js.map +0 -1
  89. package/lib/common-crypto/key-passphrase.d.ts +0 -14
  90. package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
  91. package/lib/common-crypto/key-passphrase.js +0 -33
  92. package/lib/common-crypto/key-passphrase.js.map +0 -1
  93. package/lib/crypto/CrossSigning.d.ts +0 -184
  94. package/lib/crypto/CrossSigning.d.ts.map +0 -1
  95. package/lib/crypto/CrossSigning.js +0 -718
  96. package/lib/crypto/CrossSigning.js.map +0 -1
  97. package/lib/crypto/DeviceList.d.ts +0 -216
  98. package/lib/crypto/DeviceList.d.ts.map +0 -1
  99. package/lib/crypto/DeviceList.js +0 -892
  100. package/lib/crypto/DeviceList.js.map +0 -1
  101. package/lib/crypto/EncryptionSetup.d.ts +0 -152
  102. package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
  103. package/lib/crypto/EncryptionSetup.js +0 -356
  104. package/lib/crypto/EncryptionSetup.js.map +0 -1
  105. package/lib/crypto/OlmDevice.d.ts +0 -457
  106. package/lib/crypto/OlmDevice.d.ts.map +0 -1
  107. package/lib/crypto/OlmDevice.js +0 -1241
  108. package/lib/crypto/OlmDevice.js.map +0 -1
  109. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
  110. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
  111. package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
  112. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
  113. package/lib/crypto/RoomList.d.ts +0 -26
  114. package/lib/crypto/RoomList.d.ts.map +0 -1
  115. package/lib/crypto/RoomList.js +0 -71
  116. package/lib/crypto/RoomList.js.map +0 -1
  117. package/lib/crypto/SecretSharing.d.ts +0 -24
  118. package/lib/crypto/SecretSharing.d.ts.map +0 -1
  119. package/lib/crypto/SecretSharing.js +0 -194
  120. package/lib/crypto/SecretSharing.js.map +0 -1
  121. package/lib/crypto/SecretStorage.d.ts +0 -55
  122. package/lib/crypto/SecretStorage.d.ts.map +0 -1
  123. package/lib/crypto/SecretStorage.js +0 -118
  124. package/lib/crypto/SecretStorage.js.map +0 -1
  125. package/lib/crypto/aes.d.ts +0 -6
  126. package/lib/crypto/aes.d.ts.map +0 -1
  127. package/lib/crypto/aes.js +0 -24
  128. package/lib/crypto/aes.js.map +0 -1
  129. package/lib/crypto/algorithms/base.d.ts +0 -156
  130. package/lib/crypto/algorithms/base.d.ts.map +0 -1
  131. package/lib/crypto/algorithms/base.js +0 -187
  132. package/lib/crypto/algorithms/base.js.map +0 -1
  133. package/lib/crypto/algorithms/index.d.ts +0 -4
  134. package/lib/crypto/algorithms/index.d.ts.map +0 -1
  135. package/lib/crypto/algorithms/index.js +0 -20
  136. package/lib/crypto/algorithms/index.js.map +0 -1
  137. package/lib/crypto/algorithms/megolm.d.ts +0 -385
  138. package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
  139. package/lib/crypto/algorithms/megolm.js +0 -1822
  140. package/lib/crypto/algorithms/megolm.js.map +0 -1
  141. package/lib/crypto/algorithms/olm.d.ts +0 -5
  142. package/lib/crypto/algorithms/olm.d.ts.map +0 -1
  143. package/lib/crypto/algorithms/olm.js +0 -299
  144. package/lib/crypto/algorithms/olm.js.map +0 -1
  145. package/lib/crypto/api.d.ts +0 -32
  146. package/lib/crypto/api.d.ts.map +0 -1
  147. package/lib/crypto/api.js +0 -22
  148. package/lib/crypto/api.js.map +0 -1
  149. package/lib/crypto/backup.d.ts +0 -227
  150. package/lib/crypto/backup.d.ts.map +0 -1
  151. package/lib/crypto/backup.js +0 -824
  152. package/lib/crypto/backup.js.map +0 -1
  153. package/lib/crypto/crypto.d.ts +0 -3
  154. package/lib/crypto/crypto.d.ts.map +0 -1
  155. package/lib/crypto/crypto.js +0 -19
  156. package/lib/crypto/crypto.js.map +0 -1
  157. package/lib/crypto/dehydration.d.ts +0 -34
  158. package/lib/crypto/dehydration.d.ts.map +0 -1
  159. package/lib/crypto/dehydration.js +0 -252
  160. package/lib/crypto/dehydration.js.map +0 -1
  161. package/lib/crypto/device-converter.d.ts +0 -9
  162. package/lib/crypto/device-converter.d.ts.map +0 -1
  163. package/lib/crypto/device-converter.js +0 -42
  164. package/lib/crypto/device-converter.js.map +0 -1
  165. package/lib/crypto/deviceinfo.d.ts +0 -99
  166. package/lib/crypto/deviceinfo.d.ts.map +0 -1
  167. package/lib/crypto/deviceinfo.js +0 -148
  168. package/lib/crypto/deviceinfo.js.map +0 -1
  169. package/lib/crypto/index.d.ts +0 -1209
  170. package/lib/crypto/index.d.ts.map +0 -1
  171. package/lib/crypto/index.js +0 -4097
  172. package/lib/crypto/index.js.map +0 -1
  173. package/lib/crypto/key_passphrase.d.ts +0 -14
  174. package/lib/crypto/key_passphrase.d.ts.map +0 -1
  175. package/lib/crypto/key_passphrase.js +0 -44
  176. package/lib/crypto/key_passphrase.js.map +0 -1
  177. package/lib/crypto/keybackup.d.ts +0 -18
  178. package/lib/crypto/keybackup.d.ts.map +0 -1
  179. package/lib/crypto/keybackup.js +0 -1
  180. package/lib/crypto/keybackup.js.map +0 -1
  181. package/lib/crypto/olmlib.d.ts +0 -129
  182. package/lib/crypto/olmlib.d.ts.map +0 -1
  183. package/lib/crypto/olmlib.js +0 -492
  184. package/lib/crypto/olmlib.js.map +0 -1
  185. package/lib/crypto/recoverykey.d.ts +0 -2
  186. package/lib/crypto/recoverykey.d.ts.map +0 -1
  187. package/lib/crypto/recoverykey.js +0 -19
  188. package/lib/crypto/recoverykey.js.map +0 -1
  189. package/lib/crypto/store/base.d.ts +0 -252
  190. package/lib/crypto/store/base.d.ts.map +0 -1
  191. package/lib/crypto/store/base.js +0 -64
  192. package/lib/crypto/store/base.js.map +0 -1
  193. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
  194. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
  195. package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
  196. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
  197. package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
  198. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
  199. package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
  200. package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
  201. package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
  202. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
  203. package/lib/crypto/store/localStorage-crypto-store.js +0 -531
  204. package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
  205. package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
  206. package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
  207. package/lib/crypto/store/memory-crypto-store.js +0 -622
  208. package/lib/crypto/store/memory-crypto-store.js.map +0 -1
  209. package/lib/crypto/verification/Base.d.ts +0 -105
  210. package/lib/crypto/verification/Base.d.ts.map +0 -1
  211. package/lib/crypto/verification/Base.js +0 -372
  212. package/lib/crypto/verification/Base.js.map +0 -1
  213. package/lib/crypto/verification/Error.d.ts +0 -35
  214. package/lib/crypto/verification/Error.d.ts.map +0 -1
  215. package/lib/crypto/verification/Error.js +0 -86
  216. package/lib/crypto/verification/Error.js.map +0 -1
  217. package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
  218. package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
  219. package/lib/crypto/verification/IllegalMethod.js +0 -43
  220. package/lib/crypto/verification/IllegalMethod.js.map +0 -1
  221. package/lib/crypto/verification/QRCode.d.ts +0 -51
  222. package/lib/crypto/verification/QRCode.d.ts.map +0 -1
  223. package/lib/crypto/verification/QRCode.js +0 -277
  224. package/lib/crypto/verification/QRCode.js.map +0 -1
  225. package/lib/crypto/verification/SAS.d.ts +0 -27
  226. package/lib/crypto/verification/SAS.d.ts.map +0 -1
  227. package/lib/crypto/verification/SAS.js +0 -485
  228. package/lib/crypto/verification/SAS.js.map +0 -1
  229. package/lib/crypto/verification/SASDecimal.d.ts +0 -8
  230. package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
  231. package/lib/crypto/verification/SASDecimal.js +0 -34
  232. package/lib/crypto/verification/SASDecimal.js.map +0 -1
  233. package/lib/crypto/verification/request/Channel.d.ts +0 -18
  234. package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
  235. package/lib/crypto/verification/request/Channel.js +0 -1
  236. package/lib/crypto/verification/request/Channel.js.map +0 -1
  237. package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
  238. package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
  239. package/lib/crypto/verification/request/InRoomChannel.js +0 -351
  240. package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
  241. package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
  242. package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
  243. package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
  244. package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
  245. package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
  246. package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
  247. package/lib/crypto/verification/request/VerificationRequest.js +0 -937
  248. package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
  249. package/lib/crypto-api/CryptoEvent.d.ts +0 -69
  250. package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
  251. package/lib/crypto-api/CryptoEvent.js +0 -33
  252. package/lib/crypto-api/CryptoEvent.js.map +0 -1
  253. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
  254. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
  255. package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
  256. package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
  257. package/lib/crypto-api/index.d.ts +0 -978
  258. package/lib/crypto-api/index.d.ts.map +0 -1
  259. package/lib/crypto-api/index.js +0 -304
  260. package/lib/crypto-api/index.js.map +0 -1
  261. package/lib/crypto-api/key-passphrase.d.ts +0 -11
  262. package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
  263. package/lib/crypto-api/key-passphrase.js +0 -51
  264. package/lib/crypto-api/key-passphrase.js.map +0 -1
  265. package/lib/crypto-api/keybackup.d.ts +0 -88
  266. package/lib/crypto-api/keybackup.d.ts.map +0 -1
  267. package/lib/crypto-api/keybackup.js +0 -1
  268. package/lib/crypto-api/keybackup.js.map +0 -1
  269. package/lib/crypto-api/recovery-key.d.ts +0 -11
  270. package/lib/crypto-api/recovery-key.d.ts.map +0 -1
  271. package/lib/crypto-api/recovery-key.js +0 -65
  272. package/lib/crypto-api/recovery-key.js.map +0 -1
  273. package/lib/crypto-api/verification.d.ts +0 -344
  274. package/lib/crypto-api/verification.d.ts.map +0 -1
  275. package/lib/crypto-api/verification.js +0 -91
  276. package/lib/crypto-api/verification.js.map +0 -1
  277. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
  278. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
  279. package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
  280. package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
  281. package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
  282. package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
  283. package/lib/rendezvous/RendezvousChannel.js +0 -1
  284. package/lib/rendezvous/RendezvousChannel.js.map +0 -1
  285. package/lib/rendezvous/RendezvousCode.d.ts +0 -9
  286. package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
  287. package/lib/rendezvous/RendezvousCode.js +0 -1
  288. package/lib/rendezvous/RendezvousCode.js.map +0 -1
  289. package/lib/rendezvous/RendezvousError.d.ts +0 -6
  290. package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
  291. package/lib/rendezvous/RendezvousError.js +0 -23
  292. package/lib/rendezvous/RendezvousError.js.map +0 -1
  293. package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
  294. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
  295. package/lib/rendezvous/RendezvousFailureReason.js +0 -38
  296. package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
  297. package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
  298. package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
  299. package/lib/rendezvous/RendezvousIntent.js +0 -22
  300. package/lib/rendezvous/RendezvousIntent.js.map +0 -1
  301. package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
  302. package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
  303. package/lib/rendezvous/RendezvousTransport.js +0 -1
  304. package/lib/rendezvous/RendezvousTransport.js.map +0 -1
  305. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
  306. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
  307. package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
  308. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
  309. package/lib/rendezvous/channels/index.d.ts +0 -2
  310. package/lib/rendezvous/channels/index.d.ts.map +0 -1
  311. package/lib/rendezvous/channels/index.js +0 -18
  312. package/lib/rendezvous/channels/index.js.map +0 -1
  313. package/lib/rendezvous/index.d.ts +0 -10
  314. package/lib/rendezvous/index.d.ts.map +0 -1
  315. package/lib/rendezvous/index.js +0 -23
  316. package/lib/rendezvous/index.js.map +0 -1
  317. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
  318. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
  319. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
  320. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
  321. package/lib/rendezvous/transports/index.d.ts +0 -2
  322. package/lib/rendezvous/transports/index.d.ts.map +0 -1
  323. package/lib/rendezvous/transports/index.js +0 -18
  324. package/lib/rendezvous/transports/index.js.map +0 -1
  325. package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
  326. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
  327. package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
  328. package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
  329. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
  330. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
  331. package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
  332. package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
  333. package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
  334. package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
  335. package/lib/rust-crypto/KeyClaimManager.js +0 -82
  336. package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
  337. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
  338. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
  339. package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
  340. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
  341. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
  342. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
  343. package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
  344. package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
  345. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
  346. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
  347. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
  348. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
  349. package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
  350. package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
  351. package/lib/rust-crypto/RoomEncryptor.js +0 -299
  352. package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
  353. package/lib/rust-crypto/backup.d.ts +0 -254
  354. package/lib/rust-crypto/backup.d.ts.map +0 -1
  355. package/lib/rust-crypto/backup.js +0 -837
  356. package/lib/rust-crypto/backup.js.map +0 -1
  357. package/lib/rust-crypto/constants.d.ts +0 -3
  358. package/lib/rust-crypto/constants.d.ts.map +0 -1
  359. package/lib/rust-crypto/constants.js +0 -19
  360. package/lib/rust-crypto/constants.js.map +0 -1
  361. package/lib/rust-crypto/device-converter.d.ts +0 -28
  362. package/lib/rust-crypto/device-converter.d.ts.map +0 -1
  363. package/lib/rust-crypto/device-converter.js +0 -123
  364. package/lib/rust-crypto/device-converter.js.map +0 -1
  365. package/lib/rust-crypto/index.d.ts +0 -61
  366. package/lib/rust-crypto/index.d.ts.map +0 -1
  367. package/lib/rust-crypto/index.js +0 -152
  368. package/lib/rust-crypto/index.js.map +0 -1
  369. package/lib/rust-crypto/libolm_migration.d.ts +0 -81
  370. package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
  371. package/lib/rust-crypto/libolm_migration.js +0 -459
  372. package/lib/rust-crypto/libolm_migration.js.map +0 -1
  373. package/lib/rust-crypto/rust-crypto.d.ts +0 -556
  374. package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
  375. package/lib/rust-crypto/rust-crypto.js +0 -2016
  376. package/lib/rust-crypto/rust-crypto.js.map +0 -1
  377. package/lib/rust-crypto/secret-storage.d.ts +0 -22
  378. package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
  379. package/lib/rust-crypto/secret-storage.js +0 -63
  380. package/lib/rust-crypto/secret-storage.js.map +0 -1
  381. package/lib/rust-crypto/verification.d.ts +0 -319
  382. package/lib/rust-crypto/verification.d.ts.map +0 -1
  383. package/lib/rust-crypto/verification.js +0 -816
  384. package/lib/rust-crypto/verification.js.map +0 -1
  385. package/lib/secret-storage.d.ts +0 -370
  386. package/lib/secret-storage.d.ts.map +0 -1
  387. package/lib/secret-storage.js +0 -466
  388. package/lib/secret-storage.js.map +0 -1
  389. package/src/@types/crypto.ts +0 -73
  390. package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
  391. package/src/common-crypto/CryptoBackend.ts +0 -302
  392. package/src/common-crypto/README.md +0 -4
  393. package/src/common-crypto/key-passphrase.ts +0 -43
  394. package/src/crypto/CrossSigning.ts +0 -773
  395. package/src/crypto/DeviceList.ts +0 -989
  396. package/src/crypto/EncryptionSetup.ts +0 -351
  397. package/src/crypto/OlmDevice.ts +0 -1500
  398. package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
  399. package/src/crypto/RoomList.ts +0 -70
  400. package/src/crypto/SecretSharing.ts +0 -240
  401. package/src/crypto/SecretStorage.ts +0 -136
  402. package/src/crypto/aes.ts +0 -23
  403. package/src/crypto/algorithms/base.ts +0 -236
  404. package/src/crypto/algorithms/index.ts +0 -20
  405. package/src/crypto/algorithms/megolm.ts +0 -2216
  406. package/src/crypto/algorithms/olm.ts +0 -381
  407. package/src/crypto/api.ts +0 -70
  408. package/src/crypto/backup.ts +0 -922
  409. package/src/crypto/crypto.ts +0 -18
  410. package/src/crypto/dehydration.ts +0 -272
  411. package/src/crypto/device-converter.ts +0 -45
  412. package/src/crypto/deviceinfo.ts +0 -158
  413. package/src/crypto/index.ts +0 -4414
  414. package/src/crypto/key_passphrase.ts +0 -42
  415. package/src/crypto/keybackup.ts +0 -47
  416. package/src/crypto/olmlib.ts +0 -539
  417. package/src/crypto/recoverykey.ts +0 -18
  418. package/src/crypto/store/base.ts +0 -348
  419. package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
  420. package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
  421. package/src/crypto/store/localStorage-crypto-store.ts +0 -579
  422. package/src/crypto/store/memory-crypto-store.ts +0 -680
  423. package/src/crypto/verification/Base.ts +0 -409
  424. package/src/crypto/verification/Error.ts +0 -76
  425. package/src/crypto/verification/IllegalMethod.ts +0 -50
  426. package/src/crypto/verification/QRCode.ts +0 -310
  427. package/src/crypto/verification/SAS.ts +0 -494
  428. package/src/crypto/verification/SASDecimal.ts +0 -37
  429. package/src/crypto/verification/request/Channel.ts +0 -34
  430. package/src/crypto/verification/request/InRoomChannel.ts +0 -371
  431. package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
  432. package/src/crypto/verification/request/VerificationRequest.ts +0 -976
  433. package/src/crypto-api/CryptoEvent.ts +0 -93
  434. package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
  435. package/src/crypto-api/index.ts +0 -1175
  436. package/src/crypto-api/key-passphrase.ts +0 -58
  437. package/src/crypto-api/keybackup.ts +0 -115
  438. package/src/crypto-api/recovery-key.ts +0 -69
  439. package/src/crypto-api/verification.ts +0 -408
  440. package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
  441. package/src/rendezvous/RendezvousChannel.ts +0 -48
  442. package/src/rendezvous/RendezvousCode.ts +0 -25
  443. package/src/rendezvous/RendezvousError.ts +0 -26
  444. package/src/rendezvous/RendezvousFailureReason.ts +0 -49
  445. package/src/rendezvous/RendezvousIntent.ts +0 -20
  446. package/src/rendezvous/RendezvousTransport.ts +0 -58
  447. package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
  448. package/src/rendezvous/channels/index.ts +0 -17
  449. package/src/rendezvous/index.ts +0 -25
  450. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
  451. package/src/rendezvous/transports/index.ts +0 -17
  452. package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
  453. package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
  454. package/src/rust-crypto/KeyClaimManager.ts +0 -86
  455. package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
  456. package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
  457. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
  458. package/src/rust-crypto/RoomEncryptor.ts +0 -352
  459. package/src/rust-crypto/backup.ts +0 -881
  460. package/src/rust-crypto/constants.ts +0 -18
  461. package/src/rust-crypto/device-converter.ts +0 -128
  462. package/src/rust-crypto/index.ts +0 -237
  463. package/src/rust-crypto/libolm_migration.ts +0 -530
  464. package/src/rust-crypto/rust-crypto.ts +0 -2205
  465. package/src/rust-crypto/secret-storage.ts +0 -60
  466. package/src/rust-crypto/verification.ts +0 -830
  467. package/src/secret-storage.ts +0 -693
@@ -1,240 +0,0 @@
1
- /*
2
- Copyright 2019-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
- import { v4 as uuidv4 } from "uuid";
17
-
18
- import { MatrixClient } from "../client.ts";
19
- import { ICryptoCallbacks, IEncryptedContent } from "./index.ts";
20
- import { defer, IDeferred } from "../utils.ts";
21
- import { ToDeviceMessageId } from "../@types/event.ts";
22
- import { logger } from "../logger.ts";
23
- import { MatrixEvent } from "../models/event.ts";
24
- import * as olmlib from "./olmlib.ts";
25
-
26
- export interface ISecretRequest {
27
- requestId: string;
28
- promise: Promise<string>;
29
- cancel: (reason: string) => void;
30
- }
31
-
32
- interface ISecretRequestInternal {
33
- name: string;
34
- devices: string[];
35
- deferred: IDeferred<string>;
36
- }
37
-
38
- export class SecretSharing {
39
- private requests = new Map<string, ISecretRequestInternal>();
40
-
41
- public constructor(
42
- private readonly baseApis: MatrixClient,
43
- private readonly cryptoCallbacks: ICryptoCallbacks,
44
- ) {}
45
-
46
- /**
47
- * Request a secret from another device
48
- *
49
- * @param name - the name of the secret to request
50
- * @param devices - the devices to request the secret from
51
- */
52
- public request(name: string, devices: string[]): ISecretRequest {
53
- const requestId = this.baseApis.makeTxnId();
54
-
55
- const deferred = defer<string>();
56
- this.requests.set(requestId, { name, devices, deferred });
57
-
58
- const cancel = (reason: string): void => {
59
- // send cancellation event
60
- const cancelData = {
61
- action: "request_cancellation",
62
- requesting_device_id: this.baseApis.deviceId,
63
- request_id: requestId,
64
- };
65
- const toDevice: Map<string, typeof cancelData> = new Map();
66
- for (const device of devices) {
67
- toDevice.set(device, cancelData);
68
- }
69
- this.baseApis.sendToDevice("m.secret.request", new Map([[this.baseApis.getUserId()!, toDevice]]));
70
-
71
- // and reject the promise so that anyone waiting on it will be
72
- // notified
73
- deferred.reject(new Error(reason || "Cancelled"));
74
- };
75
-
76
- // send request to devices
77
- const requestData = {
78
- name,
79
- action: "request",
80
- requesting_device_id: this.baseApis.deviceId,
81
- request_id: requestId,
82
- [ToDeviceMessageId]: uuidv4(),
83
- };
84
- const toDevice: Map<string, typeof requestData> = new Map();
85
- for (const device of devices) {
86
- toDevice.set(device, requestData);
87
- }
88
- logger.info(`Request secret ${name} from ${devices}, id ${requestId}`);
89
- this.baseApis.sendToDevice("m.secret.request", new Map([[this.baseApis.getUserId()!, toDevice]]));
90
-
91
- return {
92
- requestId,
93
- promise: deferred.promise,
94
- cancel,
95
- };
96
- }
97
-
98
- public async onRequestReceived(event: MatrixEvent): Promise<void> {
99
- const sender = event.getSender();
100
- const content = event.getContent();
101
- if (
102
- sender !== this.baseApis.getUserId() ||
103
- !(content.name && content.action && content.requesting_device_id && content.request_id)
104
- ) {
105
- // ignore requests from anyone else, for now
106
- return;
107
- }
108
- const deviceId = content.requesting_device_id;
109
- // check if it's a cancel
110
- if (content.action === "request_cancellation") {
111
- /*
112
- Looks like we intended to emit events when we got cancelations, but
113
- we never put anything in the _incomingRequests object, and the request
114
- itself doesn't use events anyway so if we were to wire up cancellations,
115
- they probably ought to use the same callback interface. I'm leaving them
116
- disabled for now while converting this file to typescript.
117
- if (this._incomingRequests[deviceId]
118
- && this._incomingRequests[deviceId][content.request_id]) {
119
- logger.info(
120
- "received request cancellation for secret (" + sender +
121
- ", " + deviceId + ", " + content.request_id + ")",
122
- );
123
- this.baseApis.emit("crypto.secrets.requestCancelled", {
124
- user_id: sender,
125
- device_id: deviceId,
126
- request_id: content.request_id,
127
- });
128
- }
129
- */
130
- } else if (content.action === "request") {
131
- if (deviceId === this.baseApis.deviceId) {
132
- // no point in trying to send ourself the secret
133
- return;
134
- }
135
-
136
- // check if we have the secret
137
- logger.info("received request for secret (" + sender + ", " + deviceId + ", " + content.request_id + ")");
138
- if (!this.cryptoCallbacks.onSecretRequested) {
139
- return;
140
- }
141
- const secret = await this.cryptoCallbacks.onSecretRequested(
142
- sender,
143
- deviceId,
144
- content.request_id,
145
- content.name,
146
- this.baseApis.checkDeviceTrust(sender, deviceId),
147
- );
148
- if (secret) {
149
- logger.info(`Preparing ${content.name} secret for ${deviceId}`);
150
- const payload = {
151
- type: "m.secret.send",
152
- content: {
153
- request_id: content.request_id,
154
- secret: secret,
155
- },
156
- };
157
- const encryptedContent: IEncryptedContent = {
158
- algorithm: olmlib.OLM_ALGORITHM,
159
- sender_key: this.baseApis.crypto!.olmDevice.deviceCurve25519Key!,
160
- ciphertext: {},
161
- [ToDeviceMessageId]: uuidv4(),
162
- };
163
- await olmlib.ensureOlmSessionsForDevices(
164
- this.baseApis.crypto!.olmDevice,
165
- this.baseApis,
166
- new Map([[sender, [this.baseApis.getStoredDevice(sender, deviceId)!]]]),
167
- );
168
- await olmlib.encryptMessageForDevice(
169
- encryptedContent.ciphertext,
170
- this.baseApis.getUserId()!,
171
- this.baseApis.deviceId!,
172
- this.baseApis.crypto!.olmDevice,
173
- sender,
174
- this.baseApis.getStoredDevice(sender, deviceId)!,
175
- payload,
176
- );
177
- const contentMap = new Map([[sender, new Map([[deviceId, encryptedContent]])]]);
178
-
179
- logger.info(`Sending ${content.name} secret for ${deviceId}`);
180
- this.baseApis.sendToDevice("m.room.encrypted", contentMap);
181
- } else {
182
- logger.info(`Request denied for ${content.name} secret for ${deviceId}`);
183
- }
184
- }
185
- }
186
-
187
- public onSecretReceived(event: MatrixEvent): void {
188
- if (event.getSender() !== this.baseApis.getUserId()) {
189
- // we shouldn't be receiving secrets from anyone else, so ignore
190
- // because someone could be trying to send us bogus data
191
- return;
192
- }
193
-
194
- if (!olmlib.isOlmEncrypted(event)) {
195
- logger.error("secret event not properly encrypted");
196
- return;
197
- }
198
-
199
- const content = event.getContent();
200
-
201
- const senderKeyUser = this.baseApis.crypto!.deviceList.getUserByIdentityKey(
202
- olmlib.OLM_ALGORITHM,
203
- event.getSenderKey() || "",
204
- );
205
- if (senderKeyUser !== event.getSender()) {
206
- logger.error("sending device does not belong to the user it claims to be from");
207
- return;
208
- }
209
-
210
- logger.log("got secret share for request", content.request_id);
211
- const requestControl = this.requests.get(content.request_id);
212
- if (requestControl) {
213
- // make sure that the device that sent it is one of the devices that
214
- // we requested from
215
- const deviceInfo = this.baseApis.crypto!.deviceList.getDeviceByIdentityKey(
216
- olmlib.OLM_ALGORITHM,
217
- event.getSenderKey()!,
218
- );
219
- if (!deviceInfo) {
220
- logger.log("secret share from unknown device with key", event.getSenderKey());
221
- return;
222
- }
223
- if (!requestControl.devices.includes(deviceInfo.deviceId)) {
224
- logger.log("unsolicited secret share from device", deviceInfo.deviceId);
225
- return;
226
- }
227
- // unsure that the sender is trusted. In theory, this check is
228
- // unnecessary since we only accept secret shares from devices that
229
- // we requested from, but it doesn't hurt.
230
- const deviceTrust = this.baseApis.crypto!.checkDeviceInfoTrust(event.getSender()!, deviceInfo);
231
- if (!deviceTrust.isVerified()) {
232
- logger.log("secret share from unverified device");
233
- return;
234
- }
235
-
236
- logger.log(`Successfully received secret ${requestControl.name} ` + `from ${deviceInfo.deviceId}`);
237
- requestControl.deferred.resolve(content.secret);
238
- }
239
- }
240
- }
@@ -1,136 +0,0 @@
1
- /*
2
- Copyright 2019 - 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 { ICryptoCallbacks } from "./index.ts";
18
- import { MatrixEvent } from "../models/event.ts";
19
- import { MatrixClient } from "../client.ts";
20
- import {
21
- SecretStorageKeyDescription,
22
- SecretStorageKeyTuple,
23
- SecretStorageKeyObject,
24
- AddSecretStorageKeyOpts,
25
- AccountDataClient,
26
- ServerSideSecretStorage,
27
- ServerSideSecretStorageImpl,
28
- } from "../secret-storage.ts";
29
- import { ISecretRequest, SecretSharing } from "./SecretSharing.ts";
30
-
31
- /* re-exports for backwards compatibility */
32
- export type {
33
- AccountDataClient as IAccountDataClient,
34
- SecretStorageKeyTuple,
35
- SecretStorageKeyObject,
36
- SECRET_STORAGE_ALGORITHM_V1_AES,
37
- } from "../secret-storage.ts";
38
-
39
- export type { ISecretRequest } from "./SecretSharing.ts";
40
-
41
- /**
42
- * Implements Secure Secret Storage and Sharing (MSC1946)
43
- *
44
- * @deprecated This is just a backwards-compatibility hack which will be removed soon.
45
- * Use {@link SecretStorage.ServerSideSecretStorageImpl} from `../secret-storage` and/or {@link SecretSharing} from `./SecretSharing`.
46
- */
47
- export class SecretStorage<B extends MatrixClient | undefined = MatrixClient> implements ServerSideSecretStorage {
48
- private readonly storageImpl: ServerSideSecretStorageImpl;
49
- private readonly sharingImpl: SecretSharing;
50
-
51
- // In its pure javascript days, this was relying on some proper Javascript-style
52
- // type-abuse where sometimes we'd pass in a fake client object with just the account
53
- // data methods implemented, which is all this class needs unless you use the secret
54
- // sharing code, so it was fine. As a low-touch TypeScript migration, we added
55
- // an extra, optional param for a real matrix client, so you can not pass it as long
56
- // as you don't request any secrets.
57
- //
58
- // Nowadays, the whole class is scheduled for destruction, once we get rid of the legacy
59
- // Crypto impl that exposes it.
60
- public constructor(accountDataAdapter: AccountDataClient, cryptoCallbacks: ICryptoCallbacks, baseApis: B) {
61
- this.storageImpl = new ServerSideSecretStorageImpl(accountDataAdapter, cryptoCallbacks);
62
- this.sharingImpl = new SecretSharing(baseApis as MatrixClient, cryptoCallbacks);
63
- }
64
-
65
- public getDefaultKeyId(): Promise<string | null> {
66
- return this.storageImpl.getDefaultKeyId();
67
- }
68
-
69
- public setDefaultKeyId(keyId: string): Promise<void> {
70
- return this.storageImpl.setDefaultKeyId(keyId);
71
- }
72
-
73
- /**
74
- * Add a key for encrypting secrets.
75
- */
76
- public addKey(algorithm: string, opts: AddSecretStorageKeyOpts, keyId?: string): Promise<SecretStorageKeyObject> {
77
- return this.storageImpl.addKey(algorithm, opts, keyId);
78
- }
79
-
80
- /**
81
- * Get the key information for a given ID.
82
- */
83
- public getKey(keyId?: string | null): Promise<SecretStorageKeyTuple | null> {
84
- return this.storageImpl.getKey(keyId);
85
- }
86
-
87
- /**
88
- * Check whether we have a key with a given ID.
89
- */
90
- public hasKey(keyId?: string): Promise<boolean> {
91
- return this.storageImpl.hasKey(keyId);
92
- }
93
-
94
- /**
95
- * Check whether a key matches what we expect based on the key info
96
- */
97
- public checkKey(key: Uint8Array, info: SecretStorageKeyDescription): Promise<boolean> {
98
- return this.storageImpl.checkKey(key, info);
99
- }
100
-
101
- /**
102
- * Store an encrypted secret on the server
103
- */
104
- public store(name: string, secret: string, keys?: string[] | null): Promise<void> {
105
- return this.storageImpl.store(name, secret, keys);
106
- }
107
-
108
- /**
109
- * Get a secret from storage.
110
- */
111
- public get(name: string): Promise<string | undefined> {
112
- return this.storageImpl.get(name);
113
- }
114
-
115
- /**
116
- * Check if a secret is stored on the server.
117
- */
118
- public async isStored(name: string): Promise<Record<string, SecretStorageKeyDescription> | null> {
119
- return this.storageImpl.isStored(name);
120
- }
121
-
122
- /**
123
- * Request a secret from another device
124
- */
125
- public request(name: string, devices: string[]): ISecretRequest {
126
- return this.sharingImpl.request(name, devices);
127
- }
128
-
129
- public onRequestReceived(event: MatrixEvent): Promise<void> {
130
- return this.sharingImpl.onRequestReceived(event);
131
- }
132
-
133
- public onSecretReceived(event: MatrixEvent): void {
134
- this.sharingImpl.onSecretReceived(event);
135
- }
136
- }
package/src/crypto/aes.ts DELETED
@@ -1,23 +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.ts";
18
- import decryptAESSecretStorageItem from "../utils/decryptAESSecretStorageItem.ts";
19
-
20
- // Export for backwards compatibility
21
- export type { AESEncryptedSecretStoragePayload as IEncryptedPayload } from "../@types/AESEncryptedSecretStoragePayload.ts";
22
- export { encryptAESSecretStorageItem as encryptAES, decryptAESSecretStorageItem as decryptAES };
23
- export { calculateKeyCheck } from "../secret-storage.ts";
@@ -1,236 +0,0 @@
1
- /*
2
- Copyright 2016 - 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
- /**
18
- * Internal module. Defines the base classes of the encryption implementations
19
- */
20
-
21
- import type { IMegolmSessionData } from "../../@types/crypto.ts";
22
- import { MatrixClient } from "../../client.ts";
23
- import { Room } from "../../models/room.ts";
24
- import { OlmDevice } from "../OlmDevice.ts";
25
- import { IContent, MatrixEvent, RoomMember } from "../../matrix.ts";
26
- import { Crypto, IEncryptedContent, IEventDecryptionResult, IncomingRoomKeyRequest } from "../index.ts";
27
- import { DeviceInfo } from "../deviceinfo.ts";
28
- import { IRoomEncryption } from "../RoomList.ts";
29
- import { DeviceInfoMap } from "../DeviceList.ts";
30
-
31
- /**
32
- * Map of registered encryption algorithm classes. A map from string to {@link EncryptionAlgorithm} class
33
- */
34
- export const ENCRYPTION_CLASSES = new Map<string, new (params: IParams) => EncryptionAlgorithm>();
35
-
36
- export type DecryptionClassParams<P extends IParams = IParams> = Omit<P, "deviceId" | "config">;
37
-
38
- /**
39
- * map of registered encryption algorithm classes. Map from string to {@link DecryptionAlgorithm} class
40
- */
41
- export const DECRYPTION_CLASSES = new Map<string, new (params: DecryptionClassParams) => DecryptionAlgorithm>();
42
-
43
- export interface IParams {
44
- /** The UserID for the local user */
45
- userId: string;
46
- /** The identifier for this device. */
47
- deviceId: string;
48
- /** crypto core */
49
- crypto: Crypto;
50
- /** olm.js wrapper */
51
- olmDevice: OlmDevice;
52
- /** base matrix api interface */
53
- baseApis: MatrixClient;
54
- /** The ID of the room we will be sending to */
55
- roomId?: string;
56
- /** The body of the m.room.encryption event */
57
- config: IRoomEncryption & object;
58
- }
59
-
60
- /**
61
- * base type for encryption implementations
62
- */
63
- export abstract class EncryptionAlgorithm {
64
- protected readonly userId: string;
65
- protected readonly deviceId: string;
66
- protected readonly crypto: Crypto;
67
- protected readonly olmDevice: OlmDevice;
68
- protected readonly baseApis: MatrixClient;
69
-
70
- /**
71
- * @param params - parameters
72
- */
73
- public constructor(params: IParams) {
74
- this.userId = params.userId;
75
- this.deviceId = params.deviceId;
76
- this.crypto = params.crypto;
77
- this.olmDevice = params.olmDevice;
78
- this.baseApis = params.baseApis;
79
- }
80
-
81
- /**
82
- * Perform any background tasks that can be done before a message is ready to
83
- * send, in order to speed up sending of the message.
84
- *
85
- * @param room - the room the event is in
86
- */
87
- public prepareToEncrypt(room: Room): void {}
88
-
89
- /**
90
- * Encrypt a message event
91
- *
92
- * @public
93
- *
94
- * @param content - event content
95
- *
96
- * @returns Promise which resolves to the new event body
97
- */
98
- public abstract encryptMessage(room: Room, eventType: string, content: IContent): Promise<IEncryptedContent>;
99
-
100
- /**
101
- * Called when the membership of a member of the room changes.
102
- *
103
- * @param event - event causing the change
104
- * @param member - user whose membership changed
105
- * @param oldMembership - previous membership
106
- * @public
107
- */
108
- public onRoomMembership(event: MatrixEvent, member: RoomMember, oldMembership?: string): void {}
109
-
110
- public reshareKeyWithDevice?(
111
- senderKey: string,
112
- sessionId: string,
113
- userId: string,
114
- device: DeviceInfo,
115
- ): Promise<void>;
116
-
117
- public forceDiscardSession?(): void;
118
- }
119
-
120
- /**
121
- * base type for decryption implementations
122
- */
123
- export abstract class DecryptionAlgorithm {
124
- protected readonly userId: string;
125
- protected readonly crypto: Crypto;
126
- protected readonly olmDevice: OlmDevice;
127
- protected readonly baseApis: MatrixClient;
128
-
129
- public constructor(params: DecryptionClassParams) {
130
- this.userId = params.userId;
131
- this.crypto = params.crypto;
132
- this.olmDevice = params.olmDevice;
133
- this.baseApis = params.baseApis;
134
- }
135
-
136
- /**
137
- * Decrypt an event
138
- *
139
- * @param event - undecrypted event
140
- *
141
- * @returns promise which
142
- * resolves once we have finished decrypting. Rejects with an
143
- * `algorithms.DecryptionError` if there is a problem decrypting the event.
144
- */
145
- public abstract decryptEvent(event: MatrixEvent): Promise<IEventDecryptionResult>;
146
-
147
- /**
148
- * Handle a key event
149
- *
150
- * @param params - event key event
151
- */
152
- public async onRoomKeyEvent(params: MatrixEvent): Promise<void> {
153
- // ignore by default
154
- }
155
-
156
- /**
157
- * Import a room key
158
- *
159
- * @param opts - object
160
- */
161
- public async importRoomKey(session: IMegolmSessionData, opts: object): Promise<void> {
162
- // ignore by default
163
- }
164
-
165
- /**
166
- * Determine if we have the keys necessary to respond to a room key request
167
- *
168
- * @returns true if we have the keys and could (theoretically) share
169
- * them; else false.
170
- */
171
- public hasKeysForKeyRequest(keyRequest: IncomingRoomKeyRequest): Promise<boolean> {
172
- return Promise.resolve(false);
173
- }
174
-
175
- /**
176
- * Send the response to a room key request
177
- *
178
- */
179
- public shareKeysWithDevice(keyRequest: IncomingRoomKeyRequest): void {
180
- throw new Error("shareKeysWithDevice not supported for this DecryptionAlgorithm");
181
- }
182
-
183
- /**
184
- * Retry decrypting all the events from a sender that haven't been
185
- * decrypted yet.
186
- *
187
- * @param senderKey - the sender's key
188
- */
189
- public async retryDecryptionFromSender(senderKey: string): Promise<boolean> {
190
- // ignore by default
191
- return false;
192
- }
193
-
194
- public onRoomKeyWithheldEvent?(event: MatrixEvent): Promise<void>;
195
- public sendSharedHistoryInboundSessions?(devicesByUser: Map<string, DeviceInfo[]>): Promise<void>;
196
- }
197
-
198
- export class UnknownDeviceError extends Error {
199
- /**
200
- * Exception thrown specifically when we want to warn the user to consider
201
- * the security of their conversation before continuing
202
- *
203
- * @param msg - message describing the problem
204
- * @param devices - set of unknown devices per user we're warning about
205
- */
206
- public constructor(
207
- msg: string,
208
- public readonly devices: DeviceInfoMap,
209
- public event?: MatrixEvent,
210
- ) {
211
- super(msg);
212
- this.name = "UnknownDeviceError";
213
- this.devices = devices;
214
- }
215
- }
216
-
217
- /**
218
- * Registers an encryption/decryption class for a particular algorithm
219
- *
220
- * @param algorithm - algorithm tag to register for
221
- *
222
- * @param encryptor - {@link EncryptionAlgorithm} implementation
223
- *
224
- * @param decryptor - {@link DecryptionAlgorithm} implementation
225
- */
226
- export function registerAlgorithm<P extends IParams = IParams>(
227
- algorithm: string,
228
- encryptor: new (params: P) => EncryptionAlgorithm,
229
- decryptor: new (params: DecryptionClassParams<P>) => DecryptionAlgorithm,
230
- ): void {
231
- ENCRYPTION_CLASSES.set(algorithm, encryptor as new (params: IParams) => EncryptionAlgorithm);
232
- DECRYPTION_CLASSES.set(algorithm, decryptor as new (params: DecryptionClassParams) => DecryptionAlgorithm);
233
- }
234
-
235
- /* Re-export for backwards compatibility. Deprecated: this is an internal class. */
236
- export { DecryptionError } from "../../common-crypto/CryptoBackend.ts";
@@ -1,20 +0,0 @@
1
- /*
2
- Copyright 2016 - 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 "./olm.ts";
18
- import "./megolm.ts";
19
-
20
- export * from "./base.ts";