Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
a233af6
initial pseudocode WIP for e2e online backups
ara4n Jan 15, 2018
24fcea8
fix indenting
ara4n Jan 15, 2018
25216d4
Merge branch 'develop' into matthew/e2e_backups
ara4n May 27, 2018
8fd7c4a
Merge remote-tracking branch 'origin/develop' into matthew/e2e_backups
dbkr Aug 24, 2018
f62e92a
Merge remote-tracking branch 'origin/develop' into matthew/e2e_backups
dbkr Sep 11, 2018
59e4879
Merge remote-tracking branch 'origin/develop' into matthew/e2e_backups
dbkr Sep 11, 2018
292b1f0
WIP e2e key backups
dbkr Sep 13, 2018
0f4d8e2
Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups
dbkr Sep 14, 2018
d94553b
UI for whether the key backup is enabled or not
dbkr Sep 14, 2018
2e6d277
LIIIIIIIIIIIIIIIINT!
dbkr Sep 14, 2018
9a65e68
Support restoring key backup
dbkr Sep 17, 2018
f507aac
Show if recovery key is valid
dbkr Sep 17, 2018
12d10cc
Show if sig is from this device
dbkr Sep 17, 2018
2cef0f7
lint
dbkr Sep 18, 2018
5ba45a7
Remove SuggestKeyRestoreHandler
dbkr Sep 18, 2018
fa30707
Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups
dbkr Oct 2, 2018
5680807
js-sdk now handle recovery key formatting
dbkr Oct 2, 2018
849f0f7
js-sdk now handles recovery key formatting
dbkr Oct 3, 2018
387128e
Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups
dbkr Oct 5, 2018
67e8a6f
Recovery key formatting is now done by the js-sdk
dbkr Oct 9, 2018
b59b8b7
Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups
dbkr Oct 25, 2018
de366fa
Add cancel button to error stage
dbkr Oct 26, 2018
8ac62f8
Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups
dbkr Oct 29, 2018
76587d4
retest
dbkr Oct 30, 2018
23332e1
keyBackupStatus event now has crypto. prefix
dbkr Oct 31, 2018
1a878fc
Quote consistency
dbkr Oct 31, 2018
6d6e6b5
Remove cryptic abbreviation
dbkr Oct 31, 2018
fbab8ce
Passphrase based key backups
dbkr Nov 20, 2018
132408c
Add e2e backup recovery with passphrase
dbkr Nov 20, 2018
63a7ff5
lint
dbkr Nov 20, 2018
8ccaf53
Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups
dbkr Nov 20, 2018
6fe2c9c
Merge branch 'dbkr/e2e_backups' into dbkr/e2e_backups_passphrase
dbkr Nov 20, 2018
ed5d87e
Add recovery key download button
dbkr Nov 21, 2018
08e2ba8
Don't allow enter to submit if field invalid
dbkr Nov 21, 2018
1c06d78
Missed translation
dbkr Nov 21, 2018
40ef2e0
another missed translation
dbkr Nov 21, 2018
3828798
lint
dbkr Nov 21, 2018
db26513
Merge pull request #2283 from matrix-org/dbkr/e2e_backups_passphrase
dbkr Nov 21, 2018
b529c98
Merge pull request #2284 from matrix-org/dbkr/e2e_backups_download_re…
dbkr Nov 21, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions res/css/_common.scss
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,11 @@ textarea {
opacity: 0.7;
}

.mx_linkButton {
cursor: pointer;
color: $accent-color;
}

