mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-22 07:28:10 +00:00
trezorctl: Add set wipe-code command.
This commit is contained in:
parent
4381511930
commit
83fab3c220
@ -362,6 +362,7 @@ Device settings.
|
|||||||
label Set new device label.
|
label Set new device label.
|
||||||
passphrase Enable, disable or configure passphrase protection.
|
passphrase Enable, disable or configure passphrase protection.
|
||||||
pin Set, change or remove PIN.
|
pin Set, change or remove PIN.
|
||||||
|
wipe-code Set or remove the wipe code.
|
||||||
|
|
||||||
Stellar commands.
|
Stellar commands.
|
||||||
~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
|
@ -41,6 +41,19 @@ def pin(connect, remove):
|
|||||||
return device.change_pin(connect(), remove)
|
return device.change_pin(connect(), remove)
|
||||||
|
|
||||||
|
|
||||||
|
@cli.command()
|
||||||
|
@click.option("-r", "--remove", is_flag=True)
|
||||||
|
@click.pass_obj
|
||||||
|
def wipe_code(connect, remove):
|
||||||
|
"""Set or remove the wipe code.
|
||||||
|
|
||||||
|
The wipe code functions as a "self-destruct PIN". If the wipe code is ever
|
||||||
|
entered into any PIN entry dialog, then all private data will be immediately
|
||||||
|
removed and the device will be reset to factory defaults.
|
||||||
|
"""
|
||||||
|
return device.change_wipe_code(connect(), remove)
|
||||||
|
|
||||||
|
|
||||||
@cli.command()
|
@cli.command()
|
||||||
# keep the deprecated -l/--label option, make it do nothing
|
# keep the deprecated -l/--label option, make it do nothing
|
||||||
@click.option("-l", "--label", "_ignore", is_flag=True, hidden=True, expose_value=False)
|
@click.option("-l", "--label", "_ignore", is_flag=True, hidden=True, expose_value=False)
|
||||||
|
@ -90,6 +90,13 @@ def change_pin(client, remove=False):
|
|||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
@expect(messages.Success, field="message")
|
||||||
|
def change_wipe_code(client, remove=False):
|
||||||
|
ret = client.call(messages.ChangeWipeCode(remove=remove))
|
||||||
|
client.init_device() # Re-read features
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
@expect(messages.Success, field="message")
|
@expect(messages.Success, field="message")
|
||||||
def sd_protect(client, operation):
|
def sd_protect(client, operation):
|
||||||
ret = client.call(messages.SdProtect(operation=operation))
|
ret = client.call(messages.SdProtect(operation=operation))
|
||||||
|
@ -45,6 +45,8 @@ PIN_GENERIC = None
|
|||||||
PIN_CURRENT = PinMatrixRequestType.Current
|
PIN_CURRENT = PinMatrixRequestType.Current
|
||||||
PIN_NEW = PinMatrixRequestType.NewFirst
|
PIN_NEW = PinMatrixRequestType.NewFirst
|
||||||
PIN_CONFIRM = PinMatrixRequestType.NewSecond
|
PIN_CONFIRM = PinMatrixRequestType.NewSecond
|
||||||
|
WIPE_CODE_NEW = PinMatrixRequestType.WipeCodeFirst
|
||||||
|
WIPE_CODE_CONFIRM = PinMatrixRequestType.WipeCodeSecond
|
||||||
|
|
||||||
|
|
||||||
def echo(*args, **kwargs):
|
def echo(*args, **kwargs):
|
||||||
@ -74,6 +76,10 @@ class ClickUI:
|
|||||||
desc = "new PIN"
|
desc = "new PIN"
|
||||||
elif code == PIN_CONFIRM:
|
elif code == PIN_CONFIRM:
|
||||||
desc = "new PIN again"
|
desc = "new PIN again"
|
||||||
|
elif code == WIPE_CODE_NEW:
|
||||||
|
desc = "new wipe code"
|
||||||
|
elif code == WIPE_CODE_CONFIRM:
|
||||||
|
desc = "new wipe code again"
|
||||||
else:
|
else:
|
||||||
desc = "PIN"
|
desc = "PIN"
|
||||||
|
|
||||||
@ -88,7 +94,7 @@ class ClickUI:
|
|||||||
except click.Abort:
|
except click.Abort:
|
||||||
raise Cancelled from None
|
raise Cancelled from None
|
||||||
if not pin.isdigit():
|
if not pin.isdigit():
|
||||||
echo("Non-numerical PIN provided, please try again")
|
echo("Non-numerical value provided, please try again")
|
||||||
else:
|
else:
|
||||||
return pin
|
return pin
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user