mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-26 17:38:39 +00:00
Implementation of ChangePin
This commit is contained in:
parent
e34874b7c1
commit
fe0e409e77
8
cmd.py
8
cmd.py
@ -107,6 +107,9 @@ class Commands(object):
|
|||||||
def set_label(self, args):
|
def set_label(self, args):
|
||||||
return self.client.apply_settings(label=args.label)
|
return self.client.apply_settings(label=args.label)
|
||||||
|
|
||||||
|
def change_pin(self, args):
|
||||||
|
return self.client.change_pin(args.remove)
|
||||||
|
|
||||||
def load_device(self, args):
|
def load_device(self, args):
|
||||||
if not args.mnemonic and not args.xprv:
|
if not args.mnemonic and not args.xprv:
|
||||||
raise Exception("Please provide mnemonic or xprv")
|
raise Exception("Please provide mnemonic or xprv")
|
||||||
@ -146,6 +149,7 @@ class Commands(object):
|
|||||||
get_features.help = 'Retrieve device features and settings'
|
get_features.help = 'Retrieve device features and settings'
|
||||||
get_public_node.help = 'Get public node of given path'
|
get_public_node.help = 'Get public node of given path'
|
||||||
set_label.help = 'Set new wallet label'
|
set_label.help = 'Set new wallet label'
|
||||||
|
change_pin.help = 'Change new PIN or remove existing'
|
||||||
list_coins.help = 'List all supported coin types by the device'
|
list_coins.help = 'List all supported coin types by the device'
|
||||||
load_device.help = 'Load custom configuration to the device'
|
load_device.help = 'Load custom configuration to the device'
|
||||||
reset_device.help = 'Perform factory reset of the device and generate new seed'
|
reset_device.help = 'Perform factory reset of the device and generate new seed'
|
||||||
@ -176,6 +180,10 @@ class Commands(object):
|
|||||||
# (('-c', '--clear'), {'action': 'store_true', 'default': False})
|
# (('-c', '--clear'), {'action': 'store_true', 'default': False})
|
||||||
)
|
)
|
||||||
|
|
||||||
|
change_pin.arguments = (
|
||||||
|
(('-r', '--remove'), {'action': 'store_true', 'default': False}),
|
||||||
|
)
|
||||||
|
|
||||||
load_device.arguments = (
|
load_device.arguments = (
|
||||||
(('-m', '--mnemonic'), {'type': str, 'nargs': '+'}),
|
(('-m', '--mnemonic'), {'type': str, 'nargs': '+'}),
|
||||||
(('-x', '--xprv'), {'type': str}),
|
(('-x', '--xprv'), {'type': str}),
|
||||||
|
@ -5,8 +5,8 @@ from trezorlib.transport_pipe import PipeTransport
|
|||||||
from trezorlib.transport_hid import HidTransport
|
from trezorlib.transport_hid import HidTransport
|
||||||
from trezorlib.transport_socket import SocketTransportClient
|
from trezorlib.transport_socket import SocketTransportClient
|
||||||
|
|
||||||
use_real = True
|
use_real = False
|
||||||
use_pipe = False
|
use_pipe = True
|
||||||
|
|
||||||
if use_real:
|
if use_real:
|
||||||
|
|
||||||
|
@ -1,4 +1,25 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
'''
|
||||||
|
* ApplySettings workflow, zistit cez Features ci sa zmeny aplikovali
|
||||||
|
* WipeDevice workflow, zistit cez Features ci to prebehlo
|
||||||
|
* LoadDevice workflow, zistit cez Features ci to prebehlo
|
||||||
|
* ResetDevice workflow
|
||||||
|
|
||||||
|
- zrejme v sucinnosti s inymi testami
|
||||||
|
* ButtonRequest/ButtonAck workflow (vyvolat napr. pomocou GetEntropy, myslim ze ten GetEntropy vyzaduje PIN, ale ja by som to dal na button)
|
||||||
|
* PinMatrixRequest/PinMatrixAck workflow (vyvolat napr. pomocou ChangePin)
|
||||||
|
* PassphraseRequest/PassphraseAck workflow (vyvolat napr. pomocou GetAddress)
|
||||||
|
|
||||||
|
* rozsirit test_sign.tx o viac transakcii (zlozitejsich)
|
||||||
|
|
||||||
|
- chceme v tomto release(?)
|
||||||
|
* SignMessage workflow
|
||||||
|
* VerifyMessage workflow
|
||||||
|
|
||||||
|
* otestovat session handling (tento test bude zrejme failovat na RPi)
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
import sys
|
import sys
|
||||||
sys.path = ['../',] + sys.path
|
sys.path = ['../',] + sys.path
|
||||||
|
@ -123,6 +123,11 @@ class TrezorClient(object):
|
|||||||
|
|
||||||
return out
|
return out
|
||||||
|
|
||||||
|
def change_pin(self, remove=False):
|
||||||
|
ret = self.call(proto.ChangePin(remove=remove))
|
||||||
|
self.init_device() # Re-read features
|
||||||
|
return ret
|
||||||
|
|
||||||
def _pprint(self, msg):
|
def _pprint(self, msg):
|
||||||
return "<%s>:\n%s" % (msg.__class__.__name__, msg)
|
return "<%s>:\n%s" % (msg.__class__.__name__, msg)
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ class PinButton(QPushButton):
|
|||||||
|
|
||||||
def _pressed(self):
|
def _pressed(self):
|
||||||
self.password.setText(self.password.text() + str(self.encoded_value))
|
self.password.setText(self.password.text() + str(self.encoded_value))
|
||||||
|
print self.encoded_value
|
||||||
self.password.setFocus()
|
self.password.setFocus()
|
||||||
|
|
||||||
class PinMatrixWidget(QWidget):
|
class PinMatrixWidget(QWidget):
|
||||||
@ -40,11 +41,12 @@ class PinMatrixWidget(QWidget):
|
|||||||
|
|
||||||
grid = QGridLayout()
|
grid = QGridLayout()
|
||||||
grid.setSpacing(0)
|
grid.setSpacing(0)
|
||||||
for x in range(9):
|
for y in range(3)[::-1]:
|
||||||
button = PinButton(self.password, x + 1)
|
for x in range(3):
|
||||||
|
button = PinButton(self.password, x + y * 3 + 1)
|
||||||
button.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
|
button.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
|
||||||
button.setFocusPolicy(Qt.NoFocus)
|
button.setFocusPolicy(Qt.NoFocus)
|
||||||
grid.addWidget(button, x / 3, x % 3)
|
grid.addWidget(button, 3 - y, x)
|
||||||
|
|
||||||
hbox = QHBoxLayout()
|
hbox = QHBoxLayout()
|
||||||
hbox.addWidget(self.password)
|
hbox.addWidget(self.password)
|
||||||
|
Loading…
Reference in New Issue
Block a user