matrix-react-sdk
Version:
SDK for matrix.org using React
53 lines (49 loc) • 5.85 kB
JavaScript
;
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=