@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,299 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- /*
4
- Copyright 2016 - 2021 The Matrix.org Foundation C.I.C.
5
-
6
- Licensed under the Apache License, Version 2.0 (the "License");
7
- you may not use this file except in compliance with the License.
8
- You may obtain a copy of the License at
9
-
10
- http://www.apache.org/licenses/LICENSE-2.0
11
-
12
- Unless required by applicable law or agreed to in writing, software
13
- distributed under the License is distributed on an "AS IS" BASIS,
14
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- See the License for the specific language governing permissions and
16
- limitations under the License.
17
- */
18
-
19
- /**
20
- * Defines m.olm encryption/decryption
21
- */
22
-
23
- import { logger } from "../../logger.js";
24
- import * as olmlib from "../olmlib.js";
25
- import { DeviceInfo } from "../deviceinfo.js";
26
- import { DecryptionAlgorithm, EncryptionAlgorithm, registerAlgorithm } from "./base.js";
27
- import { DecryptionFailureCode } from "../../crypto-api/index.js";
28
- import { DecryptionError } from "../../common-crypto/CryptoBackend.js";
29
- var DeviceVerification = DeviceInfo.DeviceVerification;
30
- /**
31
- * Olm encryption implementation
32
- *
33
- * @param params - parameters, as per {@link EncryptionAlgorithm}
34
- */
35
- class OlmEncryption extends EncryptionAlgorithm {
36
- constructor() {
37
- super(...arguments);
38
- _defineProperty(this, "sessionPrepared", false);
39
- _defineProperty(this, "prepPromise", null);
40
- }
41
- /**
42
- * @internal
43
- * @param roomMembers - list of currently-joined users in the room
44
- * @returns Promise which resolves when setup is complete
45
- */
46
- ensureSession(roomMembers) {
47
- if (this.prepPromise) {
48
- // prep already in progress
49
- return this.prepPromise;
50
- }
51
- if (this.sessionPrepared) {
52
- // prep already done
53
- return Promise.resolve();
54
- }
55
- this.prepPromise = this.crypto.downloadKeys(roomMembers).then(() => {
56
- return this.crypto.ensureOlmSessionsForUsers(roomMembers);
57
- }).then(() => {
58
- this.sessionPrepared = true;
59
- }).finally(() => {
60
- this.prepPromise = null;
61
- });
62
- return this.prepPromise;
63
- }
64
-
65
- /**
66
- * @param content - plaintext event content
67
- *
68
- * @returns Promise which resolves to the new event body
69
- */
70
- encryptMessage(room, eventType, content) {
71
- var _this = this;
72
- return _asyncToGenerator(function* () {
73
- // pick the list of recipients based on the membership list.
74
- //
75
- // TODO: there is a race condition here! What if a new user turns up
76
- // just as you are sending a secret message?
77
-
78
- var members = yield room.getEncryptionTargetMembers();
79
- var users = members.map(function (u) {
80
- return u.userId;
81
- });
82
- yield _this.ensureSession(users);
83
- var payloadFields = {
84
- room_id: room.roomId,
85
- type: eventType,
86
- content: content
87
- };
88
- var encryptedContent = {
89
- algorithm: olmlib.OLM_ALGORITHM,
90
- sender_key: _this.olmDevice.deviceCurve25519Key,
91
- ciphertext: {}
92
- };
93
- var promises = [];
94
- for (var userId of users) {
95
- var devices = _this.crypto.getStoredDevicesForUser(userId) || [];
96
- for (var deviceInfo of devices) {
97
- var key = deviceInfo.getIdentityKey();
98
- if (key == _this.olmDevice.deviceCurve25519Key) {
99
- // don't bother sending to ourself
100
- continue;
101
- }
102
- if (deviceInfo.verified == DeviceVerification.BLOCKED) {
103
- // don't bother setting up sessions with blocked users
104
- continue;
105
- }
106
- promises.push(olmlib.encryptMessageForDevice(encryptedContent.ciphertext, _this.userId, _this.deviceId, _this.olmDevice, userId, deviceInfo, payloadFields));
107
- }
108
- }
109
- return Promise.all(promises).then(() => encryptedContent);
110
- })();
111
- }
112
- }
113
-
114
- /**
115
- * Olm decryption implementation
116
- *
117
- * @param params - parameters, as per {@link DecryptionAlgorithm}
118
- */
119
- class OlmDecryption extends DecryptionAlgorithm {
120
- /**
121
- * returns a promise which resolves to a
122
- * {@link EventDecryptionResult} once we have finished
123
- * decrypting. Rejects with an `algorithms.DecryptionError` if there is a
124
- * problem decrypting the event.
125
- */
126
- decryptEvent(event) {
127
- var _this2 = this;
128
- return _asyncToGenerator(function* () {
129
- var content = event.getWireContent();
130
- var deviceKey = content.sender_key;
131
- var ciphertext = content.ciphertext;
132
- if (!ciphertext) {
133
- throw new DecryptionError(DecryptionFailureCode.OLM_MISSING_CIPHERTEXT, "Missing ciphertext");
134
- }
135
- if (!(_this2.olmDevice.deviceCurve25519Key in ciphertext)) {
136
- throw new DecryptionError(DecryptionFailureCode.OLM_NOT_INCLUDED_IN_RECIPIENTS, "Not included in recipients");
137
- }
138
- var message = ciphertext[_this2.olmDevice.deviceCurve25519Key];
139
- var payloadString;
140
- try {
141
- payloadString = yield _this2.decryptMessage(deviceKey, message);
142
- } catch (e) {
143
- throw new DecryptionError(DecryptionFailureCode.OLM_BAD_ENCRYPTED_MESSAGE, "Bad Encrypted Message", {
144
- sender: deviceKey,
145
- err: e
146
- });
147
- }
148
- var payload = JSON.parse(payloadString);
149
-
150
- // check that we were the intended recipient, to avoid unknown-key attack
151
- // https://github.com/vector-im/vector-web/issues/2483
152
- if (payload.recipient != _this2.userId) {
153
- throw new DecryptionError(DecryptionFailureCode.OLM_BAD_RECIPIENT, "Message was intended for " + payload.recipient);
154
- }
155
- if (payload.recipient_keys.ed25519 != _this2.olmDevice.deviceEd25519Key) {
156
- throw new DecryptionError(DecryptionFailureCode.OLM_BAD_RECIPIENT_KEY, "Message not intended for this device", {
157
- intended: payload.recipient_keys.ed25519,
158
- our_key: _this2.olmDevice.deviceEd25519Key
159
- });
160
- }
161
-
162
- // check that the device that encrypted the event belongs to the user that the event claims it's from.
163
- //
164
- // If the device is unknown then we check that we don't have any pending key-query requests for the sender. If
165
- // after that the device is still unknown, then we can only assume that the device logged out and accept it
166
- // anyway. Some event handlers, such as secret sharing, may be more strict and reject events that come from
167
- // unknown devices.
168
- //
169
- // This is a defence against the following scenario:
170
- //
171
- // * Alice has verified Bob and Mallory.
172
- // * Mallory gets control of Alice's server, and sends a megolm session to Alice using her (Mallory's)
173
- // senderkey, but claiming to be from Bob.
174
- // * Mallory sends more events using that session, claiming to be from Bob.
175
- // * Alice sees that the senderkey is verified (since she verified Mallory) so marks events those events as
176
- // verified even though the sender is forged.
177
- //
178
- // In practice, it's not clear that the js-sdk would behave that way, so this may be only a defence in depth.
179
-
180
- var senderKeyUser = _this2.crypto.deviceList.getUserByIdentityKey(olmlib.OLM_ALGORITHM, deviceKey);
181
- if (senderKeyUser === undefined || senderKeyUser === null) {
182
- // Wait for any pending key query fetches for the user to complete before trying the lookup again.
183
- try {
184
- yield _this2.crypto.deviceList.downloadKeys([event.getSender()], false);
185
- } catch (e) {
186
- throw new DecryptionError(DecryptionFailureCode.OLM_BAD_SENDER_CHECK_FAILED, "Could not verify sender identity", {
187
- sender: deviceKey,
188
- err: e
189
- });
190
- }
191
- senderKeyUser = _this2.crypto.deviceList.getUserByIdentityKey(olmlib.OLM_ALGORITHM, deviceKey);
192
- }
193
- if (senderKeyUser !== event.getSender() && senderKeyUser !== undefined && senderKeyUser !== null) {
194
- throw new DecryptionError(DecryptionFailureCode.OLM_BAD_SENDER, "Message claimed to be from " + event.getSender(), {
195
- real_sender: senderKeyUser
196
- });
197
- }
198
-
199
- // check that the original sender matches what the homeserver told us, to
200
- // avoid people masquerading as others.
201
- // (this check is also provided via the sender's embedded ed25519 key,
202
- // which is checked elsewhere).
203
- if (payload.sender != event.getSender()) {
204
- throw new DecryptionError(DecryptionFailureCode.OLM_FORWARDED_MESSAGE, "Message forwarded from " + payload.sender, {
205
- reported_sender: event.getSender()
206
- });
207
- }
208
-
209
- // Olm events intended for a room have a room_id.
210
- if (payload.room_id !== event.getRoomId()) {
211
- throw new DecryptionError(DecryptionFailureCode.OLM_BAD_ROOM, "Message intended for room " + payload.room_id, {
212
- reported_room: event.getRoomId() || "ROOM_ID_UNDEFINED"
213
- });
214
- }
215
- var claimedKeys = payload.keys || {};
216
- return {
217
- clearEvent: payload,
218
- senderCurve25519Key: deviceKey,
219
- claimedEd25519Key: claimedKeys.ed25519 || null
220
- };
221
- })();
222
- }
223
-
224
- /**
225
- * Attempt to decrypt an Olm message
226
- *
227
- * @param theirDeviceIdentityKey - Curve25519 identity key of the sender
228
- * @param message - message object, with 'type' and 'body' fields
229
- *
230
- * @returns payload, if decrypted successfully.
231
- */
232
- decryptMessage(theirDeviceIdentityKey, message) {
233
- // This is a wrapper that serialises decryptions of prekey messages, because
234
- // otherwise we race between deciding we have no active sessions for the message
235
- // and creating a new one, which we can only do once because it removes the OTK.
236
- if (message.type !== 0) {
237
- // not a prekey message: we can safely just try & decrypt it
238
- return this.reallyDecryptMessage(theirDeviceIdentityKey, message);
239
- } else {
240
- var myPromise = this.olmDevice.olmPrekeyPromise.then(() => {
241
- return this.reallyDecryptMessage(theirDeviceIdentityKey, message);
242
- });
243
- // we want the error, but don't propagate it to the next decryption
244
- this.olmDevice.olmPrekeyPromise = myPromise.catch(() => {});
245
- return myPromise;
246
- }
247
- }
248
- reallyDecryptMessage(theirDeviceIdentityKey, message) {
249
- var _this3 = this;
250
- return _asyncToGenerator(function* () {
251
- var sessionIds = yield _this3.olmDevice.getSessionIdsForDevice(theirDeviceIdentityKey);
252
-
253
- // try each session in turn.
254
- var decryptionErrors = {};
255
- for (var sessionId of sessionIds) {
256
- try {
257
- var payload = yield _this3.olmDevice.decryptMessage(theirDeviceIdentityKey, sessionId, message.type, message.body);
258
- logger.log("Decrypted Olm message from " + theirDeviceIdentityKey + " with session " + sessionId);
259
- return payload;
260
- } catch (e) {
261
- var foundSession = yield _this3.olmDevice.matchesSession(theirDeviceIdentityKey, sessionId, message.type, message.body);
262
- if (foundSession) {
263
- // decryption failed, but it was a prekey message matching this
264
- // session, so it should have worked.
265
- throw new Error("Error decrypting prekey message with existing session id " + sessionId + ": " + e.message);
266
- }
267
-
268
- // otherwise it's probably a message for another session; carry on, but
269
- // keep a record of the error
270
- decryptionErrors[sessionId] = e.message;
271
- }
272
- }
273
- if (message.type !== 0) {
274
- // not a prekey message, so it should have matched an existing session, but it
275
- // didn't work.
276
-
277
- if (sessionIds.length === 0) {
278
- throw new Error("No existing sessions");
279
- }
280
- throw new Error("Error decrypting non-prekey message with existing sessions: " + JSON.stringify(decryptionErrors));
281
- }
282
-
283
- // prekey message which doesn't match any existing sessions: make a new
284
- // session.
285
-
286
- var res;
287
- try {
288
- res = yield _this3.olmDevice.createInboundSession(theirDeviceIdentityKey, message.type, message.body);
289
- } catch (e) {
290
- decryptionErrors["(new)"] = e.message;
291
- throw new Error("Error decrypting prekey message: " + JSON.stringify(decryptionErrors));
292
- }
293
- logger.log("created new inbound Olm session ID " + res.session_id + " with " + theirDeviceIdentityKey);
294
- return res.payload;
295
- })();
296
- }
297
- }
298
- registerAlgorithm(olmlib.OLM_ALGORITHM, OlmEncryption, OlmDecryption);
299
- //# sourceMappingURL=olm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"olm.js","names":["logger","olmlib","DeviceInfo","DecryptionAlgorithm","EncryptionAlgorithm","registerAlgorithm","DecryptionFailureCode","DecryptionError","DeviceVerification","OlmEncryption","constructor","arguments","_defineProperty","ensureSession","roomMembers","prepPromise","sessionPrepared","Promise","resolve","crypto","downloadKeys","then","ensureOlmSessionsForUsers","finally","encryptMessage","room","eventType","content","_this","_asyncToGenerator","members","getEncryptionTargetMembers","users","map","u","userId","payloadFields","room_id","roomId","type","encryptedContent","algorithm","OLM_ALGORITHM","sender_key","olmDevice","deviceCurve25519Key","ciphertext","promises","devices","getStoredDevicesForUser","deviceInfo","key","getIdentityKey","verified","BLOCKED","push","encryptMessageForDevice","deviceId","all","OlmDecryption","decryptEvent","event","_this2","getWireContent","deviceKey","OLM_MISSING_CIPHERTEXT","OLM_NOT_INCLUDED_IN_RECIPIENTS","message","payloadString","decryptMessage","e","OLM_BAD_ENCRYPTED_MESSAGE","sender","err","payload","JSON","parse","recipient","OLM_BAD_RECIPIENT","recipient_keys","ed25519","deviceEd25519Key","OLM_BAD_RECIPIENT_KEY","intended","our_key","senderKeyUser","deviceList","getUserByIdentityKey","undefined","getSender","OLM_BAD_SENDER_CHECK_FAILED","OLM_BAD_SENDER","real_sender","OLM_FORWARDED_MESSAGE","reported_sender","getRoomId","OLM_BAD_ROOM","reported_room","claimedKeys","keys","clearEvent","senderCurve25519Key","claimedEd25519Key","theirDeviceIdentityKey","reallyDecryptMessage","myPromise","olmPrekeyPromise","catch","_this3","sessionIds","getSessionIdsForDevice","decryptionErrors","sessionId","body","log","foundSession","matchesSession","Error","length","stringify","res","createInboundSession","session_id"],"sources":["../../../src/crypto/algorithms/olm.ts"],"sourcesContent":["/*\nCopyright 2016 - 2021 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n/**\n * Defines m.olm encryption/decryption\n */\n\nimport type { IEventDecryptionResult } from \"../../@types/crypto.ts\";\nimport { logger } from \"../../logger.ts\";\nimport * as olmlib from \"../olmlib.ts\";\nimport { DeviceInfo } from \"../deviceinfo.ts\";\nimport { DecryptionAlgorithm, EncryptionAlgorithm, registerAlgorithm } from \"./base.ts\";\nimport { Room } from \"../../models/room.ts\";\nimport { IContent, MatrixEvent } from \"../../models/event.ts\";\nimport { IEncryptedContent, IOlmEncryptedContent } from \"../index.ts\";\nimport { IInboundSession } from \"../OlmDevice.ts\";\nimport { DecryptionFailureCode } from \"../../crypto-api/index.ts\";\nimport { DecryptionError } from \"../../common-crypto/CryptoBackend.ts\";\n\nconst DeviceVerification = DeviceInfo.DeviceVerification;\n\nexport interface IMessage {\n type: number;\n body: string;\n}\n\n/**\n * Olm encryption implementation\n *\n * @param params - parameters, as per {@link EncryptionAlgorithm}\n */\nclass OlmEncryption extends EncryptionAlgorithm {\n private sessionPrepared = false;\n private prepPromise: Promise<void> | null = null;\n\n /**\n * @internal\n\n * @param roomMembers - list of currently-joined users in the room\n * @returns Promise which resolves when setup is complete\n */\n private ensureSession(roomMembers: string[]): Promise<void> {\n if (this.prepPromise) {\n // prep already in progress\n return this.prepPromise;\n }\n\n if (this.sessionPrepared) {\n // prep already done\n return Promise.resolve();\n }\n\n this.prepPromise = this.crypto\n .downloadKeys(roomMembers)\n .then(() => {\n return this.crypto.ensureOlmSessionsForUsers(roomMembers);\n })\n .then(() => {\n this.sessionPrepared = true;\n })\n .finally(() => {\n this.prepPromise = null;\n });\n\n return this.prepPromise;\n }\n\n /**\n * @param content - plaintext event content\n *\n * @returns Promise which resolves to the new event body\n */\n public async encryptMessage(room: Room, eventType: string, content: IContent): Promise<IOlmEncryptedContent> {\n // pick the list of recipients based on the membership list.\n //\n // TODO: there is a race condition here! What if a new user turns up\n // just as you are sending a secret message?\n\n const members = await room.getEncryptionTargetMembers();\n\n const users = members.map(function (u) {\n return u.userId;\n });\n\n await this.ensureSession(users);\n\n const payloadFields = {\n room_id: room.roomId,\n type: eventType,\n content: content,\n };\n\n const encryptedContent: IEncryptedContent = {\n algorithm: olmlib.OLM_ALGORITHM,\n sender_key: this.olmDevice.deviceCurve25519Key!,\n ciphertext: {},\n };\n\n const promises: Promise<void>[] = [];\n\n for (const userId of users) {\n const devices = this.crypto.getStoredDevicesForUser(userId) || [];\n\n for (const deviceInfo of devices) {\n const key = deviceInfo.getIdentityKey();\n if (key == this.olmDevice.deviceCurve25519Key) {\n // don't bother sending to ourself\n continue;\n }\n if (deviceInfo.verified == DeviceVerification.BLOCKED) {\n // don't bother setting up sessions with blocked users\n continue;\n }\n\n promises.push(\n olmlib.encryptMessageForDevice(\n encryptedContent.ciphertext,\n this.userId,\n this.deviceId,\n this.olmDevice,\n userId,\n deviceInfo,\n payloadFields,\n ),\n );\n }\n }\n\n return Promise.all(promises).then(() => encryptedContent);\n }\n}\n\n/**\n * Olm decryption implementation\n *\n * @param params - parameters, as per {@link DecryptionAlgorithm}\n */\nclass OlmDecryption extends DecryptionAlgorithm {\n /**\n * returns a promise which resolves to a\n * {@link EventDecryptionResult} once we have finished\n * decrypting. Rejects with an `algorithms.DecryptionError` if there is a\n * problem decrypting the event.\n */\n public async decryptEvent(event: MatrixEvent): Promise<IEventDecryptionResult> {\n const content = event.getWireContent();\n const deviceKey = content.sender_key;\n const ciphertext = content.ciphertext;\n\n if (!ciphertext) {\n throw new DecryptionError(DecryptionFailureCode.OLM_MISSING_CIPHERTEXT, \"Missing ciphertext\");\n }\n\n if (!(this.olmDevice.deviceCurve25519Key! in ciphertext)) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_NOT_INCLUDED_IN_RECIPIENTS,\n \"Not included in recipients\",\n );\n }\n const message = ciphertext[this.olmDevice.deviceCurve25519Key!];\n let payloadString: string;\n\n try {\n payloadString = await this.decryptMessage(deviceKey, message);\n } catch (e) {\n throw new DecryptionError(DecryptionFailureCode.OLM_BAD_ENCRYPTED_MESSAGE, \"Bad Encrypted Message\", {\n sender: deviceKey,\n err: e as Error,\n });\n }\n\n const payload = JSON.parse(payloadString);\n\n // check that we were the intended recipient, to avoid unknown-key attack\n // https://github.com/vector-im/vector-web/issues/2483\n if (payload.recipient != this.userId) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_BAD_RECIPIENT,\n \"Message was intended for \" + payload.recipient,\n );\n }\n\n if (payload.recipient_keys.ed25519 != this.olmDevice.deviceEd25519Key) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_BAD_RECIPIENT_KEY,\n \"Message not intended for this device\",\n {\n intended: payload.recipient_keys.ed25519,\n our_key: this.olmDevice.deviceEd25519Key!,\n },\n );\n }\n\n // check that the device that encrypted the event belongs to the user that the event claims it's from.\n //\n // If the device is unknown then we check that we don't have any pending key-query requests for the sender. If\n // after that the device is still unknown, then we can only assume that the device logged out and accept it\n // anyway. Some event handlers, such as secret sharing, may be more strict and reject events that come from\n // unknown devices.\n //\n // This is a defence against the following scenario:\n //\n // * Alice has verified Bob and Mallory.\n // * Mallory gets control of Alice's server, and sends a megolm session to Alice using her (Mallory's)\n // senderkey, but claiming to be from Bob.\n // * Mallory sends more events using that session, claiming to be from Bob.\n // * Alice sees that the senderkey is verified (since she verified Mallory) so marks events those events as\n // verified even though the sender is forged.\n //\n // In practice, it's not clear that the js-sdk would behave that way, so this may be only a defence in depth.\n\n let senderKeyUser = this.crypto.deviceList.getUserByIdentityKey(olmlib.OLM_ALGORITHM, deviceKey);\n if (senderKeyUser === undefined || senderKeyUser === null) {\n // Wait for any pending key query fetches for the user to complete before trying the lookup again.\n try {\n await this.crypto.deviceList.downloadKeys([event.getSender()!], false);\n } catch (e) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_BAD_SENDER_CHECK_FAILED,\n \"Could not verify sender identity\",\n {\n sender: deviceKey,\n err: e as Error,\n },\n );\n }\n\n senderKeyUser = this.crypto.deviceList.getUserByIdentityKey(olmlib.OLM_ALGORITHM, deviceKey);\n }\n if (senderKeyUser !== event.getSender() && senderKeyUser !== undefined && senderKeyUser !== null) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_BAD_SENDER,\n \"Message claimed to be from \" + event.getSender(),\n {\n real_sender: senderKeyUser,\n },\n );\n }\n\n // check that the original sender matches what the homeserver told us, to\n // avoid people masquerading as others.\n // (this check is also provided via the sender's embedded ed25519 key,\n // which is checked elsewhere).\n if (payload.sender != event.getSender()) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_FORWARDED_MESSAGE,\n \"Message forwarded from \" + payload.sender,\n {\n reported_sender: event.getSender()!,\n },\n );\n }\n\n // Olm events intended for a room have a room_id.\n if (payload.room_id !== event.getRoomId()) {\n throw new DecryptionError(\n DecryptionFailureCode.OLM_BAD_ROOM,\n \"Message intended for room \" + payload.room_id,\n {\n reported_room: event.getRoomId() || \"ROOM_ID_UNDEFINED\",\n },\n );\n }\n\n const claimedKeys = payload.keys || {};\n\n return {\n clearEvent: payload,\n senderCurve25519Key: deviceKey,\n claimedEd25519Key: claimedKeys.ed25519 || null,\n };\n }\n\n /**\n * Attempt to decrypt an Olm message\n *\n * @param theirDeviceIdentityKey - Curve25519 identity key of the sender\n * @param message - message object, with 'type' and 'body' fields\n *\n * @returns payload, if decrypted successfully.\n */\n private decryptMessage(theirDeviceIdentityKey: string, message: IMessage): Promise<string> {\n // This is a wrapper that serialises decryptions of prekey messages, because\n // otherwise we race between deciding we have no active sessions for the message\n // and creating a new one, which we can only do once because it removes the OTK.\n if (message.type !== 0) {\n // not a prekey message: we can safely just try & decrypt it\n return this.reallyDecryptMessage(theirDeviceIdentityKey, message);\n } else {\n const myPromise = this.olmDevice.olmPrekeyPromise.then(() => {\n return this.reallyDecryptMessage(theirDeviceIdentityKey, message);\n });\n // we want the error, but don't propagate it to the next decryption\n this.olmDevice.olmPrekeyPromise = myPromise.catch(() => {});\n return myPromise;\n }\n }\n\n private async reallyDecryptMessage(theirDeviceIdentityKey: string, message: IMessage): Promise<string> {\n const sessionIds = await this.olmDevice.getSessionIdsForDevice(theirDeviceIdentityKey);\n\n // try each session in turn.\n const decryptionErrors: Record<string, string> = {};\n for (const sessionId of sessionIds) {\n try {\n const payload = await this.olmDevice.decryptMessage(\n theirDeviceIdentityKey,\n sessionId,\n message.type,\n message.body,\n );\n logger.log(\"Decrypted Olm message from \" + theirDeviceIdentityKey + \" with session \" + sessionId);\n return payload;\n } catch (e) {\n const foundSession = await this.olmDevice.matchesSession(\n theirDeviceIdentityKey,\n sessionId,\n message.type,\n message.body,\n );\n\n if (foundSession) {\n // decryption failed, but it was a prekey message matching this\n // session, so it should have worked.\n throw new Error(\n \"Error decrypting prekey message with existing session id \" +\n sessionId +\n \": \" +\n (<Error>e).message,\n );\n }\n\n // otherwise it's probably a message for another session; carry on, but\n // keep a record of the error\n decryptionErrors[sessionId] = (<Error>e).message;\n }\n }\n\n if (message.type !== 0) {\n // not a prekey message, so it should have matched an existing session, but it\n // didn't work.\n\n if (sessionIds.length === 0) {\n throw new Error(\"No existing sessions\");\n }\n\n throw new Error(\n \"Error decrypting non-prekey message with existing sessions: \" + JSON.stringify(decryptionErrors),\n );\n }\n\n // prekey message which doesn't match any existing sessions: make a new\n // session.\n\n let res: IInboundSession;\n try {\n res = await this.olmDevice.createInboundSession(theirDeviceIdentityKey, message.type, message.body);\n } catch (e) {\n decryptionErrors[\"(new)\"] = (<Error>e).message;\n throw new Error(\"Error decrypting prekey message: \" + JSON.stringify(decryptionErrors));\n }\n\n logger.log(\"created new inbound Olm session ID \" + res.session_id + \" with \" + theirDeviceIdentityKey);\n return res.payload;\n }\n}\n\nregisterAlgorithm(olmlib.OLM_ALGORITHM, OlmEncryption, OlmDecryption);\n"],"mappings":"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","ignoreList":[]}
@@ -1,32 +0,0 @@
1
- import { DeviceInfo } from "./deviceinfo.ts";
2
- export { CrossSigningKey } from "../crypto-api/index.ts";
3
- export type { GeneratedSecretStorageKey as IRecoveryKey, CreateSecretStorageOpts as ICreateSecretStorageOpts, } from "../crypto-api/index.ts";
4
- export type { ImportRoomKeyProgressData as IImportOpts, ImportRoomKeysOpts as IImportRoomKeysOpts, } from "../crypto-api/index.ts";
5
- export type { AddSecretStorageKeyOpts as IAddSecretStorageKeyOpts, PassphraseInfo as IPassphraseInfo, SecretStorageKeyDescription as ISecretStorageKeyInfo, } from "../secret-storage.ts";
6
- export interface IEncryptedEventInfo {
7
- /**
8
- * whether the event is encrypted (if not encrypted, some of the other properties may not be set)
9
- */
10
- encrypted: boolean;
11
- /**
12
- * the sender's key
13
- */
14
- senderKey: string;
15
- /**
16
- * the algorithm used to encrypt the event
17
- */
18
- algorithm: string;
19
- /**
20
- * whether we can be sure that the owner of the senderKey sent the event
21
- */
22
- authenticated: boolean;
23
- /**
24
- * the sender's device information, if available
25
- */
26
- sender?: DeviceInfo;
27
- /**
28
- * if the event's ed25519 and curve25519 keys don't match (only meaningful if `sender` is set)
29
- */
30
- mismatchedSender: boolean;
31
- }
32
- //# sourceMappingURL=api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/crypto/api.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EACR,yBAAyB,IAAI,YAAY,EACzC,uBAAuB,IAAI,wBAAwB,GACtD,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACR,yBAAyB,IAAI,WAAW,EACxC,kBAAkB,IAAI,mBAAmB,GAC5C,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACR,uBAAuB,IAAI,wBAAwB,EACnD,cAAc,IAAI,eAAe,EACjC,2BAA2B,IAAI,qBAAqB,GACvD,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,gBAAgB,EAAE,OAAO,CAAC;CAC7B"}
package/lib/crypto/api.js DELETED
@@ -1,22 +0,0 @@
1
- /*
2
- Copyright 2021 The Matrix.org Foundation C.I.C.
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- /* re-exports for backwards compatibility. */
18
- // CrossSigningKey is used as a value in `client.ts`, we can't export it as a type
19
- export { CrossSigningKey } from "../crypto-api/index.js";
20
-
21
- // TODO: Merge this with crypto.js once converted
22
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","names":["CrossSigningKey"],"sources":["../../src/crypto/api.ts"],"sourcesContent":["/*\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { DeviceInfo } from \"./deviceinfo.ts\";\n\n/* re-exports for backwards compatibility. */\n// CrossSigningKey is used as a value in `client.ts`, we can't export it as a type\nexport { CrossSigningKey } from \"../crypto-api/index.ts\";\nexport type {\n GeneratedSecretStorageKey as IRecoveryKey,\n CreateSecretStorageOpts as ICreateSecretStorageOpts,\n} from \"../crypto-api/index.ts\";\n\nexport type {\n ImportRoomKeyProgressData as IImportOpts,\n ImportRoomKeysOpts as IImportRoomKeysOpts,\n} from \"../crypto-api/index.ts\";\n\nexport type {\n AddSecretStorageKeyOpts as IAddSecretStorageKeyOpts,\n PassphraseInfo as IPassphraseInfo,\n SecretStorageKeyDescription as ISecretStorageKeyInfo,\n} from \"../secret-storage.ts\";\n\n// TODO: Merge this with crypto.js once converted\n\nexport interface IEncryptedEventInfo {\n /**\n * whether the event is encrypted (if not encrypted, some of the other properties may not be set)\n */\n encrypted: boolean;\n\n /**\n * the sender's key\n */\n senderKey: string;\n\n /**\n * the algorithm used to encrypt the event\n */\n algorithm: string;\n\n /**\n * whether we can be sure that the owner of the senderKey sent the event\n */\n authenticated: boolean;\n\n /**\n * the sender's device information, if available\n */\n sender?: DeviceInfo;\n\n /**\n * if the event's ed25519 and curve25519 keys don't match (only meaningful if `sender` is set)\n */\n mismatchedSender: boolean;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA,SAASA,eAAe,QAAQ,wBAAwB;;AAiBxD","ignoreList":[]}
@@ -1,227 +0,0 @@
1
- /**
2
- * Classes for dealing with key backup.
3
- */
4
- import type { IMegolmSessionData } from "../@types/crypto.ts";
5
- import { MatrixClient } from "../client.ts";
6
- import { DeviceInfo } from "./deviceinfo.ts";
7
- import { DeviceTrustLevel } from "./CrossSigning.ts";
8
- import { Curve25519SessionData, IAes256AuthData, ICurve25519AuthData, IKeyBackupInfo, IKeyBackupSession } from "./keybackup.ts";
9
- import { BackupTrustInfo } from "../crypto-api/keybackup.ts";
10
- import { BackupDecryptor } from "../common-crypto/CryptoBackend.ts";
11
- import { AESEncryptedSecretStoragePayload } from "../@types/AESEncryptedSecretStoragePayload.ts";
12
- type AuthData = IKeyBackupInfo["auth_data"];
13
- type SigInfo = {
14
- deviceId: string;
15
- valid?: boolean | null;
16
- device?: DeviceInfo | null;
17
- crossSigningId?: boolean;
18
- deviceTrust?: DeviceTrustLevel;
19
- };
20
- /** @deprecated Prefer {@link BackupTrustInfo} */
21
- export type TrustInfo = {
22
- usable: boolean;
23
- sigs: SigInfo[];
24
- trusted_locally?: boolean;
25
- };
26
- export interface IKeyBackupCheck {
27
- backupInfo?: IKeyBackupInfo;
28
- trustInfo: TrustInfo;
29
- }
30
- export interface IPreparedKeyBackupVersion {
31
- algorithm: string;
32
- auth_data: AuthData;
33
- recovery_key: string;
34
- privateKey: Uint8Array;
35
- }
36
- /** A function used to get the secret key for a backup.
37
- */
38
- type GetKey = () => Promise<ArrayLike<number>>;
39
- interface BackupAlgorithmClass {
40
- algorithmName: string;
41
- init(authData: AuthData, getKey: GetKey): Promise<BackupAlgorithm>;
42
- prepare(key?: string | Uint8Array | null): Promise<[Uint8Array, AuthData]>;
43
- checkBackupVersion(info: IKeyBackupInfo): void;
44
- }
45
- interface BackupAlgorithm {
46
- untrusted: boolean;
47
- encryptSession(data: Record<string, any>): Promise<Curve25519SessionData | AESEncryptedSecretStoragePayload>;
48
- decryptSessions(ciphertexts: Record<string, IKeyBackupSession>): Promise<IMegolmSessionData[]>;
49
- authData: AuthData;
50
- keyMatches(key: ArrayLike<number>): Promise<boolean>;
51
- free(): void;
52
- }
53
- export interface IKeyBackup {
54
- rooms: {
55
- [roomId: string]: {
56
- sessions: {
57
- [sessionId: string]: IKeyBackupSession;
58
- };
59
- };
60
- };
61
- }
62
- /**
63
- * Manages the key backup.
64
- */
65
- export declare class BackupManager {
66
- private readonly baseApis;
67
- readonly getKey: GetKey;
68
- private algorithm;
69
- backupInfo: IKeyBackupInfo | undefined;
70
- checkedForBackup: boolean;
71
- private sendingBackups;
72
- private sessionLastCheckAttemptedTime;
73
- private clientRunning;
74
- constructor(baseApis: MatrixClient, getKey: GetKey);
75
- /**
76
- * Stop the backup manager from backing up keys and allow a clean shutdown.
77
- */
78
- stop(): void;
79
- get version(): string | undefined;
80
- /**
81
- * Performs a quick check to ensure that the backup info looks sane.
82
- *
83
- * Throws an error if a problem is detected.
84
- *
85
- * @param info - the key backup info
86
- */
87
- static checkBackupVersion(info: IKeyBackupInfo): void;
88
- static makeAlgorithm(info: IKeyBackupInfo, getKey: GetKey): Promise<BackupAlgorithm>;
89
- enableKeyBackup(info: IKeyBackupInfo): Promise<void>;
90
- /**
91
- * Disable backing up of keys.
92
- */
93
- disableKeyBackup(): void;
94
- getKeyBackupEnabled(): boolean | null;
95
- prepareKeyBackupVersion(key?: string | Uint8Array | null, algorithm?: string | undefined): Promise<IPreparedKeyBackupVersion>;
96
- createKeyBackupVersion(info: IKeyBackupInfo): Promise<void>;
97
- /**
98
- * Deletes all key backups.
99
- *
100
- * Will call the API to delete active backup until there is no more present.
101
- */
102
- deleteAllKeyBackupVersions(): Promise<void>;
103
- /**
104
- * Deletes the given key backup.
105
- *
106
- * @param version - The backup version to delete.
107
- */
108
- deleteKeyBackupVersion(version: string): Promise<void>;
109
- /**
110
- * Check the server for an active key backup and
111
- * if one is present and has a valid signature from
112
- * one of the user's verified devices, start backing up
113
- * to it.
114
- */
115
- checkAndStart(): Promise<IKeyBackupCheck | null>;
116
- /**
117
- * Forces a re-check of the key backup and enables/disables it
118
- * as appropriate.
119
- *
120
- * @returns Object with backup info (as returned by
121
- * getKeyBackupVersion) in backupInfo and
122
- * trust information (as returned by isKeyBackupTrusted)
123
- * in trustInfo.
124
- */
125
- checkKeyBackup(): Promise<IKeyBackupCheck | null>;
126
- /**
127
- * Attempts to retrieve a session from a key backup, if enough time
128
- * has elapsed since the last check for this session id.
129
- */
130
- queryKeyBackupRateLimited(targetRoomId: string | undefined, targetSessionId: string | undefined): Promise<void>;
131
- /**
132
- * Check if the given backup info is trusted.
133
- *
134
- * @param backupInfo - key backup info dict from /room_keys/version
135
- */
136
- isKeyBackupTrusted(backupInfo?: IKeyBackupInfo): Promise<TrustInfo>;
137
- /**
138
- * Schedules sending all keys waiting to be sent to the backup, if not already
139
- * scheduled. Retries if necessary.
140
- *
141
- * @param maxDelay - Maximum delay to wait in ms. 0 means no delay.
142
- */
143
- scheduleKeyBackupSend(maxDelay?: number): Promise<void>;
144
- /**
145
- * Take some e2e keys waiting to be backed up and send them
146
- * to the backup.
147
- *
148
- * @param limit - Maximum number of keys to back up
149
- * @returns Number of sessions backed up
150
- */
151
- backupPendingKeys(limit: number): Promise<number>;
152
- backupGroupSession(senderKey: string, sessionId: string): Promise<void>;
153
- /**
154
- * Marks all group sessions as needing to be backed up and schedules them to
155
- * upload in the background as soon as possible.
156
- */
157
- scheduleAllGroupSessionsForBackup(): Promise<void>;
158
- /**
159
- * Marks all group sessions as needing to be backed up without scheduling
160
- * them to upload in the background.
161
- * @returns Promise which resolves to the number of sessions now requiring a backup
162
- * (which will be equal to the number of sessions in the store).
163
- */
164
- flagAllGroupSessionsForBackup(): Promise<number>;
165
- /**
166
- * Counts the number of end to end session keys that are waiting to be backed up
167
- * @returns Promise which resolves to the number of sessions requiring backup
168
- */
169
- countSessionsNeedingBackup(): Promise<number>;
170
- }
171
- export declare class Curve25519 implements BackupAlgorithm {
172
- authData: ICurve25519AuthData;
173
- private publicKey;
174
- private getKey;
175
- static algorithmName: string;
176
- constructor(authData: ICurve25519AuthData, publicKey: any, // FIXME: PkEncryption
177
- getKey: () => Promise<Uint8Array>);
178
- static init(authData: AuthData, getKey: () => Promise<Uint8Array>): Promise<Curve25519>;
179
- static prepare(key?: string | Uint8Array | null): Promise<[Uint8Array, AuthData]>;
180
- static checkBackupVersion(info: IKeyBackupInfo): void;
181
- get untrusted(): boolean;
182
- encryptSession(data: Record<string, any>): Promise<Curve25519SessionData>;
183
- decryptSessions(sessions: Record<string, IKeyBackupSession<Curve25519SessionData>>): Promise<IMegolmSessionData[]>;
184
- keyMatches(key: Uint8Array): Promise<boolean>;
185
- free(): void;
186
- }
187
- export declare class Aes256 implements BackupAlgorithm {
188
- readonly authData: IAes256AuthData;
189
- private readonly key;
190
- static algorithmName: "org.matrix.msc3270.v1.aes-hmac-sha2";
191
- constructor(authData: IAes256AuthData, key: Uint8Array);
192
- static init(authData: IAes256AuthData, getKey: () => Promise<Uint8Array>): Promise<Aes256>;
193
- static prepare(key?: string | Uint8Array | null): Promise<[Uint8Array, AuthData]>;
194
- static checkBackupVersion(info: IKeyBackupInfo): void;
195
- get untrusted(): boolean;
196
- encryptSession(data: Record<string, any>): Promise<AESEncryptedSecretStoragePayload>;
197
- decryptSessions(sessions: Record<string, IKeyBackupSession<AESEncryptedSecretStoragePayload>>): Promise<IMegolmSessionData[]>;
198
- keyMatches(key: Uint8Array): Promise<boolean>;
199
- free(): void;
200
- }
201
- export declare const algorithmsByName: Record<string, BackupAlgorithmClass>;
202
- /** @alias */
203
- export declare const DefaultAlgorithm: BackupAlgorithmClass;
204
- /**
205
- * Map a legacy {@link TrustInfo} into a new-style {@link BackupTrustInfo}.
206
- *
207
- * @param trustInfo - trustInfo to convert
208
- */
209
- export declare function backupTrustInfoFromLegacyTrustInfo(trustInfo: TrustInfo): BackupTrustInfo;
210
- /**
211
- * Implementation of {@link BackupDecryptor} for the libolm crypto backend.
212
- */
213
- export declare class LibOlmBackupDecryptor implements BackupDecryptor {
214
- private algorithm;
215
- readonly sourceTrusted: boolean;
216
- constructor(algorithm: BackupAlgorithm);
217
- /**
218
- * Implements {@link BackupDecryptor#free}
219
- */
220
- free(): void;
221
- /**
222
- * Implements {@link BackupDecryptor#decryptSessions}
223
- */
224
- decryptSessions(sessions: Record<string, IKeyBackupSession<Curve25519SessionData>>): Promise<IMegolmSessionData[]>;
225
- }
226
- export {};
227
- //# sourceMappingURL=backup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/crypto/backup.ts"],"names":[],"mappings":"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"}