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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (467) 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 -1176
  8. package/lib/client.d.ts.map +1 -1
  9. package/lib/client.js +346 -2717
  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/package.json +1 -3
  62. package/src/@types/global.d.ts +0 -3
  63. package/src/browser-index.ts +0 -11
  64. package/src/client.ts +57 -2732
  65. package/src/embedded.ts +3 -130
  66. package/src/event-mapper.ts +0 -4
  67. package/src/matrix.ts +0 -28
  68. package/src/models/MSC3089Branch.ts +0 -3
  69. package/src/models/event.ts +0 -289
  70. package/src/models/poll.ts +0 -6
  71. package/src/models/relations-container.ts +1 -8
  72. package/src/models/relations.ts +0 -8
  73. package/src/models/room-state.ts +2 -8
  74. package/src/models/room.ts +0 -62
  75. package/src/models/thread.ts +0 -1
  76. package/src/sliding-sync-sdk.ts +2 -72
  77. package/src/sync.ts +1 -98
  78. package/src/testing.ts +0 -108
  79. package/lib/@types/crypto.d.ts +0 -47
  80. package/lib/@types/crypto.d.ts.map +0 -1
  81. package/lib/@types/crypto.js +0 -1
  82. package/lib/@types/crypto.js.map +0 -1
  83. package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
  84. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
  85. package/lib/common-crypto/CryptoBackend.d.ts +0 -240
  86. package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
  87. package/lib/common-crypto/CryptoBackend.js +0 -73
  88. package/lib/common-crypto/CryptoBackend.js.map +0 -1
  89. package/lib/common-crypto/key-passphrase.d.ts +0 -14
  90. package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
  91. package/lib/common-crypto/key-passphrase.js +0 -33
  92. package/lib/common-crypto/key-passphrase.js.map +0 -1
  93. package/lib/crypto/CrossSigning.d.ts +0 -184
  94. package/lib/crypto/CrossSigning.d.ts.map +0 -1
  95. package/lib/crypto/CrossSigning.js +0 -718
  96. package/lib/crypto/CrossSigning.js.map +0 -1
  97. package/lib/crypto/DeviceList.d.ts +0 -216
  98. package/lib/crypto/DeviceList.d.ts.map +0 -1
  99. package/lib/crypto/DeviceList.js +0 -892
  100. package/lib/crypto/DeviceList.js.map +0 -1
  101. package/lib/crypto/EncryptionSetup.d.ts +0 -152
  102. package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
  103. package/lib/crypto/EncryptionSetup.js +0 -356
  104. package/lib/crypto/EncryptionSetup.js.map +0 -1
  105. package/lib/crypto/OlmDevice.d.ts +0 -457
  106. package/lib/crypto/OlmDevice.d.ts.map +0 -1
  107. package/lib/crypto/OlmDevice.js +0 -1241
  108. package/lib/crypto/OlmDevice.js.map +0 -1
  109. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
  110. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
  111. package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
  112. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
  113. package/lib/crypto/RoomList.d.ts +0 -26
  114. package/lib/crypto/RoomList.d.ts.map +0 -1
  115. package/lib/crypto/RoomList.js +0 -71
  116. package/lib/crypto/RoomList.js.map +0 -1
  117. package/lib/crypto/SecretSharing.d.ts +0 -24
  118. package/lib/crypto/SecretSharing.d.ts.map +0 -1
  119. package/lib/crypto/SecretSharing.js +0 -194
  120. package/lib/crypto/SecretSharing.js.map +0 -1
  121. package/lib/crypto/SecretStorage.d.ts +0 -55
  122. package/lib/crypto/SecretStorage.d.ts.map +0 -1
  123. package/lib/crypto/SecretStorage.js +0 -118
  124. package/lib/crypto/SecretStorage.js.map +0 -1
  125. package/lib/crypto/aes.d.ts +0 -6
  126. package/lib/crypto/aes.d.ts.map +0 -1
  127. package/lib/crypto/aes.js +0 -24
  128. package/lib/crypto/aes.js.map +0 -1
  129. package/lib/crypto/algorithms/base.d.ts +0 -156
  130. package/lib/crypto/algorithms/base.d.ts.map +0 -1
  131. package/lib/crypto/algorithms/base.js +0 -187
  132. package/lib/crypto/algorithms/base.js.map +0 -1
  133. package/lib/crypto/algorithms/index.d.ts +0 -4
  134. package/lib/crypto/algorithms/index.d.ts.map +0 -1
  135. package/lib/crypto/algorithms/index.js +0 -20
  136. package/lib/crypto/algorithms/index.js.map +0 -1
  137. package/lib/crypto/algorithms/megolm.d.ts +0 -385
  138. package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
  139. package/lib/crypto/algorithms/megolm.js +0 -1822
  140. package/lib/crypto/algorithms/megolm.js.map +0 -1
  141. package/lib/crypto/algorithms/olm.d.ts +0 -5
  142. package/lib/crypto/algorithms/olm.d.ts.map +0 -1
  143. package/lib/crypto/algorithms/olm.js +0 -299
  144. package/lib/crypto/algorithms/olm.js.map +0 -1
  145. package/lib/crypto/api.d.ts +0 -32
  146. package/lib/crypto/api.d.ts.map +0 -1
  147. package/lib/crypto/api.js +0 -22
  148. package/lib/crypto/api.js.map +0 -1
  149. package/lib/crypto/backup.d.ts +0 -227
  150. package/lib/crypto/backup.d.ts.map +0 -1
  151. package/lib/crypto/backup.js +0 -824
  152. package/lib/crypto/backup.js.map +0 -1
  153. package/lib/crypto/crypto.d.ts +0 -3
  154. package/lib/crypto/crypto.d.ts.map +0 -1
  155. package/lib/crypto/crypto.js +0 -19
  156. package/lib/crypto/crypto.js.map +0 -1
  157. package/lib/crypto/dehydration.d.ts +0 -34
  158. package/lib/crypto/dehydration.d.ts.map +0 -1
  159. package/lib/crypto/dehydration.js +0 -252
  160. package/lib/crypto/dehydration.js.map +0 -1
  161. package/lib/crypto/device-converter.d.ts +0 -9
  162. package/lib/crypto/device-converter.d.ts.map +0 -1
  163. package/lib/crypto/device-converter.js +0 -42
  164. package/lib/crypto/device-converter.js.map +0 -1
  165. package/lib/crypto/deviceinfo.d.ts +0 -99
  166. package/lib/crypto/deviceinfo.d.ts.map +0 -1
  167. package/lib/crypto/deviceinfo.js +0 -148
  168. package/lib/crypto/deviceinfo.js.map +0 -1
  169. package/lib/crypto/index.d.ts +0 -1209
  170. package/lib/crypto/index.d.ts.map +0 -1
  171. package/lib/crypto/index.js +0 -4097
  172. package/lib/crypto/index.js.map +0 -1
  173. package/lib/crypto/key_passphrase.d.ts +0 -14
  174. package/lib/crypto/key_passphrase.d.ts.map +0 -1
  175. package/lib/crypto/key_passphrase.js +0 -44
  176. package/lib/crypto/key_passphrase.js.map +0 -1
  177. package/lib/crypto/keybackup.d.ts +0 -18
  178. package/lib/crypto/keybackup.d.ts.map +0 -1
  179. package/lib/crypto/keybackup.js +0 -1
  180. package/lib/crypto/keybackup.js.map +0 -1
  181. package/lib/crypto/olmlib.d.ts +0 -129
  182. package/lib/crypto/olmlib.d.ts.map +0 -1
  183. package/lib/crypto/olmlib.js +0 -492
  184. package/lib/crypto/olmlib.js.map +0 -1
  185. package/lib/crypto/recoverykey.d.ts +0 -2
  186. package/lib/crypto/recoverykey.d.ts.map +0 -1
  187. package/lib/crypto/recoverykey.js +0 -19
  188. package/lib/crypto/recoverykey.js.map +0 -1
  189. package/lib/crypto/store/base.d.ts +0 -252
  190. package/lib/crypto/store/base.d.ts.map +0 -1
  191. package/lib/crypto/store/base.js +0 -64
  192. package/lib/crypto/store/base.js.map +0 -1
  193. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
  194. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
  195. package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
  196. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
  197. package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
  198. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
  199. package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
  200. package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
  201. package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
  202. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
  203. package/lib/crypto/store/localStorage-crypto-store.js +0 -531
  204. package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
  205. package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
  206. package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
  207. package/lib/crypto/store/memory-crypto-store.js +0 -622
  208. package/lib/crypto/store/memory-crypto-store.js.map +0 -1
  209. package/lib/crypto/verification/Base.d.ts +0 -105
  210. package/lib/crypto/verification/Base.d.ts.map +0 -1
  211. package/lib/crypto/verification/Base.js +0 -372
  212. package/lib/crypto/verification/Base.js.map +0 -1
  213. package/lib/crypto/verification/Error.d.ts +0 -35
  214. package/lib/crypto/verification/Error.d.ts.map +0 -1
  215. package/lib/crypto/verification/Error.js +0 -86
  216. package/lib/crypto/verification/Error.js.map +0 -1
  217. package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
  218. package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
  219. package/lib/crypto/verification/IllegalMethod.js +0 -43
  220. package/lib/crypto/verification/IllegalMethod.js.map +0 -1
  221. package/lib/crypto/verification/QRCode.d.ts +0 -51
  222. package/lib/crypto/verification/QRCode.d.ts.map +0 -1
  223. package/lib/crypto/verification/QRCode.js +0 -277
  224. package/lib/crypto/verification/QRCode.js.map +0 -1
  225. package/lib/crypto/verification/SAS.d.ts +0 -27
  226. package/lib/crypto/verification/SAS.d.ts.map +0 -1
  227. package/lib/crypto/verification/SAS.js +0 -485
  228. package/lib/crypto/verification/SAS.js.map +0 -1
  229. package/lib/crypto/verification/SASDecimal.d.ts +0 -8
  230. package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
  231. package/lib/crypto/verification/SASDecimal.js +0 -34
  232. package/lib/crypto/verification/SASDecimal.js.map +0 -1
  233. package/lib/crypto/verification/request/Channel.d.ts +0 -18
  234. package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
  235. package/lib/crypto/verification/request/Channel.js +0 -1
  236. package/lib/crypto/verification/request/Channel.js.map +0 -1
  237. package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
  238. package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
  239. package/lib/crypto/verification/request/InRoomChannel.js +0 -351
  240. package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
  241. package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
  242. package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
  243. package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
  244. package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
  245. package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
  246. package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
  247. package/lib/crypto/verification/request/VerificationRequest.js +0 -937
  248. package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
  249. package/lib/crypto-api/CryptoEvent.d.ts +0 -69
  250. package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
  251. package/lib/crypto-api/CryptoEvent.js +0 -33
  252. package/lib/crypto-api/CryptoEvent.js.map +0 -1
  253. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
  254. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
  255. package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
  256. package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
  257. package/lib/crypto-api/index.d.ts +0 -978
  258. package/lib/crypto-api/index.d.ts.map +0 -1
  259. package/lib/crypto-api/index.js +0 -304
  260. package/lib/crypto-api/index.js.map +0 -1
  261. package/lib/crypto-api/key-passphrase.d.ts +0 -11
  262. package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
  263. package/lib/crypto-api/key-passphrase.js +0 -51
  264. package/lib/crypto-api/key-passphrase.js.map +0 -1
  265. package/lib/crypto-api/keybackup.d.ts +0 -88
  266. package/lib/crypto-api/keybackup.d.ts.map +0 -1
  267. package/lib/crypto-api/keybackup.js +0 -1
  268. package/lib/crypto-api/keybackup.js.map +0 -1
  269. package/lib/crypto-api/recovery-key.d.ts +0 -11
  270. package/lib/crypto-api/recovery-key.d.ts.map +0 -1
  271. package/lib/crypto-api/recovery-key.js +0 -65
  272. package/lib/crypto-api/recovery-key.js.map +0 -1
  273. package/lib/crypto-api/verification.d.ts +0 -344
  274. package/lib/crypto-api/verification.d.ts.map +0 -1
  275. package/lib/crypto-api/verification.js +0 -91
  276. package/lib/crypto-api/verification.js.map +0 -1
  277. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
  278. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
  279. package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
  280. package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
  281. package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
  282. package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
  283. package/lib/rendezvous/RendezvousChannel.js +0 -1
  284. package/lib/rendezvous/RendezvousChannel.js.map +0 -1
  285. package/lib/rendezvous/RendezvousCode.d.ts +0 -9
  286. package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
  287. package/lib/rendezvous/RendezvousCode.js +0 -1
  288. package/lib/rendezvous/RendezvousCode.js.map +0 -1
  289. package/lib/rendezvous/RendezvousError.d.ts +0 -6
  290. package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
  291. package/lib/rendezvous/RendezvousError.js +0 -23
  292. package/lib/rendezvous/RendezvousError.js.map +0 -1
  293. package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
  294. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
  295. package/lib/rendezvous/RendezvousFailureReason.js +0 -38
  296. package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
  297. package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
  298. package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
  299. package/lib/rendezvous/RendezvousIntent.js +0 -22
  300. package/lib/rendezvous/RendezvousIntent.js.map +0 -1
  301. package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
  302. package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
  303. package/lib/rendezvous/RendezvousTransport.js +0 -1
  304. package/lib/rendezvous/RendezvousTransport.js.map +0 -1
  305. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
  306. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
  307. package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
  308. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
  309. package/lib/rendezvous/channels/index.d.ts +0 -2
  310. package/lib/rendezvous/channels/index.d.ts.map +0 -1
  311. package/lib/rendezvous/channels/index.js +0 -18
  312. package/lib/rendezvous/channels/index.js.map +0 -1
  313. package/lib/rendezvous/index.d.ts +0 -10
  314. package/lib/rendezvous/index.d.ts.map +0 -1
  315. package/lib/rendezvous/index.js +0 -23
  316. package/lib/rendezvous/index.js.map +0 -1
  317. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
  318. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
  319. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
  320. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
  321. package/lib/rendezvous/transports/index.d.ts +0 -2
  322. package/lib/rendezvous/transports/index.d.ts.map +0 -1
  323. package/lib/rendezvous/transports/index.js +0 -18
  324. package/lib/rendezvous/transports/index.js.map +0 -1
  325. package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
  326. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
  327. package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
  328. package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
  329. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
  330. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
  331. package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
  332. package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
  333. package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
  334. package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
  335. package/lib/rust-crypto/KeyClaimManager.js +0 -82
  336. package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
  337. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
  338. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
  339. package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
  340. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
  341. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
  342. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
  343. package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
  344. package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
  345. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
  346. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
  347. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
  348. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
  349. package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
  350. package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
  351. package/lib/rust-crypto/RoomEncryptor.js +0 -299
  352. package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
  353. package/lib/rust-crypto/backup.d.ts +0 -254
  354. package/lib/rust-crypto/backup.d.ts.map +0 -1
  355. package/lib/rust-crypto/backup.js +0 -837
  356. package/lib/rust-crypto/backup.js.map +0 -1
  357. package/lib/rust-crypto/constants.d.ts +0 -3
  358. package/lib/rust-crypto/constants.d.ts.map +0 -1
  359. package/lib/rust-crypto/constants.js +0 -19
  360. package/lib/rust-crypto/constants.js.map +0 -1
  361. package/lib/rust-crypto/device-converter.d.ts +0 -28
  362. package/lib/rust-crypto/device-converter.d.ts.map +0 -1
  363. package/lib/rust-crypto/device-converter.js +0 -123
  364. package/lib/rust-crypto/device-converter.js.map +0 -1
  365. package/lib/rust-crypto/index.d.ts +0 -61
  366. package/lib/rust-crypto/index.d.ts.map +0 -1
  367. package/lib/rust-crypto/index.js +0 -152
  368. package/lib/rust-crypto/index.js.map +0 -1
  369. package/lib/rust-crypto/libolm_migration.d.ts +0 -81
  370. package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
  371. package/lib/rust-crypto/libolm_migration.js +0 -459
  372. package/lib/rust-crypto/libolm_migration.js.map +0 -1
  373. package/lib/rust-crypto/rust-crypto.d.ts +0 -556
  374. package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
  375. package/lib/rust-crypto/rust-crypto.js +0 -2016
  376. package/lib/rust-crypto/rust-crypto.js.map +0 -1
  377. package/lib/rust-crypto/secret-storage.d.ts +0 -22
  378. package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
  379. package/lib/rust-crypto/secret-storage.js +0 -63
  380. package/lib/rust-crypto/secret-storage.js.map +0 -1
  381. package/lib/rust-crypto/verification.d.ts +0 -319
  382. package/lib/rust-crypto/verification.d.ts.map +0 -1
  383. package/lib/rust-crypto/verification.js +0 -816
  384. package/lib/rust-crypto/verification.js.map +0 -1
  385. package/lib/secret-storage.d.ts +0 -370
  386. package/lib/secret-storage.d.ts.map +0 -1
  387. package/lib/secret-storage.js +0 -466
  388. package/lib/secret-storage.js.map +0 -1
  389. package/src/@types/crypto.ts +0 -73
  390. package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
  391. package/src/common-crypto/CryptoBackend.ts +0 -302
  392. package/src/common-crypto/README.md +0 -4
  393. package/src/common-crypto/key-passphrase.ts +0 -43
  394. package/src/crypto/CrossSigning.ts +0 -773
  395. package/src/crypto/DeviceList.ts +0 -989
  396. package/src/crypto/EncryptionSetup.ts +0 -351
  397. package/src/crypto/OlmDevice.ts +0 -1500
  398. package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
  399. package/src/crypto/RoomList.ts +0 -70
  400. package/src/crypto/SecretSharing.ts +0 -240
  401. package/src/crypto/SecretStorage.ts +0 -136
  402. package/src/crypto/aes.ts +0 -23
  403. package/src/crypto/algorithms/base.ts +0 -236
  404. package/src/crypto/algorithms/index.ts +0 -20
  405. package/src/crypto/algorithms/megolm.ts +0 -2216
  406. package/src/crypto/algorithms/olm.ts +0 -381
  407. package/src/crypto/api.ts +0 -70
  408. package/src/crypto/backup.ts +0 -922
  409. package/src/crypto/crypto.ts +0 -18
  410. package/src/crypto/dehydration.ts +0 -272
  411. package/src/crypto/device-converter.ts +0 -45
  412. package/src/crypto/deviceinfo.ts +0 -158
  413. package/src/crypto/index.ts +0 -4414
  414. package/src/crypto/key_passphrase.ts +0 -42
  415. package/src/crypto/keybackup.ts +0 -47
  416. package/src/crypto/olmlib.ts +0 -539
  417. package/src/crypto/recoverykey.ts +0 -18
  418. package/src/crypto/store/base.ts +0 -348
  419. package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
  420. package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
  421. package/src/crypto/store/localStorage-crypto-store.ts +0 -579
  422. package/src/crypto/store/memory-crypto-store.ts +0 -680
  423. package/src/crypto/verification/Base.ts +0 -409
  424. package/src/crypto/verification/Error.ts +0 -76
  425. package/src/crypto/verification/IllegalMethod.ts +0 -50
  426. package/src/crypto/verification/QRCode.ts +0 -310
  427. package/src/crypto/verification/SAS.ts +0 -494
  428. package/src/crypto/verification/SASDecimal.ts +0 -37
  429. package/src/crypto/verification/request/Channel.ts +0 -34
  430. package/src/crypto/verification/request/InRoomChannel.ts +0 -371
  431. package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
  432. package/src/crypto/verification/request/VerificationRequest.ts +0 -976
  433. package/src/crypto-api/CryptoEvent.ts +0 -93
  434. package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
  435. package/src/crypto-api/index.ts +0 -1175
  436. package/src/crypto-api/key-passphrase.ts +0 -58
  437. package/src/crypto-api/keybackup.ts +0 -115
  438. package/src/crypto-api/recovery-key.ts +0 -69
  439. package/src/crypto-api/verification.ts +0 -408
  440. package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
  441. package/src/rendezvous/RendezvousChannel.ts +0 -48
  442. package/src/rendezvous/RendezvousCode.ts +0 -25
  443. package/src/rendezvous/RendezvousError.ts +0 -26
  444. package/src/rendezvous/RendezvousFailureReason.ts +0 -49
  445. package/src/rendezvous/RendezvousIntent.ts +0 -20
  446. package/src/rendezvous/RendezvousTransport.ts +0 -58
  447. package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
  448. package/src/rendezvous/channels/index.ts +0 -17
  449. package/src/rendezvous/index.ts +0 -25
  450. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
  451. package/src/rendezvous/transports/index.ts +0 -17
  452. package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
  453. package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
  454. package/src/rust-crypto/KeyClaimManager.ts +0 -86
  455. package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
  456. package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
  457. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
  458. package/src/rust-crypto/RoomEncryptor.ts +0 -352
  459. package/src/rust-crypto/backup.ts +0 -881
  460. package/src/rust-crypto/constants.ts +0 -18
  461. package/src/rust-crypto/device-converter.ts +0 -128
  462. package/src/rust-crypto/index.ts +0 -237
  463. package/src/rust-crypto/libolm_migration.ts +0 -530
  464. package/src/rust-crypto/rust-crypto.ts +0 -2205
  465. package/src/rust-crypto/secret-storage.ts +0 -60
  466. package/src/rust-crypto/verification.ts +0 -830
  467. package/src/secret-storage.ts +0 -693
