Fri, 29 Nov 2024 13:19:56 +0100
Fixed some visual bugs.
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | # Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de> |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | Module implementing a dialog to manage FIDO2 security keys. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | from PyQt6.QtCore import Qt, QTimer, pyqtSlot |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
10 | from PyQt6.QtWidgets import ( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
11 | QDialog, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
12 | QDialogButtonBox, |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
13 | QInputDialog, |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
14 | QMenu, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
15 | QToolButton, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
16 | QTreeWidgetItem, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
17 | ) |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from eric7.EricGui import EricPixmapCache |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | from eric7.EricGui.EricOverrideCursor import EricOverrideCursor |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | from eric7.EricWidgets import EricMessageBox |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | from .Fido2Management import Fido2DeviceError, Fido2Management, Fido2PinError |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | from .Fido2PinDialog import Fido2PinDialog, Fido2PinDialogMode |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | from .Ui_Fido2ManagementDialog import Ui_Fido2ManagementDialog |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | class Fido2ManagementDialog(QDialog, Ui_Fido2ManagementDialog): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | Class implementing a dialog to manage FIDO2 security keys. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | CredentialIdRole = Qt.ItemDataRole.UserRole |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | UserIdRole = Qt.ItemDataRole.UserRole + 1 |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | RelyingPartyColumn = 0 |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | CredentialIdColumn = 1 |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | DisplayNameColumn = 2 |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | UserNameColumn = 3 |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
41 | def __init__(self, standalone=False, parent=None): |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | Constructor |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
45 | @param standalone flag indicating the standalone management application |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
46 | (defaults to False) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
47 | @type bool (optional) |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | @param parent reference to the parent widget (defaults to None) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | @type QWidget (optional) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | super().__init__(parent) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | self.setupUi(self) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.reloadButton.setIcon(EricPixmapCache.getIcon("reload")) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.lockButton.setIcon(EricPixmapCache.getIcon("locked")) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
57 | self.menuButton.setObjectName("fido2_supermenu_button") |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
58 | self.menuButton.setIcon(EricPixmapCache.getIcon("superMenu")) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
59 | self.menuButton.setToolTip(self.tr("Security Key Management Menu")) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
60 | self.menuButton.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
61 | self.menuButton.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
62 | self.menuButton.setFocusPolicy(Qt.FocusPolicy.NoFocus) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
63 | self.menuButton.setShowMenuInside(True) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
64 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
65 | self.__initManagementMenu() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
66 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
67 | if standalone: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
68 | self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setText( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
69 | self.tr("Quit") |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
70 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
71 | |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | self.reloadButton.clicked.connect(self.__populateDeviceSelector) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | self.__manager = Fido2Management(parent=self) |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
75 | self.__manager.deviceConnected.connect(self.__deviceConnected) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
76 | self.__manager.deviceDisconnected.connect(self.__deviceDisconnected) |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | QTimer.singleShot(0, self.__populateDeviceSelector) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
80 | def __initManagementMenu(self): |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
81 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
82 | Private method to initialize the security key management menu with |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
83 | actions not needed so much. |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
84 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
85 | self.__mgmtMenu = QMenu() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
86 | self.__mgmtMenu.addAction(self.tr("Show Info"), self.__showSecurityKeyInfo) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
87 | self.__mgmtMenu.addSeparator() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
88 | self.__mgmtMenu.addAction( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
89 | self.tr("Reset Security Key"), self.__resetSecurityKey |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
90 | ) |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
91 | self.__mgmtMenu.addSeparator() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
92 | self.__forcePinChangeAct = self.__mgmtMenu.addAction( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
93 | self.tr("Force PIN Change"), self.__forcePinChange |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
94 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
95 | self.__minPinLengthAct = self.__mgmtMenu.addAction( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
96 | self.tr("Set Minimum PIN Length"), self.__setMinimumPinLength |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
97 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
98 | self.__toggleAlwaysUvAct = self.__mgmtMenu.addAction( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
99 | self.tr("Toggle 'Always Require User Verification'"), self.__toggleAlwaysUv |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
100 | ) |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
101 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
102 | self.__mgmtMenu.aboutToShow.connect(self.__aboutToShowManagementMenu) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
103 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
104 | self.menuButton.setMenu(self.__mgmtMenu) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
105 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
106 | @pyqtSlot() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
107 | def __aboutToShowManagementMenu(self): |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
108 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
109 | Private slot to prepare the security key management menu before it is shown. |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
110 | """ |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
111 | self.__forcePinChangeAct.setEnabled( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
112 | self.__manager.forcePinChangeSupported() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
113 | and not self.__manager.pinChangeRequired() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
114 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
115 | self.__minPinLengthAct.setEnabled( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
116 | self.__manager.canSetMinimumPinLength() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
117 | and not self.__manager.pinChangeRequired() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
118 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
119 | self.__toggleAlwaysUvAct.setEnabled( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
120 | self.__manager.canToggleAlwaysUv() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
121 | and not self.__manager.pinChangeRequired() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
122 | ) |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
123 | |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | ############################################################################ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | ## methods related to device handling |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | ############################################################################ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | def __populateDeviceSelector(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | Private slot to populate the device selector combo box. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | self.__manager.disconnectFromDevice() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | self.securityKeysComboBox.clear() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | securityKeys = self.__manager.getDevices() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | if len(securityKeys) != 1: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | self.securityKeysComboBox.addItem("") |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | for securityKey in securityKeys: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | self.securityKeysComboBox.addItem( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | self.tr("{0} ({1})").format( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | securityKey.product_name, securityKey.descriptor.path |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | ), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | securityKey, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | if len(securityKeys) == 0: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | EricMessageBox.information( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | self.tr("FIDO2 Security Key Management"), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | self.tr( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | """No security key could be detected. Attach a key and press""" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | """ the "Reload" button.""" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | ), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | @pyqtSlot(int) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | def on_securityKeysComboBox_currentIndexChanged(self, index): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | Private slot handling the selection of security key. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | @param index index of the selected security key |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | @type int |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | self.__manager.disconnectFromDevice() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | securityKey = self.securityKeysComboBox.itemData(index) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | if securityKey is not None: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | self.__manager.connectToDevice(securityKey) |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
171 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
172 | @pyqtSlot() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
173 | def __deviceConnected(self): |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
174 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
175 | Private slot handling the device connected signal. |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
176 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
177 | self.lockButton.setEnabled(True) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
178 | self.pinButton.setEnabled(True) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
179 | self.menuButton.setEnabled(True) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
180 | self.loadPasskeysButton.setEnabled(True) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
181 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
182 | hasPin = self.__manager.hasPin() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
183 | forcedPinChange = self.__manager.pinChangeRequired() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
184 | if hasPin is True: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
185 | self.pinButton.setText(self.tr("Change PIN")) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
186 | elif hasPin is False: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
187 | self.pinButton.setText(self.tr("Set PIN")) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
188 | else: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
189 | self.pinButton.setEnabled(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
190 | if forcedPinChange or hasPin is False: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
191 | self.lockButton.setEnabled(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
192 | self.loadPasskeysButton.setEnabled(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
193 | msg = ( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
194 | self.tr("A PIN change is required.") |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
195 | if forcedPinChange |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
196 | else self.tr("You must set a PIN first.") |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
197 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
198 | EricMessageBox.information( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
199 | self, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
200 | self.tr("FIDO2 Security Key Management"), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
201 | msg, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
202 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
203 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
204 | self.passkeysList.clear() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
205 | self.on_passkeysList_itemSelectionChanged() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
206 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
207 | @pyqtSlot() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
208 | def __deviceDisconnected(self): |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
209 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
210 | Private slot handling the device disconnected signal. |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
211 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
212 | self.lockButton.setChecked(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
213 | self.passkeysList.clear() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
214 | self.on_passkeysList_itemSelectionChanged() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
215 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
216 | self.lockButton.setEnabled(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
217 | self.pinButton.setEnabled(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
218 | self.menuButton.setEnabled(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
219 | self.loadPasskeysButton.setEnabled(False) |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | self.passkeysList.clear() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | self.on_passkeysList_itemSelectionChanged() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | @pyqtSlot(bool) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | def on_lockButton_toggled(self, checked): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | Private slot to handle the toggling of the device locked status. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | @param checked state of the lock/unlock button |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | @type bool |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | if checked: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | # unlock the selected security key |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | pin = self.__getRequiredPin(self.tr("Unlock Security Key")) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | if pin: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | ok, msg = self.__manager.verifyPin(pin=pin) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | if ok: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | self.lockButton.setIcon(EricPixmapCache.getIcon("unlocked")) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | self.__manager.unlockDevice(pin) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | EricMessageBox.critical( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | self.tr("Unlock Security Key"), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | msg, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | self.lockButton.setChecked(False) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | self.lockButton.setChecked(False) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | # lock the selected security key |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | self.lockButton.setIcon(EricPixmapCache.getIcon("locked")) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | self.__manager.lockDevice() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | @pyqtSlot() |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
255 | def __showSecurityKeyInfo(self): |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
256 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
257 | Private slot to show some info about the selected security key. |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
258 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
259 | from .Fido2InfoDialog import Fido2InfoDialog |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
260 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
261 | securityKey = self.securityKeysComboBox.currentData() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
262 | dlg = Fido2InfoDialog( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
263 | header=securityKey.product_name, manager=self.__manager, parent=self |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
264 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
265 | dlg.exec() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
266 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
267 | @pyqtSlot() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
268 | def __resetSecurityKey(self): |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
269 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
270 | Private slot to reset the selected security key. |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | """ |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
272 | title = self.tr("Reset Security Key") |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
273 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
274 | yes = EricMessageBox.yesNo( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
275 | parent=self, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
276 | title=title, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
277 | text=self.tr( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
278 | "<p>Shall the selected security key really be reset?</p><p><b>WARNING" |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
279 | ":</b> This will delete all passkeys and restore factory settings.</p>" |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
280 | ), |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
281 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
282 | if yes: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
283 | if len(self.__manager.getDevices()) != 1: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
284 | EricMessageBox.critical( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
285 | self, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
286 | title=title, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
287 | text=self.tr( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
288 | "Only one security key can be connected to perform a reset." |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
289 | " Remove all other security keys and try again." |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
290 | ), |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
291 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
292 | return |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
293 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
294 | EricMessageBox.information( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
295 | self, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
296 | title=title, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
297 | text=self.tr( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
298 | "Confirm this dialog then remove and re-insert the security key." |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
299 | " Confirm the reset by touching it." |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
300 | ), |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
301 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
302 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
303 | ok, msg = self.__manager.resetDevice() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
304 | if ok: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
305 | EricMessageBox.information(self, title, msg) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
306 | else: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
307 | EricMessageBox.warning(self, title, msg) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
308 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
309 | self.__populateDeviceSelector() |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
310 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311 | ############################################################################ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | ## methods related to PIN handling |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | ############################################################################ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
314 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | def __checkPinStatus(self, feature): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | Private method to check the PIN status of the connected security key. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319 | @param feature name of the feature requesting the PIN (defaults to None) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | @type str (optional) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | @return flag indicating a positive status |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | @rtype bool |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324 | feature = self.tr("This feature") if feature is None else f"'{feature}'" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | hasPin = self.__manager.hasPin() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | retries, powerCycle = self.__manager.getPinRetries() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | if hasPin is None: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | msg = self.tr("{0} is not supported by the selected security key.").format( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | feature |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | elif not hasPin: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | msg = self.tr("{0} requires having a PIN. Set a PIN first.").format(feature) |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
335 | elif self.__manager.pinChangeRequired(): |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
336 | msg = self.tr("The security key is locked. Change the PIN first.") |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
337 | elif powerCycle: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
338 | msg = self.tr( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | "The security key is locked because the wrong PIN was entered " |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | "too many times. To unlock it, remove and reinsert it." |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
341 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | elif retries == 0: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343 | msg = self.tr( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344 | "The security key is locked because the wrong PIN was entered too" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | " many times. You will need to reset the security key." |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348 | msg = "" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | if msg: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | EricMessageBox.critical( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | self.tr("FIDO2 Security Key Management"), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | msg, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | return False |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | return True |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | def __getRequiredPin(self, feature=None): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | Private method to check, if a pin has been set for the selected device, and |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | ask the user to enter it. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | @param feature name of the feature requesting the PIN (defaults to None) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | @type str (optional) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | @return PIN of the selected security key or None in case of an issue |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | @rtype str or None |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | if not self.__checkPinStatus(feature=feature): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | return None |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | if self.__manager.isDeviceLocked(): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | retries = self.__manager.getPinRetries()[0] |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | title = self.tr("PIN required") if feature is None else feature |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | dlg = Fido2PinDialog( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377 | mode=Fido2PinDialogMode.GET, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | title=title, |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
379 | message=self.tr("Enter the PIN to unlock the security key."), |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | minLength=self.__manager.getMinimumPinLength(), |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
381 | retries=retries, |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | parent=self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | if dlg.exec() == QDialog.DialogCode.Accepted: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | return dlg.getPins()[0] |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | return None |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | return "" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | def __setPin(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | Private slot to set a PIN for the selected security key. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | """ |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
396 | retries = self.__manager.getPinRetries()[0] |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
397 | title = self.tr("Set PIN") |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
398 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
399 | dlg = Fido2PinDialog( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
400 | mode=Fido2PinDialogMode.SET, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
401 | title=title, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
402 | message=self.tr("Enter the PIN for the security key."), |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
403 | minLength=self.__manager.getMinimumPinLength(), |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
404 | retries=retries, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
405 | parent=self, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
406 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
407 | if dlg.exec() == QDialog.DialogCode.Accepted: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
408 | newPin = dlg.getPins()[1] |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
409 | ok, msg = self.__manager.setPin(newPin) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
410 | if ok: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
411 | EricMessageBox.information(self, title, msg) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
412 | else: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
413 | EricMessageBox.warning(self, title, msg) |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | def __changePin(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | """ |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
418 | Private slot to change the PIN of the selected security key. |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | """ |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
420 | retries = self.__manager.getPinRetries()[0] |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
421 | title = self.tr("Change PIN") |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
422 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
423 | dlg = Fido2PinDialog( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
424 | mode=Fido2PinDialogMode.CHANGE, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
425 | title=title, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
426 | message=self.tr("Enter the current and new PINs."), |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
427 | minLength=self.__manager.getMinimumPinLength(), |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
428 | retries=retries, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
429 | parent=self, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
430 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
431 | if dlg.exec() == QDialog.DialogCode.Accepted: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
432 | oldPin, newPin = dlg.getPins() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
433 | ok, msg = self.__manager.changePin(oldPin, newPin) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
434 | if ok: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
435 | EricMessageBox.information(self, title, msg) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
436 | else: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
437 | EricMessageBox.warning(self, title, msg) |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
438 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
439 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
440 | def on_pinButton_clicked(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | Private slot to set or change the PIN for the selected security key. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
443 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
444 | if self.__manager.hasPin(): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
445 | self.__changePin() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
446 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
447 | self.__setPin() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
449 | ############################################################################ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
450 | ## methods related to passkeys handling |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | ############################################################################ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
452 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
453 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
454 | def __populatePasskeysList(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
455 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
456 | Private slot to populate the list of store passkeys of the selected security |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
457 | key. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
458 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
459 | keyIndex = self.securityKeysComboBox.currentData() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
460 | if keyIndex is None: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
461 | return |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
462 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
463 | pin = self.__getRequiredPin(feature=self.tr("Credential Management")) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
464 | if pin is None: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
465 | return |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
466 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
467 | self.passkeysList.clear() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
468 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
469 | try: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
470 | with EricOverrideCursor(): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
471 | passkeys, existingCount, remainingCount = self.__manager.getPasskeys( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
472 | pin=pin |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
473 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
474 | except (Fido2DeviceError, Fido2PinError) as err: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
475 | self.__handleError( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
476 | error=err, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
477 | title=self.tr("Load Passkeys"), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
478 | message=self.tr("The stored passkeys could not be loaded."), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
479 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
480 | return |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
481 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
482 | self.existingCountLabel.setText(str(existingCount)) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
483 | self.remainingCountLabel.setText(str(remainingCount)) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
484 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
485 | for relyingParty in passkeys: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
486 | rpItem = QTreeWidgetItem(self.passkeysList, [relyingParty]) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
487 | rpItem.setFirstColumnSpanned(True) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
488 | rpItem.setExpanded(True) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
489 | for passDict in passkeys[relyingParty]: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
490 | item = QTreeWidgetItem( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
491 | rpItem, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
492 | [ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
493 | "", |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | passDict["credentialId"]["id"].hex(), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
495 | passDict["displayName"], |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
496 | passDict["userName"], |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | ], |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
498 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
499 | item.setData(0, self.CredentialIdRole, passDict["credentialId"]) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
500 | item.setData(0, self.UserIdRole, passDict["userId"]) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
501 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
502 | self.passkeysList.sortItems(self.DisplayNameColumn, Qt.SortOrder.AscendingOrder) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
503 | self.passkeysList.sortItems( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
504 | self.RelyingPartyColumn, Qt.SortOrder.AscendingOrder |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
506 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
507 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | def on_loadPasskeysButton_clicked(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
509 | """ |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
510 | Private slot to (re-)populate the passkeys list. |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | self.__populatePasskeysList() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
513 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
514 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
515 | def on_passkeysList_itemSelectionChanged(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
516 | """ |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
517 | Private slot handling the selection of a passkey. |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
518 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
519 | enableButtons = ( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
520 | len(self.passkeysList.selectedItems()) == 1 |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
521 | and self.passkeysList.selectedItems()[0].parent() is not None |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
522 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
523 | self.editButton.setEnabled(enableButtons) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
524 | self.deleteButton.setEnabled(enableButtons) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
526 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
527 | def on_editButton_clicked(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
528 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
529 | Private slot to edit the selected passkey. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
530 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | from .Fido2PasskeyEditDialog import Fido2PasskeyEditDialog |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
533 | selectedItem = self.passkeysList.selectedItems()[0] |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | dlg = Fido2PasskeyEditDialog( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
535 | displayName=selectedItem.text(self.DisplayNameColumn), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
536 | userName=selectedItem.text(self.UserNameColumn), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
537 | relyingParty=selectedItem.parent().text(self.RelyingPartyColumn), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
538 | parent=self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
539 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
540 | if dlg.exec() == QDialog.DialogCode.Accepted: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
541 | displayName, userName = dlg.getData() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
542 | if displayName != selectedItem.text( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
543 | self.DisplayNameColumn |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
544 | ) or userName != selectedItem.text(self.UserNameColumn): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
545 | # only change on the security key, if there is really a change |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
546 | pin = self.__getRequiredPin(feature=self.tr("Change User Info")) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
547 | try: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
548 | self.__manager.changePasskeyUserInfo( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
549 | pin=pin, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
550 | credentialId=selectedItem.data(0, self.CredentialIdRole), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
551 | userId=selectedItem.data(0, self.UserIdRole), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
552 | userName=userName, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
553 | displayName=displayName, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
554 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
555 | except (Fido2DeviceError, Fido2PinError) as err: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
556 | self.__handleError( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
557 | error=err, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
558 | title=self.tr("Change User Info"), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
559 | message=self.tr("The user info could not be changed."), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
560 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
561 | return |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
562 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
563 | selectedItem.setText(self.DisplayNameColumn, displayName) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
564 | selectedItem.setText(self.UserNameColumn, userName) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
565 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
566 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
567 | def on_deleteButton_clicked(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
568 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
569 | Private slot to delete the selected passkey. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
570 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
571 | selectedItem = self.passkeysList.selectedItems()[0] |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
572 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
573 | ok = EricMessageBox.yesNo( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
574 | self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
575 | self.tr("Delete Passkey"), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
576 | self.tr( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
577 | "<p>Shall the selected passkey really be deleted?</p>" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
578 | "<ul>" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
579 | "<li>Relying Party: {0}</li>" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
580 | "<li>Display Name: {1}</li>" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
581 | "<li>User Name: {2}</li>" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
582 | "</ul>" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
583 | ).format( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
584 | selectedItem.parent().text(self.RelyingPartyColumn), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
585 | selectedItem.text(self.DisplayNameColumn), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
586 | selectedItem.text(self.UserNameColumn), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
587 | ), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
588 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
589 | if ok: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
590 | pin = self.__getRequiredPin(feature=self.tr("Delete Passkey")) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
591 | try: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
592 | self.__manager.deletePasskey( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
593 | pin=pin, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
594 | credentialId=selectedItem.data(0, self.CredentialIdRole), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
595 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
596 | except (Fido2DeviceError, Fido2PinError) as err: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
597 | self.__handleError( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
598 | error=err, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
599 | title=self.tr("Delete Passkey"), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
600 | message=self.tr("The passkey could not be deleted."), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
601 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
602 | return |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
603 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
604 | rpItem = selectedItem.parent() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
605 | index = rpItem.indexOfChild(selectedItem) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
606 | rpItem.takeChild(index) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
607 | del selectedItem |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
608 | if rpItem.childCount() == 0: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
609 | index = self.passkeysList.indexOfTopLevelItem(rpItem) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
610 | self.passkeysList.takeTopLevelItem(index) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
611 | del rpItem |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
612 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
613 | ############################################################################ |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
614 | ## methods related to device configuration |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
615 | ############################################################################ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
616 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
617 | @pyqtSlot() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
618 | def __forcePinChange(self): |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
619 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
620 | Private slot to force a PIN change before the next use. |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
621 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
622 | pin = self.__getRequiredPin(feature=self.tr("Force PIN Change")) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
623 | try: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
624 | self.__manager.forcePinChange(pin=pin) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
625 | except (Fido2DeviceError, Fido2PinError) as err: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
626 | self.__handleError( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
627 | error=err, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
628 | title=self.tr("Force PIN Change"), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
629 | message=self.tr("The 'Force PIN Change' flag could not be set."), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
630 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
631 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
632 | @pyqtSlot() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
633 | def __setMinimumPinLength(self): |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
634 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
635 | Private slot to set the minimum PIN length. |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
636 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
637 | currMinLength = self.__manager.getMinimumPinLength() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
638 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
639 | minPinLength, ok = QInputDialog.getInt( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
640 | self, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
641 | self.tr("Set Minimum PIN Length"), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
642 | self.tr("Enter the minimum PIN length (between {0} and 63):").format( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
643 | currMinLength |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
644 | ), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
645 | 0, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
646 | currMinLength, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
647 | 63, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
648 | 1, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
649 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
650 | if ok and minPinLength != currMinLength: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
651 | pin = self.__getRequiredPin(feature=self.tr("Set Minimum PIN Length")) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
652 | try: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
653 | self.__manager.setMinimumPinLength(pin=pin, minLength=minPinLength) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
654 | EricMessageBox.information( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
655 | self, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
656 | self.tr("Set Minimum PIN Length"), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
657 | self.tr("The minimum PIN length was set to be {0}.").format( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
658 | minPinLength |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
659 | ), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
660 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
661 | except (Fido2DeviceError, Fido2PinError) as err: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
662 | self.__handleError( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
663 | error=err, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
664 | title=self.tr("Set Minimum PIN Length"), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
665 | message=self.tr("The minimum PIN length could not be set."), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
666 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
667 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
668 | @pyqtSlot() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
669 | def __toggleAlwaysUv(self): |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
670 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
671 | Private slot to toggle the state of the 'Always Require User Verification' |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
672 | flag. |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
673 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
674 | pin = self.__getRequiredPin( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
675 | feature=self.tr("Toggle 'Always Require User Verification'") |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
676 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
677 | try: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
678 | self.__manager.toggleAlwaysUv(pin=pin) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
679 | EricMessageBox.information( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
680 | self, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
681 | self.tr("Always Require User Verification"), |
10859
399d19fc7eb5
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10857
diff
changeset
|
682 | ( |
399d19fc7eb5
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10857
diff
changeset
|
683 | self.tr("Always Require User Verification is now enabled.") |
399d19fc7eb5
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10857
diff
changeset
|
684 | if self.__manager.getAlwaysUv() |
399d19fc7eb5
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10857
diff
changeset
|
685 | else self.tr("Always Require User Verification is now disabled.") |
399d19fc7eb5
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10857
diff
changeset
|
686 | ), |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
687 | ) |
10859
399d19fc7eb5
Corrected some code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10857
diff
changeset
|
688 | |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
689 | except (Fido2DeviceError, Fido2PinError) as err: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
690 | self.__handleError( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
691 | error=err, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
692 | title=self.tr("Toggle 'Always Require User Verification'"), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
693 | message=self.tr( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
694 | "The 'Always Require User Verification' flag could not be toggled." |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
695 | ), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
696 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
697 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
698 | ############################################################################ |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
699 | ## utility methods |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
700 | ############################################################################ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
701 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
702 | def __handleError(self, error, title, message): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
703 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
704 | Private method to handle an error reported by the manager. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
705 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
706 | @param error reference to the exception object |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
707 | @type Exception |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
708 | @param title tirle of the message box |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
709 | @type str |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
710 | @param message message to be shown |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
711 | @type str |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
712 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
713 | EricMessageBox.critical( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
714 | self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
715 | title, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
716 | self.tr("<p>{0}</p><p>Reason: {1}</p>").format(message, str(error)), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
717 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
718 | if isinstance(error, Fido2DeviceError): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
719 | self.__populateDeviceSelector() |