@@ -779,12 +779,11 @@ def parse_junit(path):
779779 ('V' , 'EVM Clear-Signing' , '7.14.0' ,
780780 'NEW: Verified transaction metadata for EVM contracts. Host sends a signed blob with contract '
781781 'name, function, and decoded parameters. Device verifies blob signature against trusted key, '
782- 'then shows human-readable details with VERIFIED icon. AdvancedMode policy gates blind-signing '
783- '(disabled by default = blind signing blocked) .' ,
782+ 'then shows human-readable details with VERIFIED icon. Blind-sign policy gating is deferred '
783+ 'to firmware 7.15+ .' ,
784784 [
785785 'CLEAR-SIGN: Signed metadata -> verify signature -> VERIFIED icon + method + decoded args' ,
786- 'BLIND BLOCKED: No metadata + AdvancedMode off -> device refuses' ,
787- 'BLIND ALLOWED: No metadata + AdvancedMode on -> warning -> sign' ,
786+ 'BLIND SIGN: No metadata + AdvancedMode on -> contract data signed (no gate until 7.15+)' ,
788787 ],
789788 [
790789 ('V1' , 'test_msg_ethereum_clear_signing' , 'test_valid_metadata_returns_verified' ,
@@ -800,22 +799,17 @@ def parse_junit(path):
800799 'Tampered contract rejected' , 'Modified contract address fails signature check.' , []),
801800 ('V5' , 'test_msg_ethereum_clear_signing' , 'test_no_metadata_then_sign_unchanged' ,
802801 'No metadata = blind sign path' ,
803- 'Without metadata, transaction goes through blind-sign path (gated by AdvancedMode) .' ,
802+ 'Without metadata, transaction goes through existing blind-sign path.' ,
804803 ['Blind sign warning' ]),
805804 ('V6' , 'test_msg_ethereum_clear_signing' , 'test_signature_verification' ,
806805 'Signature verification math' , 'Unit test for the metadata blob signature algorithm.' , []),
807806 ('V7' , 'test_msg_ethereum_clear_signing' , 'test_tampered_blob_fails_verification' ,
808807 'Tampered blob fails' , 'Any byte change in the blob invalidates the signature.' , []),
809- ('V8' , 'test_msg_ethereum_signtx' , 'test_ethereum_blind_sign_blocked' ,
810- 'Blind sign BLOCKED (AdvancedMode OFF)' ,
811- 'Contract data with AdvancedMode disabled. Device shows BLOCKED screen and refuses to sign. '
812- 'This is the default behavior -- blind signing must be explicitly enabled.' ,
813- ['BLOCKED screen' ]),
814- ('V9' , 'test_msg_ethereum_signtx' , 'test_ethereum_blind_sign_allowed' ,
815- 'Blind sign ALLOWED (AdvancedMode ON)' ,
816- 'Contract data with AdvancedMode enabled. Device shows BLIND SIGNATURE warning '
817- 'before proceeding. User sees raw data and must explicitly confirm.' ,
818- ['BLIND SIGNATURE warning' ]),
808+ ('V8' , 'test_msg_ethereum_signtx' , 'test_ethereum_blind_sign_allowed' ,
809+ 'Blind sign permitted (AdvancedMode ON)' ,
810+ 'Contract data with AdvancedMode enabled. Device allows signing. '
811+ 'Blind-sign blocking deferred to 7.15+.' ,
812+ []),
819813 ]),
820814
821815 ('S' , 'Solana' , '7.14.0' ,
@@ -863,13 +857,11 @@ def parse_junit(path):
863857 ]),
864858
865859 ('T' , 'TRON' , '7.14.0' ,
866- 'NEW: TRON with protobuf deserialization and reconstruct-then-sign. 13 hardcoded TRC-20 tokens . '
867- 'Device reconstructs tx hash from parsed fields (not raw blob) for clear-sign path .' ,
860+ 'NEW: TRON with secp256k1 signing, base58 addresses. Blind-sign via raw_data . '
861+ 'Structured reconstruct-then-sign and TRC-20 clear-signing deferred to 7.15+ .' ,
868862 [
869863 'ADDRESS: m/44\' /195\' /0\' /0/0 -> full 34-char base58 TRON address' ,
870- 'STRUCTURED: Parse fields -> reconstruct hash -> show amount + address -> sign' ,
871- 'TRC-20: Decode transfer(to,amount) ABI -> show token name + decoded amount' ,
872- 'LEGACY: Raw protobuf -> blind sign warning' ,
864+ 'BLIND-SIGN: Raw protobuf data -> hash + sign' ,
873865 ],
874866 [
875867 ('T1' , 'test_msg_tron_getaddress' , 'test_tron_get_address' ,
@@ -880,13 +872,9 @@ def parse_junit(path):
880872 'Deterministic derivation' , 'Same path always produces same address.' , []),
881873 ('T3b' , 'test_msg_tron_getaddress' , 'test_tron_show_address' ,
882874 'Show address on OLED' , 'Full 34-char Base58Check TRON address with QR code.' , ['TRON QR + 34-char address' ]),
883- ('T4' , 'test_msg_tron_signtx' , 'test_tron_sign_transfer_structured' ,
884- 'Sign TRX transfer' , 'Structured clear-sign with full address display.' , ['TRX send' ]),
885- ('T5' , 'test_msg_tron_signtx' , 'test_tron_sign_transfer_legacy_raw_data' ,
886- 'Sign TRX legacy raw' , 'Raw protobuf data triggers blind sign path.' , ['Blind sign' ]),
887- ('T6' , 'test_msg_tron_signtx' , 'test_tron_sign_trc20_transfer' ,
888- 'Sign TRC-20 USDT transfer' , 'Known TRC-20 token decoded from ABI data. Shows "Send 1.00 USDT to [address]".' , ['Token + amount' ]),
889- ('T7' , 'test_msg_tron_signtx' , 'test_tron_sign_missing_fields_rejected' ,
875+ ('T4' , 'test_msg_tron_signtx' , 'test_tron_sign_transfer_legacy_raw_data' ,
876+ 'Sign TRX blind (raw_data)' , 'Raw protobuf data triggers blind sign path.' , ['Blind sign' ]),
877+ ('T5' , 'test_msg_tron_signtx' , 'test_tron_sign_missing_fields_rejected' ,
890878 'Missing fields rejected' , 'Incomplete transaction data is refused.' , []),
891879 ]),
892880
0 commit comments