Mon, 22 Jul 2024 15:24:27 +0200
Continued implementing the FIDO2 security key management interface.
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.setAutoRaise(True) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
64 | self.menuButton.setShowMenuInside(True) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
65 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
66 | self.__initManagementMenu() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
67 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
68 | if standalone: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
69 | 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
|
70 | self.tr("Quit") |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
71 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
72 | |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | 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
|
74 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | 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
|
76 | 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
|
77 | 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
|
78 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | QTimer.singleShot(0, self.__populateDeviceSelector) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
81 | def __initManagementMenu(self): |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
82 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
83 | 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
|
84 | actions not needed so much. |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
85 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
86 | self.__mgmtMenu = QMenu() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
87 | 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
|
88 | self.__mgmtMenu.addSeparator() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
89 | self.__mgmtMenu.addAction( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
90 | 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
|
91 | ) |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
92 | self.__mgmtMenu.addSeparator() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
93 | self.__forcePinChangeAct = self.__mgmtMenu.addAction( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
94 | 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
|
95 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
96 | self.__minPinLengthAct = self.__mgmtMenu.addAction( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
97 | 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
|
98 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
99 | self.__toggleAlwaysUvAct = self.__mgmtMenu.addAction( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
100 | 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
|
101 | ) |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
102 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
103 | 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
|
104 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
105 | self.menuButton.setMenu(self.__mgmtMenu) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
106 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
107 | @pyqtSlot() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
108 | def __aboutToShowManagementMenu(self): |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
109 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
110 | 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
|
111 | """ |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
112 | self.__forcePinChangeAct.setEnabled( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
113 | self.__manager.forcePinChangeSupported() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
114 | and not self.__manager.pinChangeRequired() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
115 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
116 | self.__minPinLengthAct.setEnabled( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
117 | self.__manager.canSetMinimumPinLength() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
118 | and not self.__manager.pinChangeRequired() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
119 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
120 | self.__toggleAlwaysUvAct.setEnabled( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
121 | self.__manager.canToggleAlwaysUv() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
122 | and not self.__manager.pinChangeRequired() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
123 | ) |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
124 | |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | ############################################################################ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | ## methods related to device handling |
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 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | def __populateDeviceSelector(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | 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
|
133 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | self.__manager.disconnectFromDevice() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | self.securityKeysComboBox.clear() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | securityKeys = self.__manager.getDevices() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | if len(securityKeys) != 1: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | self.securityKeysComboBox.addItem("") |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | for securityKey in securityKeys: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | self.securityKeysComboBox.addItem( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | self.tr("{0} ({1})").format( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | 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
|
145 | ), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | securityKey, |
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 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | if len(securityKeys) == 0: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | EricMessageBox.information( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | 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
|
153 | self.tr( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | """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
|
155 | """ the "Reload" button.""" |
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 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | @pyqtSlot(int) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | 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
|
161 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | 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
|
163 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | @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
|
165 | @type int |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | self.__manager.disconnectFromDevice() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | securityKey = self.securityKeysComboBox.itemData(index) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | if securityKey is not None: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | self.__manager.connectToDevice(securityKey) |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
172 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
173 | @pyqtSlot() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
174 | def __deviceConnected(self): |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
175 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
176 | 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
|
177 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
178 | self.lockButton.setEnabled(True) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
179 | self.pinButton.setEnabled(True) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
180 | self.menuButton.setEnabled(True) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
181 | self.loadPasskeysButton.setEnabled(True) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
182 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
183 | hasPin = self.__manager.hasPin() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
184 | forcedPinChange = self.__manager.pinChangeRequired() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
185 | if hasPin is True: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
186 | 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
|
187 | elif hasPin is False: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
188 | 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
|
189 | else: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
190 | self.pinButton.setEnabled(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
191 | 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
|
192 | self.lockButton.setEnabled(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
193 | self.loadPasskeysButton.setEnabled(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
194 | msg = ( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
195 | 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
|
196 | if forcedPinChange |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
197 | 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
|
198 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
199 | EricMessageBox.information( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
200 | self, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
201 | 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
|
202 | msg, |
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 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
205 | self.passkeysList.clear() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
206 | self.on_passkeysList_itemSelectionChanged() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
207 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
208 | @pyqtSlot() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
209 | def __deviceDisconnected(self): |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
210 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
211 | 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
|
212 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
213 | self.lockButton.setChecked(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
214 | self.passkeysList.clear() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
215 | self.on_passkeysList_itemSelectionChanged() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
216 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
217 | self.lockButton.setEnabled(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
218 | self.pinButton.setEnabled(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
219 | self.menuButton.setEnabled(False) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
220 | self.loadPasskeysButton.setEnabled(False) |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | self.passkeysList.clear() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | self.on_passkeysList_itemSelectionChanged() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | @pyqtSlot(bool) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | 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
|
227 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | 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
|
229 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | @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
|
231 | @type bool |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | if checked: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | # unlock the selected security key |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | 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
|
236 | if pin: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | 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
|
238 | if ok: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | 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
|
240 | self.__manager.unlockDevice(pin) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | EricMessageBox.critical( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | self.tr("Unlock Security Key"), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | msg, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | self.lockButton.setChecked(False) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | self.lockButton.setChecked(False) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | # lock the selected security key |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | 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
|
253 | self.__manager.lockDevice() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | @pyqtSlot() |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
256 | def __showSecurityKeyInfo(self): |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
257 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
258 | 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
|
259 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
260 | from .Fido2InfoDialog import Fido2InfoDialog |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
261 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
262 | securityKey = self.securityKeysComboBox.currentData() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
263 | dlg = Fido2InfoDialog( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
264 | 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
|
265 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
266 | dlg.exec() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
267 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
268 | @pyqtSlot() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
269 | def __resetSecurityKey(self): |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
270 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
271 | 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
|
272 | """ |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
273 | 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
|
274 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
275 | yes = EricMessageBox.yesNo( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
276 | parent=self, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
277 | title=title, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
278 | text=self.tr( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
279 | "<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
|
280 | ":</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
|
281 | ), |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
282 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
283 | if yes: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
284 | 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
|
285 | EricMessageBox.critical( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
286 | self, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
287 | title=title, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
288 | text=self.tr( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
289 | "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
|
290 | " 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
|
291 | ), |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
292 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
293 | return |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
294 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
295 | EricMessageBox.information( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
296 | self, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
297 | title=title, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
298 | text=self.tr( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
299 | "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
|
300 | " 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
|
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 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
304 | ok, msg = self.__manager.resetDevice() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
305 | if ok: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
306 | EricMessageBox.information(self, title, msg) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
307 | else: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
308 | EricMessageBox.warning(self, title, msg) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
309 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
310 | self.__populateDeviceSelector() |
10854
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 | ############################################################################ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | ## methods related to PIN handling |
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 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | def __checkPinStatus(self, feature): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | 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
|
319 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | @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
|
321 | @type str (optional) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | @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
|
323 | @rtype bool |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | 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
|
326 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | hasPin = self.__manager.hasPin() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | retries, powerCycle = self.__manager.getPinRetries() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | if hasPin is None: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | 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
|
332 | feature |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | elif not hasPin: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335 | 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
|
336 | elif self.__manager.pinChangeRequired(): |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
337 | 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
|
338 | elif powerCycle: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | msg = self.tr( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | "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
|
341 | "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
|
342 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343 | elif retries == 0: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344 | msg = self.tr( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | "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
|
346 | " 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
|
347 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | msg = "" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | if msg: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | EricMessageBox.critical( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | 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
|
355 | msg, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | return False |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | return True |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | def __getRequiredPin(self, feature=None): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | 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
|
364 | 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
|
365 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | @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
|
367 | @type str (optional) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | @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
|
369 | @rtype str or None |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | 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
|
372 | return None |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | if self.__manager.isDeviceLocked(): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | retries = self.__manager.getPinRetries()[0] |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | 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
|
377 | dlg = Fido2PinDialog( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | mode=Fido2PinDialogMode.GET, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | title=title, |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
380 | 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
|
381 | minLength=self.__manager.getMinimumPinLength(), |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
382 | retries=retries, |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | parent=self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | 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
|
386 | return dlg.getPins()[0] |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388 | return None |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | return "" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | def __setPin(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | 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
|
396 | """ |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
397 | retries = self.__manager.getPinRetries()[0] |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
398 | title = self.tr("Set PIN") |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
399 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
400 | dlg = Fido2PinDialog( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
401 | mode=Fido2PinDialogMode.SET, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
402 | title=title, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
403 | 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
|
404 | minLength=self.__manager.getMinimumPinLength(), |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
405 | retries=retries, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
406 | parent=self, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
407 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
408 | 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
|
409 | newPin = dlg.getPins()[1] |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
410 | 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
|
411 | if ok: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
412 | EricMessageBox.information(self, title, msg) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
413 | else: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
414 | 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
|
415 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | def __changePin(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | """ |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
419 | 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
|
420 | """ |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
421 | retries = self.__manager.getPinRetries()[0] |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
422 | title = self.tr("Change PIN") |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
423 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
424 | dlg = Fido2PinDialog( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
425 | mode=Fido2PinDialogMode.CHANGE, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
426 | title=title, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
427 | 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
|
428 | minLength=self.__manager.getMinimumPinLength(), |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
429 | retries=retries, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
430 | parent=self, |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
431 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
432 | 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
|
433 | oldPin, newPin = dlg.getPins() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
434 | 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
|
435 | if ok: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
436 | EricMessageBox.information(self, title, msg) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
437 | else: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
438 | 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
|
439 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
440 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | def on_pinButton_clicked(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
443 | 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
|
444 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
445 | if self.__manager.hasPin(): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
446 | self.__changePin() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
447 | else: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | self.__setPin() |
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 | ############################################################################ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | ## methods related to passkeys handling |
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 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
454 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
455 | def __populatePasskeysList(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
456 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
457 | 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
|
458 | key. |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
459 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
460 | keyIndex = self.securityKeysComboBox.currentData() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
461 | if keyIndex is None: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
462 | return |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
463 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
464 | 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
|
465 | if pin is None: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
466 | return |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
467 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
468 | self.passkeysList.clear() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
469 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
470 | try: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
471 | with EricOverrideCursor(): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
472 | 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
|
473 | pin=pin |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
474 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
475 | except (Fido2DeviceError, Fido2PinError) as err: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
476 | self.__handleError( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
477 | error=err, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
478 | title=self.tr("Load Passkeys"), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
479 | 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
|
480 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
481 | return |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
482 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
483 | self.existingCountLabel.setText(str(existingCount)) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
484 | self.remainingCountLabel.setText(str(remainingCount)) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
485 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
486 | for relyingParty in passkeys: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
487 | rpItem = QTreeWidgetItem(self.passkeysList, [relyingParty]) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
488 | rpItem.setFirstColumnSpanned(True) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
489 | rpItem.setExpanded(True) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
490 | for passDict in passkeys[relyingParty]: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
491 | item = QTreeWidgetItem( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
492 | rpItem, |
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 | "", |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
495 | passDict["credentialId"]["id"].hex(), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
496 | passDict["displayName"], |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | passDict["userName"], |
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 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
500 | 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
|
501 | 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
|
502 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
503 | 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
|
504 | self.passkeysList.sortItems( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | self.RelyingPartyColumn, Qt.SortOrder.AscendingOrder |
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 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
509 | def on_loadPasskeysButton_clicked(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
510 | """ |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
511 | 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
|
512 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
513 | self.__populatePasskeysList() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
514 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
515 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
516 | def on_passkeysList_itemSelectionChanged(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
517 | """ |
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10854
diff
changeset
|
518 | 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
|
519 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
520 | enableButtons = ( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
521 | len(self.passkeysList.selectedItems()) == 1 |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
522 | 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
|
523 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
524 | self.editButton.setEnabled(enableButtons) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | self.deleteButton.setEnabled(enableButtons) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
526 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
527 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
528 | def on_editButton_clicked(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
529 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
530 | 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
|
531 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | from .Fido2PasskeyEditDialog import Fido2PasskeyEditDialog |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
533 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | selectedItem = self.passkeysList.selectedItems()[0] |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
535 | dlg = Fido2PasskeyEditDialog( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
536 | displayName=selectedItem.text(self.DisplayNameColumn), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
537 | userName=selectedItem.text(self.UserNameColumn), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
538 | 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
|
539 | parent=self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
540 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
541 | 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
|
542 | displayName, userName = dlg.getData() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
543 | if displayName != selectedItem.text( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
544 | self.DisplayNameColumn |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
545 | ) 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
|
546 | # 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
|
547 | 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
|
548 | try: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
549 | self.__manager.changePasskeyUserInfo( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
550 | pin=pin, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
551 | 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
|
552 | 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
|
553 | userName=userName, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
554 | displayName=displayName, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
555 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
556 | except (Fido2DeviceError, Fido2PinError) as err: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
557 | self.__handleError( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
558 | error=err, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
559 | 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
|
560 | 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
|
561 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
562 | return |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
563 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
564 | selectedItem.setText(self.DisplayNameColumn, displayName) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
565 | selectedItem.setText(self.UserNameColumn, userName) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
566 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
567 | @pyqtSlot() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
568 | def on_deleteButton_clicked(self): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
569 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
570 | 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
|
571 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
572 | selectedItem = self.passkeysList.selectedItems()[0] |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
573 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
574 | ok = EricMessageBox.yesNo( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
575 | self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
576 | self.tr("Delete Passkey"), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
577 | self.tr( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
578 | "<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
|
579 | "<ul>" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
580 | "<li>Relying Party: {0}</li>" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
581 | "<li>Display Name: {1}</li>" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
582 | "<li>User Name: {2}</li>" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
583 | "</ul>" |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
584 | ).format( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
585 | selectedItem.parent().text(self.RelyingPartyColumn), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
586 | selectedItem.text(self.DisplayNameColumn), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
587 | selectedItem.text(self.UserNameColumn), |
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 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
590 | if ok: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
591 | 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
|
592 | try: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
593 | self.__manager.deletePasskey( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
594 | pin=pin, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
595 | 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
|
596 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
597 | except (Fido2DeviceError, Fido2PinError) as err: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
598 | self.__handleError( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
599 | error=err, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
600 | title=self.tr("Delete Passkey"), |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
601 | 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
|
602 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
603 | return |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
604 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
605 | rpItem = selectedItem.parent() |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
606 | index = rpItem.indexOfChild(selectedItem) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
607 | rpItem.takeChild(index) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
608 | del selectedItem |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
609 | if rpItem.childCount() == 0: |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
610 | index = self.passkeysList.indexOfTopLevelItem(rpItem) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
611 | self.passkeysList.takeTopLevelItem(index) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
612 | del rpItem |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
613 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
614 | ############################################################################ |
10857
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
615 | ## methods related to device configuration |
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 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
618 | @pyqtSlot() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
619 | def __forcePinChange(self): |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
620 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
621 | 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
|
622 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
623 | 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
|
624 | try: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
625 | self.__manager.forcePinChange(pin=pin) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
626 | except (Fido2DeviceError, Fido2PinError) as err: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
627 | self.__handleError( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
628 | error=err, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
629 | 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
|
630 | 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
|
631 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
632 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
633 | @pyqtSlot() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
634 | def __setMinimumPinLength(self): |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
635 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
636 | 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
|
637 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
638 | currMinLength = self.__manager.getMinimumPinLength() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
639 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
640 | minPinLength, ok = QInputDialog.getInt( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
641 | self, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
642 | 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
|
643 | 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
|
644 | currMinLength |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
645 | ), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
646 | 0, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
647 | currMinLength, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
648 | 63, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
649 | 1, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
650 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
651 | if ok and minPinLength != currMinLength: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
652 | 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
|
653 | try: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
654 | 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
|
655 | EricMessageBox.information( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
656 | self, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
657 | 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
|
658 | 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
|
659 | minPinLength |
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 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
662 | except (Fido2DeviceError, Fido2PinError) as err: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
663 | self.__handleError( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
664 | error=err, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
665 | 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
|
666 | 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
|
667 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
668 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
669 | @pyqtSlot() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
670 | def __toggleAlwaysUv(self): |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
671 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
672 | 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
|
673 | flag. |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
674 | """ |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
675 | pin = self.__getRequiredPin( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
676 | 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
|
677 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
678 | try: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
679 | self.__manager.toggleAlwaysUv(pin=pin) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
680 | EricMessageBox.information( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
681 | self, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
682 | self.tr("Always Require User Verification"), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
683 | self.tr("Always Require User Verification is now enabled.") |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
684 | if self.__manager.getAlwaysUv() |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
685 | else self.tr("Always Require User Verification is now disabled."), |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
686 | ) |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
687 | |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
688 | except (Fido2DeviceError, Fido2PinError) as err: |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
689 | self.__handleError( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
690 | error=err, |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
691 | 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
|
692 | message=self.tr( |
abcb288e7e17
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10856
diff
changeset
|
693 | "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
|
694 | ), |
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 | ############################################################################ |
10854
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
698 | ## utility methods |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
699 | ############################################################################ |
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 | 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
|
702 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
703 | 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
|
704 | |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
705 | @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
|
706 | @type Exception |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
707 | @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
|
708 | @type str |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
709 | @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
|
710 | @type str |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
711 | """ |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
712 | EricMessageBox.critical( |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
713 | self, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
714 | title, |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
715 | 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
|
716 | ) |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
717 | if isinstance(error, Fido2DeviceError): |
30c45bd597e6
Started implementing a dialog to manage FIDO2 security keys.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
718 | self.__populateDeviceSelector() |