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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (636) hide show
  1. package/git-revision.txt +1 -1
  2. package/lib/@types/event.d.ts +0 -19
  3. package/lib/@types/event.d.ts.map +1 -1
  4. package/lib/@types/event.js.map +1 -1
  5. package/lib/@types/global.d.js +0 -2
  6. package/lib/@types/global.d.js.map +1 -1
  7. package/lib/browser-index.d.ts.map +1 -1
  8. package/lib/browser-index.js +0 -11
  9. package/lib/browser-index.js.map +1 -1
  10. package/lib/client.d.ts +2 -1224
  11. package/lib/client.d.ts.map +1 -1
  12. package/lib/client.js +345 -2826
  13. package/lib/client.js.map +1 -1
  14. package/lib/embedded.d.ts +0 -22
  15. package/lib/embedded.d.ts.map +1 -1
  16. package/lib/embedded.js +24 -167
  17. package/lib/embedded.js.map +1 -1
  18. package/lib/event-mapper.d.ts.map +1 -1
  19. package/lib/event-mapper.js +0 -4
  20. package/lib/event-mapper.js.map +1 -1
  21. package/lib/matrix.d.ts +0 -25
  22. package/lib/matrix.d.ts.map +1 -1
  23. package/lib/matrix.js +1 -30
  24. package/lib/matrix.js.map +1 -1
  25. package/lib/models/MSC3089Branch.d.ts.map +1 -1
  26. package/lib/models/MSC3089Branch.js +0 -3
  27. package/lib/models/MSC3089Branch.js.map +1 -1
  28. package/lib/models/event.d.ts +0 -94
  29. package/lib/models/event.d.ts.map +1 -1
  30. package/lib/models/event.js +0 -274
  31. package/lib/models/event.js.map +1 -1
  32. package/lib/models/poll.d.ts.map +1 -1
  33. package/lib/models/poll.js +1 -5
  34. package/lib/models/poll.js.map +1 -1
  35. package/lib/models/relations-container.d.ts.map +1 -1
  36. package/lib/models/relations-container.js +1 -7
  37. package/lib/models/relations-container.js.map +1 -1
  38. package/lib/models/relations.d.ts +0 -1
  39. package/lib/models/relations.d.ts.map +1 -1
  40. package/lib/models/relations.js +0 -8
  41. package/lib/models/relations.js.map +1 -1
  42. package/lib/models/room-state.d.ts.map +1 -1
  43. package/lib/models/room-state.js +10 -26
  44. package/lib/models/room-state.js.map +1 -1
  45. package/lib/models/room.d.ts +0 -18
  46. package/lib/models/room.d.ts.map +1 -1
  47. package/lib/models/room.js +94 -148
  48. package/lib/models/room.js.map +1 -1
  49. package/lib/models/thread.d.ts.map +1 -1
  50. package/lib/models/thread.js +0 -1
  51. package/lib/models/thread.js.map +1 -1
  52. package/lib/sliding-sync-sdk.d.ts +2 -3
  53. package/lib/sliding-sync-sdk.d.ts.map +1 -1
  54. package/lib/sliding-sync-sdk.js +41 -90
  55. package/lib/sliding-sync-sdk.js.map +1 -1
  56. package/lib/sync.d.ts +0 -12
  57. package/lib/sync.d.ts.map +1 -1
  58. package/lib/sync.js +1 -73
  59. package/lib/sync.js.map +1 -1
  60. package/lib/testing.d.ts +0 -48
  61. package/lib/testing.d.ts.map +1 -1
  62. package/lib/testing.js +0 -105
  63. package/lib/testing.js.map +1 -1
  64. package/package.json +1 -3
  65. package/src/@types/event.ts +2 -36
  66. package/src/@types/global.d.ts +0 -3
  67. package/src/browser-index.ts +0 -11
  68. package/src/client.ts +52 -2876
  69. package/src/embedded.ts +3 -132
  70. package/src/event-mapper.ts +0 -4
  71. package/src/matrix.ts +0 -41
  72. package/src/models/MSC3089Branch.ts +0 -3
  73. package/src/models/event.ts +0 -289
  74. package/src/models/poll.ts +0 -6
  75. package/src/models/relations-container.ts +1 -8
  76. package/src/models/relations.ts +0 -8
  77. package/src/models/room-state.ts +2 -8
  78. package/src/models/room.ts +0 -62
  79. package/src/models/thread.ts +0 -1
  80. package/src/sliding-sync-sdk.ts +2 -72
  81. package/src/sync.ts +1 -98
  82. package/src/testing.ts +0 -108
  83. package/lib/@types/crypto.d.ts +0 -47
  84. package/lib/@types/crypto.d.ts.map +0 -1
  85. package/lib/@types/crypto.js +0 -1
  86. package/lib/@types/crypto.js.map +0 -1
  87. package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
  88. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
  89. package/lib/common-crypto/CryptoBackend.d.ts +0 -240
  90. package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
  91. package/lib/common-crypto/CryptoBackend.js +0 -73
  92. package/lib/common-crypto/CryptoBackend.js.map +0 -1
  93. package/lib/common-crypto/key-passphrase.d.ts +0 -14
  94. package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
  95. package/lib/common-crypto/key-passphrase.js +0 -33
  96. package/lib/common-crypto/key-passphrase.js.map +0 -1
  97. package/lib/crypto/CrossSigning.d.ts +0 -184
  98. package/lib/crypto/CrossSigning.d.ts.map +0 -1
  99. package/lib/crypto/CrossSigning.js +0 -718
  100. package/lib/crypto/CrossSigning.js.map +0 -1
  101. package/lib/crypto/DeviceList.d.ts +0 -216
  102. package/lib/crypto/DeviceList.d.ts.map +0 -1
  103. package/lib/crypto/DeviceList.js +0 -892
  104. package/lib/crypto/DeviceList.js.map +0 -1
  105. package/lib/crypto/EncryptionSetup.d.ts +0 -152
  106. package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
  107. package/lib/crypto/EncryptionSetup.js +0 -356
  108. package/lib/crypto/EncryptionSetup.js.map +0 -1
  109. package/lib/crypto/OlmDevice.d.ts +0 -457
  110. package/lib/crypto/OlmDevice.d.ts.map +0 -1
  111. package/lib/crypto/OlmDevice.js +0 -1241
  112. package/lib/crypto/OlmDevice.js.map +0 -1
  113. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
  114. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
  115. package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
  116. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
  117. package/lib/crypto/RoomList.d.ts +0 -26
  118. package/lib/crypto/RoomList.d.ts.map +0 -1
  119. package/lib/crypto/RoomList.js +0 -71
  120. package/lib/crypto/RoomList.js.map +0 -1
  121. package/lib/crypto/SecretSharing.d.ts +0 -24
  122. package/lib/crypto/SecretSharing.d.ts.map +0 -1
  123. package/lib/crypto/SecretSharing.js +0 -194
  124. package/lib/crypto/SecretSharing.js.map +0 -1
  125. package/lib/crypto/SecretStorage.d.ts +0 -55
  126. package/lib/crypto/SecretStorage.d.ts.map +0 -1
  127. package/lib/crypto/SecretStorage.js +0 -118
  128. package/lib/crypto/SecretStorage.js.map +0 -1
  129. package/lib/crypto/aes.d.ts +0 -6
  130. package/lib/crypto/aes.d.ts.map +0 -1
  131. package/lib/crypto/aes.js +0 -24
  132. package/lib/crypto/aes.js.map +0 -1
  133. package/lib/crypto/algorithms/base.d.ts +0 -156
  134. package/lib/crypto/algorithms/base.d.ts.map +0 -1
  135. package/lib/crypto/algorithms/base.js +0 -187
  136. package/lib/crypto/algorithms/base.js.map +0 -1
  137. package/lib/crypto/algorithms/index.d.ts +0 -4
  138. package/lib/crypto/algorithms/index.d.ts.map +0 -1
  139. package/lib/crypto/algorithms/index.js +0 -20
  140. package/lib/crypto/algorithms/index.js.map +0 -1
  141. package/lib/crypto/algorithms/megolm.d.ts +0 -385
  142. package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
  143. package/lib/crypto/algorithms/megolm.js +0 -1822
  144. package/lib/crypto/algorithms/megolm.js.map +0 -1
  145. package/lib/crypto/algorithms/olm.d.ts +0 -5
  146. package/lib/crypto/algorithms/olm.d.ts.map +0 -1
  147. package/lib/crypto/algorithms/olm.js +0 -299
  148. package/lib/crypto/algorithms/olm.js.map +0 -1
  149. package/lib/crypto/api.d.ts +0 -32
  150. package/lib/crypto/api.d.ts.map +0 -1
  151. package/lib/crypto/api.js +0 -22
  152. package/lib/crypto/api.js.map +0 -1
  153. package/lib/crypto/backup.d.ts +0 -227
  154. package/lib/crypto/backup.d.ts.map +0 -1
  155. package/lib/crypto/backup.js +0 -824
  156. package/lib/crypto/backup.js.map +0 -1
  157. package/lib/crypto/crypto.d.ts +0 -3
  158. package/lib/crypto/crypto.d.ts.map +0 -1
  159. package/lib/crypto/crypto.js +0 -19
  160. package/lib/crypto/crypto.js.map +0 -1
  161. package/lib/crypto/dehydration.d.ts +0 -34
  162. package/lib/crypto/dehydration.d.ts.map +0 -1
  163. package/lib/crypto/dehydration.js +0 -252
  164. package/lib/crypto/dehydration.js.map +0 -1
  165. package/lib/crypto/device-converter.d.ts +0 -9
  166. package/lib/crypto/device-converter.d.ts.map +0 -1
  167. package/lib/crypto/device-converter.js +0 -42
  168. package/lib/crypto/device-converter.js.map +0 -1
  169. package/lib/crypto/deviceinfo.d.ts +0 -99
  170. package/lib/crypto/deviceinfo.d.ts.map +0 -1
  171. package/lib/crypto/deviceinfo.js +0 -148
  172. package/lib/crypto/deviceinfo.js.map +0 -1
  173. package/lib/crypto/index.d.ts +0 -1209
  174. package/lib/crypto/index.d.ts.map +0 -1
  175. package/lib/crypto/index.js +0 -4097
  176. package/lib/crypto/index.js.map +0 -1
  177. package/lib/crypto/key_passphrase.d.ts +0 -14
  178. package/lib/crypto/key_passphrase.d.ts.map +0 -1
  179. package/lib/crypto/key_passphrase.js +0 -44
  180. package/lib/crypto/key_passphrase.js.map +0 -1
  181. package/lib/crypto/keybackup.d.ts +0 -18
  182. package/lib/crypto/keybackup.d.ts.map +0 -1
  183. package/lib/crypto/keybackup.js +0 -1
  184. package/lib/crypto/keybackup.js.map +0 -1
  185. package/lib/crypto/olmlib.d.ts +0 -129
  186. package/lib/crypto/olmlib.d.ts.map +0 -1
  187. package/lib/crypto/olmlib.js +0 -492
  188. package/lib/crypto/olmlib.js.map +0 -1
  189. package/lib/crypto/recoverykey.d.ts +0 -2
  190. package/lib/crypto/recoverykey.d.ts.map +0 -1
  191. package/lib/crypto/recoverykey.js +0 -19
  192. package/lib/crypto/recoverykey.js.map +0 -1
  193. package/lib/crypto/store/base.d.ts +0 -252
  194. package/lib/crypto/store/base.d.ts.map +0 -1
  195. package/lib/crypto/store/base.js +0 -64
  196. package/lib/crypto/store/base.js.map +0 -1
  197. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
  198. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
  199. package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
  200. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
  201. package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
  202. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
  203. package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
  204. package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
  205. package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
  206. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
  207. package/lib/crypto/store/localStorage-crypto-store.js +0 -531
  208. package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
  209. package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
  210. package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
  211. package/lib/crypto/store/memory-crypto-store.js +0 -622
  212. package/lib/crypto/store/memory-crypto-store.js.map +0 -1
  213. package/lib/crypto/verification/Base.d.ts +0 -105
  214. package/lib/crypto/verification/Base.d.ts.map +0 -1
  215. package/lib/crypto/verification/Base.js +0 -372
  216. package/lib/crypto/verification/Base.js.map +0 -1
  217. package/lib/crypto/verification/Error.d.ts +0 -35
  218. package/lib/crypto/verification/Error.d.ts.map +0 -1
  219. package/lib/crypto/verification/Error.js +0 -86
  220. package/lib/crypto/verification/Error.js.map +0 -1
  221. package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
  222. package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
  223. package/lib/crypto/verification/IllegalMethod.js +0 -43
  224. package/lib/crypto/verification/IllegalMethod.js.map +0 -1
  225. package/lib/crypto/verification/QRCode.d.ts +0 -51
  226. package/lib/crypto/verification/QRCode.d.ts.map +0 -1
  227. package/lib/crypto/verification/QRCode.js +0 -277
  228. package/lib/crypto/verification/QRCode.js.map +0 -1
  229. package/lib/crypto/verification/SAS.d.ts +0 -27
  230. package/lib/crypto/verification/SAS.d.ts.map +0 -1
  231. package/lib/crypto/verification/SAS.js +0 -485
  232. package/lib/crypto/verification/SAS.js.map +0 -1
  233. package/lib/crypto/verification/SASDecimal.d.ts +0 -8
  234. package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
  235. package/lib/crypto/verification/SASDecimal.js +0 -34
  236. package/lib/crypto/verification/SASDecimal.js.map +0 -1
  237. package/lib/crypto/verification/request/Channel.d.ts +0 -18
  238. package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
  239. package/lib/crypto/verification/request/Channel.js +0 -1
  240. package/lib/crypto/verification/request/Channel.js.map +0 -1
  241. package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
  242. package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
  243. package/lib/crypto/verification/request/InRoomChannel.js +0 -351
  244. package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
  245. package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
  246. package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
  247. package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
  248. package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
  249. package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
  250. package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
  251. package/lib/crypto/verification/request/VerificationRequest.js +0 -937
  252. package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
  253. package/lib/crypto-api/CryptoEvent.d.ts +0 -69
  254. package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
  255. package/lib/crypto-api/CryptoEvent.js +0 -33
  256. package/lib/crypto-api/CryptoEvent.js.map +0 -1
  257. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
  258. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
  259. package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
  260. package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
  261. package/lib/crypto-api/index.d.ts +0 -978
  262. package/lib/crypto-api/index.d.ts.map +0 -1
  263. package/lib/crypto-api/index.js +0 -304
  264. package/lib/crypto-api/index.js.map +0 -1
  265. package/lib/crypto-api/key-passphrase.d.ts +0 -11
  266. package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
  267. package/lib/crypto-api/key-passphrase.js +0 -51
  268. package/lib/crypto-api/key-passphrase.js.map +0 -1
  269. package/lib/crypto-api/keybackup.d.ts +0 -88
  270. package/lib/crypto-api/keybackup.d.ts.map +0 -1
  271. package/lib/crypto-api/keybackup.js +0 -1
  272. package/lib/crypto-api/keybackup.js.map +0 -1
  273. package/lib/crypto-api/recovery-key.d.ts +0 -11
  274. package/lib/crypto-api/recovery-key.d.ts.map +0 -1
  275. package/lib/crypto-api/recovery-key.js +0 -65
  276. package/lib/crypto-api/recovery-key.js.map +0 -1
  277. package/lib/crypto-api/verification.d.ts +0 -344
  278. package/lib/crypto-api/verification.d.ts.map +0 -1
  279. package/lib/crypto-api/verification.js +0 -91
  280. package/lib/crypto-api/verification.js.map +0 -1
  281. package/lib/matrixrtc/CallMembership.d.ts +0 -66
  282. package/lib/matrixrtc/CallMembership.d.ts.map +0 -1
  283. package/lib/matrixrtc/CallMembership.js +0 -197
  284. package/lib/matrixrtc/CallMembership.js.map +0 -1
  285. package/lib/matrixrtc/LivekitFocus.d.ts +0 -16
  286. package/lib/matrixrtc/LivekitFocus.d.ts.map +0 -1
  287. package/lib/matrixrtc/LivekitFocus.js +0 -20
  288. package/lib/matrixrtc/LivekitFocus.js.map +0 -1
  289. package/lib/matrixrtc/MatrixRTCSession.d.ts +0 -295
  290. package/lib/matrixrtc/MatrixRTCSession.d.ts.map +0 -1
  291. package/lib/matrixrtc/MatrixRTCSession.js +0 -1043
  292. package/lib/matrixrtc/MatrixRTCSession.js.map +0 -1
  293. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +0 -40
  294. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +0 -1
  295. package/lib/matrixrtc/MatrixRTCSessionManager.js +0 -146
  296. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +0 -1
  297. package/lib/matrixrtc/focus.d.ts +0 -10
  298. package/lib/matrixrtc/focus.d.ts.map +0 -1
  299. package/lib/matrixrtc/focus.js +0 -1
  300. package/lib/matrixrtc/focus.js.map +0 -1
  301. package/lib/matrixrtc/index.d.ts +0 -7
  302. package/lib/matrixrtc/index.d.ts.map +0 -1
  303. package/lib/matrixrtc/index.js +0 -21
  304. package/lib/matrixrtc/index.js.map +0 -1
  305. package/lib/matrixrtc/types.d.ts +0 -19
  306. package/lib/matrixrtc/types.d.ts.map +0 -1
  307. package/lib/matrixrtc/types.js +0 -1
  308. package/lib/matrixrtc/types.js.map +0 -1
  309. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
  310. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
  311. package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
  312. package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
  313. package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
  314. package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
  315. package/lib/rendezvous/RendezvousChannel.js +0 -1
  316. package/lib/rendezvous/RendezvousChannel.js.map +0 -1
  317. package/lib/rendezvous/RendezvousCode.d.ts +0 -9
  318. package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
  319. package/lib/rendezvous/RendezvousCode.js +0 -1
  320. package/lib/rendezvous/RendezvousCode.js.map +0 -1
  321. package/lib/rendezvous/RendezvousError.d.ts +0 -6
  322. package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
  323. package/lib/rendezvous/RendezvousError.js +0 -23
  324. package/lib/rendezvous/RendezvousError.js.map +0 -1
  325. package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
  326. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
  327. package/lib/rendezvous/RendezvousFailureReason.js +0 -38
  328. package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
  329. package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
  330. package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
  331. package/lib/rendezvous/RendezvousIntent.js +0 -22
  332. package/lib/rendezvous/RendezvousIntent.js.map +0 -1
  333. package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
  334. package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
  335. package/lib/rendezvous/RendezvousTransport.js +0 -1
  336. package/lib/rendezvous/RendezvousTransport.js.map +0 -1
  337. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
  338. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
  339. package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
  340. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
  341. package/lib/rendezvous/channels/index.d.ts +0 -2
  342. package/lib/rendezvous/channels/index.d.ts.map +0 -1
  343. package/lib/rendezvous/channels/index.js +0 -18
  344. package/lib/rendezvous/channels/index.js.map +0 -1
  345. package/lib/rendezvous/index.d.ts +0 -10
  346. package/lib/rendezvous/index.d.ts.map +0 -1
  347. package/lib/rendezvous/index.js +0 -23
  348. package/lib/rendezvous/index.js.map +0 -1
  349. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
  350. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
  351. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
  352. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
  353. package/lib/rendezvous/transports/index.d.ts +0 -2
  354. package/lib/rendezvous/transports/index.d.ts.map +0 -1
  355. package/lib/rendezvous/transports/index.js +0 -18
  356. package/lib/rendezvous/transports/index.js.map +0 -1
  357. package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
  358. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
  359. package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
  360. package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
  361. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
  362. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
  363. package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
  364. package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
  365. package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
  366. package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
  367. package/lib/rust-crypto/KeyClaimManager.js +0 -82
  368. package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
  369. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
  370. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
  371. package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
  372. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
  373. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
  374. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
  375. package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
  376. package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
  377. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
  378. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
  379. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
  380. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
  381. package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
  382. package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
  383. package/lib/rust-crypto/RoomEncryptor.js +0 -299
  384. package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
  385. package/lib/rust-crypto/backup.d.ts +0 -254
  386. package/lib/rust-crypto/backup.d.ts.map +0 -1
  387. package/lib/rust-crypto/backup.js +0 -837
  388. package/lib/rust-crypto/backup.js.map +0 -1
  389. package/lib/rust-crypto/constants.d.ts +0 -3
  390. package/lib/rust-crypto/constants.d.ts.map +0 -1
  391. package/lib/rust-crypto/constants.js +0 -19
  392. package/lib/rust-crypto/constants.js.map +0 -1
  393. package/lib/rust-crypto/device-converter.d.ts +0 -28
  394. package/lib/rust-crypto/device-converter.d.ts.map +0 -1
  395. package/lib/rust-crypto/device-converter.js +0 -123
  396. package/lib/rust-crypto/device-converter.js.map +0 -1
  397. package/lib/rust-crypto/index.d.ts +0 -61
  398. package/lib/rust-crypto/index.d.ts.map +0 -1
  399. package/lib/rust-crypto/index.js +0 -152
  400. package/lib/rust-crypto/index.js.map +0 -1
  401. package/lib/rust-crypto/libolm_migration.d.ts +0 -81
  402. package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
  403. package/lib/rust-crypto/libolm_migration.js +0 -459
  404. package/lib/rust-crypto/libolm_migration.js.map +0 -1
  405. package/lib/rust-crypto/rust-crypto.d.ts +0 -556
  406. package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
  407. package/lib/rust-crypto/rust-crypto.js +0 -2016
  408. package/lib/rust-crypto/rust-crypto.js.map +0 -1
  409. package/lib/rust-crypto/secret-storage.d.ts +0 -22
  410. package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
  411. package/lib/rust-crypto/secret-storage.js +0 -63
  412. package/lib/rust-crypto/secret-storage.js.map +0 -1
  413. package/lib/rust-crypto/verification.d.ts +0 -319
  414. package/lib/rust-crypto/verification.d.ts.map +0 -1
  415. package/lib/rust-crypto/verification.js +0 -816
  416. package/lib/rust-crypto/verification.js.map +0 -1
  417. package/lib/secret-storage.d.ts +0 -370
  418. package/lib/secret-storage.d.ts.map +0 -1
  419. package/lib/secret-storage.js +0 -466
  420. package/lib/secret-storage.js.map +0 -1
  421. package/lib/webrtc/audioContext.d.ts +0 -15
  422. package/lib/webrtc/audioContext.d.ts.map +0 -1
  423. package/lib/webrtc/audioContext.js +0 -46
  424. package/lib/webrtc/audioContext.js.map +0 -1
  425. package/lib/webrtc/call.d.ts +0 -560
  426. package/lib/webrtc/call.d.ts.map +0 -1
  427. package/lib/webrtc/call.js +0 -2541
  428. package/lib/webrtc/call.js.map +0 -1
  429. package/lib/webrtc/callEventHandler.d.ts +0 -37
  430. package/lib/webrtc/callEventHandler.d.ts.map +0 -1
  431. package/lib/webrtc/callEventHandler.js +0 -344
  432. package/lib/webrtc/callEventHandler.js.map +0 -1
  433. package/lib/webrtc/callEventTypes.d.ts +0 -73
  434. package/lib/webrtc/callEventTypes.d.ts.map +0 -1
  435. package/lib/webrtc/callEventTypes.js +0 -13
  436. package/lib/webrtc/callEventTypes.js.map +0 -1
  437. package/lib/webrtc/callFeed.d.ts +0 -128
  438. package/lib/webrtc/callFeed.d.ts.map +0 -1
  439. package/lib/webrtc/callFeed.js +0 -289
  440. package/lib/webrtc/callFeed.js.map +0 -1
  441. package/lib/webrtc/groupCall.d.ts +0 -323
  442. package/lib/webrtc/groupCall.d.ts.map +0 -1
  443. package/lib/webrtc/groupCall.js +0 -1337
  444. package/lib/webrtc/groupCall.js.map +0 -1
  445. package/lib/webrtc/groupCallEventHandler.d.ts +0 -31
  446. package/lib/webrtc/groupCallEventHandler.d.ts.map +0 -1
  447. package/lib/webrtc/groupCallEventHandler.js +0 -178
  448. package/lib/webrtc/groupCallEventHandler.js.map +0 -1
  449. package/lib/webrtc/mediaHandler.d.ts +0 -89
  450. package/lib/webrtc/mediaHandler.d.ts.map +0 -1
  451. package/lib/webrtc/mediaHandler.js +0 -437
  452. package/lib/webrtc/mediaHandler.js.map +0 -1
  453. package/lib/webrtc/stats/callFeedStatsReporter.d.ts +0 -8
  454. package/lib/webrtc/stats/callFeedStatsReporter.d.ts.map +0 -1
  455. package/lib/webrtc/stats/callFeedStatsReporter.js +0 -82
  456. package/lib/webrtc/stats/callFeedStatsReporter.js.map +0 -1
  457. package/lib/webrtc/stats/callStatsReportGatherer.d.ts +0 -25
  458. package/lib/webrtc/stats/callStatsReportGatherer.d.ts.map +0 -1
  459. package/lib/webrtc/stats/callStatsReportGatherer.js +0 -199
  460. package/lib/webrtc/stats/callStatsReportGatherer.js.map +0 -1
  461. package/lib/webrtc/stats/callStatsReportSummary.d.ts +0 -17
  462. package/lib/webrtc/stats/callStatsReportSummary.d.ts.map +0 -1
  463. package/lib/webrtc/stats/callStatsReportSummary.js +0 -1
  464. package/lib/webrtc/stats/callStatsReportSummary.js.map +0 -1
  465. package/lib/webrtc/stats/connectionStats.d.ts +0 -28
  466. package/lib/webrtc/stats/connectionStats.d.ts.map +0 -1
  467. package/lib/webrtc/stats/connectionStats.js +0 -26
  468. package/lib/webrtc/stats/connectionStats.js.map +0 -1
  469. package/lib/webrtc/stats/connectionStatsBuilder.d.ts +0 -5
  470. package/lib/webrtc/stats/connectionStatsBuilder.d.ts.map +0 -1
  471. package/lib/webrtc/stats/connectionStatsBuilder.js +0 -27
  472. package/lib/webrtc/stats/connectionStatsBuilder.js.map +0 -1
  473. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts +0 -7
  474. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts.map +0 -1
  475. package/lib/webrtc/stats/connectionStatsReportBuilder.js +0 -121
  476. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +0 -1
  477. package/lib/webrtc/stats/groupCallStats.d.ts +0 -22
  478. package/lib/webrtc/stats/groupCallStats.d.ts.map +0 -1
  479. package/lib/webrtc/stats/groupCallStats.js +0 -78
  480. package/lib/webrtc/stats/groupCallStats.js.map +0 -1
  481. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts +0 -10
  482. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts.map +0 -1
  483. package/lib/webrtc/stats/media/mediaSsrcHandler.js +0 -57
  484. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +0 -1
  485. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts +0 -12
  486. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts.map +0 -1
  487. package/lib/webrtc/stats/media/mediaTrackHandler.js +0 -62
  488. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +0 -1
  489. package/lib/webrtc/stats/media/mediaTrackStats.d.ts +0 -86
  490. package/lib/webrtc/stats/media/mediaTrackStats.d.ts.map +0 -1
  491. package/lib/webrtc/stats/media/mediaTrackStats.js +0 -142
  492. package/lib/webrtc/stats/media/mediaTrackStats.js.map +0 -1
  493. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts +0 -22
  494. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts.map +0 -1
  495. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +0 -76
  496. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +0 -1
  497. package/lib/webrtc/stats/statsReport.d.ts +0 -99
  498. package/lib/webrtc/stats/statsReport.d.ts.map +0 -1
  499. package/lib/webrtc/stats/statsReport.js +0 -32
  500. package/lib/webrtc/stats/statsReport.js.map +0 -1
  501. package/lib/webrtc/stats/statsReportEmitter.d.ts +0 -15
  502. package/lib/webrtc/stats/statsReportEmitter.d.ts.map +0 -1
  503. package/lib/webrtc/stats/statsReportEmitter.js +0 -33
  504. package/lib/webrtc/stats/statsReportEmitter.js.map +0 -1
  505. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts +0 -16
  506. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts.map +0 -1
  507. package/lib/webrtc/stats/summaryStatsReportGatherer.js +0 -116
  508. package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +0 -1
  509. package/lib/webrtc/stats/trackStatsBuilder.d.ts +0 -19
  510. package/lib/webrtc/stats/trackStatsBuilder.d.ts.map +0 -1
  511. package/lib/webrtc/stats/trackStatsBuilder.js +0 -168
  512. package/lib/webrtc/stats/trackStatsBuilder.js.map +0 -1
  513. package/lib/webrtc/stats/transportStats.d.ts +0 -11
  514. package/lib/webrtc/stats/transportStats.d.ts.map +0 -1
  515. package/lib/webrtc/stats/transportStats.js +0 -1
  516. package/lib/webrtc/stats/transportStats.js.map +0 -1
  517. package/lib/webrtc/stats/transportStatsBuilder.d.ts +0 -5
  518. package/lib/webrtc/stats/transportStatsBuilder.d.ts.map +0 -1
  519. package/lib/webrtc/stats/transportStatsBuilder.js +0 -34
  520. package/lib/webrtc/stats/transportStatsBuilder.js.map +0 -1
  521. package/lib/webrtc/stats/valueFormatter.d.ts +0 -4
  522. package/lib/webrtc/stats/valueFormatter.d.ts.map +0 -1
  523. package/lib/webrtc/stats/valueFormatter.js +0 -25
  524. package/lib/webrtc/stats/valueFormatter.js.map +0 -1
  525. package/src/@types/crypto.ts +0 -73
  526. package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
  527. package/src/common-crypto/CryptoBackend.ts +0 -302
  528. package/src/common-crypto/README.md +0 -4
  529. package/src/common-crypto/key-passphrase.ts +0 -43
  530. package/src/crypto/CrossSigning.ts +0 -773
  531. package/src/crypto/DeviceList.ts +0 -989
  532. package/src/crypto/EncryptionSetup.ts +0 -351
  533. package/src/crypto/OlmDevice.ts +0 -1500
  534. package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
  535. package/src/crypto/RoomList.ts +0 -70
  536. package/src/crypto/SecretSharing.ts +0 -240
  537. package/src/crypto/SecretStorage.ts +0 -136
  538. package/src/crypto/aes.ts +0 -23
  539. package/src/crypto/algorithms/base.ts +0 -236
  540. package/src/crypto/algorithms/index.ts +0 -20
  541. package/src/crypto/algorithms/megolm.ts +0 -2216
  542. package/src/crypto/algorithms/olm.ts +0 -381
  543. package/src/crypto/api.ts +0 -70
  544. package/src/crypto/backup.ts +0 -922
  545. package/src/crypto/crypto.ts +0 -18
  546. package/src/crypto/dehydration.ts +0 -272
  547. package/src/crypto/device-converter.ts +0 -45
  548. package/src/crypto/deviceinfo.ts +0 -158
  549. package/src/crypto/index.ts +0 -4414
  550. package/src/crypto/key_passphrase.ts +0 -42
  551. package/src/crypto/keybackup.ts +0 -47
  552. package/src/crypto/olmlib.ts +0 -539
  553. package/src/crypto/recoverykey.ts +0 -18
  554. package/src/crypto/store/base.ts +0 -348
  555. package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
  556. package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
  557. package/src/crypto/store/localStorage-crypto-store.ts +0 -579
  558. package/src/crypto/store/memory-crypto-store.ts +0 -680
  559. package/src/crypto/verification/Base.ts +0 -409
  560. package/src/crypto/verification/Error.ts +0 -76
  561. package/src/crypto/verification/IllegalMethod.ts +0 -50
  562. package/src/crypto/verification/QRCode.ts +0 -310
  563. package/src/crypto/verification/SAS.ts +0 -494
  564. package/src/crypto/verification/SASDecimal.ts +0 -37
  565. package/src/crypto/verification/request/Channel.ts +0 -34
  566. package/src/crypto/verification/request/InRoomChannel.ts +0 -371
  567. package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
  568. package/src/crypto/verification/request/VerificationRequest.ts +0 -976
  569. package/src/crypto-api/CryptoEvent.ts +0 -93
  570. package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
  571. package/src/crypto-api/index.ts +0 -1175
  572. package/src/crypto-api/key-passphrase.ts +0 -58
  573. package/src/crypto-api/keybackup.ts +0 -115
  574. package/src/crypto-api/recovery-key.ts +0 -69
  575. package/src/crypto-api/verification.ts +0 -408
  576. package/src/matrixrtc/CallMembership.ts +0 -247
  577. package/src/matrixrtc/LivekitFocus.ts +0 -39
  578. package/src/matrixrtc/MatrixRTCSession.ts +0 -1319
  579. package/src/matrixrtc/MatrixRTCSessionManager.ts +0 -166
  580. package/src/matrixrtc/focus.ts +0 -25
  581. package/src/matrixrtc/index.ts +0 -22
  582. package/src/matrixrtc/types.ts +0 -36
  583. package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
  584. package/src/rendezvous/RendezvousChannel.ts +0 -48
  585. package/src/rendezvous/RendezvousCode.ts +0 -25
  586. package/src/rendezvous/RendezvousError.ts +0 -26
  587. package/src/rendezvous/RendezvousFailureReason.ts +0 -49
  588. package/src/rendezvous/RendezvousIntent.ts +0 -20
  589. package/src/rendezvous/RendezvousTransport.ts +0 -58
  590. package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
  591. package/src/rendezvous/channels/index.ts +0 -17
  592. package/src/rendezvous/index.ts +0 -25
  593. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
  594. package/src/rendezvous/transports/index.ts +0 -17
  595. package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
  596. package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
  597. package/src/rust-crypto/KeyClaimManager.ts +0 -86
  598. package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
  599. package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
  600. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
  601. package/src/rust-crypto/RoomEncryptor.ts +0 -352
  602. package/src/rust-crypto/backup.ts +0 -881
  603. package/src/rust-crypto/constants.ts +0 -18
  604. package/src/rust-crypto/device-converter.ts +0 -128
  605. package/src/rust-crypto/index.ts +0 -237
  606. package/src/rust-crypto/libolm_migration.ts +0 -530
  607. package/src/rust-crypto/rust-crypto.ts +0 -2205
  608. package/src/rust-crypto/secret-storage.ts +0 -60
  609. package/src/rust-crypto/verification.ts +0 -830
  610. package/src/secret-storage.ts +0 -693
  611. package/src/webrtc/audioContext.ts +0 -44
  612. package/src/webrtc/call.ts +0 -3074
  613. package/src/webrtc/callEventHandler.ts +0 -425
  614. package/src/webrtc/callEventTypes.ts +0 -93
  615. package/src/webrtc/callFeed.ts +0 -364
  616. package/src/webrtc/groupCall.ts +0 -1735
  617. package/src/webrtc/groupCallEventHandler.ts +0 -234
  618. package/src/webrtc/mediaHandler.ts +0 -484
  619. package/src/webrtc/stats/callFeedStatsReporter.ts +0 -94
  620. package/src/webrtc/stats/callStatsReportGatherer.ts +0 -219
  621. package/src/webrtc/stats/callStatsReportSummary.ts +0 -30
  622. package/src/webrtc/stats/connectionStats.ts +0 -47
  623. package/src/webrtc/stats/connectionStatsBuilder.ts +0 -28
  624. package/src/webrtc/stats/connectionStatsReportBuilder.ts +0 -140
  625. package/src/webrtc/stats/groupCallStats.ts +0 -93
  626. package/src/webrtc/stats/media/mediaSsrcHandler.ts +0 -57
  627. package/src/webrtc/stats/media/mediaTrackHandler.ts +0 -76
  628. package/src/webrtc/stats/media/mediaTrackStats.ts +0 -176
  629. package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +0 -90
  630. package/src/webrtc/stats/statsReport.ts +0 -133
  631. package/src/webrtc/stats/statsReportEmitter.ts +0 -49
  632. package/src/webrtc/stats/summaryStatsReportGatherer.ts +0 -148
  633. package/src/webrtc/stats/trackStatsBuilder.ts +0 -207
  634. package/src/webrtc/stats/transportStats.ts +0 -26
  635. package/src/webrtc/stats/transportStatsBuilder.ts +0 -48
  636. package/src/webrtc/stats/valueFormatter.ts +0 -27
