@unwanted/matrix-sdk-mini 34.12.0 → 36.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (759) hide show
  1. package/git-revision.txt +1 -1
  2. package/lib/@types/event.d.ts +25 -19
  3. package/lib/@types/event.d.ts.map +1 -1
  4. package/lib/@types/event.js +5 -0
  5. package/lib/@types/event.js.map +1 -1
  6. package/lib/@types/global.d.js +0 -2
  7. package/lib/@types/global.d.js.map +1 -1
  8. package/lib/autodiscovery.d.ts +1 -1
  9. package/lib/autodiscovery.d.ts.map +1 -1
  10. package/lib/autodiscovery.js.map +1 -1
  11. package/lib/base64.d.ts +3 -6
  12. package/lib/base64.d.ts.map +1 -1
  13. package/lib/base64.js +43 -36
  14. package/lib/base64.js.map +1 -1
  15. package/lib/browser-index.d.ts.map +1 -1
  16. package/lib/browser-index.js +0 -11
  17. package/lib/browser-index.js.map +1 -1
  18. package/lib/client.d.ts +45 -1306
  19. package/lib/client.d.ts.map +1 -1
  20. package/lib/client.js +406 -2963
  21. package/lib/client.js.map +1 -1
  22. package/lib/digest.d.ts +2 -2
  23. package/lib/digest.d.ts.map +1 -1
  24. package/lib/digest.js +2 -2
  25. package/lib/digest.js.map +1 -1
  26. package/lib/embedded.d.ts +2 -23
  27. package/lib/embedded.d.ts.map +1 -1
  28. package/lib/embedded.js +82 -209
  29. package/lib/embedded.js.map +1 -1
  30. package/lib/event-mapper.d.ts.map +1 -1
  31. package/lib/event-mapper.js +0 -4
  32. package/lib/event-mapper.js.map +1 -1
  33. package/lib/feature.d.ts.map +1 -1
  34. package/lib/feature.js +2 -1
  35. package/lib/feature.js.map +1 -1
  36. package/lib/http-api/errors.d.ts +3 -3
  37. package/lib/http-api/errors.js +3 -3
  38. package/lib/http-api/errors.js.map +1 -1
  39. package/lib/http-api/utils.js +2 -2
  40. package/lib/http-api/utils.js.map +1 -1
  41. package/lib/matrix.d.ts +0 -25
  42. package/lib/matrix.d.ts.map +1 -1
  43. package/lib/matrix.js +1 -30
  44. package/lib/matrix.js.map +1 -1
  45. package/lib/models/MSC3089Branch.d.ts.map +1 -1
  46. package/lib/models/MSC3089Branch.js +0 -3
  47. package/lib/models/MSC3089Branch.js.map +1 -1
  48. package/lib/models/event-timeline-set.d.ts +6 -10
  49. package/lib/models/event-timeline-set.d.ts.map +1 -1
  50. package/lib/models/event-timeline-set.js +28 -36
  51. package/lib/models/event-timeline-set.js.map +1 -1
  52. package/lib/models/event-timeline.d.ts +7 -2
  53. package/lib/models/event-timeline.d.ts.map +1 -1
  54. package/lib/models/event-timeline.js +9 -30
  55. package/lib/models/event-timeline.js.map +1 -1
  56. package/lib/models/event.d.ts +12 -96
  57. package/lib/models/event.d.ts.map +1 -1
  58. package/lib/models/event.js +59 -286
  59. package/lib/models/event.js.map +1 -1
  60. package/lib/models/invites-ignorer-types.d.ts +27 -0
  61. package/lib/models/invites-ignorer-types.d.ts.map +1 -0
  62. package/lib/models/invites-ignorer-types.js +36 -0
  63. package/lib/models/invites-ignorer-types.js.map +1 -0
  64. package/lib/models/invites-ignorer.d.ts +2 -26
  65. package/lib/models/invites-ignorer.d.ts.map +1 -1
  66. package/lib/models/invites-ignorer.js +2 -27
  67. package/lib/models/invites-ignorer.js.map +1 -1
  68. package/lib/models/poll.d.ts.map +1 -1
  69. package/lib/models/poll.js +1 -5
  70. package/lib/models/poll.js.map +1 -1
  71. package/lib/models/relations-container.d.ts.map +1 -1
  72. package/lib/models/relations-container.js +1 -7
  73. package/lib/models/relations-container.js.map +1 -1
  74. package/lib/models/relations.d.ts +0 -1
  75. package/lib/models/relations.d.ts.map +1 -1
  76. package/lib/models/relations.js +0 -8
  77. package/lib/models/relations.js.map +1 -1
  78. package/lib/models/room-member.d.ts +6 -1
  79. package/lib/models/room-member.d.ts.map +1 -1
  80. package/lib/models/room-member.js +7 -1
  81. package/lib/models/room-member.js.map +1 -1
  82. package/lib/models/room-state.d.ts +2 -13
  83. package/lib/models/room-state.d.ts.map +1 -1
  84. package/lib/models/room-state.js +12 -56
  85. package/lib/models/room-state.js.map +1 -1
  86. package/lib/models/room.d.ts +8 -21
  87. package/lib/models/room.d.ts.map +1 -1
  88. package/lib/models/room.js +128 -163
  89. package/lib/models/room.js.map +1 -1
  90. package/lib/models/thread.d.ts.map +1 -1
  91. package/lib/models/thread.js +5 -4
  92. package/lib/models/thread.js.map +1 -1
  93. package/lib/oidc/authorize.d.ts +2 -2
  94. package/lib/oidc/authorize.d.ts.map +1 -1
  95. package/lib/oidc/authorize.js +5 -5
  96. package/lib/oidc/authorize.js.map +1 -1
  97. package/lib/oidc/discovery.d.ts +8 -0
  98. package/lib/oidc/discovery.d.ts.map +1 -1
  99. package/lib/oidc/discovery.js +22 -11
  100. package/lib/oidc/discovery.js.map +1 -1
  101. package/lib/oidc/index.d.ts +3 -4
  102. package/lib/oidc/index.d.ts.map +1 -1
  103. package/lib/oidc/index.js.map +1 -1
  104. package/lib/oidc/register.js +3 -3
  105. package/lib/oidc/register.js.map +1 -1
  106. package/lib/oidc/tokenRefresher.d.ts.map +1 -1
  107. package/lib/oidc/tokenRefresher.js +6 -5
  108. package/lib/oidc/tokenRefresher.js.map +1 -1
  109. package/lib/oidc/validate.d.ts +9 -23
  110. package/lib/oidc/validate.d.ts.map +1 -1
  111. package/lib/oidc/validate.js +13 -28
  112. package/lib/oidc/validate.js.map +1 -1
  113. package/lib/randomstring.d.ts +30 -3
  114. package/lib/randomstring.d.ts.map +1 -1
  115. package/lib/randomstring.js +68 -16
  116. package/lib/randomstring.js.map +1 -1
  117. package/lib/sliding-sync-sdk.d.ts +3 -4
  118. package/lib/sliding-sync-sdk.d.ts.map +1 -1
  119. package/lib/sliding-sync-sdk.js +55 -102
  120. package/lib/sliding-sync-sdk.js.map +1 -1
  121. package/lib/sliding-sync.js +9 -6
  122. package/lib/sliding-sync.js.map +1 -1
  123. package/lib/store/indexeddb-local-backend.js +4 -2
  124. package/lib/store/indexeddb-local-backend.js.map +1 -1
  125. package/lib/store/indexeddb.d.ts +1 -1
  126. package/lib/store/indexeddb.d.ts.map +1 -1
  127. package/lib/store/indexeddb.js.map +1 -1
  128. package/lib/sync-accumulator.d.ts +6 -4
  129. package/lib/sync-accumulator.d.ts.map +1 -1
  130. package/lib/sync-accumulator.js +23 -12
  131. package/lib/sync-accumulator.js.map +1 -1
  132. package/lib/sync.d.ts +10 -13
  133. package/lib/sync.d.ts.map +1 -1
  134. package/lib/sync.js +94 -115
  135. package/lib/sync.js.map +1 -1
  136. package/lib/testing.d.ts +13 -44
  137. package/lib/testing.d.ts.map +1 -1
  138. package/lib/testing.js +36 -99
  139. package/lib/testing.js.map +1 -1
  140. package/lib/types.d.ts +0 -1
  141. package/lib/types.d.ts.map +1 -1
  142. package/lib/types.js.map +1 -1
  143. package/package.json +14 -15
  144. package/src/@types/event.ts +19 -36
  145. package/src/@types/global.d.ts +21 -4
  146. package/src/autodiscovery.ts +1 -1
  147. package/src/base64.ts +38 -40
  148. package/src/browser-index.ts +0 -11
  149. package/src/client.ts +175 -3136
  150. package/src/digest.ts +3 -3
  151. package/src/embedded.ts +43 -149
  152. package/src/event-mapper.ts +0 -4
  153. package/src/feature.ts +1 -0
  154. package/src/http-api/errors.ts +3 -3
  155. package/src/http-api/utils.ts +2 -2
  156. package/src/matrix.ts +0 -41
  157. package/src/models/MSC3089Branch.ts +0 -3
  158. package/src/models/event-timeline-set.ts +17 -38
  159. package/src/models/event-timeline.ts +11 -26
  160. package/src/models/event.ts +54 -295
  161. package/src/models/invites-ignorer-types.ts +48 -0
  162. package/src/models/invites-ignorer.ts +7 -42
  163. package/src/models/poll.ts +0 -6
  164. package/src/models/relations-container.ts +1 -8
  165. package/src/models/relations.ts +0 -8
  166. package/src/models/room-member.ts +16 -1
  167. package/src/models/room-state.ts +4 -37
  168. package/src/models/room.ts +34 -69
  169. package/src/models/thread.ts +4 -3
  170. package/src/oidc/authorize.ts +7 -7
  171. package/src/oidc/discovery.ts +16 -10
  172. package/src/oidc/index.ts +3 -4
  173. package/src/oidc/register.ts +3 -3
  174. package/src/oidc/tokenRefresher.ts +3 -2
  175. package/src/oidc/validate.ts +40 -63
  176. package/src/randomstring.ts +65 -19
  177. package/src/sliding-sync-sdk.ts +10 -83
  178. package/src/sliding-sync.ts +6 -6
  179. package/src/store/indexeddb-local-backend.ts +2 -2
  180. package/src/store/indexeddb.ts +1 -1
  181. package/src/sync-accumulator.ts +33 -16
  182. package/src/sync.ts +112 -143
  183. package/src/testing.ts +36 -103
  184. package/src/types.ts +0 -1
  185. package/CHANGELOG.md +0 -5910
  186. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts +0 -14
  187. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map +0 -1
  188. package/lib/@types/AESEncryptedSecretStoragePayload.js +0 -1
  189. package/lib/@types/AESEncryptedSecretStoragePayload.js.map +0 -1
  190. package/lib/@types/crypto.d.ts +0 -47
  191. package/lib/@types/crypto.d.ts.map +0 -1
  192. package/lib/@types/crypto.js +0 -1
  193. package/lib/@types/crypto.js.map +0 -1
  194. package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
  195. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
  196. package/lib/common-crypto/CryptoBackend.d.ts +0 -240
  197. package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
  198. package/lib/common-crypto/CryptoBackend.js +0 -73
  199. package/lib/common-crypto/CryptoBackend.js.map +0 -1
  200. package/lib/common-crypto/key-passphrase.d.ts +0 -14
  201. package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
  202. package/lib/common-crypto/key-passphrase.js +0 -33
  203. package/lib/common-crypto/key-passphrase.js.map +0 -1
  204. package/lib/crypto/CrossSigning.d.ts +0 -184
  205. package/lib/crypto/CrossSigning.d.ts.map +0 -1
  206. package/lib/crypto/CrossSigning.js +0 -718
  207. package/lib/crypto/CrossSigning.js.map +0 -1
  208. package/lib/crypto/DeviceList.d.ts +0 -216
  209. package/lib/crypto/DeviceList.d.ts.map +0 -1
  210. package/lib/crypto/DeviceList.js +0 -892
  211. package/lib/crypto/DeviceList.js.map +0 -1
  212. package/lib/crypto/EncryptionSetup.d.ts +0 -152
  213. package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
  214. package/lib/crypto/EncryptionSetup.js +0 -356
  215. package/lib/crypto/EncryptionSetup.js.map +0 -1
  216. package/lib/crypto/OlmDevice.d.ts +0 -457
  217. package/lib/crypto/OlmDevice.d.ts.map +0 -1
  218. package/lib/crypto/OlmDevice.js +0 -1241
  219. package/lib/crypto/OlmDevice.js.map +0 -1
  220. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
  221. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
  222. package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
  223. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
  224. package/lib/crypto/RoomList.d.ts +0 -26
  225. package/lib/crypto/RoomList.d.ts.map +0 -1
  226. package/lib/crypto/RoomList.js +0 -71
  227. package/lib/crypto/RoomList.js.map +0 -1
  228. package/lib/crypto/SecretSharing.d.ts +0 -24
  229. package/lib/crypto/SecretSharing.d.ts.map +0 -1
  230. package/lib/crypto/SecretSharing.js +0 -194
  231. package/lib/crypto/SecretSharing.js.map +0 -1
  232. package/lib/crypto/SecretStorage.d.ts +0 -55
  233. package/lib/crypto/SecretStorage.d.ts.map +0 -1
  234. package/lib/crypto/SecretStorage.js +0 -118
  235. package/lib/crypto/SecretStorage.js.map +0 -1
  236. package/lib/crypto/aes.d.ts +0 -6
  237. package/lib/crypto/aes.d.ts.map +0 -1
  238. package/lib/crypto/aes.js +0 -24
  239. package/lib/crypto/aes.js.map +0 -1
  240. package/lib/crypto/algorithms/base.d.ts +0 -156
  241. package/lib/crypto/algorithms/base.d.ts.map +0 -1
  242. package/lib/crypto/algorithms/base.js +0 -187
  243. package/lib/crypto/algorithms/base.js.map +0 -1
  244. package/lib/crypto/algorithms/index.d.ts +0 -4
  245. package/lib/crypto/algorithms/index.d.ts.map +0 -1
  246. package/lib/crypto/algorithms/index.js +0 -20
  247. package/lib/crypto/algorithms/index.js.map +0 -1
  248. package/lib/crypto/algorithms/megolm.d.ts +0 -385
  249. package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
  250. package/lib/crypto/algorithms/megolm.js +0 -1822
  251. package/lib/crypto/algorithms/megolm.js.map +0 -1
  252. package/lib/crypto/algorithms/olm.d.ts +0 -5
  253. package/lib/crypto/algorithms/olm.d.ts.map +0 -1
  254. package/lib/crypto/algorithms/olm.js +0 -299
  255. package/lib/crypto/algorithms/olm.js.map +0 -1
  256. package/lib/crypto/api.d.ts +0 -32
  257. package/lib/crypto/api.d.ts.map +0 -1
  258. package/lib/crypto/api.js +0 -22
  259. package/lib/crypto/api.js.map +0 -1
  260. package/lib/crypto/backup.d.ts +0 -227
  261. package/lib/crypto/backup.d.ts.map +0 -1
  262. package/lib/crypto/backup.js +0 -824
  263. package/lib/crypto/backup.js.map +0 -1
  264. package/lib/crypto/crypto.d.ts +0 -3
  265. package/lib/crypto/crypto.d.ts.map +0 -1
  266. package/lib/crypto/crypto.js +0 -19
  267. package/lib/crypto/crypto.js.map +0 -1
  268. package/lib/crypto/dehydration.d.ts +0 -34
  269. package/lib/crypto/dehydration.d.ts.map +0 -1
  270. package/lib/crypto/dehydration.js +0 -252
  271. package/lib/crypto/dehydration.js.map +0 -1
  272. package/lib/crypto/device-converter.d.ts +0 -9
  273. package/lib/crypto/device-converter.d.ts.map +0 -1
  274. package/lib/crypto/device-converter.js +0 -42
  275. package/lib/crypto/device-converter.js.map +0 -1
  276. package/lib/crypto/deviceinfo.d.ts +0 -99
  277. package/lib/crypto/deviceinfo.d.ts.map +0 -1
  278. package/lib/crypto/deviceinfo.js +0 -148
  279. package/lib/crypto/deviceinfo.js.map +0 -1
  280. package/lib/crypto/index.d.ts +0 -1210
  281. package/lib/crypto/index.d.ts.map +0 -1
  282. package/lib/crypto/index.js +0 -4101
  283. package/lib/crypto/index.js.map +0 -1
  284. package/lib/crypto/key_passphrase.d.ts +0 -14
  285. package/lib/crypto/key_passphrase.d.ts.map +0 -1
  286. package/lib/crypto/key_passphrase.js +0 -44
  287. package/lib/crypto/key_passphrase.js.map +0 -1
  288. package/lib/crypto/keybackup.d.ts +0 -18
  289. package/lib/crypto/keybackup.d.ts.map +0 -1
  290. package/lib/crypto/keybackup.js +0 -1
  291. package/lib/crypto/keybackup.js.map +0 -1
  292. package/lib/crypto/olmlib.d.ts +0 -129
  293. package/lib/crypto/olmlib.d.ts.map +0 -1
  294. package/lib/crypto/olmlib.js +0 -492
  295. package/lib/crypto/olmlib.js.map +0 -1
  296. package/lib/crypto/recoverykey.d.ts +0 -2
  297. package/lib/crypto/recoverykey.d.ts.map +0 -1
  298. package/lib/crypto/recoverykey.js +0 -19
  299. package/lib/crypto/recoverykey.js.map +0 -1
  300. package/lib/crypto/store/base.d.ts +0 -252
  301. package/lib/crypto/store/base.d.ts.map +0 -1
  302. package/lib/crypto/store/base.js +0 -64
  303. package/lib/crypto/store/base.js.map +0 -1
  304. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
  305. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
  306. package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
  307. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
  308. package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
  309. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
  310. package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
  311. package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
  312. package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
  313. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
  314. package/lib/crypto/store/localStorage-crypto-store.js +0 -531
  315. package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
  316. package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
  317. package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
  318. package/lib/crypto/store/memory-crypto-store.js +0 -622
  319. package/lib/crypto/store/memory-crypto-store.js.map +0 -1
  320. package/lib/crypto/verification/Base.d.ts +0 -105
  321. package/lib/crypto/verification/Base.d.ts.map +0 -1
  322. package/lib/crypto/verification/Base.js +0 -372
  323. package/lib/crypto/verification/Base.js.map +0 -1
  324. package/lib/crypto/verification/Error.d.ts +0 -35
  325. package/lib/crypto/verification/Error.d.ts.map +0 -1
  326. package/lib/crypto/verification/Error.js +0 -86
  327. package/lib/crypto/verification/Error.js.map +0 -1
  328. package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
  329. package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
  330. package/lib/crypto/verification/IllegalMethod.js +0 -43
  331. package/lib/crypto/verification/IllegalMethod.js.map +0 -1
  332. package/lib/crypto/verification/QRCode.d.ts +0 -51
  333. package/lib/crypto/verification/QRCode.d.ts.map +0 -1
  334. package/lib/crypto/verification/QRCode.js +0 -277
  335. package/lib/crypto/verification/QRCode.js.map +0 -1
  336. package/lib/crypto/verification/SAS.d.ts +0 -27
  337. package/lib/crypto/verification/SAS.d.ts.map +0 -1
  338. package/lib/crypto/verification/SAS.js +0 -485
  339. package/lib/crypto/verification/SAS.js.map +0 -1
  340. package/lib/crypto/verification/SASDecimal.d.ts +0 -8
  341. package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
  342. package/lib/crypto/verification/SASDecimal.js +0 -34
  343. package/lib/crypto/verification/SASDecimal.js.map +0 -1
  344. package/lib/crypto/verification/request/Channel.d.ts +0 -18
  345. package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
  346. package/lib/crypto/verification/request/Channel.js +0 -1
  347. package/lib/crypto/verification/request/Channel.js.map +0 -1
  348. package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
  349. package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
  350. package/lib/crypto/verification/request/InRoomChannel.js +0 -351
  351. package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
  352. package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
  353. package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
  354. package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
  355. package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
  356. package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
  357. package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
  358. package/lib/crypto/verification/request/VerificationRequest.js +0 -937
  359. package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
  360. package/lib/crypto-api/CryptoEvent.d.ts +0 -69
  361. package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
  362. package/lib/crypto-api/CryptoEvent.js +0 -33
  363. package/lib/crypto-api/CryptoEvent.js.map +0 -1
  364. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
  365. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
  366. package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
  367. package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
  368. package/lib/crypto-api/index.d.ts +0 -978
  369. package/lib/crypto-api/index.d.ts.map +0 -1
  370. package/lib/crypto-api/index.js +0 -304
  371. package/lib/crypto-api/index.js.map +0 -1
  372. package/lib/crypto-api/key-passphrase.d.ts +0 -11
  373. package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
  374. package/lib/crypto-api/key-passphrase.js +0 -51
  375. package/lib/crypto-api/key-passphrase.js.map +0 -1
  376. package/lib/crypto-api/keybackup.d.ts +0 -88
  377. package/lib/crypto-api/keybackup.d.ts.map +0 -1
  378. package/lib/crypto-api/keybackup.js +0 -1
  379. package/lib/crypto-api/keybackup.js.map +0 -1
  380. package/lib/crypto-api/recovery-key.d.ts +0 -11
  381. package/lib/crypto-api/recovery-key.d.ts.map +0 -1
  382. package/lib/crypto-api/recovery-key.js +0 -65
  383. package/lib/crypto-api/recovery-key.js.map +0 -1
  384. package/lib/crypto-api/verification.d.ts +0 -344
  385. package/lib/crypto-api/verification.d.ts.map +0 -1
  386. package/lib/crypto-api/verification.js +0 -91
  387. package/lib/crypto-api/verification.js.map +0 -1
  388. package/lib/matrixrtc/CallMembership.d.ts +0 -66
  389. package/lib/matrixrtc/CallMembership.d.ts.map +0 -1
  390. package/lib/matrixrtc/CallMembership.js +0 -197
  391. package/lib/matrixrtc/CallMembership.js.map +0 -1
  392. package/lib/matrixrtc/LivekitFocus.d.ts +0 -16
  393. package/lib/matrixrtc/LivekitFocus.d.ts.map +0 -1
  394. package/lib/matrixrtc/LivekitFocus.js +0 -20
  395. package/lib/matrixrtc/LivekitFocus.js.map +0 -1
  396. package/lib/matrixrtc/MatrixRTCSession.d.ts +0 -295
  397. package/lib/matrixrtc/MatrixRTCSession.d.ts.map +0 -1
  398. package/lib/matrixrtc/MatrixRTCSession.js +0 -1043
  399. package/lib/matrixrtc/MatrixRTCSession.js.map +0 -1
  400. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +0 -40
  401. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +0 -1
  402. package/lib/matrixrtc/MatrixRTCSessionManager.js +0 -146
  403. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +0 -1
  404. package/lib/matrixrtc/focus.d.ts +0 -10
  405. package/lib/matrixrtc/focus.d.ts.map +0 -1
  406. package/lib/matrixrtc/focus.js +0 -1
  407. package/lib/matrixrtc/focus.js.map +0 -1
  408. package/lib/matrixrtc/index.d.ts +0 -7
  409. package/lib/matrixrtc/index.d.ts.map +0 -1
  410. package/lib/matrixrtc/index.js +0 -21
  411. package/lib/matrixrtc/index.js.map +0 -1
  412. package/lib/matrixrtc/types.d.ts +0 -19
  413. package/lib/matrixrtc/types.d.ts.map +0 -1
  414. package/lib/matrixrtc/types.js +0 -1
  415. package/lib/matrixrtc/types.js.map +0 -1
  416. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
  417. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
  418. package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
  419. package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
  420. package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
  421. package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
  422. package/lib/rendezvous/RendezvousChannel.js +0 -1
  423. package/lib/rendezvous/RendezvousChannel.js.map +0 -1
  424. package/lib/rendezvous/RendezvousCode.d.ts +0 -9
  425. package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
  426. package/lib/rendezvous/RendezvousCode.js +0 -1
  427. package/lib/rendezvous/RendezvousCode.js.map +0 -1
  428. package/lib/rendezvous/RendezvousError.d.ts +0 -6
  429. package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
  430. package/lib/rendezvous/RendezvousError.js +0 -23
  431. package/lib/rendezvous/RendezvousError.js.map +0 -1
  432. package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
  433. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
  434. package/lib/rendezvous/RendezvousFailureReason.js +0 -38
  435. package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
  436. package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
  437. package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
  438. package/lib/rendezvous/RendezvousIntent.js +0 -22
  439. package/lib/rendezvous/RendezvousIntent.js.map +0 -1
  440. package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
  441. package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
  442. package/lib/rendezvous/RendezvousTransport.js +0 -1
  443. package/lib/rendezvous/RendezvousTransport.js.map +0 -1
  444. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
  445. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
  446. package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
  447. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
  448. package/lib/rendezvous/channels/index.d.ts +0 -2
  449. package/lib/rendezvous/channels/index.d.ts.map +0 -1
  450. package/lib/rendezvous/channels/index.js +0 -18
  451. package/lib/rendezvous/channels/index.js.map +0 -1
  452. package/lib/rendezvous/index.d.ts +0 -10
  453. package/lib/rendezvous/index.d.ts.map +0 -1
  454. package/lib/rendezvous/index.js +0 -23
  455. package/lib/rendezvous/index.js.map +0 -1
  456. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
  457. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
  458. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
  459. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
  460. package/lib/rendezvous/transports/index.d.ts +0 -2
  461. package/lib/rendezvous/transports/index.d.ts.map +0 -1
  462. package/lib/rendezvous/transports/index.js +0 -18
  463. package/lib/rendezvous/transports/index.js.map +0 -1
  464. package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
  465. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
  466. package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
  467. package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
  468. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
  469. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
  470. package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
  471. package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
  472. package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
  473. package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
  474. package/lib/rust-crypto/KeyClaimManager.js +0 -82
  475. package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
  476. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
  477. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
  478. package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
  479. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
  480. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
  481. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
  482. package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
  483. package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
  484. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
  485. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
  486. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
  487. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
  488. package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
  489. package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
  490. package/lib/rust-crypto/RoomEncryptor.js +0 -299
  491. package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
  492. package/lib/rust-crypto/backup.d.ts +0 -254
  493. package/lib/rust-crypto/backup.d.ts.map +0 -1
  494. package/lib/rust-crypto/backup.js +0 -837
  495. package/lib/rust-crypto/backup.js.map +0 -1
  496. package/lib/rust-crypto/constants.d.ts +0 -3
  497. package/lib/rust-crypto/constants.d.ts.map +0 -1
  498. package/lib/rust-crypto/constants.js +0 -19
  499. package/lib/rust-crypto/constants.js.map +0 -1
  500. package/lib/rust-crypto/device-converter.d.ts +0 -28
  501. package/lib/rust-crypto/device-converter.d.ts.map +0 -1
  502. package/lib/rust-crypto/device-converter.js +0 -123
  503. package/lib/rust-crypto/device-converter.js.map +0 -1
  504. package/lib/rust-crypto/index.d.ts +0 -61
  505. package/lib/rust-crypto/index.d.ts.map +0 -1
  506. package/lib/rust-crypto/index.js +0 -152
  507. package/lib/rust-crypto/index.js.map +0 -1
  508. package/lib/rust-crypto/libolm_migration.d.ts +0 -81
  509. package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
  510. package/lib/rust-crypto/libolm_migration.js +0 -459
  511. package/lib/rust-crypto/libolm_migration.js.map +0 -1
  512. package/lib/rust-crypto/rust-crypto.d.ts +0 -556
  513. package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
  514. package/lib/rust-crypto/rust-crypto.js +0 -2016
  515. package/lib/rust-crypto/rust-crypto.js.map +0 -1
  516. package/lib/rust-crypto/secret-storage.d.ts +0 -22
  517. package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
  518. package/lib/rust-crypto/secret-storage.js +0 -63
  519. package/lib/rust-crypto/secret-storage.js.map +0 -1
  520. package/lib/rust-crypto/verification.d.ts +0 -319
  521. package/lib/rust-crypto/verification.d.ts.map +0 -1
  522. package/lib/rust-crypto/verification.js +0 -816
  523. package/lib/rust-crypto/verification.js.map +0 -1
  524. package/lib/secret-storage.d.ts +0 -370
  525. package/lib/secret-storage.d.ts.map +0 -1
  526. package/lib/secret-storage.js +0 -466
  527. package/lib/secret-storage.js.map +0 -1
  528. package/lib/utils/decryptAESSecretStorageItem.d.ts +0 -12
  529. package/lib/utils/decryptAESSecretStorageItem.d.ts.map +0 -1
  530. package/lib/utils/decryptAESSecretStorageItem.js +0 -50
  531. package/lib/utils/decryptAESSecretStorageItem.js.map +0 -1
  532. package/lib/utils/encryptAESSecretStorageItem.d.ts +0 -16
  533. package/lib/utils/encryptAESSecretStorageItem.d.ts.map +0 -1
  534. package/lib/utils/encryptAESSecretStorageItem.js +0 -68
  535. package/lib/utils/encryptAESSecretStorageItem.js.map +0 -1
  536. package/lib/utils/internal/deriveKeys.d.ts +0 -10
  537. package/lib/utils/internal/deriveKeys.d.ts.map +0 -1
  538. package/lib/utils/internal/deriveKeys.js +0 -60
  539. package/lib/utils/internal/deriveKeys.js.map +0 -1
  540. package/lib/webrtc/audioContext.d.ts +0 -15
  541. package/lib/webrtc/audioContext.d.ts.map +0 -1
  542. package/lib/webrtc/audioContext.js +0 -46
  543. package/lib/webrtc/audioContext.js.map +0 -1
  544. package/lib/webrtc/call.d.ts +0 -560
  545. package/lib/webrtc/call.d.ts.map +0 -1
  546. package/lib/webrtc/call.js +0 -2541
  547. package/lib/webrtc/call.js.map +0 -1
  548. package/lib/webrtc/callEventHandler.d.ts +0 -37
  549. package/lib/webrtc/callEventHandler.d.ts.map +0 -1
  550. package/lib/webrtc/callEventHandler.js +0 -344
  551. package/lib/webrtc/callEventHandler.js.map +0 -1
  552. package/lib/webrtc/callEventTypes.d.ts +0 -73
  553. package/lib/webrtc/callEventTypes.d.ts.map +0 -1
  554. package/lib/webrtc/callEventTypes.js +0 -13
  555. package/lib/webrtc/callEventTypes.js.map +0 -1
  556. package/lib/webrtc/callFeed.d.ts +0 -128
  557. package/lib/webrtc/callFeed.d.ts.map +0 -1
  558. package/lib/webrtc/callFeed.js +0 -289
  559. package/lib/webrtc/callFeed.js.map +0 -1
  560. package/lib/webrtc/groupCall.d.ts +0 -323
  561. package/lib/webrtc/groupCall.d.ts.map +0 -1
  562. package/lib/webrtc/groupCall.js +0 -1337
  563. package/lib/webrtc/groupCall.js.map +0 -1
  564. package/lib/webrtc/groupCallEventHandler.d.ts +0 -31
  565. package/lib/webrtc/groupCallEventHandler.d.ts.map +0 -1
  566. package/lib/webrtc/groupCallEventHandler.js +0 -178
  567. package/lib/webrtc/groupCallEventHandler.js.map +0 -1
  568. package/lib/webrtc/mediaHandler.d.ts +0 -89
  569. package/lib/webrtc/mediaHandler.d.ts.map +0 -1
  570. package/lib/webrtc/mediaHandler.js +0 -437
  571. package/lib/webrtc/mediaHandler.js.map +0 -1
  572. package/lib/webrtc/stats/callFeedStatsReporter.d.ts +0 -8
  573. package/lib/webrtc/stats/callFeedStatsReporter.d.ts.map +0 -1
  574. package/lib/webrtc/stats/callFeedStatsReporter.js +0 -82
  575. package/lib/webrtc/stats/callFeedStatsReporter.js.map +0 -1
  576. package/lib/webrtc/stats/callStatsReportGatherer.d.ts +0 -25
  577. package/lib/webrtc/stats/callStatsReportGatherer.d.ts.map +0 -1
  578. package/lib/webrtc/stats/callStatsReportGatherer.js +0 -199
  579. package/lib/webrtc/stats/callStatsReportGatherer.js.map +0 -1
  580. package/lib/webrtc/stats/callStatsReportSummary.d.ts +0 -17
  581. package/lib/webrtc/stats/callStatsReportSummary.d.ts.map +0 -1
  582. package/lib/webrtc/stats/callStatsReportSummary.js +0 -1
  583. package/lib/webrtc/stats/callStatsReportSummary.js.map +0 -1
  584. package/lib/webrtc/stats/connectionStats.d.ts +0 -28
  585. package/lib/webrtc/stats/connectionStats.d.ts.map +0 -1
  586. package/lib/webrtc/stats/connectionStats.js +0 -26
  587. package/lib/webrtc/stats/connectionStats.js.map +0 -1
  588. package/lib/webrtc/stats/connectionStatsBuilder.d.ts +0 -5
  589. package/lib/webrtc/stats/connectionStatsBuilder.d.ts.map +0 -1
  590. package/lib/webrtc/stats/connectionStatsBuilder.js +0 -27
  591. package/lib/webrtc/stats/connectionStatsBuilder.js.map +0 -1
  592. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts +0 -7
  593. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts.map +0 -1
  594. package/lib/webrtc/stats/connectionStatsReportBuilder.js +0 -121
  595. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +0 -1
  596. package/lib/webrtc/stats/groupCallStats.d.ts +0 -22
  597. package/lib/webrtc/stats/groupCallStats.d.ts.map +0 -1
  598. package/lib/webrtc/stats/groupCallStats.js +0 -78
  599. package/lib/webrtc/stats/groupCallStats.js.map +0 -1
  600. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts +0 -10
  601. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts.map +0 -1
  602. package/lib/webrtc/stats/media/mediaSsrcHandler.js +0 -57
  603. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +0 -1
  604. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts +0 -12
  605. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts.map +0 -1
  606. package/lib/webrtc/stats/media/mediaTrackHandler.js +0 -62
  607. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +0 -1
  608. package/lib/webrtc/stats/media/mediaTrackStats.d.ts +0 -86
  609. package/lib/webrtc/stats/media/mediaTrackStats.d.ts.map +0 -1
  610. package/lib/webrtc/stats/media/mediaTrackStats.js +0 -142
  611. package/lib/webrtc/stats/media/mediaTrackStats.js.map +0 -1
  612. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts +0 -22
  613. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts.map +0 -1
  614. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +0 -76
  615. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +0 -1
  616. package/lib/webrtc/stats/statsReport.d.ts +0 -99
  617. package/lib/webrtc/stats/statsReport.d.ts.map +0 -1
  618. package/lib/webrtc/stats/statsReport.js +0 -32
  619. package/lib/webrtc/stats/statsReport.js.map +0 -1
  620. package/lib/webrtc/stats/statsReportEmitter.d.ts +0 -15
  621. package/lib/webrtc/stats/statsReportEmitter.d.ts.map +0 -1
  622. package/lib/webrtc/stats/statsReportEmitter.js +0 -33
  623. package/lib/webrtc/stats/statsReportEmitter.js.map +0 -1
  624. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts +0 -16
  625. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts.map +0 -1
  626. package/lib/webrtc/stats/summaryStatsReportGatherer.js +0 -116
  627. package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +0 -1
  628. package/lib/webrtc/stats/trackStatsBuilder.d.ts +0 -19
  629. package/lib/webrtc/stats/trackStatsBuilder.d.ts.map +0 -1
  630. package/lib/webrtc/stats/trackStatsBuilder.js +0 -168
  631. package/lib/webrtc/stats/trackStatsBuilder.js.map +0 -1
  632. package/lib/webrtc/stats/transportStats.d.ts +0 -11
  633. package/lib/webrtc/stats/transportStats.d.ts.map +0 -1
  634. package/lib/webrtc/stats/transportStats.js +0 -1
  635. package/lib/webrtc/stats/transportStats.js.map +0 -1
  636. package/lib/webrtc/stats/transportStatsBuilder.d.ts +0 -5
  637. package/lib/webrtc/stats/transportStatsBuilder.d.ts.map +0 -1
  638. package/lib/webrtc/stats/transportStatsBuilder.js +0 -34
  639. package/lib/webrtc/stats/transportStatsBuilder.js.map +0 -1
  640. package/lib/webrtc/stats/valueFormatter.d.ts +0 -4
  641. package/lib/webrtc/stats/valueFormatter.d.ts.map +0 -1
  642. package/lib/webrtc/stats/valueFormatter.js +0 -25
  643. package/lib/webrtc/stats/valueFormatter.js.map +0 -1
  644. package/src/@types/AESEncryptedSecretStoragePayload.ts +0 -29
  645. package/src/@types/crypto.ts +0 -73
  646. package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
  647. package/src/common-crypto/CryptoBackend.ts +0 -302
  648. package/src/common-crypto/README.md +0 -4
  649. package/src/common-crypto/key-passphrase.ts +0 -43
  650. package/src/crypto/CrossSigning.ts +0 -773
  651. package/src/crypto/DeviceList.ts +0 -989
  652. package/src/crypto/EncryptionSetup.ts +0 -351
  653. package/src/crypto/OlmDevice.ts +0 -1500
  654. package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
  655. package/src/crypto/RoomList.ts +0 -70
  656. package/src/crypto/SecretSharing.ts +0 -240
  657. package/src/crypto/SecretStorage.ts +0 -136
  658. package/src/crypto/aes.ts +0 -23
  659. package/src/crypto/algorithms/base.ts +0 -236
  660. package/src/crypto/algorithms/index.ts +0 -20
  661. package/src/crypto/algorithms/megolm.ts +0 -2216
  662. package/src/crypto/algorithms/olm.ts +0 -381
  663. package/src/crypto/api.ts +0 -70
  664. package/src/crypto/backup.ts +0 -922
  665. package/src/crypto/crypto.ts +0 -18
  666. package/src/crypto/dehydration.ts +0 -272
  667. package/src/crypto/device-converter.ts +0 -45
  668. package/src/crypto/deviceinfo.ts +0 -158
  669. package/src/crypto/index.ts +0 -4418
  670. package/src/crypto/key_passphrase.ts +0 -42
  671. package/src/crypto/keybackup.ts +0 -47
  672. package/src/crypto/olmlib.ts +0 -539
  673. package/src/crypto/recoverykey.ts +0 -18
  674. package/src/crypto/store/base.ts +0 -348
  675. package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
  676. package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
  677. package/src/crypto/store/localStorage-crypto-store.ts +0 -579
  678. package/src/crypto/store/memory-crypto-store.ts +0 -680
  679. package/src/crypto/verification/Base.ts +0 -409
  680. package/src/crypto/verification/Error.ts +0 -76
  681. package/src/crypto/verification/IllegalMethod.ts +0 -50
  682. package/src/crypto/verification/QRCode.ts +0 -310
  683. package/src/crypto/verification/SAS.ts +0 -494
  684. package/src/crypto/verification/SASDecimal.ts +0 -37
  685. package/src/crypto/verification/request/Channel.ts +0 -34
  686. package/src/crypto/verification/request/InRoomChannel.ts +0 -371
  687. package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
  688. package/src/crypto/verification/request/VerificationRequest.ts +0 -976
  689. package/src/crypto-api/CryptoEvent.ts +0 -93
  690. package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
  691. package/src/crypto-api/index.ts +0 -1175
  692. package/src/crypto-api/key-passphrase.ts +0 -58
  693. package/src/crypto-api/keybackup.ts +0 -115
  694. package/src/crypto-api/recovery-key.ts +0 -69
  695. package/src/crypto-api/verification.ts +0 -408
  696. package/src/matrixrtc/CallMembership.ts +0 -247
  697. package/src/matrixrtc/LivekitFocus.ts +0 -39
  698. package/src/matrixrtc/MatrixRTCSession.ts +0 -1319
  699. package/src/matrixrtc/MatrixRTCSessionManager.ts +0 -166
  700. package/src/matrixrtc/focus.ts +0 -25
  701. package/src/matrixrtc/index.ts +0 -22
  702. package/src/matrixrtc/types.ts +0 -36
  703. package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
  704. package/src/rendezvous/RendezvousChannel.ts +0 -48
  705. package/src/rendezvous/RendezvousCode.ts +0 -25
  706. package/src/rendezvous/RendezvousError.ts +0 -26
  707. package/src/rendezvous/RendezvousFailureReason.ts +0 -49
  708. package/src/rendezvous/RendezvousIntent.ts +0 -20
  709. package/src/rendezvous/RendezvousTransport.ts +0 -58
  710. package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
  711. package/src/rendezvous/channels/index.ts +0 -17
  712. package/src/rendezvous/index.ts +0 -25
  713. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
  714. package/src/rendezvous/transports/index.ts +0 -17
  715. package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
  716. package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
  717. package/src/rust-crypto/KeyClaimManager.ts +0 -86
  718. package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
  719. package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
  720. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
  721. package/src/rust-crypto/RoomEncryptor.ts +0 -352
  722. package/src/rust-crypto/backup.ts +0 -881
  723. package/src/rust-crypto/constants.ts +0 -18
  724. package/src/rust-crypto/device-converter.ts +0 -128
  725. package/src/rust-crypto/index.ts +0 -237
  726. package/src/rust-crypto/libolm_migration.ts +0 -530
  727. package/src/rust-crypto/rust-crypto.ts +0 -2205
  728. package/src/rust-crypto/secret-storage.ts +0 -60
  729. package/src/rust-crypto/verification.ts +0 -830
  730. package/src/secret-storage.ts +0 -693
  731. package/src/utils/decryptAESSecretStorageItem.ts +0 -54
  732. package/src/utils/encryptAESSecretStorageItem.ts +0 -73
  733. package/src/utils/internal/deriveKeys.ts +0 -63
  734. package/src/webrtc/audioContext.ts +0 -44
  735. package/src/webrtc/call.ts +0 -3074
  736. package/src/webrtc/callEventHandler.ts +0 -425
  737. package/src/webrtc/callEventTypes.ts +0 -93
  738. package/src/webrtc/callFeed.ts +0 -364
  739. package/src/webrtc/groupCall.ts +0 -1735
  740. package/src/webrtc/groupCallEventHandler.ts +0 -234
  741. package/src/webrtc/mediaHandler.ts +0 -484
  742. package/src/webrtc/stats/callFeedStatsReporter.ts +0 -94
  743. package/src/webrtc/stats/callStatsReportGatherer.ts +0 -219
  744. package/src/webrtc/stats/callStatsReportSummary.ts +0 -30
  745. package/src/webrtc/stats/connectionStats.ts +0 -47
  746. package/src/webrtc/stats/connectionStatsBuilder.ts +0 -28
  747. package/src/webrtc/stats/connectionStatsReportBuilder.ts +0 -140
  748. package/src/webrtc/stats/groupCallStats.ts +0 -93
  749. package/src/webrtc/stats/media/mediaSsrcHandler.ts +0 -57
  750. package/src/webrtc/stats/media/mediaTrackHandler.ts +0 -76
  751. package/src/webrtc/stats/media/mediaTrackStats.ts +0 -176
  752. package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +0 -90
  753. package/src/webrtc/stats/statsReport.ts +0 -133
  754. package/src/webrtc/stats/statsReportEmitter.ts +0 -49
  755. package/src/webrtc/stats/summaryStatsReportGatherer.ts +0 -148
  756. package/src/webrtc/stats/trackStatsBuilder.ts +0 -207
  757. package/src/webrtc/stats/transportStats.ts +0 -26
  758. package/src/webrtc/stats/transportStatsBuilder.ts +0 -48
  759. package/src/webrtc/stats/valueFormatter.ts +0 -27
