diff --git a/common/protob/messages-management.proto b/common/protob/messages-management.proto index ef9b8ef16a..9a62403fe2 100644 --- a/common/protob/messages-management.proto +++ b/common/protob/messages-management.proto @@ -369,3 +369,21 @@ message GetNextU2FCounter { message NextU2FCounter { optional uint32 u2f_counter = 1; } + +/** + * Request: Ask device to prepare for a preauthorized operation. + * @start + * @next PreauthorizedRequest + * @next Failure + */ +message DoPreauthorized { +} + +/** + * Request: Device awaits a preauthorized operation. + * @start + * @next SignTx + * @next GetOwnershipProof + */ +message PreauthorizedRequest { +} diff --git a/common/protob/messages.proto b/common/protob/messages.proto index 8f649e4864..f23244bb57 100644 --- a/common/protob/messages.proto +++ b/common/protob/messages.proto @@ -64,6 +64,8 @@ enum MessageType { MessageType_NextU2FCounter = 81 [(wire_out) = true]; MessageType_ChangeWipeCode = 82 [(wire_in) = true]; MessageType_EndSession = 83 [(wire_in) = true]; + MessageType_DoPreauthorized = 84 [(wire_in) = true]; + MessageType_PreauthorizedRequest = 85 [(wire_out) = true]; // Deprecated messages, kept for protobuf compatibility. // Both are marked wire_out so that we don't need to implement incoming handler for legacy diff --git a/core/src/trezor/messages/DoPreauthorized.py b/core/src/trezor/messages/DoPreauthorized.py new file mode 100644 index 0000000000..9fea449ef5 --- /dev/null +++ b/core/src/trezor/messages/DoPreauthorized.py @@ -0,0 +1,14 @@ +# 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 DoPreauthorized(p.MessageType): + MESSAGE_WIRE_TYPE = 84 diff --git a/core/src/trezor/messages/MessageType.py b/core/src/trezor/messages/MessageType.py index c25e2e866c..8cbe724331 100644 --- a/core/src/trezor/messages/MessageType.py +++ b/core/src/trezor/messages/MessageType.py @@ -39,6 +39,8 @@ GetNextU2FCounter = 80 # type: Literal[80] NextU2FCounter = 81 # type: Literal[81] ChangeWipeCode = 82 # type: Literal[82] EndSession = 83 # type: Literal[83] +DoPreauthorized = 84 # type: Literal[84] +PreauthorizedRequest = 85 # type: Literal[85] Deprecated_PassphraseStateRequest = 77 # type: Literal[77] Deprecated_PassphraseStateAck = 78 # type: Literal[78] FirmwareErase = 6 # type: Literal[6] diff --git a/core/src/trezor/messages/PreauthorizedRequest.py b/core/src/trezor/messages/PreauthorizedRequest.py new file mode 100644 index 0000000000..b1944b1ef5 --- /dev/null +++ b/core/src/trezor/messages/PreauthorizedRequest.py @@ -0,0 +1,14 @@ +# 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 PreauthorizedRequest(p.MessageType): + MESSAGE_WIRE_TYPE = 85 diff --git a/legacy/firmware/protob/Makefile b/legacy/firmware/protob/Makefile index 535ad42616..ac5f5642cc 100644 --- a/legacy/firmware/protob/Makefile +++ b/legacy/firmware/protob/Makefile @@ -4,7 +4,7 @@ endif SKIPPED_MESSAGES := Binance Cardano DebugMonero Eos Monero Ontology Ripple SdProtect Tezos WebAuthn \ DebugLinkRecordScreen DebugLinkReseedRandom DebugLinkShowText DebugLinkEraseSdCard DebugLinkWatchLayout \ - GetOwnershipProof OwnershipProof GetOwnershipId OwnershipId AuthorizeCoinJoin + GetOwnershipProof OwnershipProof GetOwnershipId OwnershipId AuthorizeCoinJoin DoPreauthorized ifeq ($(BITCOIN_ONLY), 1) SKIPPED_MESSAGES += Ethereum Lisk NEM Stellar diff --git a/python/src/trezorlib/messages/DoPreauthorized.py b/python/src/trezorlib/messages/DoPreauthorized.py new file mode 100644 index 0000000000..7add79a39c --- /dev/null +++ b/python/src/trezorlib/messages/DoPreauthorized.py @@ -0,0 +1,14 @@ +# 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 DoPreauthorized(p.MessageType): + MESSAGE_WIRE_TYPE = 84 diff --git a/python/src/trezorlib/messages/MessageType.py b/python/src/trezorlib/messages/MessageType.py index ab507d0972..a6733a50e0 100644 --- a/python/src/trezorlib/messages/MessageType.py +++ b/python/src/trezorlib/messages/MessageType.py @@ -37,6 +37,8 @@ GetNextU2FCounter = 80 # type: Literal[80] NextU2FCounter = 81 # type: Literal[81] ChangeWipeCode = 82 # type: Literal[82] EndSession = 83 # type: Literal[83] +DoPreauthorized = 84 # type: Literal[84] +PreauthorizedRequest = 85 # type: Literal[85] Deprecated_PassphraseStateRequest = 77 # type: Literal[77] Deprecated_PassphraseStateAck = 78 # type: Literal[78] FirmwareErase = 6 # type: Literal[6] diff --git a/python/src/trezorlib/messages/PreauthorizedRequest.py b/python/src/trezorlib/messages/PreauthorizedRequest.py new file mode 100644 index 0000000000..d65af252e0 --- /dev/null +++ b/python/src/trezorlib/messages/PreauthorizedRequest.py @@ -0,0 +1,14 @@ +# 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 PreauthorizedRequest(p.MessageType): + MESSAGE_WIRE_TYPE = 85 diff --git a/python/src/trezorlib/messages/__init__.py b/python/src/trezorlib/messages/__init__.py index 5a7be945f3..8187284567 100644 --- a/python/src/trezorlib/messages/__init__.py +++ b/python/src/trezorlib/messages/__init__.py @@ -61,6 +61,7 @@ from .DebugMoneroDiagAck import DebugMoneroDiagAck from .DebugMoneroDiagRequest import DebugMoneroDiagRequest from .Deprecated_PassphraseStateAck import Deprecated_PassphraseStateAck from .Deprecated_PassphraseStateRequest import Deprecated_PassphraseStateRequest +from .DoPreauthorized import DoPreauthorized from .ECDHSessionKey import ECDHSessionKey from .EndSession import EndSession from .Entropy import Entropy @@ -211,6 +212,7 @@ from .PassphraseRequest import PassphraseRequest from .PinMatrixAck import PinMatrixAck from .PinMatrixRequest import PinMatrixRequest from .Ping import Ping +from .PreauthorizedRequest import PreauthorizedRequest from .PublicKey import PublicKey from .RecoveryDevice import RecoveryDevice from .ResetDevice import ResetDevice