.mx_Dialog_title {
min-height: 16px;
padding-top: 40px;
Expand Down
5 changes: 5 additions & 0 deletions res/css/_components.scss
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,21 @@
@import "./views/dialogs/_ChatInviteDialog.scss";
@import "./views/dialogs/_ConfirmUserActionDialog.scss";
@import "./views/dialogs/_CreateGroupDialog.scss";
@import "./views/dialogs/_CreateKeyBackupDialog.scss";
@import "./views/dialogs/_CreateRoomDialog.scss";
@import "./views/dialogs/_DeactivateAccountDialog.scss";
@import "./views/dialogs/_DevtoolsDialog.scss";
@import "./views/dialogs/_EncryptedEventDialog.scss";
@import "./views/dialogs/_GroupAddressPicker.scss";
@import "./views/dialogs/_RestoreKeyBackupDialog.scss";
@import "./views/dialogs/_RoomUpgradeDialog.scss";
@import "./views/dialogs/_SetEmailDialog.scss";
@import "./views/dialogs/_SetMxIdDialog.scss";
@import "./views/dialogs/_SetPasswordDialog.scss";
@import "./views/dialogs/_ShareDialog.scss";
@import "./views/dialogs/_UnknownDeviceDialog.scss";
@import "./views/dialogs/keybackup/_CreateKeyBackupDialog.scss";
@import "./views/dialogs/keybackup/_RestoreKeyBackupDialog.scss";
@import "./views/directory/_NetworkDropdown.scss";
@import "./views/elements/_AccessibleButton.scss";
@import "./views/elements/_AddressSelector.scss";
Expand Down Expand Up @@ -107,6 +111,7 @@
@import "./views/rooms/_TopUnreadMessagesBar.scss";
@import "./views/settings/_DevicesPanel.scss";
@import "./views/settings/_IntegrationsManager.scss";
@import "./views/settings/_KeyBackupPanel.scss";
@import "./views/settings/_Notifications.scss";
@import "./views/voip/_CallView.scss";
@import "./views/voip/_IncomingCallbox.scss";
Expand Down
25 changes: 25 additions & 0 deletions res/css/views/dialogs/_CreateKeyBackupDialog.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
Copyright 2018 New Vector Ltd

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

.mx_CreateKeyBackupDialog {
padding-right: 40px;
}

.mx_CreateKeyBackupDialog_recoveryKey {
padding: 20px;
color: $info-plinth-fg-color;
background-color: $info-plinth-bg-color;
}
19 changes: 19 additions & 0 deletions res/css/views/dialogs/_RestoreKeyBackupDialog.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
Copyright 2018 New Vector Ltd

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

.mx_RestoreKeyBackupDialog_keyStatus {
height: 30px;
}
39 changes: 39 additions & 0 deletions res/css/views/dialogs/keybackup/_CreateKeyBackupDialog.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
Copyright 2018 New Vector Ltd

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

.mx_CreateKeyBackupDialog_primaryContainer {
/*FIXME: plinth colour in new theme(s). background-color: $accent-color;*/
padding: 20px
}

.mx_CreateKeyBackupDialog_passPhraseInput {
width: 300px;
border: 1px solid $accent-color;
border-radius: 5px;
padding: 10px;
}

.mx_CreateKeyBackupDialog_passPhraseMatch {
float: right;
}

.mx_CreateKeyBackupDialog_recoveryKeyButtons {
float: right;
}

.mx_CreateKeyBackupDialog_recoveryKey {
width: 300px;
}
29 changes: 29 additions & 0 deletions res/css/views/dialogs/keybackup/_RestoreKeyBackupDialog.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
Copyright 2018 New Vector Ltd

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

.mx_RestoreKeyBackupDialog_primaryContainer {
/*FIXME: plinth colour in new theme(s). background-color: $accent-color;*/
padding: 20px
}

.mx_RestoreKeyBackupDialog_passPhraseInput,
.mx_RestoreKeyBackupDialog_recoveryKeyInput {
width: 300px;
border: 1px solid $accent-color;
border-radius: 5px;
padding: 10px;
}

32 changes: 32 additions & 0 deletions res/css/views/settings/_KeyBackupPanel.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*
Copyright 2018 New Vector Ltd

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

.mx_KeyBackupPanel_sigValid, .mx_KeyBackupPanel_sigInvalid,
.mx_KeyBackupPanel_deviceVerified, .mx_KeyBackupPanel_deviceNotVerified {
font-weight: bold;
}

.mx_KeyBackupPanel_sigValid, .mx_KeyBackupPanel_deviceVerified {
color: $e2e-verified-color;
}

.mx_KeyBackupPanel_sigInvalid, .mx_KeyBackupPanel_deviceNotVerified {
color: $e2e-warning-color;
}

.mx_KeyBackupPanel_deviceName {
font-style: italic;
}
1 change: 1 addition & 0 deletions src/components/structures/MatrixChat.js
Original file line number Diff line number Diff line change
Expand Up @@ -1375,6 +1375,7 @@ export default React.createClass({
cli.on("crypto.roomKeyRequestCancellation", (req) => {
krh.handleKeyRequestCancellation(req);
});

cli.on("Room", (room) => {
if (MatrixClientPeg.get().isCryptoEnabled()) {
const blacklistEnabled = SettingsStore.getValueAt(
Expand Down
11 changes: 11 additions & 0 deletions src/components/structures/UserSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -739,6 +739,16 @@ module.exports = React.createClass({
</div>
);
}

let keyBackupSection;
if (SettingsStore.isFeatureEnabled("feature_keybackup")) {
const KeyBackupPanel = sdk.getComponent('views.settings.KeyBackupPanel');
keyBackupSection = <div className="mx_UserSettings_section">
<h3>{ _t("Key Backup") }</h3>
<KeyBackupPanel />
</div>;
}

return (
<div>
<h3>{ _t("Cryptography") }</h3>
Expand All @@ -754,6 +764,7 @@ module.exports = React.createClass({
<div className="mx_UserSettings_section">
{ CRYPTO_SETTINGS.map( this._renderDeviceSetting ) }
</div>
{keyBackupSection}
</div>
);
},
Expand Down
Loading