@@ -1,299 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- /*
4
- Copyright 2016 - 2021 The Matrix.org Foundation C.I.C.
5
-
6
- Licensed under the Apache License, Version 2.0 (the "License");
7
- you may not use this file except in compliance with the License.
8
- You may obtain a copy of the License at
9
-
10
- http://www.apache.org/licenses/LICENSE-2.0
11
-
12
- Unless required by applicable law or agreed to in writing, software
13
- distributed under the License is distributed on an "AS IS" BASIS,
14
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- See the License for the specific language governing permissions and
16
- limitations under the License.
17
- */
18
-
19
- /**
20
- * Defines m.olm encryption/decryption
21
- */
22
-
23
- import { logger } from "../../logger.js";
24
- import * as olmlib from "../olmlib.js";
25
- import { DeviceInfo } from "../deviceinfo.js";
26
- import { DecryptionAlgorithm, EncryptionAlgorithm, registerAlgorithm } from "./base.js";
27
- import { DecryptionFailureCode } from "../../crypto-api/index.js";
28
- import { DecryptionError } from "../../common-crypto/CryptoBackend.js";
29
- var DeviceVerification = DeviceInfo.DeviceVerification;
30
- /**
31
- * Olm encryption implementation
32
- *
33
- * @param params - parameters, as per {@link EncryptionAlgorithm}
34
- */
35
- class OlmEncryption extends EncryptionAlgorithm {
36
- constructor() {
37
- super(...arguments);
38
- _defineProperty(this, "sessionPrepared", false);
39
- _defineProperty(this, "prepPromise", null);
40
- }
41
- /**
42
- * @internal
43
- * @param roomMembers - list of currently-joined users in the room
44
- * @returns Promise which resolves when setup is complete
45
- */
46
- ensureSession(roomMembers) {
47
- if (this.prepPromise) {
48
- // prep already in progress
49
- return this.prepPromise;
50
- }
51
- if (this.sessionPrepared) {
52
- // prep already done
53
- return Promise.resolve();
54
- }
55
- this.prepPromise = this.crypto.downloadKeys(roomMembers).then(() => {
56
- return this.crypto.ensureOlmSessionsForUsers(roomMembers);
57
- }).then(() => {
58
- this.sessionPrepared = true;
59
- }).finally(() => {
60
- this.prepPromise = null;
61
- });
62
- return this.prepPromise;
63
- }
64
-
65
- /**
66
- * @param content - plaintext event content
67
- *
68
- * @returns Promise which resolves to the new event body
69
- */
70
- encryptMessage(room, eventType, content) {
71
- var _this = this;
72
- return _asyncToGenerator(function* () {
73
- // pick the list of recipients based on the membership list.
74
- //
75
- // TODO: there is a race condition here! What if a new user turns up
76
- // just as you are sending a secret message?
77
-
78
- var members = yield room.getEncryptionTargetMembers();
79
- var users = members.map(function (u) {
80
- return u.userId;
81
- });
82
- yield _this.ensureSession(users);
83
- var payloadFields = {
84
- room_id: room.roomId,
85
- type: eventType,
86
- content: content
87
- };
88
- var encryptedContent = {
89
- algorithm: olmlib.OLM_ALGORITHM,
90
- sender_key: _this.olmDevice.deviceCurve25519Key,
91
- ciphertext: {}
92
- };
93
- var promises = [];
94
- for (var userId of users) {
95
- var devices = _this.crypto.getStoredDevicesForUser(userId) || [];
96
- for (var deviceInfo of devices) {
97
- var key = deviceInfo.getIdentityKey();
98
- if (key == _this.olmDevice.deviceCurve25519Key) {
99
- // don't bother sending to ourself
100
- continue;
101
- }
102
- if (deviceInfo.verified == DeviceVerification.BLOCKED) {
103
- // don't bother setting up sessions with blocked users
104
- continue;
105
- }
106
- promises.push(olmlib.encryptMessageForDevice(encryptedContent.ciphertext, _this.userId, _this.deviceId, _this.olmDevice, userId, deviceInfo, payloadFields));
107
- }
108
- }
109
- return Promise.all(promises).then(() => encryptedContent);
110
- })();
111
- }
112
- }
113
-
114
- /**
115
- * Olm decryption implementation
116
- *
117
- * @param params - parameters, as per {@link DecryptionAlgorithm}
118
- */
119
- class OlmDecryption extends DecryptionAlgorithm {
120
- /**
121
- * returns a promise which resolves to a
122
- * {@link EventDecryptionResult} once we have finished
123
- * decrypting. Rejects with an `algorithms.DecryptionError` if there is a
124
- * problem decrypting the event.
125
- */
126
- decryptEvent(event) {
127
- var _this2 = this;
128
- return _asyncToGenerator(function* () {
129
- var content = event.getWireContent();
130
- var deviceKey = content.sender_key;
131
- var ciphertext = content.ciphertext;
132
- if (!ciphertext) {
133
- throw new DecryptionError(DecryptionFailureCode.OLM_MISSING_CIPHERTEXT, "Missing ciphertext");
134
- }
135
- if (!(_this2.olmDevice.deviceCurve25519Key in ciphertext)) {
136
- throw new DecryptionError(DecryptionFailureCode.OLM_NOT_INCLUDED_IN_RECIPIENTS, "Not included in recipients");
137
- }
138
- var message = ciphertext[_this2.olmDevice.deviceCurve25519Key];
139
- var payloadString;
140
- try {
141
- payloadString = yield _this2.decryptMessage(deviceKey, message);
142
- } catch (e) {
143
- throw new DecryptionError(DecryptionFailureCode.OLM_BAD_ENCRYPTED_MESSAGE, "Bad Encrypted Message", {
144
- sender: deviceKey,
145
- err: e
146
- });
147
- }
148
- var payload = JSON.parse(payloadString);
149
-
150
- // check that we were the intended recipient, to avoid unknown-key attack
151
- // https://github.com/vector-im/vector-web/issues/2483
152
- if (payload.recipient != _this2.userId) {
153
- throw new DecryptionError(DecryptionFailureCode.OLM_BAD_RECIPIENT, "Message was intended for " + payload.recipient);
154
- }
155
- if (payload.recipient_keys.ed25519 != _this2.olmDevice.deviceEd25519Key) {
156
- throw new DecryptionError(DecryptionFailureCode.OLM_BAD_RECIPIENT_KEY, "Message not intended for this device", {
157
- intended: payload.recipient_keys.ed25519,
158
- our_key: _this2.olmDevice.deviceEd25519Key
159
- });
160
- }
161
-
162
- // check that the device that encrypted the event belongs to the user that the event claims it's from.
163
- //
164
- // If the device is unknown then we check that we don't have any pending key-query requests for the sender. If
165
- // after that the device is still unknown, then we can only assume that the device logged out and accept it
166
- // anyway. Some event handlers, such as secret sharing, may be more strict and reject events that come from
167
- // unknown devices.
168
- //
169
- // This is a defence against the following scenario:
170
- //
171
- // * Alice has verified Bob and Mallory.
172
- // * Mallory gets control of Alice's server, and sends a megolm session to Alice using her (Mallory's)
173
- // senderkey, but claiming to be from Bob.
174
- // * Mallory sends more events using that session, claiming to be from Bob.
175
- // * Alice sees that the senderkey is verified (since she verified Mallory) so marks events those events as
176
- // verified even though the sender is forged.
177
- //
178
- // In practice, it's not clear that the js-sdk would behave that way, so this may be only a defence in depth.
179
-
180
- var senderKeyUser = _this2.crypto.deviceList.getUserByIdentityKey(olmlib.OLM_ALGORITHM, deviceKey);
181
- if (senderKeyUser === undefined || senderKeyUser === null) {
182
- // Wait for any pending key query fetches for the user to complete before trying the lookup again.
183
- try {
184
- yield _this2.crypto.deviceList.downloadKeys([event.getSender()], false);
185
- } catch (e) {
186
- throw new DecryptionError(DecryptionFailureCode.OLM_BAD_SENDER_CHECK_FAILED, "Could not verify sender identity", {
187
- sender: deviceKey,
188
- err: e
189
- });
190
- }
191
- senderKeyUser = _this2.crypto.deviceList.getUserByIdentityKey(olmlib.OLM_ALGORITHM, deviceKey);
192
- }
193
- if (senderKeyUser !== event.getSender() && senderKeyUser !== undefined && senderKeyUser !== null) {
194
- throw new DecryptionError(DecryptionFailureCode.OLM_BAD_SENDER, "Message claimed to be from " + event.getSender(), {
195
- real_sender: senderKeyUser
196
- });
197
- }
198
-
199
- // check that the original sender matches what the homeserver told us, to
200
- // avoid people masquerading as others.
201
- // (this check is also provided via the sender's embedded ed25519 key,
202
- // which is checked elsewhere).
203
- if (payload.sender != event.getSender()) {
204
- throw new DecryptionError(DecryptionFailureCode.OLM_FORWARDED_MESSAGE, "Message forwarded from " + payload.sender, {
205
- reported_sender: event.getSender()
206
- });
207
- }
208
-
209
- // Olm events intended for a room have a room_id.
210
- if (payload.room_id !== event.getRoomId()) {
211
- throw new DecryptionError(DecryptionFailureCode.OLM_BAD_ROOM, "Message intended for room " + payload.room_id, {
212
- reported_room: event.getRoomId() || "ROOM_ID_UNDEFINED"
213
- });
214
- }
215
- var claimedKeys = payload.keys || {};
216
- return {
217
- clearEvent: payload,
218
- senderCurve25519Key: deviceKey,
219
- claimedEd25519Key: claimedKeys.ed25519 || null
220
- };
221
- })();
222
- }
223
-
224
- /**
225
- * Attempt to decrypt an Olm message
226
- *
227
- * @param theirDeviceIdentityKey - Curve25519 identity key of the sender
228
- * @param message - message object, with 'type' and 'body' fields
229
- *
230
- * @returns payload, if decrypted successfully.
231
- */
232
- decryptMessage(theirDeviceIdentityKey, message) {
233
- // This is a wrapper that serialises decryptions of prekey messages, because
234
- // otherwise we race between deciding we have no active sessions for the message
235
- // and creating a new one, which we can only do once because it removes the OTK.
236
- if (message.type !== 0) {
237
- // not a prekey message: we can safely just try & decrypt it
238
- return this.reallyDecryptMessage(theirDeviceIdentityKey, message);
239
- } else {
240
- var myPromise = this.olmDevice.olmPrekeyPromise.then(() => {
241
- return this.reallyDecryptMessage(theirDeviceIdentityKey, message);
242
- });
243
- // we want the error, but don't propagate it to the next decryption
244
- this.olmDevice.olmPrekeyPromise = myPromise.catch(() => {});
245
- return myPromise;
246
- }
247
- }
248
- reallyDecryptMessage(theirDeviceIdentityKey, message) {
249
- var _this3 = this;
250
- return _asyncToGenerator(function* () {
251
- var sessionIds = yield _this3.olmDevice.getSessionIdsForDevice(theirDeviceIdentityKey);
252
-
253
- // try each session in turn.
254
- var decryptionErrors = {};
255
- for (var sessionId of sessionIds) {
256
- try {
257
- var payload = yield _this3.olmDevice.decryptMessage(theirDeviceIdentityKey, sessionId, message.type, message.body);
258
- logger.log("Decrypted Olm message from " + theirDeviceIdentityKey + " with session " + sessionId);
259
- return payload;
260
- } catch (e) {
261
- var foundSession = yield _this3.olmDevice.matchesSession(theirDeviceIdentityKey, sessionId, message.type, message.body);
262
- if (foundSession) {
263
- // decryption failed, but it was a prekey message matching this
264
- // session, so it should have worked.
265
- throw new Error("Error decrypting prekey message with existing session id " + sessionId + ": " + e.message);
266
- }
267
-
268
- // otherwise it's probably a message for another session; carry on, but
269
- // keep a record of the error
270
- decryptionErrors[sessionId] = e.message;
271
- }
272
- }
273
- if (message.type !== 0) {
274
- // not a prekey message, so it should have matched an existing session, but it
275
- // didn't work.
276
-
277
- if (sessionIds.length === 0) {
278
- throw new Error("No existing sessions");
279
- }
280
- throw new Error("Error decrypting non-prekey message with existing sessions: " + JSON.stringify(decryptionErrors));
281
- }
282
-
283
- // prekey message which doesn't match any existing sessions: make a new
284
- // session.
285
-
286
- var res;
287
- try {
288
- res = yield _this3.olmDevice.createInboundSession(theirDeviceIdentityKey, message.type, message.body);
289
- } catch (e) {
290
- decryptionErrors["(new)"] = e.message;
291
- throw new Error("Error decrypting prekey message: " + JSON.stringify(decryptionErrors));
292
- }
293
- logger.log("created new inbound Olm session ID " + res.session_id + " with " + theirDeviceIdentityKey);
294
- return res.payload;
295
- })();
296
- }
297
- }
298
- registerAlgorithm(olmlib.OLM_ALGORITHM, OlmEncryption, OlmDecryption);
299
- //# sourceMappingURL=olm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"olm.js","names":["logger","olmlib","DeviceInfo","DecryptionAlgorithm","EncryptionAlgorithm","registerAlgorithm","DecryptionFailureCode","DecryptionError","DeviceVerification","OlmEncryption","constructor","arguments","_defineProperty","ensureSession","roomMembers","prepPromise","sessionPrepared","Promise","resolve","crypto","downloadKeys","then","ensureOlmSessionsForUsers","finally","encryptMessage","room","eventType","content","_this","_asyncToGenerator","members","getEncryptionTargetMembers","users","map","u","userId","payloadFields","room_id","roomId","type","encryptedContent","algorithm","OLM_ALGORITHM","sender_key","olmDevice","deviceCurve25519Key","ciphertext","promises","devices","getStoredDevicesForUser","deviceInfo","key","getIdentityKey","verified","BLOCKED","push","encryptMessageForDevice","deviceId","all","OlmDecryption","decryptEvent","event","_this2","getWireContent","deviceKey","OLM_MISSING_CIPHERTEXT","OLM_NOT_INCLUDED_IN_RECIPIENTS","message","payloadString","decryptMessage","e","OLM_BAD_ENCRYPTED_MESSAGE","sender","err","payload","JSON","parse","recipient","OLM_BAD_RECIPIENT","recipient_keys","ed25519","deviceEd25519Key","OLM_BAD_RECIPIENT_KEY","intended","our_key","senderKeyUser","deviceList","getUserByIdentityKey","undefined","getSender","OLM_BAD_SENDER_CHECK_FAILED","OLM_BAD_SENDER","real_sender","OLM_FORWARDED_MESSAGE","reported_sender","getRoomId","OLM_BAD_ROOM","reported_room","claimedKeys","keys","clearEvent","senderCurve25519Key","claimedEd25519Key","theirDeviceIdentityKey","reallyDecryptMessage","myPromise","olmPrekeyPromise","catch","_this3","sessionIds","getSessionIdsForDevice","decryptionErrors","sessionId","body","log","foundSession","matchesSession","Error","length","stringify","res","createInboundSession","session_id"],"sources":["../../../src/crypto/algorithms/olm.ts"],"sourcesContent":["/*\nCopyright 2016 - 2021 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n/**\n * Defines m.olm encryption/decryption\n */\n\nimport type { IEventDecryptionResult } from \"../../@types/crypto.ts\";\nimport { logger } from \"../../logger.ts\";\nimport * as olmlib from \"../olmlib.ts\";\nimport { DeviceInfo } from \"../deviceinfo.ts\";\nimport { DecryptionAlgorithm, EncryptionAlgorithm, registerAlgorithm } from \"./base.ts\";\nimport { Room } from \"../../models/room.ts\";\nimport { IContent, MatrixEvent } from \"../../models/event.ts\";\nimport { IEncryptedContent, IOlmEncryptedContent } from \"../index.ts\";\nimport { IInboundSession } from \"../OlmDevice.ts\";\nimport { DecryptionFailureCode } from \"../../crypto-api/index.ts\";\nimport { DecryptionError } from \"../../common-crypto/CryptoBackend.ts\";\n\nconst DeviceVerification = DeviceInfo.DeviceVerification;\n\nexport interface IMessage {\n type: number;\n body: string;\n}\n\n/**\n * Olm encryption implementation\n *\n * @param params - parameters, as per {@link EncryptionAlgorithm}\n */\nclass OlmEncryption extends EncryptionAlgorithm {\n private sessionPrepared = false;\n private prepPromise: Promise<void> | null = null;\n\n /**\n * @internal\n\n * @param roomMembers - list of currently-joined users in the room\n * @returns Promise which resolves when setup is complete\n */\n private ensureSession(roomMembers: string[]): Promise<void> {\n if (this.prepPromise) {\n // prep already in progress\n return this.prepPromise;\n }\n\n if (this.sessionPrepared) {\n // prep already done\n return Promise.resolve();\n }\n\n this.prepPromise = this.crypto\n .downloadKeys(roomMembers)\n .then(() => {\n return this.crypto.ensureOlmSessionsForUsers(roomMembers);\n })\n .then(() => {\n this.sessionPrepared = true;\n })\n .finally(() => {\n this.prepPromise = null;\n });\n\n return this.prepPromise;\n }\n\n /**\n * @param content - plaintext event content\n *\n * @returns Promise which resolves to the new event body\n */\n public async encryptMessage(room: Room, eventType: string, content: IContent): Promise<IOlmEncryptedContent> {\n // pick the list of recipients based on the membership list.\n //\n // TODO: there is a race condition here! What if a new user turns up\n // just as you are sending a secret message?\n\n const members = await room.getEncryptionTargetMembers();\n\n const users = members.map(function (u) {\n return u.userId;\n });\n\n await this.ensureSession(users);\n\n const payloadFields = {\n room_id: room.roomId,\n type: eventType,\n content: content,\n };\n\n const encryptedContent: IEncryptedContent = {\n algorithm: olmlib.OLM_ALGORITHM,\n sender_key: this.olmDevice.deviceCurve25519Key!,\n ciphertext: {},\n };\n\n const promises: Promise<void>[] = [];\n\n for (const userId of users) {\n const devices = this.crypto.getStoredDevicesForUser(userId) || [];\n\n for (const deviceInfo of devices) {\n const key = deviceInfo.getIdentityKey();\n if (key == this.olmDevice.deviceCurve25519Key) {\n // don't bother sending to ourself\n continue;\n }\n if (deviceInfo.verified == DeviceVerification.BLOCKED) {\n // don't bother setting up sessions with blocked users\n continue;\n }\n\n promises.push(\n olmlib.encryptMessageForDevice(\n encryptedContent.ciphertext,\n this.userId,\n this.deviceId,\n this.olmDevice,\n userId,\n deviceInfo,\n payloadFields,\n ),\n );\n }\n }\n\n return Promise.all(promises).then(() => encryptedContent);\n }\n}\n\n/**\n * Olm decryption implementation\n *\n * @param params - parameters, as per {@link DecryptionAlgorithm}\n */\nclass OlmDecryption extends DecryptionAlgorithm {\n /**\n * returns a promise which resolves to a\n * {@link EventDecryptionResult} once we have finished\n * decrypting. Rejects with an `algorithms.DecryptionError` if there is a\n * problem decrypting the event.\n */\n public async decryptEvent(event: MatrixEvent): Promise<IEventDecryptionResult> {\n const content = event.getWireContent();\n const deviceKey = content.sender_key;\n const ciphertext = content.ciphertext;\n\n if (!ciphertext) {\n throw new DecryptionError(DecryptionFailureCode.OLM_MISSING_CIPHERTEXT, \"Missing ciphertext\");\n }\n\n if (!(this.olmDevice.deviceCurve25519Key! in ciphertext)) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_NOT_INCLUDED_IN_RECIPIENTS,\n \"Not included in recipients\",\n );\n }\n const message = ciphertext[this.olmDevice.deviceCurve25519Key!];\n let payloadString: string;\n\n try {\n payloadString = await this.decryptMessage(deviceKey, message);\n } catch (e) {\n throw new DecryptionError(DecryptionFailureCode.OLM_BAD_ENCRYPTED_MESSAGE, \"Bad Encrypted Message\", {\n sender: deviceKey,\n err: e as Error,\n });\n }\n\n const payload = JSON.parse(payloadString);\n\n // check that we were the intended recipient, to avoid unknown-key attack\n // https://github.com/vector-im/vector-web/issues/2483\n if (payload.recipient != this.userId) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_BAD_RECIPIENT,\n \"Message was intended for \" + payload.recipient,\n );\n }\n\n if (payload.recipient_keys.ed25519 != this.olmDevice.deviceEd25519Key) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_BAD_RECIPIENT_KEY,\n \"Message not intended for this device\",\n {\n intended: payload.recipient_keys.ed25519,\n our_key: this.olmDevice.deviceEd25519Key!,\n },\n );\n }\n\n // check that the device that encrypted the event belongs to the user that the event claims it's from.\n //\n // If the device is unknown then we check that we don't have any pending key-query requests for the sender. If\n // after that the device is still unknown, then we can only assume that the device logged out and accept it\n // anyway. Some event handlers, such as secret sharing, may be more strict and reject events that come from\n // unknown devices.\n //\n // This is a defence against the following scenario:\n //\n // * Alice has verified Bob and Mallory.\n // * Mallory gets control of Alice's server, and sends a megolm session to Alice using her (Mallory's)\n // senderkey, but claiming to be from Bob.\n // * Mallory sends more events using that session, claiming to be from Bob.\n // * Alice sees that the senderkey is verified (since she verified Mallory) so marks events those events as\n // verified even though the sender is forged.\n //\n // In practice, it's not clear that the js-sdk would behave that way, so this may be only a defence in depth.\n\n let senderKeyUser = this.crypto.deviceList.getUserByIdentityKey(olmlib.OLM_ALGORITHM, deviceKey);\n if (senderKeyUser === undefined || senderKeyUser === null) {\n // Wait for any pending key query fetches for the user to complete before trying the lookup again.\n try {\n await this.crypto.deviceList.downloadKeys([event.getSender()!], false);\n } catch (e) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_BAD_SENDER_CHECK_FAILED,\n \"Could not verify sender identity\",\n {\n sender: deviceKey,\n err: e as Error,\n },\n );\n }\n\n senderKeyUser = this.crypto.deviceList.getUserByIdentityKey(olmlib.OLM_ALGORITHM, deviceKey);\n }\n if (senderKeyUser !== event.getSender() && senderKeyUser !== undefined && senderKeyUser !== null) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_BAD_SENDER,\n \"Message claimed to be from \" + event.getSender(),\n {\n real_sender: senderKeyUser,\n },\n );\n }\n\n // check that the original sender matches what the homeserver told us, to\n // avoid people masquerading as others.\n // (this check is also provided via the sender's embedded ed25519 key,\n // which is checked elsewhere).\n if (payload.sender != event.getSender()) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_FORWARDED_MESSAGE,\n \"Message forwarded from \" + payload.sender,\n {\n reported_sender: event.getSender()!,\n },\n );\n }\n\n // Olm events intended for a room have a room_id.\n if (payload.room_id !== event.getRoomId()) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_BAD_ROOM,\n \"Message intended for room \" + payload.room_id,\n {\n reported_room: event.getRoomId() || \"ROOM_ID_UNDEFINED\",\n },\n );\n }\n\n const claimedKeys = payload.keys || {};\n\n return {\n clearEvent: payload,\n senderCurve25519Key: deviceKey,\n claimedEd25519Key: claimedKeys.ed25519 || null,\n };\n }\n\n /**\n * Attempt to decrypt an Olm message\n *\n * @param theirDeviceIdentityKey - Curve25519 identity key of the sender\n * @param message - message object, with 'type' and 'body' fields\n *\n * @returns payload, if decrypted successfully.\n */\n private decryptMessage(theirDeviceIdentityKey: string, message: IMessage): Promise<string> {\n // This is a wrapper that serialises decryptions of prekey messages, because\n // otherwise we race between deciding we have no active sessions for the message\n // and creating a new one, which we can only do once because it removes the OTK.\n if (message.type !== 0) {\n // not a prekey message: we can safely just try & decrypt it\n return this.reallyDecryptMessage(theirDeviceIdentityKey, message);\n } else {\n const myPromise = this.olmDevice.olmPrekeyPromise.then(() => {\n return this.reallyDecryptMessage(theirDeviceIdentityKey, message);\n });\n // we want the error, but don't propagate it to the next decryption\n this.olmDevice.olmPrekeyPromise = myPromise.catch(() => {});\n return myPromise;\n }\n }\n\n private async reallyDecryptMessage(theirDeviceIdentityKey: string, message: IMessage): Promise<string> {\n const sessionIds = await this.olmDevice.getSessionIdsForDevice(theirDeviceIdentityKey);\n\n // try each session in turn.\n const decryptionErrors: Record<string, string> = {};\n for (const sessionId of sessionIds) {\n try {\n const payload = await this.olmDevice.decryptMessage(\n theirDeviceIdentityKey,\n sessionId,\n message.type,\n message.body,\n );\n logger.log(\"Decrypted Olm message from \" + theirDeviceIdentityKey + \" with session \" + sessionId);\n return payload;\n } catch (e) {\n const foundSession = await this.olmDevice.matchesSession(\n theirDeviceIdentityKey,\n sessionId,\n message.type,\n message.body,\n );\n\n if (foundSession) {\n // decryption failed, but it was a prekey message matching this\n // session, so it should have worked.\n throw new Error(\n \"Error decrypting prekey message with existing session id \" +\n sessionId +\n \": \" +\n (<Error>e).message,\n );\n }\n\n // otherwise it's probably a message for another session; carry on, but\n // keep a record of the error\n decryptionErrors[sessionId] = (<Error>e).message;\n }\n }\n\n if (message.type !== 0) {\n // not a prekey message, so it should have matched an existing session, but it\n // didn't work.\n\n if (sessionIds.length === 0) {\n throw new Error(\"No existing sessions\");\n }\n\n throw new Error(\n \"Error decrypting non-prekey message with existing sessions: \" + JSON.stringify(decryptionErrors),\n );\n }\n\n // prekey message which doesn't match any existing sessions: make a new\n // session.\n\n let res: IInboundSession;\n try {\n res = await this.olmDevice.createInboundSession(theirDeviceIdentityKey, message.type, message.body);\n } catch (e) {\n decryptionErrors[\"(new)\"] = (<Error>e).message;\n throw new Error(\"Error decrypting prekey message: \" + JSON.stringify(decryptionErrors));\n }\n\n logger.log(\"created new inbound Olm session ID \" + res.session_id + \" with \" + theirDeviceIdentityKey);\n return res.payload;\n }\n}\n\nregisterAlgorithm(olmlib.OLM_ALGORITHM, OlmEncryption, OlmDecryption);\n"],"mappings":"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","ignoreList":[]}
@@ -1,32 +0,0 @@
1
- import { DeviceInfo } from "./deviceinfo.ts";
2
- export { CrossSigningKey } from "../crypto-api/index.ts";
3
- export type { GeneratedSecretStorageKey as IRecoveryKey, CreateSecretStorageOpts as ICreateSecretStorageOpts, } from "../crypto-api/index.ts";
4
- export type { ImportRoomKeyProgressData as IImportOpts, ImportRoomKeysOpts as IImportRoomKeysOpts, } from "../crypto-api/index.ts";
5
- export type { AddSecretStorageKeyOpts as IAddSecretStorageKeyOpts, PassphraseInfo as IPassphraseInfo, SecretStorageKeyDescription as ISecretStorageKeyInfo, } from "../secret-storage.ts";
6
- export interface IEncryptedEventInfo {
7
- /**
8
- * whether the event is encrypted (if not encrypted, some of the other properties may not be set)
9
- */
10
- encrypted: boolean;
11
- /**
12
- * the sender's key
13
- */
14
- senderKey: string;
15
- /**
16
- * the algorithm used to encrypt the event
17
- */
18
- algorithm: string;
19
- /**
20
- * whether we can be sure that the owner of the senderKey sent the event
21
- */
22
- authenticated: boolean;
23
- /**
24
- * the sender's device information, if available
25
- */
26
- sender?: DeviceInfo;
27
- /**
28
- * if the event's ed25519 and curve25519 keys don't match (only meaningful if `sender` is set)
29
- */
30
- mismatchedSender: boolean;
31
- }
32
- //# sourceMappingURL=api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/crypto/api.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EACR,yBAAyB,IAAI,YAAY,EACzC,uBAAuB,IAAI,wBAAwB,GACtD,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACR,yBAAyB,IAAI,WAAW,EACxC,kBAAkB,IAAI,mBAAmB,GAC5C,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACR,uBAAuB,IAAI,wBAAwB,EACnD,cAAc,IAAI,eAAe,EACjC,2BAA2B,IAAI,qBAAqB,GACvD,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC7B"}
package/lib/crypto/api.js DELETED
@@ -1,22 +0,0 @@
1
- /*
2
- Copyright 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
- /* re-exports for backwards compatibility. */
18
- // CrossSigningKey is used as a value in `client.ts`, we can't export it as a type
19
- export { CrossSigningKey } from "../crypto-api/index.js";
20
-
21
- // TODO: Merge this with crypto.js once converted
22
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","names":["CrossSigningKey"],"sources":["../../src/crypto/api.ts"],"sourcesContent":["/*\nCopyright 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 { DeviceInfo } from \"./deviceinfo.ts\";\n\n/* re-exports for backwards compatibility. */\n// CrossSigningKey is used as a value in `client.ts`, we can't export it as a type\nexport { CrossSigningKey } from \"../crypto-api/index.ts\";\nexport type {\n GeneratedSecretStorageKey as IRecoveryKey,\n CreateSecretStorageOpts as ICreateSecretStorageOpts,\n} from \"../crypto-api/index.ts\";\n\nexport type {\n ImportRoomKeyProgressData as IImportOpts,\n ImportRoomKeysOpts as IImportRoomKeysOpts,\n} from \"../crypto-api/index.ts\";\n\nexport type {\n AddSecretStorageKeyOpts as IAddSecretStorageKeyOpts,\n PassphraseInfo as IPassphraseInfo,\n SecretStorageKeyDescription as ISecretStorageKeyInfo,\n} from \"../secret-storage.ts\";\n\n// TODO: Merge this with crypto.js once converted\n\nexport interface IEncryptedEventInfo {\n /**\n * whether the event is encrypted (if not encrypted, some of the other properties may not be set)\n */\n encrypted: boolean;\n\n /**\n * the sender's key\n */\n senderKey: string;\n\n /**\n * the algorithm used to encrypt the event\n */\n algorithm: string;\n\n /**\n * whether we can be sure that the owner of the senderKey sent the event\n */\n authenticated: boolean;\n\n /**\n * the sender's device information, if available\n */\n sender?: DeviceInfo;\n\n /**\n * if the event's ed25519 and curve25519 keys don't match (only meaningful if `sender` is set)\n */\n mismatchedSender: boolean;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA,SAASA,eAAe,QAAQ,wBAAwB;;AAiBxD","ignoreList":[]}
@@ -1,227 +0,0 @@
1
- /**
2
- * Classes for dealing with key backup.
3
- */
4
- import type { IMegolmSessionData } from "../@types/crypto.ts";
5
- import { MatrixClient } from "../client.ts";
6
- import { DeviceInfo } from "./deviceinfo.ts";
7
- import { DeviceTrustLevel } from "./CrossSigning.ts";
8
- import { Curve25519SessionData, IAes256AuthData, ICurve25519AuthData, IKeyBackupInfo, IKeyBackupSession } from "./keybackup.ts";
9
- import { BackupTrustInfo } from "../crypto-api/keybackup.ts";
10
- import { BackupDecryptor } from "../common-crypto/CryptoBackend.ts";
11
- import { AESEncryptedSecretStoragePayload } from "../@types/AESEncryptedSecretStoragePayload.ts";
12
- type AuthData = IKeyBackupInfo["auth_data"];
13
- type SigInfo = {
14
- deviceId: string;
15
- valid?: boolean | null;
16
- device?: DeviceInfo | null;
17
- crossSigningId?: boolean;
18
- deviceTrust?: DeviceTrustLevel;
19
- };
20
- /** @deprecated Prefer {@link BackupTrustInfo} */
21
- export type TrustInfo = {
22
- usable: boolean;
23
- sigs: SigInfo[];
24
- trusted_locally?: boolean;
25
- };
26
- export interface IKeyBackupCheck {
27
- backupInfo?: IKeyBackupInfo;
28
- trustInfo: TrustInfo;
29
- }
30
- export interface IPreparedKeyBackupVersion {
31
- algorithm: string;
32
- auth_data: AuthData;
33
- recovery_key: string;
34
- privateKey: Uint8Array;
35
- }
36
- /** A function used to get the secret key for a backup.
37
- */
38
- type GetKey = () => Promise<ArrayLike<number>>;
39
- interface BackupAlgorithmClass {
40
- algorithmName: string;
41
- init(authData: AuthData, getKey: GetKey): Promise<BackupAlgorithm>;
42
- prepare(key?: string | Uint8Array | null): Promise<[Uint8Array, AuthData]>;
43
- checkBackupVersion(info: IKeyBackupInfo): void;
44
- }
45
- interface BackupAlgorithm {
46
- untrusted: boolean;
47
- encryptSession(data: Record<string, any>): Promise<Curve25519SessionData | AESEncryptedSecretStoragePayload>;
48
- decryptSessions(ciphertexts: Record<string, IKeyBackupSession>): Promise<IMegolmSessionData[]>;
49
- authData: AuthData;
50
- keyMatches(key: ArrayLike<number>): Promise<boolean>;
51
- free(): void;
52
- }
53
- export interface IKeyBackup {
54
- rooms: {
55
- [roomId: string]: {
56
- sessions: {
57
- [sessionId: string]: IKeyBackupSession;
58
- };
59
- };
60
- };
61
- }
62
- /**
63
- * Manages the key backup.
64
- */
65
- export declare class BackupManager {
66
- private readonly baseApis;
67
- readonly getKey: GetKey;
68
- private algorithm;
69
- backupInfo: IKeyBackupInfo | undefined;
70
- checkedForBackup: boolean;
71
- private sendingBackups;
72
- private sessionLastCheckAttemptedTime;
73
- private clientRunning;
74
- constructor(baseApis: MatrixClient, getKey: GetKey);
75
- /**
76
- * Stop the backup manager from backing up keys and allow a clean shutdown.
77
- */
78
- stop(): void;
79
- get version(): string | undefined;
80
- /**
81
- * Performs a quick check to ensure that the backup info looks sane.
82
- *
83
- * Throws an error if a problem is detected.
84
- *
85
- * @param info - the key backup info
86
- */
87
- static checkBackupVersion(info: IKeyBackupInfo): void;
88
- static makeAlgorithm(info: IKeyBackupInfo, getKey: GetKey): Promise<BackupAlgorithm>;
89
- enableKeyBackup(info: IKeyBackupInfo): Promise<void>;
90
- /**
91
- * Disable backing up of keys.
92
- */
93
- disableKeyBackup(): void;
94
- getKeyBackupEnabled(): boolean | null;
95
- prepareKeyBackupVersion(key?: string | Uint8Array | null, algorithm?: string | undefined): Promise<IPreparedKeyBackupVersion>;
96
- createKeyBackupVersion(info: IKeyBackupInfo): Promise<void>;
97
- /**
98
- * Deletes all key backups.
99
- *
100
- * Will call the API to delete active backup until there is no more present.
101
- */
102
- deleteAllKeyBackupVersions(): Promise<void>;
103
- /**
104
- * Deletes the given key backup.
105
- *
106
- * @param version - The backup version to delete.
107
- */
108
- deleteKeyBackupVersion(version: string): Promise<void>;
109
- /**
110
- * Check the server for an active key backup and
111
- * if one is present and has a valid signature from
112
- * one of the user's verified devices, start backing up
113
- * to it.
114
- */
115
- checkAndStart(): Promise<IKeyBackupCheck | null>;
116
- /**
117
- * Forces a re-check of the key backup and enables/disables it
118
- * as appropriate.
119
- *
120
- * @returns Object with backup info (as returned by
121
- * getKeyBackupVersion) in backupInfo and
122
- * trust information (as returned by isKeyBackupTrusted)
123
- * in trustInfo.
124
- */
125
- checkKeyBackup(): Promise<IKeyBackupCheck | null>;
126
- /**
127
- * Attempts to retrieve a session from a key backup, if enough time
128
- * has elapsed since the last check for this session id.
129
- */
130
- queryKeyBackupRateLimited(targetRoomId: string | undefined, targetSessionId: string | undefined): Promise<void>;
131
- /**
132
- * Check if the given backup info is trusted.
133
- *
134
- * @param backupInfo - key backup info dict from /room_keys/version
135
- */
136
- isKeyBackupTrusted(backupInfo?: IKeyBackupInfo): Promise<TrustInfo>;
137
- /**
138
- * Schedules sending all keys waiting to be sent to the backup, if not already
139
- * scheduled. Retries if necessary.
140
- *
141
- * @param maxDelay - Maximum delay to wait in ms. 0 means no delay.
142
- */
143
- scheduleKeyBackupSend(maxDelay?: number): Promise<void>;
144
- /**
145
- * Take some e2e keys waiting to be backed up and send them
146
- * to the backup.
147
- *
148
- * @param limit - Maximum number of keys to back up
149
- * @returns Number of sessions backed up
150
- */
151
- backupPendingKeys(limit: number): Promise<number>;
152
- backupGroupSession(senderKey: string, sessionId: string): Promise<void>;
153
- /**
154
- * Marks all group sessions as needing to be backed up and schedules them to
155
- * upload in the background as soon as possible.
156
- */
157
- scheduleAllGroupSessionsForBackup(): Promise<void>;
158
- /**
159
- * Marks all group sessions as needing to be backed up without scheduling
160
- * them to upload in the background.
161
- * @returns Promise which resolves to the number of sessions now requiring a backup
162
- * (which will be equal to the number of sessions in the store).
163
- */
164
- flagAllGroupSessionsForBackup(): Promise<number>;
165
- /**
166
- * Counts the number of end to end session keys that are waiting to be backed up
167
- * @returns Promise which resolves to the number of sessions requiring backup
168
- */
169
- countSessionsNeedingBackup(): Promise<number>;
170
- }
171
- export declare class Curve25519 implements BackupAlgorithm {
172
- authData: ICurve25519AuthData;
173
- private publicKey;
174
- private getKey;
175
- static algorithmName: string;
176
- constructor(authData: ICurve25519AuthData, publicKey: any, // FIXME: PkEncryption
177
- getKey: () => Promise<Uint8Array>);
178
- static init(authData: AuthData, getKey: () => Promise<Uint8Array>): Promise<Curve25519>;
179
- static prepare(key?: string | Uint8Array | null): Promise<[Uint8Array, AuthData]>;
180
- static checkBackupVersion(info: IKeyBackupInfo): void;
181
- get untrusted(): boolean;
182
- encryptSession(data: Record<string, any>): Promise<Curve25519SessionData>;
183
- decryptSessions(sessions: Record<string, IKeyBackupSession<Curve25519SessionData>>): Promise<IMegolmSessionData[]>;
184
- keyMatches(key: Uint8Array): Promise<boolean>;
185
- free(): void;
186
- }
187
- export declare class Aes256 implements BackupAlgorithm {
188
- readonly authData: IAes256AuthData;
189
- private readonly key;
190
- static algorithmName: "org.matrix.msc3270.v1.aes-hmac-sha2";
191
- constructor(authData: IAes256AuthData, key: Uint8Array);
192
- static init(authData: IAes256AuthData, getKey: () => Promise<Uint8Array>): Promise<Aes256>;
193
- static prepare(key?: string | Uint8Array | null): Promise<[Uint8Array, AuthData]>;
194
- static checkBackupVersion(info: IKeyBackupInfo): void;
195
- get untrusted(): boolean;
196
- encryptSession(data: Record<string, any>): Promise<AESEncryptedSecretStoragePayload>;
197
- decryptSessions(sessions: Record<string, IKeyBackupSession<AESEncryptedSecretStoragePayload>>): Promise<IMegolmSessionData[]>;
198
- keyMatches(key: Uint8Array): Promise<boolean>;
199
- free(): void;
200
- }
201
- export declare const algorithmsByName: Record<string, BackupAlgorithmClass>;
202
- /** @alias */
203
- export declare const DefaultAlgorithm: BackupAlgorithmClass;
204
- /**
205
- * Map a legacy {@link TrustInfo} into a new-style {@link BackupTrustInfo}.
206
- *
207
- * @param trustInfo - trustInfo to convert
208
- */
209
- export declare function backupTrustInfoFromLegacyTrustInfo(trustInfo: TrustInfo): BackupTrustInfo;
210
- /**
211
- * Implementation of {@link BackupDecryptor} for the libolm crypto backend.
212
- */
213
- export declare class LibOlmBackupDecryptor implements BackupDecryptor {
214
- private algorithm;
215
- readonly sourceTrusted: boolean;
216
- constructor(algorithm: BackupAlgorithm);
217
- /**
218
- * Implements {@link BackupDecryptor#free}
219
- */
220
- free(): void;
221
- /**
222
- * Implements {@link BackupDecryptor#decryptSessions}
223
- */
224
- decryptSessions(sessions: Record<string, IKeyBackupSession<Curve25519SessionData>>): Promise<IMegolmSessionData[]>;
225
- }
226
- export {};
227
- //# sourceMappingURL=backup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/crypto/backup.ts"],"names":[],"mappings":"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"}