Commit Graph
289 Commits
Author SHA1 Message Date
Alexandre Paillier fb1e1b2f78 EIP712 verbose mode "Struct review" visual glitch fix 2022-11-18 15:07:08 +01:00
Clement Bouvet 800116ee9d cmd_signMessage712.c: use common ui 2022-11-10 13:33:59 +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 MartinsandGitHub 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 c803322f3c Review fixes 2022-10-17 11:57:16 +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 f43d9c4dc7 Fix EIP-191 UI split 2022-10-06 15:11:30 +02:00
Alexandre Paillier e9ecf2e109 Activate full EIP-191 implementation on LNS + with adequate wording 2022-10-04 13:59:50 +02:00
Lucas PASCAL 3f294f9582 Minor fixes after review 2022-09-16 14:43:51 +02:00
Alexandre Paillier ba34e37bce Downgrade to make the app fit on LNS 2022-09-15 16:49:20 +02:00
Alexandre Paillier 50dd4f5965 Linting + updated to clang-format 12.0.1 2022-09-15 16:49:19 +02:00
Alexandre Paillier 218098efe9 Removed unused header includes from EIP-191 2022-09-15 16:49:19 +02:00
Alexandre Paillier eec44e994a Removed duplicated function signature of ui_idle 2022-09-15 16:49:19 +02:00
Alexandre Paillier f46ed72c60 Reimplement the status words for EIP-191 error cases without throwing 2022-09-15 16:49:18 +02:00
Alexandre Paillier e93d82c104 Better separation between EIP-191 UI & business logic 2022-09-15 16:49:18 +02:00
Alexandre Paillier 4bbc142ee5 Doxygen comments 2022-09-15 16:49:15 +02:00
Alexandre Paillier 78c0bfe424 Removed EIP-712 strict chain ID check 2022-09-15 16:44:19 +02:00
Alexandre Paillier 40f00bb012 Minimize the RAM used by EIP-191 global variables 2022-09-15 13:25:10 +02:00
Alexandre Paillier aedf6026c7 Handling of EIP191 non ASCII messages 2022-09-15 13:25:09 +02:00
Alexandre Paillier 81e15e51e8 Fix skip issue 2022-09-15 13:25:09 +02:00
Alexandre Paillier 493ce85c3b New implementation 2022-09-15 13:25:08 +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 ab67ae1cb3 Merge remote-tracking branch 'origin/develop' into HEAD 2022-09-14 17:27:25 +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
Alexandre Paillier 770bd9c39d Replaced the signature key used for EIP712 tests by the CAL testing one 2022-08-31 18:09:38 +02:00
Clement Bouvet 89eeaa7b7d eth: split ux from rest of source 2022-08-24 10:35:16 +02:00
Alexandre Paillier ed7b6541c0 EIP712 - Extra fixes from security review 2022-08-10 16:19:52 +02:00
Alexandre Paillier 98889e2642 Moved EIP712 filtering argument switch from P1 to P2, more in line with other EIP712 APDUs 2022-08-10 15:19:10 +02:00
Alexandre Paillier 6758453dfa Merge remote-tracking branch 'origin/develop' into apr/feature/eip712 2022-08-09 14:05:14 +02:00
Jorge Martins d384007912 Fix feesToString buffer overflow 2022-08-09 11:30:43 +02:00
Alexandre Paillier 3e3dade0b4 Security review code linting 2022-08-08 13:55:45 +02:00
Jorge MartinsandGitHub b2ec3eff0a Security review (#331)
* Fix some issues

* add typed_data.c changes

* Make attribution after the check
2022-08-08 13:53:41 +02:00
Alexandre Paillier de9e895ad9 EIP-712 code linting 2022-08-05 18:15:59 +02:00
Alexandre Paillier 0cf21cdf73 Better EIP-712 array error-handling on APDU parsing 2022-08-05 18:15:58 +02:00
Alexandre Paillier 5e5b3c3621 EIP712 STRUCT FIELD IMPL now checks the APDU payload bounds 2022-08-05 18:15:58 +02:00
Alexandre Paillier 38f199e46b Now only writes to EIP-712 UI buffers data that should be show
Prevents the case if the last field of a message is supposed to be hidden and after reaching the Approve/Reject screens the user goes back to see the last field, he would see the actual last field that should be hidden instead of the last one he saw beforehand.
2022-08-05 18:15:57 +02:00
Alexandre Paillier b4fe42cd78 EIP712 STRUCT FIELD DEF now checks the APDU payload bounds 2022-08-05 18:15:57 +02:00
Alexandre Paillier 0cc75edf69 EIP712 code Doxygen comments pass 2022-08-05 18:15:57 +02:00
Alexandre Paillier 0cfb16759c Add missing APDU return code 2022-08-05 18:15:56 +02:00
Alexandre Paillier fcc375a9aa Small refactoring to EIP712 typed data functions 2022-08-05 18:15:56 +02:00