matrix-react-sdk
Version:
SDK for matrix.org using React
57 lines (54 loc) • 13.8 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ManualDeviceKeyVerificationDialog = ManualDeviceKeyVerificationDialog;
var _react = _interopRequireWildcard(require("react"));
var FormattingUtils = _interopRequireWildcard(require("../../../utils/FormattingUtils"));
var _languageHandler = require("../../../languageHandler");
var _QuestionDialog = _interopRequireDefault(require("./QuestionDialog"));
var _MatrixClientPeg = require("../../../MatrixClientPeg");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd
Copyright 2019 Michael Telatynski <7t3chguy@gmail.com>
Copyright 2017 Vector Creations Ltd
Copyright 2016 OpenMarket Ltd
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
function ManualDeviceKeyVerificationDialog({
userId,
device,
onFinished
}) {
const mxClient = _MatrixClientPeg.MatrixClientPeg.safeGet();
const onLegacyFinished = (0, _react.useCallback)(confirm => {
if (confirm) {
mxClient.setDeviceVerified(userId, device.deviceId, true);
}
onFinished(confirm);
}, [mxClient, userId, device, onFinished]);
let text;
if (mxClient?.getUserId() === userId) {
text = (0, _languageHandler._t)("encryption|verification|manual_device_verification_self_text");
} else {
text = (0, _languageHandler._t)("encryption|verification|manual_device_verification_user_text");
}
const fingerprint = device.getFingerprint();
const key = fingerprint && FormattingUtils.formatCryptoKey(fingerprint);
const body = /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("p", null, text), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_DeviceVerifyDialog_cryptoSection"
}, /*#__PURE__*/_react.default.createElement("ul", null, /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement("label", null, (0, _languageHandler._t)("encryption|verification|manual_device_verification_device_name_label"), ":"), " ", /*#__PURE__*/_react.default.createElement("span", null, device.displayName)), /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement("label", null, (0, _languageHandler._t)("encryption|verification|manual_device_verification_device_id_label"), ":"), " ", /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement("code", null, device.deviceId))), /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement("label", null, (0, _languageHandler._t)("encryption|verification|manual_device_verification_device_key_label"), ":"), " ", /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement("code", null, /*#__PURE__*/_react.default.createElement("strong", null, key)))))), /*#__PURE__*/_react.default.createElement("p", null, (0, _languageHandler._t)("encryption|verification|manual_device_verification_footer")));
return /*#__PURE__*/_react.default.createElement(_QuestionDialog.default, {
title: (0, _languageHandler._t)("settings|sessions|verify_session"),
description: body,
button: (0, _languageHandler._t)("settings|sessions|verify_session"),
onFinished: onLegacyFinished
});
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJGb3JtYXR0aW5nVXRpbHMiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX1F1ZXN0aW9uRGlhbG9nIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9NYXRyaXhDbGllbnRQZWciLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJNYW51YWxEZXZpY2VLZXlWZXJpZmljYXRpb25EaWFsb2ciLCJ1c2VySWQiLCJkZXZpY2UiLCJvbkZpbmlzaGVkIiwibXhDbGllbnQiLCJNYXRyaXhDbGllbnRQZWciLCJzYWZlR2V0Iiwib25MZWdhY3lGaW5pc2hlZCIsInVzZUNhbGxiYWNrIiwiY29uZmlybSIsInNldERldmljZVZlcmlmaWVkIiwiZGV2aWNlSWQiLCJ0ZXh0IiwiZ2V0VXNlcklkIiwiX3QiLCJmaW5nZXJwcmludCIsImdldEZpbmdlcnByaW50Iiwia2V5IiwiZm9ybWF0Q3J5cHRvS2V5IiwiYm9keSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJkaXNwbGF5TmFtZSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJidXR0b24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL01hbnVhbERldmljZUtleVZlcmlmaWNhdGlvbkRpYWxvZy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5Db3B5cmlnaHQgMjAxOSBNaWNoYWVsIFRlbGF0eW5za2kgPDd0M2NoZ3V5QGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5Db3B5cmlnaHQgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IERldmljZSB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0ICogYXMgRm9ybWF0dGluZ1V0aWxzIGZyb20gXCIuLi8uLi8uLi91dGlscy9Gb3JtYXR0aW5nVXRpbHNcIjtcbmltcG9ydCB7IF90IH0gZnJvbSBcIi4uLy4uLy4uL2xhbmd1YWdlSGFuZGxlclwiO1xuaW1wb3J0IFF1ZXN0aW9uRGlhbG9nIGZyb20gXCIuL1F1ZXN0aW9uRGlhbG9nXCI7XG5pbXBvcnQgeyBNYXRyaXhDbGllbnRQZWcgfSBmcm9tIFwiLi4vLi4vLi4vTWF0cml4Q2xpZW50UGVnXCI7XG5cbmludGVyZmFjZSBJTWFudWFsRGV2aWNlS2V5VmVyaWZpY2F0aW9uRGlhbG9nUHJvcHMge1xuICAgIHVzZXJJZDogc3RyaW5nO1xuICAgIGRldmljZTogRGV2aWNlO1xuICAgIG9uRmluaXNoZWQoY29uZmlybT86IGJvb2xlYW4pOiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTWFudWFsRGV2aWNlS2V5VmVyaWZpY2F0aW9uRGlhbG9nKHtcbiAgICB1c2VySWQsXG4gICAgZGV2aWNlLFxuICAgIG9uRmluaXNoZWQsXG59OiBJTWFudWFsRGV2aWNlS2V5VmVyaWZpY2F0aW9uRGlhbG9nUHJvcHMpOiBKU1guRWxlbWVudCB7XG4gICAgY29uc3QgbXhDbGllbnQgPSBNYXRyaXhDbGllbnRQZWcuc2FmZUdldCgpO1xuXG4gICAgY29uc3Qgb25MZWdhY3lGaW5pc2hlZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAoY29uZmlybTogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbmZpcm0pIHtcbiAgICAgICAgICAgICAgICBteENsaWVudC5zZXREZXZpY2VWZXJpZmllZCh1c2VySWQsIGRldmljZS5kZXZpY2VJZCwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkZpbmlzaGVkKGNvbmZpcm0pO1xuICAgICAgICB9LFxuICAgICAgICBbbXhDbGllbnQsIHVzZXJJZCwgZGV2aWNlLCBvbkZpbmlzaGVkXSxcbiAgICApO1xuXG4gICAgbGV0IHRleHQ7XG4gICAgaWYgKG14Q2xpZW50Py5nZXRVc2VySWQoKSA9PT0gdXNlcklkKSB7XG4gICAgICAgIHRleHQgPSBfdChcImVuY3J5cHRpb258dmVyaWZpY2F0aW9ufG1hbnVhbF9kZXZpY2VfdmVyaWZpY2F0aW9uX3NlbGZfdGV4dFwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0ZXh0ID0gX3QoXCJlbmNyeXB0aW9ufHZlcmlmaWNhdGlvbnxtYW51YWxfZGV2aWNlX3ZlcmlmaWNhdGlvbl91c2VyX3RleHRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZmluZ2VycHJpbnQgPSBkZXZpY2UuZ2V0RmluZ2VycHJpbnQoKTtcbiAgICBjb25zdCBrZXkgPSBmaW5nZXJwcmludCAmJiBGb3JtYXR0aW5nVXRpbHMuZm9ybWF0Q3J5cHRvS2V5KGZpbmdlcnByaW50KTtcbiAgICBjb25zdCBib2R5ID0gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHA+e3RleHR9PC9wPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9EZXZpY2VWZXJpZnlEaWFsb2dfY3J5cHRvU2VjdGlvblwiPlxuICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPntfdChcImVuY3J5cHRpb258dmVyaWZpY2F0aW9ufG1hbnVhbF9kZXZpY2VfdmVyaWZpY2F0aW9uX2RldmljZV9uYW1lX2xhYmVsXCIpfTo8L2xhYmVsPntcIiBcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPntkZXZpY2UuZGlzcGxheU5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e190KFwiZW5jcnlwdGlvbnx2ZXJpZmljYXRpb258bWFudWFsX2RldmljZV92ZXJpZmljYXRpb25fZGV2aWNlX2lkX2xhYmVsXCIpfTo8L2xhYmVsPntcIiBcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPntkZXZpY2UuZGV2aWNlSWR9PC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e190KFwiZW5jcnlwdGlvbnx2ZXJpZmljYXRpb258bWFudWFsX2RldmljZV92ZXJpZmljYXRpb25fZGV2aWNlX2tleV9sYWJlbFwiKX06PC9sYWJlbD57XCIgXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57a2V5fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cD57X3QoXCJlbmNyeXB0aW9ufHZlcmlmaWNhdGlvbnxtYW51YWxfZGV2aWNlX3ZlcmlmaWNhdGlvbl9mb290ZXJcIil9PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFF1ZXN0aW9uRGlhbG9nXG4gICAgICAgICAgICB0aXRsZT17X3QoXCJzZXR0aW5nc3xzZXNzaW9uc3x2ZXJpZnlfc2Vzc2lvblwiKX1cbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtib2R5fVxuICAgICAgICAgICAgYnV0dG9uPXtfdChcInNldHRpbmdzfHNlc3Npb25zfHZlcmlmeV9zZXNzaW9uXCIpfVxuICAgICAgICAgICAgb25GaW5pc2hlZD17b25MZWdhY3lGaW5pc2hlZH1cbiAgICAgICAgLz5cbiAgICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBWUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsZUFBQSxHQUFBRix1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsZ0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFLLGdCQUFBLEdBQUFMLE9BQUE7QUFBMkQsU0FBQU0seUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVIsd0JBQUFRLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSx1QkFBQUEsQ0FB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