1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-27 08:38:07 +00:00

common: Add ChangeWipeCode message.

This commit is contained in:
Andrew Kozlik 2019-10-18 15:28:53 +02:00
parent 5e7dd41613
commit 4381511930
15 changed files with 84 additions and 6 deletions

View File

@ -33,6 +33,7 @@ message Failure {
Failure_NotEnoughFunds = 10; Failure_NotEnoughFunds = 10;
Failure_NotInitialized = 11; Failure_NotInitialized = 11;
Failure_PinMismatch = 12; Failure_PinMismatch = 12;
Failure_WipeCodeMismatch = 13;
Failure_FirmwareError = 99; Failure_FirmwareError = 99;
} }
} }
@ -90,6 +91,8 @@ message PinMatrixRequest {
PinMatrixRequestType_Current = 1; PinMatrixRequestType_Current = 1;
PinMatrixRequestType_NewFirst = 2; PinMatrixRequestType_NewFirst = 2;
PinMatrixRequestType_NewSecond = 3; PinMatrixRequestType_NewSecond = 3;
PinMatrixRequestType_WipeCodeFirst = 4;
PinMatrixRequestType_WipeCodeSecond = 5;
} }
} }

View File

@ -141,6 +141,16 @@ message ChangePin {
optional bool remove = 1; // is PIN removal requested? optional bool remove = 1; // is PIN removal requested?
} }
/**
* Request: Starts workflow for setting/removing the wipe code
* @start
* @next Success
* @next Failure
*/
message ChangeWipeCode {
optional bool remove = 1; // is wipe code removal requested?
}
/** /**
* Request: Starts workflow for enabling/regenerating/disabling SD card protection * Request: Starts workflow for enabling/regenerating/disabling SD card protection
* @start * @start

View File

@ -64,6 +64,7 @@ enum MessageType {
MessageType_SdProtect = 79 [(wire_in) = true]; MessageType_SdProtect = 79 [(wire_in) = true];
MessageType_GetNextU2FCounter = 80 [(wire_in) = true]; MessageType_GetNextU2FCounter = 80 [(wire_in) = true];
MessageType_NextU2FCounter = 81 [(wire_out) = true]; MessageType_NextU2FCounter = 81 [(wire_out) = true];
MessageType_ChangeWipeCode = 82 [(wire_in) = true];
// Bootloader // Bootloader
MessageType_FirmwareErase = 6 [(wire_in) = true, (wire_bootloader) = true]; MessageType_FirmwareErase = 6 [(wire_in) = true, (wire_bootloader) = true];

View File

@ -0,0 +1,26 @@
# Automatically generated by pb2py
# fmt: off
import protobuf as p
if __debug__:
try:
from typing import Dict, List # noqa: F401
from typing_extensions import Literal # noqa: F401
except ImportError:
pass
class ChangeWipeCode(p.MessageType):
MESSAGE_WIRE_TYPE = 82
def __init__(
self,
remove: bool = None,
) -> None:
self.remove = remove
@classmethod
def get_fields(cls) -> Dict:
return {
1: ('remove', p.BoolType, 0),
}

View File

@ -6,7 +6,7 @@ if __debug__:
try: try:
from typing import Dict, List # noqa: F401 from typing import Dict, List # noqa: F401
from typing_extensions import Literal # noqa: F401 from typing_extensions import Literal # noqa: F401
EnumTypeFailureType = Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 99] EnumTypeFailureType = Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 99]
except ImportError: except ImportError:
pass pass
@ -25,6 +25,6 @@ class Failure(p.MessageType):
@classmethod @classmethod
def get_fields(cls) -> Dict: def get_fields(cls) -> Dict:
return { return {
1: ('code', p.EnumType("FailureType", (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 99)), 0), 1: ('code', p.EnumType("FailureType", (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 99)), 0),
2: ('message', p.UnicodeType, 0), 2: ('message', p.UnicodeType, 0),
} }

View File

@ -15,4 +15,5 @@ ProcessError = 9 # type: Literal[9]
NotEnoughFunds = 10 # type: Literal[10] NotEnoughFunds = 10 # type: Literal[10]
NotInitialized = 11 # type: Literal[11] NotInitialized = 11 # type: Literal[11]
PinMismatch = 12 # type: Literal[12] PinMismatch = 12 # type: Literal[12]
WipeCodeMismatch = 13 # type: Literal[13]
FirmwareError = 99 # type: Literal[99] FirmwareError = 99 # type: Literal[99]

View File

@ -39,6 +39,7 @@ SetU2FCounter = 63 # type: Literal[63]
SdProtect = 79 # type: Literal[79] SdProtect = 79 # type: Literal[79]
GetNextU2FCounter = 80 # type: Literal[80] GetNextU2FCounter = 80 # type: Literal[80]
NextU2FCounter = 81 # type: Literal[81] NextU2FCounter = 81 # type: Literal[81]
ChangeWipeCode = 82 # type: Literal[82]
FirmwareErase = 6 # type: Literal[6] FirmwareErase = 6 # type: Literal[6]
FirmwareUpload = 7 # type: Literal[7] FirmwareUpload = 7 # type: Literal[7]
FirmwareRequest = 8 # type: Literal[8] FirmwareRequest = 8 # type: Literal[8]

View File

@ -71,6 +71,11 @@ class PinMismatch(Error):
super().__init__(FailureType.PinMismatch, message) super().__init__(FailureType.PinMismatch, message)
class WipeCodeMismatch(Error):
def __init__(self, message: str) -> None:
super().__init__(FailureType.WipeCodeMismatch, message)
class FirmwareError(Error): class FirmwareError(Error):
def __init__(self, message: str) -> None: def __init__(self, message: str) -> None:
super().__init__(FailureType.FirmwareError, message) super().__init__(FailureType.FirmwareError, message)

View File

@ -0,0 +1,26 @@
# Automatically generated by pb2py
# fmt: off
from .. import protobuf as p
if __debug__:
try:
from typing import Dict, List # noqa: F401
from typing_extensions import Literal # noqa: F401
except ImportError:
pass
class ChangeWipeCode(p.MessageType):
MESSAGE_WIRE_TYPE = 82
def __init__(
self,
remove: bool = None,
) -> None:
self.remove = remove
@classmethod
def get_fields(cls) -> Dict:
return {
1: ('remove', p.BoolType, 0),
}

View File

@ -6,7 +6,7 @@ if __debug__:
try: try:
from typing import Dict, List # noqa: F401 from typing import Dict, List # noqa: F401
from typing_extensions import Literal # noqa: F401 from typing_extensions import Literal # noqa: F401
EnumTypeFailureType = Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 99] EnumTypeFailureType = Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 99]
except ImportError: except ImportError:
pass pass
@ -25,6 +25,6 @@ class Failure(p.MessageType):
@classmethod @classmethod
def get_fields(cls) -> Dict: def get_fields(cls) -> Dict:
return { return {
1: ('code', p.EnumType("FailureType", (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 99)), 0), 1: ('code', p.EnumType("FailureType", (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 99)), 0),
2: ('message', p.UnicodeType, 0), 2: ('message', p.UnicodeType, 0),
} }

View File

@ -15,4 +15,5 @@ ProcessError = 9 # type: Literal[9]
NotEnoughFunds = 10 # type: Literal[10] NotEnoughFunds = 10 # type: Literal[10]
NotInitialized = 11 # type: Literal[11] NotInitialized = 11 # type: Literal[11]
PinMismatch = 12 # type: Literal[12] PinMismatch = 12 # type: Literal[12]
WipeCodeMismatch = 13 # type: Literal[13]
FirmwareError = 99 # type: Literal[99] FirmwareError = 99 # type: Literal[99]

View File

@ -37,6 +37,7 @@ SetU2FCounter = 63 # type: Literal[63]
SdProtect = 79 # type: Literal[79] SdProtect = 79 # type: Literal[79]
GetNextU2FCounter = 80 # type: Literal[80] GetNextU2FCounter = 80 # type: Literal[80]
NextU2FCounter = 81 # type: Literal[81] NextU2FCounter = 81 # type: Literal[81]
ChangeWipeCode = 82 # type: Literal[82]
FirmwareErase = 6 # type: Literal[6] FirmwareErase = 6 # type: Literal[6]
FirmwareUpload = 7 # type: Literal[7] FirmwareUpload = 7 # type: Literal[7]
FirmwareRequest = 8 # type: Literal[8] FirmwareRequest = 8 # type: Literal[8]

View File

@ -6,7 +6,7 @@ if __debug__:
try: try:
from typing import Dict, List # noqa: F401 from typing import Dict, List # noqa: F401
from typing_extensions import Literal # noqa: F401 from typing_extensions import Literal # noqa: F401
EnumTypePinMatrixRequestType = Literal[1, 2, 3] EnumTypePinMatrixRequestType = Literal[1, 2, 3, 4, 5]
except ImportError: except ImportError:
pass pass
@ -23,5 +23,5 @@ class PinMatrixRequest(p.MessageType):
@classmethod @classmethod
def get_fields(cls) -> Dict: def get_fields(cls) -> Dict:
return { return {
1: ('type', p.EnumType("PinMatrixRequestType", (1, 2, 3)), 0), 1: ('type', p.EnumType("PinMatrixRequestType", (1, 2, 3, 4, 5)), 0),
} }

View File

@ -6,3 +6,5 @@ if False:
Current = 1 # type: Literal[1] Current = 1 # type: Literal[1]
NewFirst = 2 # type: Literal[2] NewFirst = 2 # type: Literal[2]
NewSecond = 3 # type: Literal[3] NewSecond = 3 # type: Literal[3]
WipeCodeFirst = 4 # type: Literal[4]
WipeCodeSecond = 5 # type: Literal[5]

View File

@ -31,6 +31,7 @@ from .CardanoTxInputType import CardanoTxInputType
from .CardanoTxOutputType import CardanoTxOutputType from .CardanoTxOutputType import CardanoTxOutputType
from .CardanoTxRequest import CardanoTxRequest from .CardanoTxRequest import CardanoTxRequest
from .ChangePin import ChangePin from .ChangePin import ChangePin
from .ChangeWipeCode import ChangeWipeCode
from .CipherKeyValue import CipherKeyValue from .CipherKeyValue import CipherKeyValue
from .CipheredKeyValue import CipheredKeyValue from .CipheredKeyValue import CipheredKeyValue
from .ClearSession import ClearSession from .ClearSession import ClearSession