gpg: use pymsgbox for PIN entrering UI

This commit is contained in:
Roman Zeyde
2017-10-21 21:16:22 +03:00
parent bab46dae5c
commit 08fef24e39
2 changed files with 6 additions and 11 deletions

View File

@@ -5,6 +5,7 @@ import logging
import os import os
import sys import sys
import pymsgbox # pylint: disable=import-error
import semver import semver
from . import interface from . import interface
@@ -38,24 +39,17 @@ class Trezor(interface.Device):
if not sys.stdin.closed and os.isatty(sys.stdin.fileno()): if not sys.stdin.closed and os.isatty(sys.stdin.fileno()):
return conn.callback_PinMatrixRequest # CLI-based PIN handler return conn.callback_PinMatrixRequest # CLI-based PIN handler
def qt_handler(_): def ui_handler(_):
# pylint: disable=import-error
from PyQt5.QtWidgets import QApplication, QInputDialog, QLineEdit
label = ('Use the numeric keypad to describe number positions.\n' label = ('Use the numeric keypad to describe number positions.\n'
'The layout is:\n' 'The layout is:\n'
' 7 8 9\n' ' 7 8 9\n'
' 4 5 6\n' ' 4 5 6\n'
' 1 2 3\n' ' 1 2 3\n'
'Please enter PIN:') 'Please enter PIN:')
app = QApplication([]) scrambled_pin = pymsgbox.password(label)
qd = QInputDialog() return self._defs.PinMatrixAck(pin=scrambled_pin)
qd.setTextEchoMode(QLineEdit.Password)
qd.setLabelText(label)
qd.show()
app.exec_()
return self._defs.PinMatrixAck(pin=qd.textValue())
return qt_handler return ui_handler
for d in self._defs.Transport.enumerate(): for d in self._defs.Transport.enumerate():
log.debug('endpoint: %s', d) log.debug('endpoint: %s', d)

View File

@@ -17,6 +17,7 @@ setup(
install_requires=[ install_requires=[
'ecdsa>=0.13', 'ecdsa>=0.13',
'ed25519>=1.4', 'ed25519>=1.4',
'pymsgbox>=1.0.6',
'semver>=2.2', 'semver>=2.2',
'unidecode>=0.4.20', 'unidecode>=0.4.20',
], ],