@@ -1 +0,0 @@
1
- {"version":3,"file":"CrossSigning.js","names":["pkSign","pkVerify","logger","IndexedDBCryptoStore","DeviceVerificationStatus","UserVerificationStatus","UserTrustLevel","decodeBase64","encodeBase64","encryptAESSecretStorageItem","decryptAESSecretStorageItem","KEY_REQUEST_TIMEOUT_MS","publicKeyFromKeyInfo","keyInfo","Object","values","keys","CrossSigningInfo","constructor","userId","callbacks","arguments","length","undefined","cacheCallbacks","_defineProperty","fromStorage","obj","res","prop","hasOwnProperty","toStorage","firstUse","crossSigningVerifiedBefore","getCrossSigningKey","type","expectedPubkey","_this","_asyncToGenerator","shouldCache","indexOf","Error","getId","validateKey","key","signing","globalThis","Olm","PkSigning","gotPubkey","init_with_seed","free","privkey","getCrossSigningKeyCache","cacheresult","result","storeCrossSigningKeyCache","isStoredInSecretStorage","secretStorage","stored","isStored","intersect","s","k","concat","storeInSecretStorage","privateKey","encodedKey","store","getFromSecretStorage","get","isStoredInKeyCache","_this2","types","t","_cacheCallbacks$getCr","call","getCrossSigningKeysFromCache","_this3","Map","_cacheCallbacks$getCr2","privKey","set","resetKeys","level","_this4","saveCrossSigningKeys","CrossSigningLevel","MASTER","master","USER_SIGNING","SELF_SIGNING","privateKeys","masterSigning","masterPub","generate_seed","user_id","usage","sskSigning","self_signing","sskPub","uskSigning","user_signing","uskPub","assign","clearKeys","setKeys","signingKeys","error","masterKey","e","updateCrossSigningVerifiedBefore","isCrossSigningVerified","signObject","data","_this5","pubkey","signUser","_this6","info","signDevice","device","_this7","algorithms","device_id","deviceId","checkUserTrust","userCrossSigning","userTrusted","userMaster","uskId","_unused","checkDeviceTrust","localTrust","trustCrossSignedDevices","userTrust","userSSK","DeviceTrustLevel","deviceObj","deviceToObject","fromUserTrustLevel","_unused2","getCacheCallbacks","signatures","crossSigningVerified","tofu","localVerified","signedByOwner","userTrustLevel","isTofu","isLocallyVerified","createCryptoStoreCacheCallbacks","olmDevice","_getCrossSigningKeyCache","_expectedPublicKey","Promise","resolve","doTxn","STORE_ACCOUNT","txn","getSecretStorePrivateKey","ciphertext","pickleKey","Buffer","from","decrypted","_x","_x2","apply","_storeCrossSigningKeyCache","Uint8Array","encryptedKey","storeSecretStorePrivateKey","_x3","_x4","requestKeysDuringVerification","_x5","_x6","_x7","_requestKeysDuringVerification","baseApis","getUserId","log","reject","client","original","crypto","crossSigningInfo","crossSigning","_getCrossSigningKey","debug","promise","requestSecret","decoded","_x8","timeout","setTimeout","backupKeyPromise","cachedKey","getSessionBackupPrivateKey","secretReq","base64Key","decodedKey","storeSessionBackupPrivateKey","backupInfo","getKeyBackupVersion","restoreKeyBackupWithCache","then","race","all","catch","warn"],"sources":["../../src/crypto/CrossSigning.ts"],"sourcesContent":["/*\nCopyright 2019 - 2021 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n/**\n * Cross signing methods\n */\n\nimport type { PkSigning } from \"@matrix-org/olm\";\nimport { IObject, pkSign, pkVerify } from \"./olmlib.ts\";\nimport { logger } from \"../logger.ts\";\nimport { IndexedDBCryptoStore } from \"../crypto/store/indexeddb-crypto-store.ts\";\nimport { DeviceInfo } from \"./deviceinfo.ts\";\nimport { ISignedKey, MatrixClient } from \"../client.ts\";\nimport { OlmDevice } from \"./OlmDevice.ts\";\nimport { ICryptoCallbacks } from \"./index.ts\";\nimport { ISignatures } from \"../@types/signed.ts\";\nimport { CryptoStore, SecretStorePrivateKeys } from \"./store/base.ts\";\nimport { ServerSideSecretStorage, SecretStorageKeyDescription } from \"../secret-storage.ts\";\nimport {\n CrossSigningKeyInfo,\n DeviceVerificationStatus,\n UserVerificationStatus as UserTrustLevel,\n} from \"../crypto-api/index.ts\";\nimport { decodeBase64, encodeBase64 } from \"../base64.ts\";\nimport encryptAESSecretStorageItem from \"../utils/encryptAESSecretStorageItem.ts\";\nimport decryptAESSecretStorageItem from \"../utils/decryptAESSecretStorageItem.ts\";\n\n// backwards-compatibility re-exports\nexport { UserTrustLevel };\n\nconst KEY_REQUEST_TIMEOUT_MS = 1000 * 60;\n\nfunction publicKeyFromKeyInfo(keyInfo: CrossSigningKeyInfo): string {\n // `keys` is an object with { [`ed25519:${pubKey}`]: pubKey }\n // We assume only a single key, and we want the bare form without type\n // prefix, so we select the values.\n return Object.values(keyInfo.keys)[0];\n}\n\nexport interface ICacheCallbacks {\n getCrossSigningKeyCache?(type: string, expectedPublicKey?: string): Promise<Uint8Array | null>;\n storeCrossSigningKeyCache?(type: string, key?: Uint8Array): Promise<void>;\n}\n\nexport interface ICrossSigningInfo {\n keys: Record<string, CrossSigningKeyInfo>;\n firstUse: boolean;\n crossSigningVerifiedBefore: boolean;\n}\n\nexport class CrossSigningInfo {\n public keys: Record<string, CrossSigningKeyInfo> = {};\n public firstUse = true;\n // This tracks whether we've ever verified this user with any identity.\n // When you verify a user, any devices online at the time that receive\n // the verifying signature via the homeserver will latch this to true\n // and can use it in the future to detect cases where the user has\n // become unverified later for any reason.\n private crossSigningVerifiedBefore = false;\n\n /**\n * Information about a user's cross-signing keys\n *\n * @param userId - the user that the information is about\n * @param callbacks - Callbacks used to interact with the app\n * Requires getCrossSigningKey and saveCrossSigningKeys\n * @param cacheCallbacks - Callbacks used to interact with the cache\n */\n public constructor(\n public readonly userId: string,\n private callbacks: ICryptoCallbacks = {},\n private cacheCallbacks: ICacheCallbacks = {},\n ) {}\n\n public static fromStorage(obj: ICrossSigningInfo, userId: string): CrossSigningInfo {\n const res = new CrossSigningInfo(userId);\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n // @ts-ignore - ts doesn't like this and nor should we\n res[prop] = obj[prop];\n }\n }\n return res;\n }\n\n public toStorage(): ICrossSigningInfo {\n return {\n keys: this.keys,\n firstUse: this.firstUse,\n crossSigningVerifiedBefore: this.crossSigningVerifiedBefore,\n };\n }\n\n /**\n * Calls the app callback to ask for a private key\n *\n * @param type - The key type (\"master\", \"self_signing\", or \"user_signing\")\n * @param expectedPubkey - The matching public key or undefined to use\n * the stored public key for the given key type.\n * @returns An array with [ public key, Olm.PkSigning ]\n */\n public async getCrossSigningKey(type: string, expectedPubkey?: string): Promise<[string, PkSigning]> {\n const shouldCache = [\"master\", \"self_signing\", \"user_signing\"].indexOf(type) >= 0;\n\n if (!this.callbacks.getCrossSigningKey) {\n throw new Error(\"No getCrossSigningKey callback supplied\");\n }\n\n if (expectedPubkey === undefined) {\n expectedPubkey = this.getId(type)!;\n }\n\n function validateKey(key: Uint8Array | null): [string, PkSigning] | undefined {\n if (!key) return;\n const signing = new globalThis.Olm.PkSigning();\n const gotPubkey = signing.init_with_seed(key);\n if (gotPubkey === expectedPubkey) {\n return [gotPubkey, signing];\n }\n signing.free();\n }\n\n let privkey: Uint8Array | null = null;\n if (this.cacheCallbacks.getCrossSigningKeyCache && shouldCache) {\n privkey = await this.cacheCallbacks.getCrossSigningKeyCache(type, expectedPubkey);\n }\n\n const cacheresult = validateKey(privkey);\n if (cacheresult) {\n return cacheresult;\n }\n\n privkey = await this.callbacks.getCrossSigningKey(type, expectedPubkey);\n const result = validateKey(privkey);\n if (result) {\n if (this.cacheCallbacks.storeCrossSigningKeyCache && shouldCache) {\n await this.cacheCallbacks.storeCrossSigningKeyCache(type, privkey!);\n }\n return result;\n }\n\n /* No keysource even returned a key */\n if (!privkey) {\n throw new Error(\"getCrossSigningKey callback for \" + type + \" returned falsey\");\n }\n\n /* We got some keys from the keysource, but none of them were valid */\n throw new Error(\"Key type \" + type + \" from getCrossSigningKey callback did not match\");\n }\n\n /**\n * Check whether the private keys exist in secret storage.\n * XXX: This could be static, be we often seem to have an instance when we\n * want to know this anyway...\n *\n * @param secretStorage - The secret store using account data\n * @returns map of key name to key info the secret is encrypted\n * with, or null if it is not present or not encrypted with a trusted\n * key\n */\n public async isStoredInSecretStorage(\n secretStorage: ServerSideSecretStorage,\n ): Promise<Record<string, object> | null> {\n // check what SSSS keys have encrypted the master key (if any)\n const stored = (await secretStorage.isStored(\"m.cross_signing.master\")) || {};\n // then check which of those SSSS keys have also encrypted the SSK and USK\n function intersect(s: Record<string, SecretStorageKeyDescription>): void {\n for (const k of Object.keys(stored)) {\n if (!s[k]) {\n delete stored[k];\n }\n }\n }\n for (const type of [\"self_signing\", \"user_signing\"]) {\n intersect((await secretStorage.isStored(`m.cross_signing.${type}`)) || {});\n }\n return Object.keys(stored).length ? stored : null;\n }\n\n /**\n * Store private keys in secret storage for use by other devices. This is\n * typically called in conjunction with the creation of new cross-signing\n * keys.\n *\n * @param keys - The keys to store\n * @param secretStorage - The secret store using account data\n */\n public static async storeInSecretStorage(\n keys: Map<string, Uint8Array>,\n secretStorage: ServerSideSecretStorage,\n ): Promise<void> {\n for (const [type, privateKey] of keys) {\n const encodedKey = encodeBase64(privateKey);\n await secretStorage.store(`m.cross_signing.${type}`, encodedKey);\n }\n }\n\n /**\n * Get private keys from secret storage created by some other device. This\n * also passes the private keys to the app-specific callback.\n *\n * @param type - The type of key to get. One of \"master\",\n * \"self_signing\", or \"user_signing\".\n * @param secretStorage - The secret store using account data\n * @returns The private key\n */\n public static async getFromSecretStorage(\n type: string,\n secretStorage: ServerSideSecretStorage,\n ): Promise<Uint8Array | null> {\n const encodedKey = await secretStorage.get(`m.cross_signing.${type}`);\n if (!encodedKey) {\n return null;\n }\n return decodeBase64(encodedKey);\n }\n\n /**\n * Check whether the private keys exist in the local key cache.\n *\n * @param type - The type of key to get. One of \"master\",\n * \"self_signing\", or \"user_signing\". Optional, will check all by default.\n * @returns True if all keys are stored in the local cache.\n */\n public async isStoredInKeyCache(type?: string): Promise<boolean> {\n const cacheCallbacks = this.cacheCallbacks;\n if (!cacheCallbacks) return false;\n const types = type ? [type] : [\"master\", \"self_signing\", \"user_signing\"];\n for (const t of types) {\n if (!(await cacheCallbacks.getCrossSigningKeyCache?.(t))) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Get cross-signing private keys from the local cache.\n *\n * @returns A map from key type (string) to private key (Uint8Array)\n */\n public async getCrossSigningKeysFromCache(): Promise<Map<string, Uint8Array>> {\n const keys = new Map<string, Uint8Array>();\n const cacheCallbacks = this.cacheCallbacks;\n if (!cacheCallbacks) return keys;\n for (const type of [\"master\", \"self_signing\", \"user_signing\"]) {\n const privKey = await cacheCallbacks.getCrossSigningKeyCache?.(type);\n if (!privKey) {\n continue;\n }\n keys.set(type, privKey);\n }\n return keys;\n }\n\n /**\n * Get the ID used to identify the user. This can also be used to test for\n * the existence of a given key type.\n *\n * @param type - The type of key to get the ID of. One of \"master\",\n * \"self_signing\", or \"user_signing\". Defaults to \"master\".\n *\n * @returns the ID\n */\n public getId(type = \"master\"): string | null {\n if (!this.keys[type]) return null;\n const keyInfo = this.keys[type];\n return publicKeyFromKeyInfo(keyInfo);\n }\n\n /**\n * Create new cross-signing keys for the given key types. The public keys\n * will be held in this class, while the private keys are passed off to the\n * `saveCrossSigningKeys` application callback.\n *\n * @param level - The key types to reset\n */\n public async resetKeys(level?: CrossSigningLevel): Promise<void> {\n if (!this.callbacks.saveCrossSigningKeys) {\n throw new Error(\"No saveCrossSigningKeys callback supplied\");\n }\n\n // If we're resetting the master key, we reset all keys\n if (level === undefined || level & CrossSigningLevel.MASTER || !this.keys.master) {\n level = CrossSigningLevel.MASTER | CrossSigningLevel.USER_SIGNING | CrossSigningLevel.SELF_SIGNING;\n } else if (level === (0 as CrossSigningLevel)) {\n return;\n }\n\n const privateKeys: Record<string, Uint8Array> = {};\n const keys: Record<string, CrossSigningKeyInfo> = {};\n let masterSigning: PkSigning | undefined;\n let masterPub: string | undefined;\n\n try {\n if (level & CrossSigningLevel.MASTER) {\n masterSigning = new globalThis.Olm.PkSigning();\n privateKeys.master = masterSigning.generate_seed();\n masterPub = masterSigning.init_with_seed(privateKeys.master);\n keys.master = {\n user_id: this.userId,\n usage: [\"master\"],\n keys: {\n [\"ed25519:\" + masterPub]: masterPub,\n },\n };\n } else {\n [masterPub, masterSigning] = await this.getCrossSigningKey(\"master\");\n }\n\n if (level & CrossSigningLevel.SELF_SIGNING) {\n const sskSigning = new globalThis.Olm.PkSigning();\n try {\n privateKeys.self_signing = sskSigning.generate_seed();\n const sskPub = sskSigning.init_with_seed(privateKeys.self_signing);\n keys.self_signing = {\n user_id: this.userId,\n usage: [\"self_signing\"],\n keys: {\n [\"ed25519:\" + sskPub]: sskPub,\n },\n };\n pkSign(keys.self_signing, masterSigning, this.userId, masterPub);\n } finally {\n sskSigning.free();\n }\n }\n\n if (level & CrossSigningLevel.USER_SIGNING) {\n const uskSigning = new globalThis.Olm.PkSigning();\n try {\n privateKeys.user_signing = uskSigning.generate_seed();\n const uskPub = uskSigning.init_with_seed(privateKeys.user_signing);\n keys.user_signing = {\n user_id: this.userId,\n usage: [\"user_signing\"],\n keys: {\n [\"ed25519:\" + uskPub]: uskPub,\n },\n };\n pkSign(keys.user_signing, masterSigning, this.userId, masterPub);\n } finally {\n uskSigning.free();\n }\n }\n\n Object.assign(this.keys, keys);\n this.callbacks.saveCrossSigningKeys(privateKeys);\n } finally {\n if (masterSigning) {\n masterSigning.free();\n }\n }\n }\n\n /**\n * unsets the keys, used when another session has reset the keys, to disable cross-signing\n */\n public clearKeys(): void {\n this.keys = {};\n }\n\n public setKeys(keys: Record<string, CrossSigningKeyInfo>): void {\n const signingKeys: Record<string, CrossSigningKeyInfo> = {};\n if (keys.master) {\n if (keys.master.user_id !== this.userId) {\n const error = \"Mismatched user ID \" + keys.master.user_id + \" in master key from \" + this.userId;\n logger.error(error);\n throw new Error(error);\n }\n if (!this.keys.master) {\n // this is the first key we've seen, so first-use is true\n this.firstUse = true;\n } else if (publicKeyFromKeyInfo(keys.master) !== this.getId()) {\n // this is a different key, so first-use is false\n this.firstUse = false;\n } // otherwise, same key, so no change\n signingKeys.master = keys.master;\n } else if (this.keys.master) {\n signingKeys.master = this.keys.master;\n } else {\n throw new Error(\"Tried to set cross-signing keys without a master key\");\n }\n const masterKey = publicKeyFromKeyInfo(signingKeys.master);\n\n // verify signatures\n if (keys.user_signing) {\n if (keys.user_signing.user_id !== this.userId) {\n const error = \"Mismatched user ID \" + keys.master.user_id + \" in user_signing key from \" + this.userId;\n logger.error(error);\n throw new Error(error);\n }\n try {\n pkVerify(keys.user_signing, masterKey, this.userId);\n } catch (e) {\n logger.error(\"invalid signature on user-signing key\");\n // FIXME: what do we want to do here?\n throw e;\n }\n }\n if (keys.self_signing) {\n if (keys.self_signing.user_id !== this.userId) {\n const error = \"Mismatched user ID \" + keys.master.user_id + \" in self_signing key from \" + this.userId;\n logger.error(error);\n throw new Error(error);\n }\n try {\n pkVerify(keys.self_signing, masterKey, this.userId);\n } catch (e) {\n logger.error(\"invalid signature on self-signing key\");\n // FIXME: what do we want to do here?\n throw e;\n }\n }\n\n // if everything checks out, then save the keys\n if (keys.master) {\n this.keys.master = keys.master;\n // if the master key is set, then the old self-signing and user-signing keys are obsolete\n delete this.keys[\"self_signing\"];\n delete this.keys[\"user_signing\"];\n }\n if (keys.self_signing) {\n this.keys.self_signing = keys.self_signing;\n }\n if (keys.user_signing) {\n this.keys.user_signing = keys.user_signing;\n }\n }\n\n public updateCrossSigningVerifiedBefore(isCrossSigningVerified: boolean): void {\n // It is critical that this value latches forward from false to true but\n // never back to false to avoid a downgrade attack.\n if (!this.crossSigningVerifiedBefore && isCrossSigningVerified) {\n this.crossSigningVerifiedBefore = true;\n }\n }\n\n public async signObject<T extends object>(data: T, type: string): Promise<T & { signatures: ISignatures }> {\n if (!this.keys[type]) {\n throw new Error(\"Attempted to sign with \" + type + \" key but no such key present\");\n }\n const [pubkey, signing] = await this.getCrossSigningKey(type);\n try {\n pkSign(data, signing, this.userId, pubkey);\n return data as T & { signatures: ISignatures };\n } finally {\n signing.free();\n }\n }\n\n public async signUser(key: CrossSigningInfo): Promise<CrossSigningKeyInfo | undefined> {\n if (!this.keys.user_signing) {\n logger.info(\"No user signing key: not signing user\");\n return;\n }\n return this.signObject(key.keys.master, \"user_signing\");\n }\n\n public async signDevice(userId: string, device: DeviceInfo): Promise<ISignedKey | undefined> {\n if (userId !== this.userId) {\n throw new Error(`Trying to sign ${userId}'s device; can only sign our own device`);\n }\n if (!this.keys.self_signing) {\n logger.info(\"No self signing key: not signing device\");\n return;\n }\n return this.signObject<Omit<ISignedKey, \"signatures\">>(\n {\n algorithms: device.algorithms,\n keys: device.keys,\n device_id: device.deviceId,\n user_id: userId,\n },\n \"self_signing\",\n );\n }\n\n /**\n * Check whether a given user is trusted.\n *\n * @param userCrossSigning - Cross signing info for user\n *\n * @returns\n */\n public checkUserTrust(userCrossSigning: CrossSigningInfo): UserTrustLevel {\n // if we're checking our own key, then it's trusted if the master key\n // and self-signing key match\n if (\n this.userId === userCrossSigning.userId &&\n this.getId() &&\n this.getId() === userCrossSigning.getId() &&\n this.getId(\"self_signing\") &&\n this.getId(\"self_signing\") === userCrossSigning.getId(\"self_signing\")\n ) {\n return new UserTrustLevel(true, true, this.firstUse);\n }\n\n if (!this.keys.user_signing) {\n // If there's no user signing key, they can't possibly be verified.\n // They may be TOFU trusted though.\n return new UserTrustLevel(false, false, userCrossSigning.firstUse);\n }\n\n let userTrusted: boolean;\n const userMaster = userCrossSigning.keys.master;\n const uskId = this.getId(\"user_signing\")!;\n try {\n pkVerify(userMaster, uskId, this.userId);\n userTrusted = true;\n } catch {\n userTrusted = false;\n }\n return new UserTrustLevel(userTrusted, userCrossSigning.crossSigningVerifiedBefore, userCrossSigning.firstUse);\n }\n\n /**\n * Check whether a given device is trusted.\n *\n * @param userCrossSigning - Cross signing info for user\n * @param device - The device to check\n * @param localTrust - Whether the device is trusted locally\n * @param trustCrossSignedDevices - Whether we trust cross signed devices\n *\n * @returns\n */\n public checkDeviceTrust(\n userCrossSigning: CrossSigningInfo,\n device: DeviceInfo,\n localTrust: boolean,\n trustCrossSignedDevices: boolean,\n ): DeviceTrustLevel {\n const userTrust = this.checkUserTrust(userCrossSigning);\n\n const userSSK = userCrossSigning.keys.self_signing;\n if (!userSSK) {\n // if the user has no self-signing key then we cannot make any\n // trust assertions about this device from cross-signing\n return new DeviceTrustLevel(false, false, localTrust, trustCrossSignedDevices);\n }\n\n const deviceObj = deviceToObject(device, userCrossSigning.userId);\n try {\n // if we can verify the user's SSK from their master key...\n pkVerify(userSSK, userCrossSigning.getId()!, userCrossSigning.userId);\n // ...and this device's key from their SSK...\n pkVerify(deviceObj, publicKeyFromKeyInfo(userSSK), userCrossSigning.userId);\n // ...then we trust this device as much as far as we trust the user\n return DeviceTrustLevel.fromUserTrustLevel(userTrust, localTrust, trustCrossSignedDevices);\n } catch {\n return new DeviceTrustLevel(false, false, localTrust, trustCrossSignedDevices);\n }\n }\n\n /**\n * @returns Cache callbacks\n */\n public getCacheCallbacks(): ICacheCallbacks {\n return this.cacheCallbacks;\n }\n}\n\ninterface DeviceObject extends IObject {\n algorithms: string[];\n keys: Record<string, string>;\n device_id: string;\n user_id: string;\n}\n\nfunction deviceToObject(device: DeviceInfo, userId: string): DeviceObject {\n return {\n algorithms: device.algorithms,\n keys: device.keys,\n device_id: device.deviceId,\n user_id: userId,\n signatures: device.signatures,\n };\n}\n\nexport enum CrossSigningLevel {\n MASTER = 4,\n USER_SIGNING = 2,\n SELF_SIGNING = 1,\n}\n\n/**\n * Represents the ways in which we trust a device.\n *\n * @deprecated Use {@link DeviceVerificationStatus}.\n */\nexport class DeviceTrustLevel extends DeviceVerificationStatus {\n public constructor(\n crossSigningVerified: boolean,\n tofu: boolean,\n localVerified: boolean,\n trustCrossSignedDevices: boolean,\n signedByOwner = false,\n ) {\n super({ crossSigningVerified, tofu, localVerified, trustCrossSignedDevices, signedByOwner });\n }\n\n public static fromUserTrustLevel(\n userTrustLevel: UserTrustLevel,\n localVerified: boolean,\n trustCrossSignedDevices: boolean,\n ): DeviceTrustLevel {\n return new DeviceTrustLevel(\n userTrustLevel.isCrossSigningVerified(),\n userTrustLevel.isTofu(),\n localVerified,\n trustCrossSignedDevices,\n true,\n );\n }\n\n /**\n * @returns true if this device is verified via cross signing\n */\n public isCrossSigningVerified(): boolean {\n return this.crossSigningVerified;\n }\n\n /**\n * @returns true if this device is verified locally\n */\n public isLocallyVerified(): boolean {\n return this.localVerified;\n }\n\n /**\n * @returns true if this device is trusted from a user's key\n * that is trusted on first use\n */\n public isTofu(): boolean {\n return this.tofu;\n }\n}\n\nexport function createCryptoStoreCacheCallbacks(store: CryptoStore, olmDevice: OlmDevice): ICacheCallbacks {\n return {\n getCrossSigningKeyCache: async function (\n type: keyof SecretStorePrivateKeys,\n _expectedPublicKey: string,\n ): Promise<Uint8Array> {\n const key = await new Promise<any>((resolve) => {\n store.doTxn(\"readonly\", [IndexedDBCryptoStore.STORE_ACCOUNT], (txn) => {\n store.getSecretStorePrivateKey(txn, resolve, type);\n });\n });\n\n if (key && key.ciphertext) {\n const pickleKey = Buffer.from(olmDevice.pickleKey);\n const decrypted = await decryptAESSecretStorageItem(key, pickleKey, type);\n return decodeBase64(decrypted);\n } else {\n return key;\n }\n },\n storeCrossSigningKeyCache: async function (\n type: keyof SecretStorePrivateKeys,\n key?: Uint8Array,\n ): Promise<void> {\n if (!(key instanceof Uint8Array)) {\n throw new Error(`storeCrossSigningKeyCache expects Uint8Array, got ${key}`);\n }\n const pickleKey = Buffer.from(olmDevice.pickleKey);\n const encryptedKey = await encryptAESSecretStorageItem(encodeBase64(key), pickleKey, type);\n return store.doTxn(\"readwrite\", [IndexedDBCryptoStore.STORE_ACCOUNT], (txn) => {\n store.storeSecretStorePrivateKey(txn, type, encryptedKey);\n });\n },\n };\n}\n\nexport type KeysDuringVerification = [[string, PkSigning], [string, PkSigning], [string, PkSigning], void];\n\n/**\n * Request cross-signing keys from another device during verification.\n *\n * @param baseApis - base Matrix API interface\n * @param userId - The user ID being verified\n * @param deviceId - The device ID being verified\n */\nexport async function requestKeysDuringVerification(\n baseApis: MatrixClient,\n userId: string,\n deviceId: string,\n): Promise<KeysDuringVerification | void> {\n // If this is a self-verification, ask the other party for keys\n if (baseApis.getUserId() !== userId) {\n return;\n }\n logger.log(\"Cross-signing: Self-verification done; requesting keys\");\n // This happens asynchronously, and we're not concerned about waiting for\n // it. We return here in order to test.\n return new Promise<KeysDuringVerification | void>((resolve, reject) => {\n const client = baseApis;\n const original = client.crypto!.crossSigningInfo;\n\n // We already have all of the infrastructure we need to validate and\n // cache cross-signing keys, so instead of replicating that, here we set\n // up callbacks that request them from the other device and call\n // CrossSigningInfo.getCrossSigningKey() to validate/cache\n const crossSigning = new CrossSigningInfo(\n original.userId,\n {\n getCrossSigningKey: async (type): Promise<Uint8Array> => {\n logger.debug(\"Cross-signing: requesting secret\", type, deviceId);\n const { promise } = client.requestSecret(`m.cross_signing.${type}`, [deviceId]);\n const result = await promise;\n const decoded = decodeBase64(result);\n return Uint8Array.from(decoded);\n },\n },\n original.getCacheCallbacks(),\n );\n crossSigning.keys = original.keys;\n\n // XXX: get all keys out if we get one key out\n // https://github.com/vector-im/element-web/issues/12604\n // then change here to reject on the timeout\n // Requests can be ignored, so don't wait around forever\n const timeout = new Promise<void>((resolve) => {\n setTimeout(resolve, KEY_REQUEST_TIMEOUT_MS, new Error(\"Timeout\"));\n });\n\n // also request and cache the key backup key\n const backupKeyPromise = (async (): Promise<void> => {\n const cachedKey = await client.crypto!.getSessionBackupPrivateKey();\n if (!cachedKey) {\n logger.info(\"No cached backup key found. Requesting...\");\n const secretReq = client.requestSecret(\"m.megolm_backup.v1\", [deviceId]);\n const base64Key = await secretReq.promise;\n logger.info(\"Got key backup key, decoding...\");\n const decodedKey = decodeBase64(base64Key);\n logger.info(\"Decoded backup key, storing...\");\n await client.crypto!.storeSessionBackupPrivateKey(Uint8Array.from(decodedKey));\n logger.info(\"Backup key stored. Starting backup restore...\");\n const backupInfo = await client.getKeyBackupVersion();\n // no need to await for this - just let it go in the bg\n client.restoreKeyBackupWithCache(undefined, undefined, backupInfo!).then(() => {\n logger.info(\"Backup restored.\");\n });\n }\n })();\n\n // We call getCrossSigningKey() for its side-effects\n Promise.race<KeysDuringVerification | void>([\n Promise.all([\n crossSigning.getCrossSigningKey(\"master\"),\n crossSigning.getCrossSigningKey(\"self_signing\"),\n crossSigning.getCrossSigningKey(\"user_signing\"),\n backupKeyPromise,\n ]) as Promise<KeysDuringVerification>,\n timeout,\n ]).then(resolve, reject);\n }).catch((e) => {\n logger.warn(\"Cross-signing: failure while requesting keys:\", e);\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,216 +0,0 @@
1
- import { DeviceInfo, IDevice } from "./deviceinfo.ts";
2
- import { CrossSigningInfo, ICrossSigningInfo } from "./CrossSigning.ts";
3
- import { MatrixClient } from "../client.ts";
4
- import { OlmDevice } from "./OlmDevice.ts";
5
- import { CryptoStore } from "./store/base.ts";
6
- import { TypedEventEmitter } from "../models/typed-event-emitter.ts";
7
- import { CryptoEvent, CryptoEventHandlerMap } from "./index.ts";
8
- export declare enum TrackingStatus {
9
- NotTracked = 0,
10
- PendingDownload = 1,
11
- DownloadInProgress = 2,
12
- UpToDate = 3
13
- }
14
- export type DeviceInfoMap = Map<string, Map<string, DeviceInfo>>;
15
- type EmittedEvents = CryptoEvent.WillUpdateDevices | CryptoEvent.DevicesUpdated | CryptoEvent.UserCrossSigningUpdated;
16
- export declare class DeviceList extends TypedEventEmitter<EmittedEvents, CryptoEventHandlerMap> {
17
- private readonly cryptoStore;
18
- readonly keyDownloadChunkSize: number;
19
- private devices;
20
- crossSigningInfo: {
21
- [userId: string]: ICrossSigningInfo;
22
- };
23
- private userByIdentityKey;
24
- private deviceTrackingStatus;
25
- private syncToken;
26
- private keyDownloadsInProgressByUser;
27
- private dirty;
28
- private savePromise;
29
- private resolveSavePromise;
30
- private savePromiseTime;
31
- private saveTimer;
32
- private hasFetched;
33
- private readonly serialiser;
34
- constructor(baseApis: MatrixClient, cryptoStore: CryptoStore, olmDevice: OlmDevice, keyDownloadChunkSize?: number);
35
- /**
36
- * Load the device tracking state from storage
37
- */
38
- load(): Promise<void>;
39
- stop(): void;
40
- /**
41
- * Save the device tracking state to storage, if any changes are
42
- * pending other than updating the sync token
43
- *
44
- * The actual save will be delayed by a short amount of time to
45
- * aggregate multiple writes to the database.
46
- *
47
- * @param delay - Time in ms before which the save actually happens.
48
- * By default, the save is delayed for a short period in order to batch
49
- * multiple writes, but this behaviour can be disabled by passing 0.
50
- *
51
- * @returns true if the data was saved, false if
52
- * it was not (eg. because no changes were pending). The promise
53
- * will only resolve once the data is saved, so may take some time
54
- * to resolve.
55
- */
56
- saveIfDirty(delay?: number): Promise<boolean>;
57
- /**
58
- * Gets the sync token last set with setSyncToken
59
- *
60
- * @returns The sync token
61
- */
62
- getSyncToken(): string | null;
63
- /**
64
- * Sets the sync token that the app will pass as the 'since' to the /sync
65
- * endpoint next time it syncs.
66
- * The sync token must always be set after any changes made as a result of
67
- * data in that sync since setting the sync token to a newer one will mean
68
- * those changed will not be synced from the server if a new client starts
69
- * up with that data.
70
- *
71
- * @param st - The sync token
72
- */
73
- setSyncToken(st: string | null): void;
74
- /**
75
- * Ensures up to date keys for a list of users are stored in the session store,
76
- * downloading and storing them if they're not (or if forceDownload is
77
- * true).
78
- * @param userIds - The users to fetch.
79
- * @param forceDownload - Always download the keys even if cached.
80
- *
81
- * @returns A promise which resolves to a map userId-\>deviceId-\>{@link DeviceInfo}.
82
- */
83
- downloadKeys(userIds: string[], forceDownload: boolean): Promise<DeviceInfoMap>;
84
- /**
85
- * Get the stored device keys for a list of user ids
86
- *
87
- * @param userIds - the list of users to list keys for.
88
- *
89
- * @returns userId-\>deviceId-\>{@link DeviceInfo}.
90
- */
91
- private getDevicesFromStore;
92
- /**
93
- * Returns a list of all user IDs the DeviceList knows about
94
- *
95
- * @returns All known user IDs
96
- */
97
- getKnownUserIds(): string[];
98
- /**
99
- * Get the stored device keys for a user id
100
- *
101
- * @param userId - the user to list keys for.
102
- *
103
- * @returns list of devices, or null if we haven't
104
- * managed to get a list of devices for this user yet.
105
- */
106
- getStoredDevicesForUser(userId: string): DeviceInfo[] | null;
107
- /**
108
- * Get the stored device data for a user, in raw object form
109
- *
110
- * @param userId - the user to get data for
111
- *
112
- * @returns `deviceId->{object}` devices, or undefined if
113
- * there is no data for this user.
114
- */
115
- getRawStoredDevicesForUser(userId: string): Record<string, IDevice>;
116
- getStoredCrossSigningForUser(userId: string): CrossSigningInfo | null;
117
- storeCrossSigningForUser(userId: string, info: ICrossSigningInfo): void;
118
- /**
119
- * Get the stored keys for a single device
120
- *
121
- *
122
- * @returns device, or undefined
123
- * if we don't know about this device
124
- */
125
- getStoredDevice(userId: string, deviceId: string): DeviceInfo | undefined;
126
- /**
127
- * Get a user ID by one of their device's curve25519 identity key
128
- *
129
- * @param algorithm - encryption algorithm
130
- * @param senderKey - curve25519 key to match
131
- *
132
- * @returns user ID
133
- */
134
- getUserByIdentityKey(algorithm: string, senderKey: string): string | null;
135
- /**
136
- * Find a device by curve25519 identity key
137
- *
138
- * @param algorithm - encryption algorithm
139
- * @param senderKey - curve25519 key to match
140
- */
141
- getDeviceByIdentityKey(algorithm: string, senderKey: string): DeviceInfo | null;
142
- /**
143
- * Replaces the list of devices for a user with the given device list
144
- *
145
- * @param userId - The user ID
146
- * @param devices - New device info for user
147
- */
148
- storeDevicesForUser(userId: string, devices: Record<string, IDevice>): void;
149
- /**
150
- * flag the given user for device-list tracking, if they are not already.
151
- *
152
- * This will mean that a subsequent call to refreshOutdatedDeviceLists()
153
- * will download the device list for the user, and that subsequent calls to
154
- * invalidateUserDeviceList will trigger more updates.
155
- *
156
- */
157
- startTrackingDeviceList(userId: string): void;
158
- /**
159
- * Mark the given user as no longer being tracked for device-list updates.
160
- *
161
- * This won't affect any in-progress downloads, which will still go on to
162
- * complete; it will just mean that we don't think that we have an up-to-date
163
- * list for future calls to downloadKeys.
164
- *
165
- */
166
- stopTrackingDeviceList(userId: string): void;
167
- /**
168
- * Set all users we're currently tracking to untracked
169
- *
170
- * This will flag each user whose devices we are tracking as in need of an
171
- * update.
172
- */
173
- stopTrackingAllDeviceLists(): void;
174
- /**
175
- * Mark the cached device list for the given user outdated.
176
- *
177
- * If we are not tracking this user's devices, we'll do nothing. Otherwise
178
- * we flag the user as needing an update.
179
- *
180
- * This doesn't actually set off an update, so that several users can be
181
- * batched together. Call refreshOutdatedDeviceLists() for that.
182
- *
183
- */
184
- invalidateUserDeviceList(userId: string): void;
185
- /**
186
- * If we have users who have outdated device lists, start key downloads for them
187
- *
188
- * @returns which completes when the download completes; normally there
189
- * is no need to wait for this (it's mostly for the unit tests).
190
- */
191
- refreshOutdatedDeviceLists(): Promise<void>;
192
- /**
193
- * Set the stored device data for a user, in raw object form
194
- * Used only by internal class DeviceListUpdateSerialiser
195
- *
196
- * @param userId - the user to get data for
197
- *
198
- * @param devices - `deviceId->{object}` the new devices
199
- */
200
- setRawStoredDevicesForUser(userId: string, devices: Record<string, IDevice>): void;
201
- setRawStoredCrossSigningForUser(userId: string, info: ICrossSigningInfo): void;
202
- /**
203
- * Fire off download update requests for the given users, and update the
204
- * device list tracking status for them, and the
205
- * keyDownloadsInProgressByUser map for them.
206
- *
207
- * @param users - list of userIds
208
- *
209
- * @returns resolves when all the users listed have
210
- * been updated. rejects if there was a problem updating any of the
211
- * users.
212
- */
213
- private doKeyDownload;
214
- }
215
- export {};
216
- //# sourceMappingURL=DeviceList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeviceList.d.ts","sourceRoot":"","sources":["../../src/crypto/DeviceList.ts"],"names":[],"mappings":"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"}