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

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