UNPKG

matrix-react-sdk

Version:
53 lines (49 loc) 5.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initialiseDehydration = initialiseDehydration; var _logger = require("matrix-js-sdk/src/logger"); var _MatrixClientPeg = require("../../MatrixClientPeg"); /* Copyright 2024 New Vector Ltd. Copyright 2024 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ /** * Check if device dehydration is enabled. * * Note that this doesn't necessarily mean that device dehydration has been initialised * (yet) on this client; rather, it means that the server supports it, the crypto backend * supports it, and the application configuration suggests that it *should* be * initialised on this device. * * Dehydration can currently only be enabled by setting a flag in the .well-known file. */ async function deviceDehydrationEnabled(crypto) { if (!crypto) { return false; } if (!(await crypto.isDehydrationSupported())) { return false; } const wellknown = await _MatrixClientPeg.MatrixClientPeg.safeGet().waitForClientWellKnown(); return !!wellknown?.["org.matrix.msc3814"]; } /** * If dehydration is enabled (i.e., it is supported by the server and enabled in * the configuration), rehydrate a device (if available) and create * a new dehydrated device. * * @param createNewKey: force a new dehydration key to be created, even if one * already exists. This is used when we reset secret storage. */ async function initialiseDehydration(createNewKey = false) { const crypto = _MatrixClientPeg.MatrixClientPeg.safeGet().getCrypto(); if (await deviceDehydrationEnabled(crypto)) { _logger.logger.log("Device dehydration enabled"); await crypto.startDehydration(createNewKey); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwicmVxdWlyZSIsIl9NYXRyaXhDbGllbnRQZWciLCJkZXZpY2VEZWh5ZHJhdGlvbkVuYWJsZWQiLCJjcnlwdG8iLCJpc0RlaHlkcmF0aW9uU3VwcG9ydGVkIiwid2VsbGtub3duIiwiTWF0cml4Q2xpZW50UGVnIiwic2FmZUdldCIsIndhaXRGb3JDbGllbnRXZWxsS25vd24iLCJpbml0aWFsaXNlRGVoeWRyYXRpb24iLCJjcmVhdGVOZXdLZXkiLCJnZXRDcnlwdG8iLCJsb2dnZXIiLCJsb2ciLCJzdGFydERlaHlkcmF0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2RldmljZS9kZWh5ZHJhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbG9nZ2VyXCI7XG5pbXBvcnQgeyBDcnlwdG8gfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbWF0cml4XCI7XG5cbmltcG9ydCB7IE1hdHJpeENsaWVudFBlZyB9IGZyb20gXCIuLi8uLi9NYXRyaXhDbGllbnRQZWdcIjtcblxuLyoqXG4gKiBDaGVjayBpZiBkZXZpY2UgZGVoeWRyYXRpb24gaXMgZW5hYmxlZC5cbiAqXG4gKiBOb3RlIHRoYXQgdGhpcyBkb2Vzbid0IG5lY2Vzc2FyaWx5IG1lYW4gdGhhdCBkZXZpY2UgZGVoeWRyYXRpb24gaGFzIGJlZW4gaW5pdGlhbGlzZWRcbiAqICh5ZXQpIG9uIHRoaXMgY2xpZW50OyByYXRoZXIsIGl0IG1lYW5zIHRoYXQgdGhlIHNlcnZlciBzdXBwb3J0cyBpdCwgdGhlIGNyeXB0byBiYWNrZW5kXG4gKiBzdXBwb3J0cyBpdCwgYW5kIHRoZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uIHN1Z2dlc3RzIHRoYXQgaXQgKnNob3VsZCogYmVcbiAqIGluaXRpYWxpc2VkIG9uIHRoaXMgZGV2aWNlLlxuICpcbiAqIERlaHlkcmF0aW9uIGNhbiBjdXJyZW50bHkgb25seSBiZSBlbmFibGVkIGJ5IHNldHRpbmcgYSBmbGFnIGluIHRoZSAud2VsbC1rbm93biBmaWxlLlxuICovXG5hc3luYyBmdW5jdGlvbiBkZXZpY2VEZWh5ZHJhdGlvbkVuYWJsZWQoY3J5cHRvOiBDcnlwdG8uQ3J5cHRvQXBpIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKCFjcnlwdG8pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIShhd2FpdCBjcnlwdG8uaXNEZWh5ZHJhdGlvblN1cHBvcnRlZCgpKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHdlbGxrbm93biA9IGF3YWl0IE1hdHJpeENsaWVudFBlZy5zYWZlR2V0KCkud2FpdEZvckNsaWVudFdlbGxLbm93bigpO1xuICAgIHJldHVybiAhIXdlbGxrbm93bj8uW1wib3JnLm1hdHJpeC5tc2MzODE0XCJdO1xufVxuXG4vKipcbiAqIElmIGRlaHlkcmF0aW9uIGlzIGVuYWJsZWQgKGkuZS4sIGl0IGlzIHN1cHBvcnRlZCBieSB0aGUgc2VydmVyIGFuZCBlbmFibGVkIGluXG4gKiB0aGUgY29uZmlndXJhdGlvbiksIHJlaHlkcmF0ZSBhIGRldmljZSAoaWYgYXZhaWxhYmxlKSBhbmQgY3JlYXRlXG4gKiBhIG5ldyBkZWh5ZHJhdGVkIGRldmljZS5cbiAqXG4gKiBAcGFyYW0gY3JlYXRlTmV3S2V5OiBmb3JjZSBhIG5ldyBkZWh5ZHJhdGlvbiBrZXkgdG8gYmUgY3JlYXRlZCwgZXZlbiBpZiBvbmVcbiAqICAgYWxyZWFkeSBleGlzdHMuICBUaGlzIGlzIHVzZWQgd2hlbiB3ZSByZXNldCBzZWNyZXQgc3RvcmFnZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXRpYWxpc2VEZWh5ZHJhdGlvbihjcmVhdGVOZXdLZXk6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNyeXB0byA9IE1hdHJpeENsaWVudFBlZy5zYWZlR2V0KCkuZ2V0Q3J5cHRvKCk7XG4gICAgaWYgKGF3YWl0IGRldmljZURlaHlkcmF0aW9uRW5hYmxlZChjcnlwdG8pKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJEZXZpY2UgZGVoeWRyYXRpb24gZW5hYmxlZFwiKTtcbiAgICAgICAgYXdhaXQgY3J5cHRvIS5zdGFydERlaHlkcmF0aW9uKGNyZWF0ZU5ld0tleSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFRQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFHQSxJQUFBQyxnQkFBQSxHQUFBRCxPQUFBO0FBWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlRSx3QkFBd0JBLENBQUNDLE1BQW9DLEVBQW9CO0VBQzVGLElBQUksQ0FBQ0EsTUFBTSxFQUFFO0lBQ1QsT0FBTyxLQUFLO0VBQ2hCO0VBQ0EsSUFBSSxFQUFFLE1BQU1BLE1BQU0sQ0FBQ0Msc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDMUMsT0FBTyxLQUFLO0VBQ2hCO0VBQ0EsTUFBTUMsU0FBUyxHQUFHLE1BQU1DLGdDQUFlLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUNDLHNCQUFzQixDQUFDLENBQUM7RUFDMUUsT0FBTyxDQUFDLENBQUNILFNBQVMsR0FBRyxvQkFBb0IsQ0FBQztBQUM5Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sZUFBZUkscUJBQXFCQSxDQUFDQyxZQUFxQixHQUFHLEtBQUssRUFBaUI7RUFDdEYsTUFBTVAsTUFBTSxHQUFHRyxnQ0FBZSxDQUFDQyxPQUFPLENBQUMsQ0FBQyxDQUFDSSxTQUFTLENBQUMsQ0FBQztFQUNwRCxJQUFJLE1BQU1ULHdCQUF3QixDQUFDQyxNQUFNLENBQUMsRUFBRTtJQUN4Q1MsY0FBTSxDQUFDQyxHQUFHLENBQUMsNEJBQTRCLENBQUM7SUFDeEMsTUFBTVYsTUFBTSxDQUFFVyxnQkFBZ0IsQ0FBQ0osWUFBWSxDQUFDO0VBQ2hEO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=