diff --git a/core/src/apps/ethereum/layout.py b/core/src/apps/ethereum/layout.py index 6ef256064e6..a8a78061226 100644 --- a/core/src/apps/ethereum/layout.py +++ b/core/src/apps/ethereum/layout.py @@ -119,6 +119,16 @@ async def confirm_hash(ctx: Context, message_hash: bytes) -> None: ) +def require_confirm_empty_typed_message(ctx: Context) -> Awaitable[None]: + return confirm_text( + ctx, + "confirm_empty_typed_message", + title="Confirm message", + data="", + description="No message field", + ) + + async def should_show_domain(ctx: Context, name: bytes, version: bytes) -> bool: domain_name = decode_typed_data(name, "string") domain_version = decode_typed_data(version, "string") diff --git a/core/src/apps/ethereum/sign_typed_data.py b/core/src/apps/ethereum/sign_typed_data.py index 2b30102132b..53816a6e068 100644 --- a/core/src/apps/ethereum/sign_typed_data.py +++ b/core/src/apps/ethereum/sign_typed_data.py @@ -20,6 +20,7 @@ from .layout import ( confirm_hash, confirm_typed_value, + require_confirm_empty_typed_message, should_show_array, should_show_domain, should_show_struct, @@ -84,6 +85,7 @@ async def generate_typed_data_hash( # In this case, we ignore the "message" part and only use the "domain" part # https://ethereum-magicians.org/t/eip-712-standards-clarification-primarytype-as-domaintype/3286 if primary_type == "EIP712Domain": + await require_confirm_empty_typed_message(ctx) message_hash = b"" else: show_message = await should_show_struct(