@@ -1,485 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- /*
4
- Copyright 2018 - 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
- * Short Authentication String (SAS) verification.
21
- */
22
-
23
- import anotherjson from "another-json";
24
- import { VerificationBase as Base, SwitchStartEventError } from "./Base.js";
25
- import { errorFactory, newInvalidMessageError, newKeyMismatchError, newUnknownMethodError, newUserCancelledError } from "./Error.js";
26
- import { logger } from "../../logger.js";
27
- import { generateDecimalSas } from "./SASDecimal.js";
28
- import { EventType } from "../../@types/event.js";
29
- import { VerifierEvent } from "../../crypto-api/verification.js";
30
- import { VerificationMethod } from "../../types.js";
31
-
32
- // backwards-compatibility exports
33
-
34
- var START_TYPE = EventType.KeyVerificationStart;
35
- var EVENTS = [EventType.KeyVerificationAccept, EventType.KeyVerificationKey, EventType.KeyVerificationMac];
36
- var olmutil;
37
- var newMismatchedSASError = errorFactory("m.mismatched_sas", "Mismatched short authentication string");
38
- var newMismatchedCommitmentError = errorFactory("m.mismatched_commitment", "Mismatched commitment");
39
-
40
- // This list was generated from the data in the Matrix specification [1] with the following command:
41
- //
42
- // jq -r '.[] | " [\"" + .emoji + "\", \"" + (.description|ascii_downcase) + "\"], // " + (.number|tostring)' sas-emoji.json
43
- //
44
- // [1]: https://github.com/matrix-org/matrix-spec/blob/main/data-definitions/sas-emoji.json
45
- var emojiMapping = [["🐶", "dog"],
46
- // 0
47
- ["🐱", "cat"],
48
- // 1
49
- ["🦁", "lion"],
50
- // 2
51
- ["🐎", "horse"],
52
- // 3
53
- ["🦄", "unicorn"],
54
- // 4
55
- ["🐷", "pig"],
56
- // 5
57
- ["🐘", "elephant"],
58
- // 6
59
- ["🐰", "rabbit"],
60
- // 7
61
- ["🐼", "panda"],
62
- // 8
63
- ["🐓", "rooster"],
64
- // 9
65
- ["🐧", "penguin"],
66
- // 10
67
- ["🐢", "turtle"],
68
- // 11
69
- ["🐟", "fish"],
70
- // 12
71
- ["🐙", "octopus"],
72
- // 13
73
- ["🦋", "butterfly"],
74
- // 14
75
- ["🌷", "flower"],
76
- // 15
77
- ["🌳", "tree"],
78
- // 16
79
- ["🌵", "cactus"],
80
- // 17
81
- ["🍄", "mushroom"],
82
- // 18
83
- ["🌏", "globe"],
84
- // 19
85
- ["🌙", "moon"],
86
- // 20
87
- ["☁️", "cloud"],
88
- // 21
89
- ["🔥", "fire"],
90
- // 22
91
- ["🍌", "banana"],
92
- // 23
93
- ["🍎", "apple"],
94
- // 24
95
- ["🍓", "strawberry"],
96
- // 25
97
- ["🌽", "corn"],
98
- // 26
99
- ["🍕", "pizza"],
100
- // 27
101
- ["🎂", "cake"],
102
- // 28
103
- ["❤️", "heart"],
104
- // 29
105
- ["😀", "smiley"],
106
- // 30
107
- ["🤖", "robot"],
108
- // 31
109
- ["🎩", "hat"],
110
- // 32
111
- ["👓", "glasses"],
112
- // 33
113
- ["🔧", "spanner"],
114
- // 34
115
- ["🎅", "santa"],
116
- // 35
117
- ["👍", "thumbs up"],
118
- // 36
119
- ["☂️", "umbrella"],
120
- // 37
121
- ["⌛", "hourglass"],
122
- // 38
123
- ["⏰", "clock"],
124
- // 39
125
- ["🎁", "gift"],
126
- // 40
127
- ["💡", "light bulb"],
128
- // 41
129
- ["📕", "book"],
130
- // 42
131
- ["✏️", "pencil"],
132
- // 43
133
- ["📎", "paperclip"],
134
- // 44
135
- ["✂️", "scissors"],
136
- // 45
137
- ["🔒", "lock"],
138
- // 46
139
- ["🔑", "key"],
140
- // 47
141
- ["🔨", "hammer"],
142
- // 48
143
- ["☎️", "telephone"],
144
- // 49
145
- ["🏁", "flag"],
146
- // 50
147
- ["🚂", "train"],
148
- // 51
149
- ["🚲", "bicycle"],
150
- // 52
151
- ["✈️", "aeroplane"],
152
- // 53
153
- ["🚀", "rocket"],
154
- // 54
155
- ["🏆", "trophy"],
156
- // 55
157
- ["⚽", "ball"],
158
- // 56
159
- ["🎸", "guitar"],
160
- // 57
161
- ["🎺", "trumpet"],
162
- // 58
163
- ["🔔", "bell"],
164
- // 59
165
- ["⚓", "anchor"],
166
- // 60
167
- ["🎧", "headphones"],
168
- // 61
169
- ["📁", "folder"],
170
- // 62
171
- ["📌", "pin"] // 63
172
- ];
173
- function generateEmojiSas(sasBytes) {
174
- var emojis = [
175
- // just like base64 encoding
176
- sasBytes[0] >> 2, (sasBytes[0] & 0x3) << 4 | sasBytes[1] >> 4, (sasBytes[1] & 0xf) << 2 | sasBytes[2] >> 6, sasBytes[2] & 0x3f, sasBytes[3] >> 2, (sasBytes[3] & 0x3) << 4 | sasBytes[4] >> 4, (sasBytes[4] & 0xf) << 2 | sasBytes[5] >> 6];
177
- return emojis.map(num => emojiMapping[num]);
178
- }
179
- var sasGenerators = {
180
- decimal: generateDecimalSas,
181
- emoji: generateEmojiSas
182
- };
183
- function generateSas(sasBytes, methods) {
184
- var sas = {};
185
- for (var method of methods) {
186
- if (method in sasGenerators) {
187
- // @ts-ignore - ts doesn't like us mixing types like this
188
- sas[method] = sasGenerators[method](Array.from(sasBytes));
189
- }
190
- }
191
- return sas;
192
- }
193
- var macMethods = {
194
- "hkdf-hmac-sha256": "calculate_mac",
195
- "org.matrix.msc3783.hkdf-hmac-sha256": "calculate_mac_fixed_base64",
196
- "hkdf-hmac-sha256.v2": "calculate_mac_fixed_base64",
197
- "hmac-sha256": "calculate_mac_long_kdf"
198
- };
199
- function calculateMAC(olmSAS, method) {
200
- return function (input, info) {
201
- var mac = olmSAS[macMethods[method]](input, info);
202
- logger.log("SAS calculateMAC:", method, [input, info], mac);
203
- return mac;
204
- };
205
- }
206
- var calculateKeyAgreement = {
207
- // eslint-disable-next-line @typescript-eslint/naming-convention
208
- "curve25519-hkdf-sha256": function curve25519HkdfSha256(sas, olmSAS, bytes) {
209
- var ourInfo = "".concat(sas.baseApis.getUserId(), "|").concat(sas.baseApis.deviceId, "|") + "".concat(sas.ourSASPubKey, "|");
210
- var theirInfo = "".concat(sas.userId, "|").concat(sas.deviceId, "|").concat(sas.theirSASPubKey, "|");
211
- var sasInfo = "MATRIX_KEY_VERIFICATION_SAS|" + (sas.initiatedByMe ? ourInfo + theirInfo : theirInfo + ourInfo) + sas.channel.transactionId;
212
- return olmSAS.generate_bytes(sasInfo, bytes);
213
- },
214
- "curve25519": function curve25519(sas, olmSAS, bytes) {
215
- var ourInfo = "".concat(sas.baseApis.getUserId()).concat(sas.baseApis.deviceId);
216
- var theirInfo = "".concat(sas.userId).concat(sas.deviceId);
217
- var sasInfo = "MATRIX_KEY_VERIFICATION_SAS" + (sas.initiatedByMe ? ourInfo + theirInfo : theirInfo + ourInfo) + sas.channel.transactionId;
218
- return olmSAS.generate_bytes(sasInfo, bytes);
219
- }
220
- };
221
- /* lists of algorithms/methods that are supported. The key agreement, hashes,
222
- * and MAC lists should be sorted in order of preference (most preferred
223
- * first).
224
- */
225
- var KEY_AGREEMENT_LIST = ["curve25519-hkdf-sha256", "curve25519"];
226
- var HASHES_LIST = ["sha256"];
227
- var MAC_LIST = ["hkdf-hmac-sha256.v2", "org.matrix.msc3783.hkdf-hmac-sha256", "hkdf-hmac-sha256", "hmac-sha256"];
228
- var SAS_LIST = Object.keys(sasGenerators);
229
- var KEY_AGREEMENT_SET = new Set(KEY_AGREEMENT_LIST);
230
- var HASHES_SET = new Set(HASHES_LIST);
231
- var MAC_SET = new Set(MAC_LIST);
232
- var SAS_SET = new Set(SAS_LIST);
233
- function intersection(anArray, aSet) {
234
- return Array.isArray(anArray) ? anArray.filter(x => aSet.has(x)) : [];
235
- }
236
-
237
- /** @deprecated use VerifierEvent */
238
-
239
- /** @deprecated use VerifierEvent */
240
- export var SasEvent = VerifierEvent;
241
-
242
- /** @deprecated Avoid referencing this class directly; instead use {@link Crypto.Verifier}. */
243
- export class SAS extends Base {
244
- constructor() {
245
- var _this;
246
- super(...arguments);
247
- _this = this;
248
- _defineProperty(this, "waitingForAccept", void 0);
249
- _defineProperty(this, "ourSASPubKey", void 0);
250
- _defineProperty(this, "theirSASPubKey", void 0);
251
- _defineProperty(this, "sasEvent", void 0);
252
- _defineProperty(this, "doVerification", /*#__PURE__*/_asyncToGenerator(function* () {
253
- yield globalThis.Olm.init();
254
- olmutil = olmutil || new globalThis.Olm.Utility();
255
-
256
- // make sure user's keys are downloaded
257
- yield _this.baseApis.downloadKeys([_this.userId]);
258
- var retry = false;
259
- do {
260
- try {
261
- if (_this.initiatedByMe) {
262
- return yield _this.doSendVerification();
263
- } else {
264
- return yield _this.doRespondVerification();
265
- }
266
- } catch (err) {
267
- if (err instanceof SwitchStartEventError) {
268
- // this changes what initiatedByMe returns
269
- _this.startEvent = err.startEvent;
270
- retry = true;
271
- } else {
272
- throw err;
273
- }
274
- }
275
- } while (retry);
276
- }));
277
- }
278
- // eslint-disable-next-line @typescript-eslint/naming-convention
279
- static get NAME() {
280
- return VerificationMethod.Sas;
281
- }
282
- get events() {
283
- return EVENTS;
284
- }
285
- canSwitchStartEvent(event) {
286
- if (event.getType() !== START_TYPE) {
287
- return false;
288
- }
289
- var content = event.getContent();
290
- return (content === null || content === void 0 ? void 0 : content.method) === SAS.NAME && !!this.waitingForAccept;
291
- }
292
- sendStart() {
293
- var _this2 = this;
294
- return _asyncToGenerator(function* () {
295
- var startContent = _this2.channel.completeContent(START_TYPE, {
296
- method: SAS.NAME,
297
- from_device: _this2.baseApis.deviceId,
298
- key_agreement_protocols: KEY_AGREEMENT_LIST,
299
- hashes: HASHES_LIST,
300
- message_authentication_codes: MAC_LIST,
301
- // FIXME: allow app to specify what SAS methods can be used
302
- short_authentication_string: SAS_LIST
303
- });
304
- yield _this2.channel.sendCompleted(START_TYPE, startContent);
305
- return startContent;
306
- })();
307
- }
308
- verifyAndCheckMAC(keyAgreement, sasMethods, olmSAS, macMethod) {
309
- var _this3 = this;
310
- return _asyncToGenerator(function* () {
311
- var sasBytes = calculateKeyAgreement[keyAgreement](_this3, olmSAS, 6);
312
- var verifySAS = new Promise((resolve, reject) => {
313
- _this3.sasEvent = {
314
- sas: generateSas(sasBytes, sasMethods),
315
- confirm: function () {
316
- var _confirm = _asyncToGenerator(function* () {
317
- try {
318
- yield _this3.sendMAC(olmSAS, macMethod);
319
- resolve();
320
- } catch (err) {
321
- reject(err);
322
- }
323
- });
324
- function confirm() {
325
- return _confirm.apply(this, arguments);
326
- }
327
- return confirm;
328
- }(),
329
- cancel: () => reject(newUserCancelledError()),
330
- mismatch: () => reject(newMismatchedSASError())
331
- };
332
- _this3.emit(SasEvent.ShowSas, _this3.sasEvent);
333
- });
334
- var [e] = yield Promise.all([_this3.waitForEvent(EventType.KeyVerificationMac).then(e => {
335
- // we don't expect any more messages from the other
336
- // party, and they may send a m.key.verification.done
337
- // when they're done on their end
338
- _this3.expectedEvent = EventType.KeyVerificationDone;
339
- return e;
340
- }), verifySAS]);
341
- var content = e.getContent();
342
- yield _this3.checkMAC(olmSAS, content, macMethod);
343
- })();
344
- }
345
- doSendVerification() {
346
- var _this4 = this;
347
- return _asyncToGenerator(function* () {
348
- _this4.waitingForAccept = true;
349
- var startContent;
350
- if (_this4.startEvent) {
351
- startContent = _this4.channel.completedContentFromEvent(_this4.startEvent);
352
- } else {
353
- startContent = yield _this4.sendStart();
354
- }
355
-
356
- // we might have switched to a different start event,
357
- // but was we didn't call _waitForEvent there was no
358
- // call that could throw yet. So check manually that
359
- // we're still on the initiator side
360
- if (!_this4.initiatedByMe) {
361
- throw new SwitchStartEventError(_this4.startEvent);
362
- }
363
- var e;
364
- try {
365
- e = yield _this4.waitForEvent(EventType.KeyVerificationAccept);
366
- } finally {
367
- _this4.waitingForAccept = false;
368
- }
369
- var content = e.getContent();
370
- var sasMethods = intersection(content.short_authentication_string, SAS_SET);
371
- if (!(KEY_AGREEMENT_SET.has(content.key_agreement_protocol) && HASHES_SET.has(content.hash) && MAC_SET.has(content.message_authentication_code) && sasMethods.length)) {
372
- throw newUnknownMethodError();
373
- }
374
- if (typeof content.commitment !== "string") {
375
- throw newInvalidMessageError();
376
- }
377
- var keyAgreement = content.key_agreement_protocol;
378
- var macMethod = content.message_authentication_code;
379
- var hashCommitment = content.commitment;
380
- var olmSAS = new globalThis.Olm.SAS();
381
- try {
382
- _this4.ourSASPubKey = olmSAS.get_pubkey();
383
- yield _this4.send(EventType.KeyVerificationKey, {
384
- key: _this4.ourSASPubKey
385
- });
386
- e = yield _this4.waitForEvent(EventType.KeyVerificationKey);
387
- // FIXME: make sure event is properly formed
388
- content = e.getContent();
389
- var commitmentStr = content.key + anotherjson.stringify(startContent);
390
- // TODO: use selected hash function (when we support multiple)
391
- if (olmutil.sha256(commitmentStr) !== hashCommitment) {
392
- throw newMismatchedCommitmentError();
393
- }
394
- _this4.theirSASPubKey = content.key;
395
- olmSAS.set_their_key(content.key);
396
- yield _this4.verifyAndCheckMAC(keyAgreement, sasMethods, olmSAS, macMethod);
397
- } finally {
398
- olmSAS.free();
399
- }
400
- })();
401
- }
402
- doRespondVerification() {
403
- var _this5 = this;
404
- return _asyncToGenerator(function* () {
405
- // as m.related_to is not included in the encrypted content in e2e rooms,
406
- // we need to make sure it is added
407
- var content = _this5.channel.completedContentFromEvent(_this5.startEvent);
408
-
409
- // Note: we intersect using our pre-made lists, rather than the sets,
410
- // so that the result will be in our order of preference. Then
411
- // fetching the first element from the array will give our preferred
412
- // method out of the ones offered by the other party.
413
- var keyAgreement = intersection(KEY_AGREEMENT_LIST, new Set(content.key_agreement_protocols))[0];
414
- var hashMethod = intersection(HASHES_LIST, new Set(content.hashes))[0];
415
- var macMethod = intersection(MAC_LIST, new Set(content.message_authentication_codes))[0];
416
- // FIXME: allow app to specify what SAS methods can be used
417
- var sasMethods = intersection(content.short_authentication_string, SAS_SET);
418
- if (!(keyAgreement !== undefined && hashMethod !== undefined && macMethod !== undefined && sasMethods.length)) {
419
- throw newUnknownMethodError();
420
- }
421
- var olmSAS = new globalThis.Olm.SAS();
422
- try {
423
- var commitmentStr = olmSAS.get_pubkey() + anotherjson.stringify(content);
424
- yield _this5.send(EventType.KeyVerificationAccept, {
425
- key_agreement_protocol: keyAgreement,
426
- hash: hashMethod,
427
- message_authentication_code: macMethod,
428
- short_authentication_string: sasMethods,
429
- // TODO: use selected hash function (when we support multiple)
430
- commitment: olmutil.sha256(commitmentStr)
431
- });
432
- var e = yield _this5.waitForEvent(EventType.KeyVerificationKey);
433
- // FIXME: make sure event is properly formed
434
- content = e.getContent();
435
- _this5.theirSASPubKey = content.key;
436
- olmSAS.set_their_key(content.key);
437
- _this5.ourSASPubKey = olmSAS.get_pubkey();
438
- yield _this5.send(EventType.KeyVerificationKey, {
439
- key: _this5.ourSASPubKey
440
- });
441
- yield _this5.verifyAndCheckMAC(keyAgreement, sasMethods, olmSAS, macMethod);
442
- } finally {
443
- olmSAS.free();
444
- }
445
- })();
446
- }
447
- sendMAC(olmSAS, method) {
448
- var mac = {};
449
- var keyList = [];
450
- var baseInfo = "MATRIX_KEY_VERIFICATION_MAC" + this.baseApis.getUserId() + this.baseApis.deviceId + this.userId + this.deviceId + this.channel.transactionId;
451
- var deviceKeyId = "ed25519:".concat(this.baseApis.deviceId);
452
- mac[deviceKeyId] = calculateMAC(olmSAS, method)(this.baseApis.getDeviceEd25519Key(), baseInfo + deviceKeyId);
453
- keyList.push(deviceKeyId);
454
- var crossSigningId = this.baseApis.getCrossSigningId();
455
- if (crossSigningId) {
456
- var crossSigningKeyId = "ed25519:".concat(crossSigningId);
457
- mac[crossSigningKeyId] = calculateMAC(olmSAS, method)(crossSigningId, baseInfo + crossSigningKeyId);
458
- keyList.push(crossSigningKeyId);
459
- }
460
- var keys = calculateMAC(olmSAS, method)(keyList.sort().join(","), baseInfo + "KEY_IDS");
461
- return this.send(EventType.KeyVerificationMac, {
462
- mac,
463
- keys
464
- });
465
- }
466
- checkMAC(olmSAS, content, method) {
467
- var _this6 = this;
468
- return _asyncToGenerator(function* () {
469
- var baseInfo = "MATRIX_KEY_VERIFICATION_MAC" + _this6.userId + _this6.deviceId + _this6.baseApis.getUserId() + _this6.baseApis.deviceId + _this6.channel.transactionId;
470
- if (content.keys !== calculateMAC(olmSAS, method)(Object.keys(content.mac).sort().join(","), baseInfo + "KEY_IDS")) {
471
- throw newKeyMismatchError();
472
- }
473
- yield _this6.verifyKeys(_this6.userId, content.mac, (keyId, device, keyInfo) => {
474
- if (keyInfo !== calculateMAC(olmSAS, method)(device.keys[keyId], baseInfo + keyId)) {
475
- throw newKeyMismatchError();
476
- }
477
- });
478
- })();
479
- }
480
- getShowSasCallbacks() {
481
- var _this$sasEvent;
482
- return (_this$sasEvent = this.sasEvent) !== null && _this$sasEvent !== void 0 ? _this$sasEvent : null;
483
- }
484
- }
485
- //# sourceMappingURL=SAS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SAS.js","names":["anotherjson","VerificationBase","Base","SwitchStartEventError","errorFactory","newInvalidMessageError","newKeyMismatchError","newUnknownMethodError","newUserCancelledError","logger","generateDecimalSas","EventType","VerifierEvent","VerificationMethod","START_TYPE","KeyVerificationStart","EVENTS","KeyVerificationAccept","KeyVerificationKey","KeyVerificationMac","olmutil","newMismatchedSASError","newMismatchedCommitmentError","emojiMapping","generateEmojiSas","sasBytes","emojis","map","num","sasGenerators","decimal","emoji","generateSas","methods","sas","method","Array","from","macMethods","calculateMAC","olmSAS","input","info","mac","log","calculateKeyAgreement","curve25519HkdfSha256","bytes","ourInfo","concat","baseApis","getUserId","deviceId","ourSASPubKey","theirInfo","userId","theirSASPubKey","sasInfo","initiatedByMe","channel","transactionId","generate_bytes","curve25519","KEY_AGREEMENT_LIST","HASHES_LIST","MAC_LIST","SAS_LIST","Object","keys","KEY_AGREEMENT_SET","Set","HASHES_SET","MAC_SET","SAS_SET","intersection","anArray","aSet","isArray","filter","x","has","SasEvent","SAS","constructor","_this","arguments","this","_defineProperty","_asyncToGenerator","globalThis","Olm","init","Utility","downloadKeys","retry","doSendVerification","doRespondVerification","err","startEvent","NAME","Sas","events","canSwitchStartEvent","event","getType","content","getContent","waitingForAccept","sendStart","_this2","startContent","completeContent","from_device","key_agreement_protocols","hashes","message_authentication_codes","short_authentication_string","sendCompleted","verifyAndCheckMAC","keyAgreement","sasMethods","macMethod","_this3","verifySAS","Promise","resolve","reject","sasEvent","confirm","_confirm","sendMAC","apply","cancel","mismatch","emit","ShowSas","e","all","waitForEvent","then","expectedEvent","KeyVerificationDone","checkMAC","_this4","completedContentFromEvent","key_agreement_protocol","hash","message_authentication_code","length","commitment","hashCommitment","get_pubkey","send","key","commitmentStr","stringify","sha256","set_their_key","free","_this5","hashMethod","undefined","keyList","baseInfo","deviceKeyId","getDeviceEd25519Key","push","crossSigningId","getCrossSigningId","crossSigningKeyId","sort","join","_this6","verifyKeys","keyId","device","keyInfo","getShowSasCallbacks","_this$sasEvent"],"sources":["../../../src/crypto/verification/SAS.ts"],"sourcesContent":["/*\nCopyright 2018 - 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 * Short Authentication String (SAS) verification.\n */\n\nimport anotherjson from \"another-json\";\nimport { Utility, SAS as OlmSAS } from \"@matrix-org/olm\";\n\nimport { VerificationBase as Base, SwitchStartEventError } from \"./Base.ts\";\nimport {\n errorFactory,\n newInvalidMessageError,\n newKeyMismatchError,\n newUnknownMethodError,\n newUserCancelledError,\n} from \"./Error.ts\";\nimport { logger } from \"../../logger.ts\";\nimport { IContent, MatrixEvent } from \"../../models/event.ts\";\nimport { generateDecimalSas } from \"./SASDecimal.ts\";\nimport { EventType } from \"../../@types/event.ts\";\nimport { EmojiMapping, GeneratedSas, ShowSasCallbacks, VerifierEvent } from \"../../crypto-api/verification.ts\";\nimport { VerificationMethod } from \"../../types.ts\";\n\n// backwards-compatibility exports\nexport type {\n ShowSasCallbacks as ISasEvent,\n GeneratedSas as IGeneratedSas,\n EmojiMapping,\n} from \"../../crypto-api/verification.ts\";\n\nconst START_TYPE = EventType.KeyVerificationStart;\n\nconst EVENTS = [EventType.KeyVerificationAccept, EventType.KeyVerificationKey, EventType.KeyVerificationMac];\n\nlet olmutil: Utility;\n\nconst newMismatchedSASError = errorFactory(\"m.mismatched_sas\", \"Mismatched short authentication string\");\n\nconst newMismatchedCommitmentError = errorFactory(\"m.mismatched_commitment\", \"Mismatched commitment\");\n\n// This list was generated from the data in the Matrix specification [1] with the following command:\n//\n// jq -r '.[] | \" [\\\"\" + .emoji + \"\\\", \\\"\" + (.description|ascii_downcase) + \"\\\"], // \" + (.number|tostring)' sas-emoji.json\n//\n// [1]: https://github.com/matrix-org/matrix-spec/blob/main/data-definitions/sas-emoji.json\nconst emojiMapping: EmojiMapping[] = [\n [\"🐶\", \"dog\"], // 0\n [\"🐱\", \"cat\"], // 1\n [\"🦁\", \"lion\"], // 2\n [\"🐎\", \"horse\"], // 3\n [\"🦄\", \"unicorn\"], // 4\n [\"🐷\", \"pig\"], // 5\n [\"🐘\", \"elephant\"], // 6\n [\"🐰\", \"rabbit\"], // 7\n [\"🐼\", \"panda\"], // 8\n [\"🐓\", \"rooster\"], // 9\n [\"🐧\", \"penguin\"], // 10\n [\"🐢\", \"turtle\"], // 11\n [\"🐟\", \"fish\"], // 12\n [\"🐙\", \"octopus\"], // 13\n [\"🦋\", \"butterfly\"], // 14\n [\"🌷\", \"flower\"], // 15\n [\"🌳\", \"tree\"], // 16\n [\"🌵\", \"cactus\"], // 17\n [\"🍄\", \"mushroom\"], // 18\n [\"🌏\", \"globe\"], // 19\n [\"🌙\", \"moon\"], // 20\n [\"☁️\", \"cloud\"], // 21\n [\"🔥\", \"fire\"], // 22\n [\"🍌\", \"banana\"], // 23\n [\"🍎\", \"apple\"], // 24\n [\"🍓\", \"strawberry\"], // 25\n [\"🌽\", \"corn\"], // 26\n [\"🍕\", \"pizza\"], // 27\n [\"🎂\", \"cake\"], // 28\n [\"❤️\", \"heart\"], // 29\n [\"😀\", \"smiley\"], // 30\n [\"🤖\", \"robot\"], // 31\n [\"🎩\", \"hat\"], // 32\n [\"👓\", \"glasses\"], // 33\n [\"🔧\", \"spanner\"], // 34\n [\"🎅\", \"santa\"], // 35\n [\"👍\", \"thumbs up\"], // 36\n [\"☂️\", \"umbrella\"], // 37\n [\"⌛\", \"hourglass\"], // 38\n [\"⏰\", \"clock\"], // 39\n [\"🎁\", \"gift\"], // 40\n [\"💡\", \"light bulb\"], // 41\n [\"📕\", \"book\"], // 42\n [\"✏️\", \"pencil\"], // 43\n [\"📎\", \"paperclip\"], // 44\n [\"✂️\", \"scissors\"], // 45\n [\"🔒\", \"lock\"], // 46\n [\"🔑\", \"key\"], // 47\n [\"🔨\", \"hammer\"], // 48\n [\"☎️\", \"telephone\"], // 49\n [\"🏁\", \"flag\"], // 50\n [\"🚂\", \"train\"], // 51\n [\"🚲\", \"bicycle\"], // 52\n [\"✈️\", \"aeroplane\"], // 53\n [\"🚀\", \"rocket\"], // 54\n [\"🏆\", \"trophy\"], // 55\n [\"⚽\", \"ball\"], // 56\n [\"🎸\", \"guitar\"], // 57\n [\"🎺\", \"trumpet\"], // 58\n [\"🔔\", \"bell\"], // 59\n [\"⚓\", \"anchor\"], // 60\n [\"🎧\", \"headphones\"], // 61\n [\"📁\", \"folder\"], // 62\n [\"📌\", \"pin\"], // 63\n];\n\nfunction generateEmojiSas(sasBytes: number[]): EmojiMapping[] {\n const emojis = [\n // just like base64 encoding\n sasBytes[0] >> 2,\n ((sasBytes[0] & 0x3) << 4) | (sasBytes[1] >> 4),\n ((sasBytes[1] & 0xf) << 2) | (sasBytes[2] >> 6),\n sasBytes[2] & 0x3f,\n sasBytes[3] >> 2,\n ((sasBytes[3] & 0x3) << 4) | (sasBytes[4] >> 4),\n ((sasBytes[4] & 0xf) << 2) | (sasBytes[5] >> 6),\n ];\n\n return emojis.map((num) => emojiMapping[num]);\n}\n\nconst sasGenerators = {\n decimal: generateDecimalSas,\n emoji: generateEmojiSas,\n} as const;\n\nfunction generateSas(sasBytes: Uint8Array, methods: string[]): GeneratedSas {\n const sas: GeneratedSas = {};\n for (const method of methods) {\n if (method in sasGenerators) {\n // @ts-ignore - ts doesn't like us mixing types like this\n sas[method] = sasGenerators[method](Array.from(sasBytes));\n }\n }\n return sas;\n}\n\nconst macMethods = {\n \"hkdf-hmac-sha256\": \"calculate_mac\",\n \"org.matrix.msc3783.hkdf-hmac-sha256\": \"calculate_mac_fixed_base64\",\n \"hkdf-hmac-sha256.v2\": \"calculate_mac_fixed_base64\",\n \"hmac-sha256\": \"calculate_mac_long_kdf\",\n} as const;\n\ntype MacMethod = keyof typeof macMethods;\n\nfunction calculateMAC(olmSAS: OlmSAS, method: MacMethod) {\n return function (input: string, info: string): string {\n const mac = olmSAS[macMethods[method]](input, info);\n logger.log(\"SAS calculateMAC:\", method, [input, info], mac);\n return mac;\n };\n}\n\nconst calculateKeyAgreement = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"curve25519-hkdf-sha256\": function (sas: SAS, olmSAS: OlmSAS, bytes: number): Uint8Array {\n const ourInfo = `${sas.baseApis.getUserId()}|${sas.baseApis.deviceId}|` + `${sas.ourSASPubKey}|`;\n const theirInfo = `${sas.userId}|${sas.deviceId}|${sas.theirSASPubKey}|`;\n const sasInfo =\n \"MATRIX_KEY_VERIFICATION_SAS|\" +\n (sas.initiatedByMe ? ourInfo + theirInfo : theirInfo + ourInfo) +\n sas.channel.transactionId;\n return olmSAS.generate_bytes(sasInfo, bytes);\n },\n \"curve25519\": function (sas: SAS, olmSAS: OlmSAS, bytes: number): Uint8Array {\n const ourInfo = `${sas.baseApis.getUserId()}${sas.baseApis.deviceId}`;\n const theirInfo = `${sas.userId}${sas.deviceId}`;\n const sasInfo =\n \"MATRIX_KEY_VERIFICATION_SAS\" +\n (sas.initiatedByMe ? ourInfo + theirInfo : theirInfo + ourInfo) +\n sas.channel.transactionId;\n return olmSAS.generate_bytes(sasInfo, bytes);\n },\n} as const;\n\ntype KeyAgreement = keyof typeof calculateKeyAgreement;\n\n/* lists of algorithms/methods that are supported. The key agreement, hashes,\n * and MAC lists should be sorted in order of preference (most preferred\n * first).\n */\nconst KEY_AGREEMENT_LIST: KeyAgreement[] = [\"curve25519-hkdf-sha256\", \"curve25519\"];\nconst HASHES_LIST = [\"sha256\"];\nconst MAC_LIST: MacMethod[] = [\n \"hkdf-hmac-sha256.v2\",\n \"org.matrix.msc3783.hkdf-hmac-sha256\",\n \"hkdf-hmac-sha256\",\n \"hmac-sha256\",\n];\nconst SAS_LIST = Object.keys(sasGenerators);\n\nconst KEY_AGREEMENT_SET = new Set(KEY_AGREEMENT_LIST);\nconst HASHES_SET = new Set(HASHES_LIST);\nconst MAC_SET = new Set(MAC_LIST);\nconst SAS_SET = new Set(SAS_LIST);\n\nfunction intersection<T>(anArray: T[], aSet: Set<T>): T[] {\n return Array.isArray(anArray) ? anArray.filter((x) => aSet.has(x)) : [];\n}\n\n/** @deprecated use VerifierEvent */\nexport type SasEvent = VerifierEvent;\n/** @deprecated use VerifierEvent */\nexport const SasEvent = VerifierEvent;\n\n/** @deprecated Avoid referencing this class directly; instead use {@link Crypto.Verifier}. */\nexport class SAS extends Base {\n private waitingForAccept?: boolean;\n public ourSASPubKey?: string;\n public theirSASPubKey?: string;\n public sasEvent?: ShowSasCallbacks;\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public static get NAME(): string {\n return VerificationMethod.Sas;\n }\n\n public get events(): string[] {\n return EVENTS;\n }\n\n protected doVerification = async (): Promise<void> => {\n await globalThis.Olm.init();\n olmutil = olmutil || new globalThis.Olm.Utility();\n\n // make sure user's keys are downloaded\n await this.baseApis.downloadKeys([this.userId]);\n\n let retry = false;\n do {\n try {\n if (this.initiatedByMe) {\n return await this.doSendVerification();\n } else {\n return await this.doRespondVerification();\n }\n } catch (err) {\n if (err instanceof SwitchStartEventError) {\n // this changes what initiatedByMe returns\n this.startEvent = err.startEvent;\n retry = true;\n } else {\n throw err;\n }\n }\n } while (retry);\n };\n\n public canSwitchStartEvent(event: MatrixEvent): boolean {\n if (event.getType() !== START_TYPE) {\n return false;\n }\n const content = event.getContent();\n return content?.method === SAS.NAME && !!this.waitingForAccept;\n }\n\n private async sendStart(): Promise<Record<string, any>> {\n const startContent = this.channel.completeContent(START_TYPE, {\n method: SAS.NAME,\n from_device: this.baseApis.deviceId,\n key_agreement_protocols: KEY_AGREEMENT_LIST,\n hashes: HASHES_LIST,\n message_authentication_codes: MAC_LIST,\n // FIXME: allow app to specify what SAS methods can be used\n short_authentication_string: SAS_LIST,\n });\n await this.channel.sendCompleted(START_TYPE, startContent);\n return startContent;\n }\n\n private async verifyAndCheckMAC(\n keyAgreement: KeyAgreement,\n sasMethods: string[],\n olmSAS: OlmSAS,\n macMethod: MacMethod,\n ): Promise<void> {\n const sasBytes = calculateKeyAgreement[keyAgreement](this, olmSAS, 6);\n const verifySAS = new Promise<void>((resolve, reject) => {\n this.sasEvent = {\n sas: generateSas(sasBytes, sasMethods),\n confirm: async (): Promise<void> => {\n try {\n await this.sendMAC(olmSAS, macMethod);\n resolve();\n } catch (err) {\n reject(err);\n }\n },\n cancel: (): void => reject(newUserCancelledError()),\n mismatch: (): void => reject(newMismatchedSASError()),\n };\n this.emit(SasEvent.ShowSas, this.sasEvent);\n });\n\n const [e] = await Promise.all([\n this.waitForEvent(EventType.KeyVerificationMac).then((e) => {\n // we don't expect any more messages from the other\n // party, and they may send a m.key.verification.done\n // when they're done on their end\n this.expectedEvent = EventType.KeyVerificationDone;\n return e;\n }),\n verifySAS,\n ]);\n const content = e.getContent();\n await this.checkMAC(olmSAS, content, macMethod);\n }\n\n private async doSendVerification(): Promise<void> {\n this.waitingForAccept = true;\n let startContent;\n if (this.startEvent) {\n startContent = this.channel.completedContentFromEvent(this.startEvent);\n } else {\n startContent = await this.sendStart();\n }\n\n // we might have switched to a different start event,\n // but was we didn't call _waitForEvent there was no\n // call that could throw yet. So check manually that\n // we're still on the initiator side\n if (!this.initiatedByMe) {\n throw new SwitchStartEventError(this.startEvent);\n }\n\n let e: MatrixEvent;\n try {\n e = await this.waitForEvent(EventType.KeyVerificationAccept);\n } finally {\n this.waitingForAccept = false;\n }\n let content = e.getContent();\n const sasMethods = intersection(content.short_authentication_string, SAS_SET);\n if (\n !(\n KEY_AGREEMENT_SET.has(content.key_agreement_protocol) &&\n HASHES_SET.has(content.hash) &&\n MAC_SET.has(content.message_authentication_code) &&\n sasMethods.length\n )\n ) {\n throw newUnknownMethodError();\n }\n if (typeof content.commitment !== \"string\") {\n throw newInvalidMessageError();\n }\n const keyAgreement = content.key_agreement_protocol;\n const macMethod = content.message_authentication_code;\n const hashCommitment = content.commitment;\n const olmSAS = new globalThis.Olm.SAS();\n try {\n this.ourSASPubKey = olmSAS.get_pubkey();\n await this.send(EventType.KeyVerificationKey, {\n key: this.ourSASPubKey,\n });\n\n e = await this.waitForEvent(EventType.KeyVerificationKey);\n // FIXME: make sure event is properly formed\n content = e.getContent();\n const commitmentStr = content.key + anotherjson.stringify(startContent);\n // TODO: use selected hash function (when we support multiple)\n if (olmutil.sha256(commitmentStr) !== hashCommitment) {\n throw newMismatchedCommitmentError();\n }\n this.theirSASPubKey = content.key;\n olmSAS.set_their_key(content.key);\n\n await this.verifyAndCheckMAC(keyAgreement, sasMethods, olmSAS, macMethod);\n } finally {\n olmSAS.free();\n }\n }\n\n private async doRespondVerification(): Promise<void> {\n // as m.related_to is not included in the encrypted content in e2e rooms,\n // we need to make sure it is added\n let content = this.channel.completedContentFromEvent(this.startEvent!);\n\n // Note: we intersect using our pre-made lists, rather than the sets,\n // so that the result will be in our order of preference. Then\n // fetching the first element from the array will give our preferred\n // method out of the ones offered by the other party.\n const keyAgreement = intersection(KEY_AGREEMENT_LIST, new Set(content.key_agreement_protocols))[0];\n const hashMethod = intersection(HASHES_LIST, new Set(content.hashes))[0];\n const macMethod = intersection(MAC_LIST, new Set(content.message_authentication_codes))[0];\n // FIXME: allow app to specify what SAS methods can be used\n const sasMethods = intersection(content.short_authentication_string, SAS_SET);\n if (!(keyAgreement !== undefined && hashMethod !== undefined && macMethod !== undefined && sasMethods.length)) {\n throw newUnknownMethodError();\n }\n\n const olmSAS = new globalThis.Olm.SAS();\n try {\n const commitmentStr = olmSAS.get_pubkey() + anotherjson.stringify(content);\n await this.send(EventType.KeyVerificationAccept, {\n key_agreement_protocol: keyAgreement,\n hash: hashMethod,\n message_authentication_code: macMethod,\n short_authentication_string: sasMethods,\n // TODO: use selected hash function (when we support multiple)\n commitment: olmutil.sha256(commitmentStr),\n });\n\n const e = await this.waitForEvent(EventType.KeyVerificationKey);\n // FIXME: make sure event is properly formed\n content = e.getContent();\n this.theirSASPubKey = content.key;\n olmSAS.set_their_key(content.key);\n this.ourSASPubKey = olmSAS.get_pubkey();\n await this.send(EventType.KeyVerificationKey, {\n key: this.ourSASPubKey,\n });\n\n await this.verifyAndCheckMAC(keyAgreement, sasMethods, olmSAS, macMethod);\n } finally {\n olmSAS.free();\n }\n }\n\n private sendMAC(olmSAS: OlmSAS, method: MacMethod): Promise<void> {\n const mac: Record<string, string> = {};\n const keyList: string[] = [];\n const baseInfo =\n \"MATRIX_KEY_VERIFICATION_MAC\" +\n this.baseApis.getUserId() +\n this.baseApis.deviceId +\n this.userId +\n this.deviceId +\n this.channel.transactionId;\n\n const deviceKeyId = `ed25519:${this.baseApis.deviceId}`;\n mac[deviceKeyId] = calculateMAC(olmSAS, method)(this.baseApis.getDeviceEd25519Key()!, baseInfo + deviceKeyId);\n keyList.push(deviceKeyId);\n\n const crossSigningId = this.baseApis.getCrossSigningId();\n if (crossSigningId) {\n const crossSigningKeyId = `ed25519:${crossSigningId}`;\n mac[crossSigningKeyId] = calculateMAC(olmSAS, method)(crossSigningId, baseInfo + crossSigningKeyId);\n keyList.push(crossSigningKeyId);\n }\n\n const keys = calculateMAC(olmSAS, method)(keyList.sort().join(\",\"), baseInfo + \"KEY_IDS\");\n return this.send(EventType.KeyVerificationMac, { mac, keys });\n }\n\n private async checkMAC(olmSAS: OlmSAS, content: IContent, method: MacMethod): Promise<void> {\n const baseInfo =\n \"MATRIX_KEY_VERIFICATION_MAC\" +\n this.userId +\n this.deviceId +\n this.baseApis.getUserId() +\n this.baseApis.deviceId +\n this.channel.transactionId;\n\n if (\n content.keys !==\n calculateMAC(olmSAS, method)(Object.keys(content.mac).sort().join(\",\"), baseInfo + \"KEY_IDS\")\n ) {\n throw newKeyMismatchError();\n }\n\n await this.verifyKeys(this.userId, content.mac, (keyId, device, keyInfo) => {\n if (keyInfo !== calculateMAC(olmSAS, method)(device.keys[keyId], baseInfo + keyId)) {\n throw newKeyMismatchError();\n }\n });\n }\n\n public getShowSasCallbacks(): ShowSasCallbacks | null {\n return this.sasEvent ?? null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +0,0 @@
1
- /**
2
- * Implementation of decimal encoding of SAS as per:
3
- * https://spec.matrix.org/v1.4/client-server-api/#sas-method-decimal
4
- * @param sasBytes - the five bytes generated by HKDF
5
- * @returns the derived three numbers between 1000 and 9191 inclusive
6
- */
7
- export declare function generateDecimalSas(sasBytes: number[]): [number, number, number];
8
- //# sourceMappingURL=SASDecimal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SASDecimal.d.ts","sourceRoot":"","sources":["../../../src/crypto/verification/SASDecimal.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAc/E"}
@@ -1,34 +0,0 @@
1
- /*
2
- Copyright 2018 - 2022 The Matrix.org Foundation C.I.C.
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- /**
18
- * Implementation of decimal encoding of SAS as per:
19
- * https://spec.matrix.org/v1.4/client-server-api/#sas-method-decimal
20
- * @param sasBytes - the five bytes generated by HKDF
21
- * @returns the derived three numbers between 1000 and 9191 inclusive
22
- */
23
- export function generateDecimalSas(sasBytes) {
24
- /*
25
- * +--------+--------+--------+--------+--------+
26
- * | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 |
27
- * +--------+--------+--------+--------+--------+
28
- * bits: 87654321 87654321 87654321 87654321 87654321
29
- * \____________/\_____________/\____________/
30
- * 1st number 2nd number 3rd number
31
- */
32
- return [(sasBytes[0] << 5 | sasBytes[1] >> 3) + 1000, ((sasBytes[1] & 0x7) << 10 | sasBytes[2] << 2 | sasBytes[3] >> 6) + 1000, ((sasBytes[3] & 0x3f) << 7 | sasBytes[4] >> 1) + 1000];
33
- }
34
- //# sourceMappingURL=SASDecimal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SASDecimal.js","names":["generateDecimalSas","sasBytes"],"sources":["../../../src/crypto/verification/SASDecimal.ts"],"sourcesContent":["/*\nCopyright 2018 - 2022 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 * Implementation of decimal encoding of SAS as per:\n * https://spec.matrix.org/v1.4/client-server-api/#sas-method-decimal\n * @param sasBytes - the five bytes generated by HKDF\n * @returns the derived three numbers between 1000 and 9191 inclusive\n */\nexport function generateDecimalSas(sasBytes: number[]): [number, number, number] {\n /*\n * +--------+--------+--------+--------+--------+\n * | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 |\n * +--------+--------+--------+--------+--------+\n * bits: 87654321 87654321 87654321 87654321 87654321\n * \\____________/\\_____________/\\____________/\n * 1st number 2nd number 3rd number\n */\n return [\n ((sasBytes[0] << 5) | (sasBytes[1] >> 3)) + 1000,\n (((sasBytes[1] & 0x7) << 10) | (sasBytes[2] << 2) | (sasBytes[3] >> 6)) + 1000,\n (((sasBytes[3] & 0x3f) << 7) | (sasBytes[4] >> 1)) + 1000,\n ];\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,kBAAkBA,CAACC,QAAkB,EAA4B;EAC7E;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAO,CACH,CAAEA,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAKA,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAE,IAAI,IAAI,EAChD,CAAE,CAACA,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,GAAKA,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAE,GAAIA,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAE,IAAI,IAAI,EAC9E,CAAE,CAACA,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,GAAKA,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAE,IAAI,IAAI,CAC5D;AACL","ignoreList":[]}
@@ -1,18 +0,0 @@
1
- import { MatrixEvent } from "../../../models/event.ts";
2
- import { VerificationRequest } from "./VerificationRequest.ts";
3
- export interface IVerificationChannel {
4
- request?: VerificationRequest;
5
- readonly userId?: string;
6
- readonly roomId?: string;
7
- readonly deviceId?: string;
8
- readonly transactionId?: string;
9
- readonly receiveStartFromOtherDevices?: boolean;
10
- getTimestamp(event: MatrixEvent): number;
11
- send(type: string, uncompletedContent: Record<string, any>): Promise<void>;
12
- completeContent(type: string, content: Record<string, any>): Record<string, any>;
13
- sendCompleted(type: string, content: Record<string, any>): Promise<void>;
14
- completedContentFromEvent(event: MatrixEvent): Record<string, any>;
15
- canCreateRequest(type: string): boolean;
16
- handleEvent(event: MatrixEvent, request: VerificationRequest, isLiveEvent: boolean): Promise<void>;
17
- }
18
- //# sourceMappingURL=Channel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../../src/crypto/verification/request/Channel.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAChD,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjF,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,yBAAyB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnE,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACxC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtG"}
@@ -1 +0,0 @@
1
- export {};