Commit Graph

184 Commits

Author SHA1 Message Date
Alexandre Paillier
617291db6d Fix uninitialized UI buffer for EIP-712
Would refuse the message altogether if strings.tmp.tmp wasn't empty.
Introduced in 4680a9d583
2024-07-26 14:30:04 +02:00
Alexandre Paillier
0309d1ef08 Revert "Remove filters counter check at the end of EIP712 flow"
This reverts commit c17e06b525.
2024-07-24 11:59:32 +02:00
Alexandre Paillier
4680a9d583 Better counting of EIP-712 filters
* Now counts them when received instead of only counting the displayed fields when filtering
* Fixes issues of filtered fields within an array of size N being counted N times
2024-07-24 11:59:14 +02:00
Alexandre Paillier
ea8ae0d83c Now can show explicit unlimited EIP-712 amount-joins 2024-06-24 17:26:13 +02:00
Alexandre Paillier
ae359b481e Now buffers the EIP-712 pairs to show more than one per screen 2024-06-20 13:20:52 +02:00
Alexandre Paillier
ab914230ce Centralize EIP-712 field shown check 2024-06-20 11:32:20 +02:00
Alexandre Paillier
ae486e9e53 Can now feed the EIP-712 UI value buffer from multiple data (APDU) chunks
Also fixes EIP-712 bytes formatting for values longer than the display buffer, it would only show "..." (introduced by aa38ee995)
2024-06-20 11:32:09 +02:00
Alexandre Paillier
05ddb70e7f Can now handle amount-join EIP-712 filtering on Permit (ERC-2612) messages 2024-06-20 10:40:00 +02:00
Alexandre Paillier
2fdb3bcb34 Date/Time EIP-712 filtering implementation 2024-05-24 17:36:38 +02:00
Alexandre Paillier
e76e429148 Amount-join EIP-712 filtering implementation 2024-05-24 17:35:34 +02:00
Alexandre Paillier
4a7e50138a Revert "EIP-712 addresses can now be displayed as a token ticker or a trusted domain name"
This reverts commit 77f5c9389b.
2024-05-24 15:41:49 +02:00
Alexandre Paillier
c17e06b525 Remove filters counter check at the end of EIP712 flow 2024-05-20 11:21:20 +02:00
Charles-Edouard de la Vergne
e434173bc3 Merge pull request #565 from LedgerHQ/cev/B2CA-1558_Port-Flex
B2CA-1558: Port Ethereum on Flex
2024-05-16 17:44:25 +02:00
Charles-Edouard de la Vergne
c0d19fdf6d Update ethereum plugin-sdk 2024-05-13 14:33:10 +02:00
Alexandre Paillier
c8c4b6cccc Renamed get_asset_info to get_asset_info_by_addr 2024-05-07 17:37:04 +02:00
Francois Beutin
27f9ad52a8 Remove token management from main 2024-05-07 11:36:50 +02:00
Alexandre Paillier
6df0ad5ba2 EIP-712 empty array handling fix 2024-05-02 18:37:31 +02:00
Alexandre Paillier
3be9e1d197 Changed how EIP-712 array progression is counted 2024-05-02 18:37:30 +02:00
Alexandre Paillier
04464c2f11 Delay EIP-712 array traversal until size is received 2024-05-02 18:37:30 +02:00
Charles-Edouard de la Vergne
aa38ee9959 Code improvements / Fix warnings
- Fix CodeQL warnings
- Port lots of improvements/fixes from PR #225
- replace 'array_hexstr' and '%*H' format by sdk function 'format_hex'
- Add 'noreturn' attribute in 'main.c'
2024-04-26 11:09:18 +02:00
Charles-Edouard de la Vergne
f5ea9c51c2 Fix various Linter issues and mispelling 2024-03-27 14:43:15 +01:00
Charles-Edouard de la Vergne
36ae183a1c Fix deprecated warnings 2024-03-27 14:43:15 +01:00
Alexandre Paillier
77f5c9389b EIP-712 addresses can now be displayed as a token ticker or a trusted domain name 2024-02-14 12:10:03 +01:00
Francois Beutin
3bcf12ce1d Rename utils to common_utils 2024-02-02 11:23:30 +01:00
Francois Beutin
3d9da0dd16 Move basic utility functions from ethUtils to main utils file 2024-02-02 11:23:28 +01:00
Francois Beutin
ca8700f47c Split tokens file 2024-02-02 11:23:26 +01:00
Alexandre Paillier
49da32af8e Added missing return value checks following recent changes 2023-10-10 16:42:24 +02:00
Alexandre Paillier
17968338d8 Removed EIP712 verbose display of inner struct names 2023-07-18 17:00:35 +02:00
Alexandre Paillier
af8123ad45 Fix improper handling of empty arrays in EIP712 messages 2023-07-18 17:00:35 +02:00
Alexandre Paillier
6a04c14df0 Add back the call to ui_idle in case of EIP712 failure
Was removed during the Stax porting
2023-07-18 17:00:30 +02:00
Alexandre Paillier
8881471a8e EIP-712 fixes
- Now displays a Review page before showing the fields
- Now asks for confirmation before rejecting
- Now does not refresh the screen twice after a signature approval/rejection
- Both EIP-712 implementations on par UX-wise
- Fixed v0 approve/reject status word mismatch
- Unified NBGL UI of both implementations
2023-05-16 11:42:30 +02:00
Alexandre Paillier
e15899c92e Moved hash_byte & hash_nbytes functions to common
Also fixed possible overflow on large payload hashing
2023-03-29 17:53:29 +02:00
Alexandre Paillier
fb1e1b2f78 EIP712 verbose mode "Struct review" visual glitch fix 2022-11-18 15:07:08 +01:00
Alexandre Paillier
174d35782f Review fixes 2022-10-26 14:54:10 +02:00
Alexandre Paillier
c158c3e502 Better split between business logic & UI code for EIP-712 2022-10-24 10:18:51 +02:00
Alexandre Paillier
109dffc70e Better context check for EIP712 sign
It was possible to define empty structs without any fields and right after, trigger the EIP712 sign UI flow for blank domain & message hashes.
Added checks if there is actually anything relevant to sign.
2022-10-18 11:51:39 +02:00
Jorge Martins
0b288cd924 Eip712 review (#355)
* Possible security fix.

It is possible to send a new structure definition after sending a structure implementation, which makes the app treat unrestricted data as if it was a well defined structure.
This commit tries to fix that behaviour. Once a structure implementation is sent, we consider all structures to be defined and we do not allow new definitions.

* Fix previous commit
2022-10-18 11:09:00 +02:00
Alexandre Paillier
d297a66951 Enforce proper memory alignment on APDU buffer for response status words 2022-10-17 11:57:16 +02:00
Alexandre Paillier
2474bdb81a Merge remote-tracking branch 'origin/develop' into HEAD 2022-10-17 11:44:28 +02:00
Alexandre Paillier
eec44e994a Removed duplicated function signature of ui_idle 2022-09-15 16:49:19 +02:00
Alexandre Paillier
78c0bfe424 Removed EIP-712 strict chain ID check 2022-09-15 16:44:19 +02:00
Alexandre Paillier
35c77ff29c Increased EIP712 max array depth to 8 2022-09-14 17:27:34 +02:00
Alexandre Paillier
5ce56bd53e Renamed EIP712 context files to less generic ones 2022-09-14 17:27:33 +02:00
Alexandre Paillier
1b46ccb190 Extract EIP-712 UI code 2022-09-14 17:27:33 +02:00
Alexandre Paillier
a58d2ababb Removed unused bagl type references in EIP-191 code 2022-09-14 11:08:10 +02:00
Alexandre Paillier
a27826dcf6 Fix EIP712 type_hash function description 2022-09-14 09:41:39 +02:00
Alexandre Paillier
ed479128fd EIP712 Filtering count checking 2022-09-14 09:41:39 +02:00
Alexandre Paillier
93b0bb08f7 Better handling of missing EIP721 error codes + add a missing one for EIP712 filtering signature checking 2022-09-14 09:41:38 +02:00
Alexandre Paillier
9e4df4b655 Updated EIP712 filtering signature specs to start with a magic number
Making it impossible for a signature of one type to be valid as another
2022-09-14 09:41:38 +02:00
Alexandre Paillier
3ee1fa419a Now supports EIP-712 filtering with missing chain id & contract address 2022-09-14 09:41:37 +02:00