def cb(code): dialog.accept() if isinstance(code, Exception): QtGui.QMessageBox.warning(get_active_window(), m.error, code.message) else: self.code = code
def calculate(self): window = get_active_window() dialog = QtGui.QMessageBox(window) dialog.setWindowTitle(m.touch_title) dialog.setStandardButtons(QtGui.QMessageBox.NoButton) dialog.setIcon(QtGui.QMessageBox.Information) dialog.setText(m.touch_desc) timer = None def cb(code): if timer: timer.stop() dialog.accept() if isinstance(code, Exception): QtGui.QMessageBox.warning(window, m.error, code.message) else: self.code = code self._controller._app.worker.post_bg( (self._controller._calculate_cred, self.cred), cb) if self.cred.touch: dialog.exec_() elif self.cred.oath_type == TYPE_HOTP: # HOTP might require touch, we don't know. Assume yes after 500ms. timer = QtCore.QTimer(window) timer.setSingleShot(True) timer.timeout.connect(dialog.exec_) timer.start(500)
def calculate(self): dialog = QtGui.QMessageBox(get_active_window()) dialog.setWindowTitle(m.touch_title) dialog.setStandardButtons(QtGui.QMessageBox.NoButton) dialog.setIcon(QtGui.QMessageBox.Information) dialog.setText(m.touch_desc) timer = None def cb(code): if timer: timer.stop() dialog.accept() if isinstance(code, Exception): QtGui.QMessageBox.warning(get_active_window(), m.error, code.message) else: self.code = code self._controller._app.worker.post_bg((self._controller._calculate_cred, self.cred), cb) if self.cred.touch: dialog.exec_() elif self.cred.oath_type == TYPE_HOTP: # HOTP might require touch, we don't know. Assume yes after 500ms. timer = QtCore.QTimer(self) timer.setSingleShot(True) timer.timeout.connect(dialog.exec_) timer.start(500)
def _init_dev(self, dev): _lock = self.grab_lock() while dev.locked: if self._keystore.get(dev.id) is None: dialog = GetPasswordDialog(get_active_window()) if dialog.exec_(): self._keystore.put(dev.id, dev.calculate_key(dialog.password), dialog.remember) else: return try: dev.unlock(self._keystore.get(dev.id)) except CardError: self._keystore.delete(dev.id) self.refresh_codes(self.timer.time, _lock)
def _init_std(self, std): lock = self.grab_lock() while std.locked: if self._keystore.get(std.id) is None: dialog = GetPasswordDialog(get_active_window()) if dialog.exec_(): self._keystore.put(std.id, std.calculate_key(dialog.password), dialog.remember) else: return try: std.unlock(self._keystore.get(std.id)) except CardError: self._keystore.delete(std.id) self.refresh_codes(self.timer.time, lock, std)
def calculate(self): dialog = QtGui.QMessageBox(get_active_window()) dialog.setWindowTitle(m.touch_title) dialog.setStandardButtons(QtGui.QMessageBox.NoButton) dialog.setIcon(QtGui.QMessageBox.Information) dialog.setText(m.touch_desc) def cb(code): dialog.accept() if isinstance(code, Exception): QtGui.QMessageBox.warning(get_active_window(), m.error, code.message) else: self.code = code self._controller._app.worker.post_bg((self._controller._calculate_touch, self._slot, self._digits), cb, True) dialog.exec_()
def calculate(self): dialog = QtGui.QMessageBox(get_active_window()) dialog.setWindowTitle(m.touch_title) dialog.setStandardButtons(QtGui.QMessageBox.NoButton) dialog.setIcon(QtGui.QMessageBox.Information) dialog.setText(m.touch_desc) def cb(code): dialog.accept() if isinstance(code, Exception): QtGui.QMessageBox.warning(get_active_window(), m.error, code.message) else: self.code = code self._controller._app.worker.post_bg( (self._controller._calculate_touch, self._slot, self._digits), cb, True) dialog.exec_()
def _init_conn(self, conn): with self._lock: while conn.locked: if self._keystore.get(conn.id) is None: dialog = GetPasswordDialog(get_active_window()) if dialog.exec_(): self._keystore.put(conn.id, conn.calculate_key(dialog.password), dialog.remember) else: return try: conn.unlock(self._keystore.get(conn.id)) except CardError as exc: self._keystore.delete(conn.id) if exc.status == 0x6a80: # wrong syntax (bad password) pass else: # unknown, don't retry return self.refresh_codes(self.timer.time, conn)