@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,773 +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
- /**
18
- * Cross signing methods
19
- */
20
-
21
- import type { PkSigning } from "@matrix-org/olm";
22
- import { IObject, pkSign, pkVerify } from "./olmlib.ts";
23
- import { logger } from "../logger.ts";
24
- import { IndexedDBCryptoStore } from "../crypto/store/indexeddb-crypto-store.ts";
25
- import { DeviceInfo } from "./deviceinfo.ts";
26
- import { ISignedKey, MatrixClient } from "../client.ts";
27
- import { OlmDevice } from "./OlmDevice.ts";
28
- import { ICryptoCallbacks } from "./index.ts";
29
- import { ISignatures } from "../@types/signed.ts";
30
- import { CryptoStore, SecretStorePrivateKeys } from "./store/base.ts";
31
- import { ServerSideSecretStorage, SecretStorageKeyDescription } from "../secret-storage.ts";
32
- import {
33
- CrossSigningKeyInfo,
34
- DeviceVerificationStatus,
35
- UserVerificationStatus as UserTrustLevel,
36
- } from "../crypto-api/index.ts";
37
- import { decodeBase64, encodeBase64 } from "../base64.ts";
38
- import encryptAESSecretStorageItem from "../utils/encryptAESSecretStorageItem.ts";
39
- import decryptAESSecretStorageItem from "../utils/decryptAESSecretStorageItem.ts";
40
-
41
- // backwards-compatibility re-exports
42
- export { UserTrustLevel };
43
-
44
- const KEY_REQUEST_TIMEOUT_MS = 1000 * 60;
45
-
46
- function publicKeyFromKeyInfo(keyInfo: CrossSigningKeyInfo): string {
47
- // `keys` is an object with { [`ed25519:${pubKey}`]: pubKey }
48
- // We assume only a single key, and we want the bare form without type
49
- // prefix, so we select the values.
50
- return Object.values(keyInfo.keys)[0];
51
- }
52
-
53
- export interface ICacheCallbacks {
54
- getCrossSigningKeyCache?(type: string, expectedPublicKey?: string): Promise<Uint8Array | null>;
55
- storeCrossSigningKeyCache?(type: string, key?: Uint8Array): Promise<void>;
56
- }
57
-
58
- export interface ICrossSigningInfo {
59
- keys: Record<string, CrossSigningKeyInfo>;
60
- firstUse: boolean;
61
- crossSigningVerifiedBefore: boolean;
62
- }
63
-
64
- export class CrossSigningInfo {
65
- public keys: Record<string, CrossSigningKeyInfo> = {};
66
- public firstUse = true;
67
- // This tracks whether we've ever verified this user with any identity.
68
- // When you verify a user, any devices online at the time that receive
69
- // the verifying signature via the homeserver will latch this to true
70
- // and can use it in the future to detect cases where the user has
71
- // become unverified later for any reason.
72
- private crossSigningVerifiedBefore = false;
73
-
74
- /**
75
- * Information about a user's cross-signing keys
76
- *
77
- * @param userId - the user that the information is about
78
- * @param callbacks - Callbacks used to interact with the app
79
- * Requires getCrossSigningKey and saveCrossSigningKeys
80
- * @param cacheCallbacks - Callbacks used to interact with the cache
81
- */
82
- public constructor(
83
- public readonly userId: string,
84
- private callbacks: ICryptoCallbacks = {},
85
- private cacheCallbacks: ICacheCallbacks = {},
86
- ) {}
87
-
88
- public static fromStorage(obj: ICrossSigningInfo, userId: string): CrossSigningInfo {
89
- const res = new CrossSigningInfo(userId);
90
- for (const prop in obj) {
91
- if (obj.hasOwnProperty(prop)) {
92
- // @ts-ignore - ts doesn't like this and nor should we
93
- res[prop] = obj[prop];
94
- }
95
- }
96
- return res;
97
- }
98
-
99
- public toStorage(): ICrossSigningInfo {
100
- return {
101
- keys: this.keys,
102
- firstUse: this.firstUse,
103
- crossSigningVerifiedBefore: this.crossSigningVerifiedBefore,
104
- };
105
- }
106
-
107
- /**
108
- * Calls the app callback to ask for a private key
109
- *
110
- * @param type - The key type ("master", "self_signing", or "user_signing")
111
- * @param expectedPubkey - The matching public key or undefined to use
112
- * the stored public key for the given key type.
113
- * @returns An array with [ public key, Olm.PkSigning ]
114
- */
115
- public async getCrossSigningKey(type: string, expectedPubkey?: string): Promise<[string, PkSigning]> {
116
- const shouldCache = ["master", "self_signing", "user_signing"].indexOf(type) >= 0;
117
-
118
- if (!this.callbacks.getCrossSigningKey) {
119
- throw new Error("No getCrossSigningKey callback supplied");
120
- }
121
-
122
- if (expectedPubkey === undefined) {
123
- expectedPubkey = this.getId(type)!;
124
- }
125
-
126
- function validateKey(key: Uint8Array | null): [string, PkSigning] | undefined {
127
- if (!key) return;
128
- const signing = new globalThis.Olm.PkSigning();
129
- const gotPubkey = signing.init_with_seed(key);
130
- if (gotPubkey === expectedPubkey) {
131
- return [gotPubkey, signing];
132
- }
133
- signing.free();
134
- }
135
-
136
- let privkey: Uint8Array | null = null;
137
- if (this.cacheCallbacks.getCrossSigningKeyCache && shouldCache) {
138
- privkey = await this.cacheCallbacks.getCrossSigningKeyCache(type, expectedPubkey);
139
- }
140
-
141
- const cacheresult = validateKey(privkey);
142
- if (cacheresult) {
143
- return cacheresult;
144
- }
145
-
146
- privkey = await this.callbacks.getCrossSigningKey(type, expectedPubkey);
147
- const result = validateKey(privkey);
148
- if (result) {
149
- if (this.cacheCallbacks.storeCrossSigningKeyCache && shouldCache) {
150
- await this.cacheCallbacks.storeCrossSigningKeyCache(type, privkey!);
151
- }
152
- return result;
153
- }
154
-
155
- /* No keysource even returned a key */
156
- if (!privkey) {
157
- throw new Error("getCrossSigningKey callback for " + type + " returned falsey");
158
- }
159
-
160
- /* We got some keys from the keysource, but none of them were valid */
161
- throw new Error("Key type " + type + " from getCrossSigningKey callback did not match");
162
- }
163
-
164
- /**
165
- * Check whether the private keys exist in secret storage.
166
- * XXX: This could be static, be we often seem to have an instance when we
167
- * want to know this anyway...
168
- *
169
- * @param secretStorage - The secret store using account data
170
- * @returns map of key name to key info the secret is encrypted
171
- * with, or null if it is not present or not encrypted with a trusted
172
- * key
173
- */
174
- public async isStoredInSecretStorage(
175
- secretStorage: ServerSideSecretStorage,
176
- ): Promise<Record<string, object> | null> {
177
- // check what SSSS keys have encrypted the master key (if any)
178
- const stored = (await secretStorage.isStored("m.cross_signing.master")) || {};
179
- // then check which of those SSSS keys have also encrypted the SSK and USK
180
- function intersect(s: Record<string, SecretStorageKeyDescription>): void {
181
- for (const k of Object.keys(stored)) {
182
- if (!s[k]) {
183
- delete stored[k];
184
- }
185
- }
186
- }
187
- for (const type of ["self_signing", "user_signing"]) {
188
- intersect((await secretStorage.isStored(`m.cross_signing.${type}`)) || {});
189
- }
190
- return Object.keys(stored).length ? stored : null;
191
- }
192
-
193
- /**
194
- * Store private keys in secret storage for use by other devices. This is
195
- * typically called in conjunction with the creation of new cross-signing
196
- * keys.
197
- *
198
- * @param keys - The keys to store
199
- * @param secretStorage - The secret store using account data
200
- */
201
- public static async storeInSecretStorage(
202
- keys: Map<string, Uint8Array>,
203
- secretStorage: ServerSideSecretStorage,
204
- ): Promise<void> {
205
- for (const [type, privateKey] of keys) {
206
- const encodedKey = encodeBase64(privateKey);
207
- await secretStorage.store(`m.cross_signing.${type}`, encodedKey);
208
- }
209
- }
210
-
211
- /**
212
- * Get private keys from secret storage created by some other device. This
213
- * also passes the private keys to the app-specific callback.
214
- *
215
- * @param type - The type of key to get. One of "master",
216
- * "self_signing", or "user_signing".
217
- * @param secretStorage - The secret store using account data
218
- * @returns The private key
219
- */
220
- public static async getFromSecretStorage(
221
- type: string,
222
- secretStorage: ServerSideSecretStorage,
223
- ): Promise<Uint8Array | null> {
224
- const encodedKey = await secretStorage.get(`m.cross_signing.${type}`);
225
- if (!encodedKey) {
226
- return null;
227
- }
228
- return decodeBase64(encodedKey);
229
- }
230
-
231
- /**
232
- * Check whether the private keys exist in the local key cache.
233
- *
234
- * @param type - The type of key to get. One of "master",
235
- * "self_signing", or "user_signing". Optional, will check all by default.
236
- * @returns True if all keys are stored in the local cache.
237
- */
238
- public async isStoredInKeyCache(type?: string): Promise<boolean> {
239
- const cacheCallbacks = this.cacheCallbacks;
240
- if (!cacheCallbacks) return false;
241
- const types = type ? [type] : ["master", "self_signing", "user_signing"];
242
- for (const t of types) {
243
- if (!(await cacheCallbacks.getCrossSigningKeyCache?.(t))) {
244
- return false;
245
- }
246
- }
247
- return true;
248
- }
249
-
250
- /**
251
- * Get cross-signing private keys from the local cache.
252
- *
253
- * @returns A map from key type (string) to private key (Uint8Array)
254
- */
255
- public async getCrossSigningKeysFromCache(): Promise<Map<string, Uint8Array>> {
256
- const keys = new Map<string, Uint8Array>();
257
- const cacheCallbacks = this.cacheCallbacks;
258
- if (!cacheCallbacks) return keys;
259
- for (const type of ["master", "self_signing", "user_signing"]) {
260
- const privKey = await cacheCallbacks.getCrossSigningKeyCache?.(type);
261
- if (!privKey) {
262
- continue;
263
- }
264
- keys.set(type, privKey);
265
- }
266
- return keys;
267
- }
268
-
269
- /**
270
- * Get the ID used to identify the user. This can also be used to test for
271
- * the existence of a given key type.
272
- *
273
- * @param type - The type of key to get the ID of. One of "master",
274
- * "self_signing", or "user_signing". Defaults to "master".
275
- *
276
- * @returns the ID
277
- */
278
- public getId(type = "master"): string | null {
279
- if (!this.keys[type]) return null;
280
- const keyInfo = this.keys[type];
281
- return publicKeyFromKeyInfo(keyInfo);
282
- }
283
-
284
- /**
285
- * Create new cross-signing keys for the given key types. The public keys
286
- * will be held in this class, while the private keys are passed off to the
287
- * `saveCrossSigningKeys` application callback.
288
- *
289
- * @param level - The key types to reset
290
- */
291
- public async resetKeys(level?: CrossSigningLevel): Promise<void> {
292
- if (!this.callbacks.saveCrossSigningKeys) {
293
- throw new Error("No saveCrossSigningKeys callback supplied");
294
- }
295
-
296
- // If we're resetting the master key, we reset all keys
297
- if (level === undefined || level & CrossSigningLevel.MASTER || !this.keys.master) {
298
- level = CrossSigningLevel.MASTER | CrossSigningLevel.USER_SIGNING | CrossSigningLevel.SELF_SIGNING;
299
- } else if (level === (0 as CrossSigningLevel)) {
300
- return;
301
- }
302
-
303
- const privateKeys: Record<string, Uint8Array> = {};
304
- const keys: Record<string, CrossSigningKeyInfo> = {};
305
- let masterSigning: PkSigning | undefined;
306
- let masterPub: string | undefined;
307
-
308
- try {
309
- if (level & CrossSigningLevel.MASTER) {
310
- masterSigning = new globalThis.Olm.PkSigning();
311
- privateKeys.master = masterSigning.generate_seed();
312
- masterPub = masterSigning.init_with_seed(privateKeys.master);
313
- keys.master = {
314
- user_id: this.userId,
315
- usage: ["master"],
316
- keys: {
317
- ["ed25519:" + masterPub]: masterPub,
318
- },
319
- };
320
- } else {
321
- [masterPub, masterSigning] = await this.getCrossSigningKey("master");
322
- }
323
-
324
- if (level & CrossSigningLevel.SELF_SIGNING) {
325
- const sskSigning = new globalThis.Olm.PkSigning();
326
- try {
327
- privateKeys.self_signing = sskSigning.generate_seed();
328
- const sskPub = sskSigning.init_with_seed(privateKeys.self_signing);
329
- keys.self_signing = {
330
- user_id: this.userId,
331
- usage: ["self_signing"],
332
- keys: {
333
- ["ed25519:" + sskPub]: sskPub,
334
- },
335
- };
336
- pkSign(keys.self_signing, masterSigning, this.userId, masterPub);
337
- } finally {
338
- sskSigning.free();
339
- }
340
- }
341
-
342
- if (level & CrossSigningLevel.USER_SIGNING) {
343
- const uskSigning = new globalThis.Olm.PkSigning();
344
- try {
345
- privateKeys.user_signing = uskSigning.generate_seed();
346
- const uskPub = uskSigning.init_with_seed(privateKeys.user_signing);
347
- keys.user_signing = {
348
- user_id: this.userId,
349
- usage: ["user_signing"],
350
- keys: {
351
- ["ed25519:" + uskPub]: uskPub,
352
- },
353
- };
354
- pkSign(keys.user_signing, masterSigning, this.userId, masterPub);
355
- } finally {
356
- uskSigning.free();
357
- }
358
- }
359
-
360
- Object.assign(this.keys, keys);
361
- this.callbacks.saveCrossSigningKeys(privateKeys);
362
- } finally {
363
- if (masterSigning) {
364
- masterSigning.free();
365
- }
366
- }
367
- }
368
-
369
- /**
370
- * unsets the keys, used when another session has reset the keys, to disable cross-signing
371
- */
372
- public clearKeys(): void {
373
- this.keys = {};
374
- }
375
-
376
- public setKeys(keys: Record<string, CrossSigningKeyInfo>): void {
377
- const signingKeys: Record<string, CrossSigningKeyInfo> = {};
378
- if (keys.master) {
379
- if (keys.master.user_id !== this.userId) {
380
- const error = "Mismatched user ID " + keys.master.user_id + " in master key from " + this.userId;
381
- logger.error(error);
382
- throw new Error(error);
383
- }
384
- if (!this.keys.master) {
385
- // this is the first key we've seen, so first-use is true
386
- this.firstUse = true;
387
- } else if (publicKeyFromKeyInfo(keys.master) !== this.getId()) {
388
- // this is a different key, so first-use is false
389
- this.firstUse = false;
390
- } // otherwise, same key, so no change
391
- signingKeys.master = keys.master;
392
- } else if (this.keys.master) {
393
- signingKeys.master = this.keys.master;
394
- } else {
395
- throw new Error("Tried to set cross-signing keys without a master key");
396
- }
397
- const masterKey = publicKeyFromKeyInfo(signingKeys.master);
398
-
399
- // verify signatures
400
- if (keys.user_signing) {
401
- if (keys.user_signing.user_id !== this.userId) {
402
- const error = "Mismatched user ID " + keys.master.user_id + " in user_signing key from " + this.userId;
403
- logger.error(error);
404
- throw new Error(error);
405
- }
406
- try {
407
- pkVerify(keys.user_signing, masterKey, this.userId);
408
- } catch (e) {
409
- logger.error("invalid signature on user-signing key");
410
- // FIXME: what do we want to do here?
411
- throw e;
412
- }
413
- }
414
- if (keys.self_signing) {
415
- if (keys.self_signing.user_id !== this.userId) {
416
- const error = "Mismatched user ID " + keys.master.user_id + " in self_signing key from " + this.userId;
417
- logger.error(error);
418
- throw new Error(error);
419
- }
420
- try {
421
- pkVerify(keys.self_signing, masterKey, this.userId);
422
- } catch (e) {
423
- logger.error("invalid signature on self-signing key");
424
- // FIXME: what do we want to do here?
425
- throw e;
426
- }
427
- }
428
-
429
- // if everything checks out, then save the keys
430
- if (keys.master) {
431
- this.keys.master = keys.master;
432
- // if the master key is set, then the old self-signing and user-signing keys are obsolete
433
- delete this.keys["self_signing"];
434
- delete this.keys["user_signing"];
435
- }
436
- if (keys.self_signing) {
437
- this.keys.self_signing = keys.self_signing;
438
- }
439
- if (keys.user_signing) {
440
- this.keys.user_signing = keys.user_signing;
441
- }
442
- }
443
-
444
- public updateCrossSigningVerifiedBefore(isCrossSigningVerified: boolean): void {
445
- // It is critical that this value latches forward from false to true but
446
- // never back to false to avoid a downgrade attack.
447
- if (!this.crossSigningVerifiedBefore && isCrossSigningVerified) {
448
- this.crossSigningVerifiedBefore = true;
449
- }
450
- }
451
-
452
- public async signObject<T extends object>(data: T, type: string): Promise<T & { signatures: ISignatures }> {
453
- if (!this.keys[type]) {
454
- throw new Error("Attempted to sign with " + type + " key but no such key present");
455
- }
456
- const [pubkey, signing] = await this.getCrossSigningKey(type);
457
- try {
458
- pkSign(data, signing, this.userId, pubkey);
459
- return data as T & { signatures: ISignatures };
460
- } finally {
461
- signing.free();
462
- }
463
- }
464
-
465
- public async signUser(key: CrossSigningInfo): Promise<CrossSigningKeyInfo | undefined> {
466
- if (!this.keys.user_signing) {
467
- logger.info("No user signing key: not signing user");
468
- return;
469
- }
470
- return this.signObject(key.keys.master, "user_signing");
471
- }
472
-
473
- public async signDevice(userId: string, device: DeviceInfo): Promise<ISignedKey | undefined> {
474
- if (userId !== this.userId) {
475
- throw new Error(`Trying to sign ${userId}'s device; can only sign our own device`);
476
- }
477
- if (!this.keys.self_signing) {
478
- logger.info("No self signing key: not signing device");
479
- return;
480
- }
481
- return this.signObject<Omit<ISignedKey, "signatures">>(
482
- {
483
- algorithms: device.algorithms,
484
- keys: device.keys,
485
- device_id: device.deviceId,
486
- user_id: userId,
487
- },
488
- "self_signing",
489
- );
490
- }
491
-
492
- /**
493
- * Check whether a given user is trusted.
494
- *
495
- * @param userCrossSigning - Cross signing info for user
496
- *
497
- * @returns
498
- */
499
- public checkUserTrust(userCrossSigning: CrossSigningInfo): UserTrustLevel {
500
- // if we're checking our own key, then it's trusted if the master key
501
- // and self-signing key match
502
- if (
503
- this.userId === userCrossSigning.userId &&
504
- this.getId() &&
505
- this.getId() === userCrossSigning.getId() &&
506
- this.getId("self_signing") &&
507
- this.getId("self_signing") === userCrossSigning.getId("self_signing")
508
- ) {
509
- return new UserTrustLevel(true, true, this.firstUse);
510
- }
511
-
512
- if (!this.keys.user_signing) {
513
- // If there's no user signing key, they can't possibly be verified.
514
- // They may be TOFU trusted though.
515
- return new UserTrustLevel(false, false, userCrossSigning.firstUse);
516
- }
517
-
518
- let userTrusted: boolean;
519
- const userMaster = userCrossSigning.keys.master;
520
- const uskId = this.getId("user_signing")!;
521
- try {
522
- pkVerify(userMaster, uskId, this.userId);
523
- userTrusted = true;
524
- } catch {
525
- userTrusted = false;
526
- }
527
- return new UserTrustLevel(userTrusted, userCrossSigning.crossSigningVerifiedBefore, userCrossSigning.firstUse);
528
- }
529
-
530
- /**
531
- * Check whether a given device is trusted.
532
- *
533
- * @param userCrossSigning - Cross signing info for user
534
- * @param device - The device to check
535
- * @param localTrust - Whether the device is trusted locally
536
- * @param trustCrossSignedDevices - Whether we trust cross signed devices
537
- *
538
- * @returns
539
- */
540
- public checkDeviceTrust(
541
- userCrossSigning: CrossSigningInfo,
542
- device: DeviceInfo,
543
- localTrust: boolean,
544
- trustCrossSignedDevices: boolean,
545
- ): DeviceTrustLevel {
546
- const userTrust = this.checkUserTrust(userCrossSigning);
547
-
548
- const userSSK = userCrossSigning.keys.self_signing;
549
- if (!userSSK) {
550
- // if the user has no self-signing key then we cannot make any
551
- // trust assertions about this device from cross-signing
552
- return new DeviceTrustLevel(false, false, localTrust, trustCrossSignedDevices);
553
- }
554
-
555
- const deviceObj = deviceToObject(device, userCrossSigning.userId);
556
- try {
557
- // if we can verify the user's SSK from their master key...
558
- pkVerify(userSSK, userCrossSigning.getId()!, userCrossSigning.userId);
559
- // ...and this device's key from their SSK...
560
- pkVerify(deviceObj, publicKeyFromKeyInfo(userSSK), userCrossSigning.userId);
561
- // ...then we trust this device as much as far as we trust the user
562
- return DeviceTrustLevel.fromUserTrustLevel(userTrust, localTrust, trustCrossSignedDevices);
563
- } catch {
564
- return new DeviceTrustLevel(false, false, localTrust, trustCrossSignedDevices);
565
- }
566
- }
567
-
568
- /**
569
- * @returns Cache callbacks
570
- */
571
- public getCacheCallbacks(): ICacheCallbacks {
572
- return this.cacheCallbacks;
573
- }
574
- }
575
-
576
- interface DeviceObject extends IObject {
577
- algorithms: string[];
578
- keys: Record<string, string>;
579
- device_id: string;
580
- user_id: string;
581
- }
582
-
583
- function deviceToObject(device: DeviceInfo, userId: string): DeviceObject {
584
- return {
585
- algorithms: device.algorithms,
586
- keys: device.keys,
587
- device_id: device.deviceId,
588
- user_id: userId,
589
- signatures: device.signatures,
590
- };
591
- }
592
-
593
- export enum CrossSigningLevel {
594
- MASTER = 4,
595
- USER_SIGNING = 2,
596
- SELF_SIGNING = 1,
597
- }
598
-
599
- /**
600
- * Represents the ways in which we trust a device.
601
- *
602
- * @deprecated Use {@link DeviceVerificationStatus}.
603
- */
604
- export class DeviceTrustLevel extends DeviceVerificationStatus {
605
- public constructor(
606
- crossSigningVerified: boolean,
607
- tofu: boolean,
608
- localVerified: boolean,
609
- trustCrossSignedDevices: boolean,
610
- signedByOwner = false,
611
- ) {
612
- super({ crossSigningVerified, tofu, localVerified, trustCrossSignedDevices, signedByOwner });
613
- }
614
-
615
- public static fromUserTrustLevel(
616
- userTrustLevel: UserTrustLevel,
617
- localVerified: boolean,
618
- trustCrossSignedDevices: boolean,
619
- ): DeviceTrustLevel {
620
- return new DeviceTrustLevel(
621
- userTrustLevel.isCrossSigningVerified(),
622
- userTrustLevel.isTofu(),
623
- localVerified,
624
- trustCrossSignedDevices,
625
- true,
626
- );
627
- }
628
-
629
- /**
630
- * @returns true if this device is verified via cross signing
631
- */
632
- public isCrossSigningVerified(): boolean {
633
- return this.crossSigningVerified;
634
- }
635
-
636
- /**
637
- * @returns true if this device is verified locally
638
- */
639
- public isLocallyVerified(): boolean {
640
- return this.localVerified;
641
- }
642
-
643
- /**
644
- * @returns true if this device is trusted from a user's key
645
- * that is trusted on first use
646
- */
647
- public isTofu(): boolean {
648
- return this.tofu;
649
- }
650
- }
651
-
652
- export function createCryptoStoreCacheCallbacks(store: CryptoStore, olmDevice: OlmDevice): ICacheCallbacks {
653
- return {
654
- getCrossSigningKeyCache: async function (
655
- type: keyof SecretStorePrivateKeys,
656
- _expectedPublicKey: string,
657
- ): Promise<Uint8Array> {
658
- const key = await new Promise<any>((resolve) => {
659
- store.doTxn("readonly", [IndexedDBCryptoStore.STORE_ACCOUNT], (txn) => {
660
- store.getSecretStorePrivateKey(txn, resolve, type);
661
- });
662
- });
663
-
664
- if (key && key.ciphertext) {
665
- const pickleKey = Buffer.from(olmDevice.pickleKey);
666
- const decrypted = await decryptAESSecretStorageItem(key, pickleKey, type);
667
- return decodeBase64(decrypted);
668
- } else {
669
- return key;
670
- }
671
- },
672
- storeCrossSigningKeyCache: async function (
673
- type: keyof SecretStorePrivateKeys,
674
- key?: Uint8Array,
675
- ): Promise<void> {
676
- if (!(key instanceof Uint8Array)) {
677
- throw new Error(`storeCrossSigningKeyCache expects Uint8Array, got ${key}`);
678
- }
679
- const pickleKey = Buffer.from(olmDevice.pickleKey);
680
- const encryptedKey = await encryptAESSecretStorageItem(encodeBase64(key), pickleKey, type);
681
- return store.doTxn("readwrite", [IndexedDBCryptoStore.STORE_ACCOUNT], (txn) => {
682
- store.storeSecretStorePrivateKey(txn, type, encryptedKey);
683
- });
684
- },
685
- };
686
- }
687
-
688
- export type KeysDuringVerification = [[string, PkSigning], [string, PkSigning], [string, PkSigning], void];
689
-
690
- /**
691
- * Request cross-signing keys from another device during verification.
692
- *
693
- * @param baseApis - base Matrix API interface
694
- * @param userId - The user ID being verified
695
- * @param deviceId - The device ID being verified
696
- */
697
- export async function requestKeysDuringVerification(
698
- baseApis: MatrixClient,
699
- userId: string,
700
- deviceId: string,
701
- ): Promise<KeysDuringVerification | void> {
702
- // If this is a self-verification, ask the other party for keys
703
- if (baseApis.getUserId() !== userId) {
704
- return;
705
- }
706
- logger.log("Cross-signing: Self-verification done; requesting keys");
707
- // This happens asynchronously, and we're not concerned about waiting for
708
- // it. We return here in order to test.
709
- return new Promise<KeysDuringVerification | void>((resolve, reject) => {
710
- const client = baseApis;
711
- const original = client.crypto!.crossSigningInfo;
712
-
713
- // We already have all of the infrastructure we need to validate and
714
- // cache cross-signing keys, so instead of replicating that, here we set
715
- // up callbacks that request them from the other device and call
716
- // CrossSigningInfo.getCrossSigningKey() to validate/cache
717
- const crossSigning = new CrossSigningInfo(
718
- original.userId,
719
- {
720
- getCrossSigningKey: async (type): Promise<Uint8Array> => {
721
- logger.debug("Cross-signing: requesting secret", type, deviceId);
722
- const { promise } = client.requestSecret(`m.cross_signing.${type}`, [deviceId]);
723
- const result = await promise;
724
- const decoded = decodeBase64(result);
725
- return Uint8Array.from(decoded);
726
- },
727
- },
728
- original.getCacheCallbacks(),
729
- );
730
- crossSigning.keys = original.keys;
731
-
732
- // XXX: get all keys out if we get one key out
733
- // https://github.com/vector-im/element-web/issues/12604
734
- // then change here to reject on the timeout
735
- // Requests can be ignored, so don't wait around forever
736
- const timeout = new Promise<void>((resolve) => {
737
- setTimeout(resolve, KEY_REQUEST_TIMEOUT_MS, new Error("Timeout"));
738
- });
739
-
740
- // also request and cache the key backup key
741
- const backupKeyPromise = (async (): Promise<void> => {
742
- const cachedKey = await client.crypto!.getSessionBackupPrivateKey();
743
- if (!cachedKey) {
744
- logger.info("No cached backup key found. Requesting...");
745
- const secretReq = client.requestSecret("m.megolm_backup.v1", [deviceId]);
746
- const base64Key = await secretReq.promise;
747
- logger.info("Got key backup key, decoding...");
748
- const decodedKey = decodeBase64(base64Key);
749
- logger.info("Decoded backup key, storing...");
750
- await client.crypto!.storeSessionBackupPrivateKey(Uint8Array.from(decodedKey));
751
- logger.info("Backup key stored. Starting backup restore...");
752
- const backupInfo = await client.getKeyBackupVersion();
753
- // no need to await for this - just let it go in the bg
754
- client.restoreKeyBackupWithCache(undefined, undefined, backupInfo!).then(() => {
755
- logger.info("Backup restored.");
756
- });
757
- }
758
- })();
759
-
760
- // We call getCrossSigningKey() for its side-effects
761
- Promise.race<KeysDuringVerification | void>([
762
- Promise.all([
763
- crossSigning.getCrossSigningKey("master"),
764
- crossSigning.getCrossSigningKey("self_signing"),
765
- crossSigning.getCrossSigningKey("user_signing"),
766
- backupKeyPromise,
767
- ]) as Promise<KeysDuringVerification>,
768
- timeout,
769
- ]).then(resolve, reject);
770
- }).catch((e) => {
771
- logger.warn("Cross-signing: failure while requesting keys:", e);
772
- });
773
- }