Commit Graph

977 Commits

Author SHA1 Message Date
Alexandre Paillier
1a4149e836 EIP-712 hidden fields now share the shown fields logic 2022-08-05 18:15:44 +02:00
Alexandre Paillier
d8321d422d Renamed EIP-712 UI function 2022-08-05 18:15:44 +02:00
Alexandre Paillier
9884fadefc Updated EIP-712 filtering APDU doc to include the chain ID in the sig 2022-08-05 18:15:43 +02:00
Alexandre Paillier
ca37612f61 Fix io_exchange exception
Was trying to reply to EIP712 ARRAY size APDU twice
2022-08-05 18:15:43 +02:00
Alexandre Paillier
447e7b9277 Verbose EIP-712 setting now ignores filtering APDUs 2022-08-05 18:15:43 +02:00
Alexandre Paillier
8dcb4bc74f New EIP-712 verbose in-app setting + small refactoring & naming unification 2022-08-05 18:15:42 +02:00
Alexandre Paillier
b1f2e933c0 Added an EIP712 test key 2022-08-05 18:15:42 +02:00
Alexandre Paillier
b7a4c0d93b EIP-712 filtering UI adjustments; Removed half-blind special compilation flag 2022-08-05 18:15:41 +02:00
Alexandre Paillier
a24f621ce3 EIP712 filtering, added new APDUs 2022-08-05 18:15:41 +02:00
Alexandre Paillier
56e0875979 Made the hacky 712 generic step redraw a function 2022-08-05 18:15:41 +02:00
Alexandre Paillier
07aca18ab1 New EIP-712 UX set title/value functions 2022-08-05 18:15:40 +02:00
Alexandre Paillier
9bc3f5255e Add documentation on EIP712 filtering APDU 2022-08-05 18:15:40 +02:00
Alexandre Paillier
7e63bd8435 Now copies the EIP712 contract address into memory so it can be used later 2022-08-05 18:15:40 +02:00
Alexandre Paillier
f480d5091e Now uses an eip712 context struct instead of having multiple global variables => reduced bss footprint 2022-08-05 18:15:39 +02:00
Alexandre Paillier
8ea34f9f00 Fix hashing of signed negative integers smaller than 256 bits 2022-08-05 18:15:39 +02:00
Alexandre Paillier
d5603857b3 Fix UI display of signed negative integers smaller than 256 bits 2022-08-05 18:15:38 +02:00
Alexandre Paillier
bbcfe5abc3 Added a util function to convert from byte buffer to uint128_t 2022-08-05 18:15:38 +02:00
Alexandre Paillier
f3e307423e EIP712 now displays integers differently if signed or unsigned 2022-08-05 18:15:38 +02:00
Alexandre Paillier
10fbb8d5bc Unify all the hex digits used in the app 2022-08-05 18:15:37 +02:00
Alexandre Paillier
f99804de08 Added a signed int256 formatting function 2022-08-05 18:15:37 +02:00
Alexandre Paillier
59d8ace99e Split the uint256 lib into multiple more meaningful files 2022-08-05 18:15:36 +02:00
Alexandre Paillier
50225d72d0 Some const correctness in the uint256 functions 2022-08-05 18:15:36 +02:00
Alexandre Paillier
f458fcd6ac Better naming for uint256 type functions 2022-08-05 18:15:36 +02:00
Alexandre Paillier
25b9caf2d5 Typo fix in APDU doc 2022-08-05 18:15:35 +02:00
Alexandre Paillier
31aff6a95f Removed unused custom strchr function 2022-08-05 18:15:35 +02:00
Alexandre Paillier
3674212016 New EIP712 APDUs added to the documentation 2022-08-05 18:15:33 +02:00
Alexandre Paillier
30f8c50e3f Renamed doc files to their recommended extension
https://asciidoctor.org/docs/asciidoc-recommended-practices/#document-extension
2022-08-05 17:58:17 +02:00
Alexandre Paillier
b2fc45e295 Reordered the APDUs by INS values in the doc
Also changed from CRLF encoding to simple LF
2022-08-05 17:58:17 +02:00
Alexandre Paillier
f0d6a2bba1 Now filters out all fields but the name in the EIP712Domain in the half-blind mode 2022-08-05 17:52:48 +02:00
Alexandre Paillier
239da44d0e Added a new temporary EIP-712 half-bind mode 2022-08-05 17:52:48 +02:00
Alexandre Paillier
a0551e8226 Added a function to check if we are in the domain or the message struct 2022-08-05 17:52:48 +02:00
Alexandre Paillier
2fa6379470 Now only compiles full EIP-712 support for capable devices 2022-08-05 17:52:47 +02:00
Alexandre Paillier
b9820774ba Replaced the debug printf in the EIP712 signature function by two more relevant ones 2022-08-05 17:52:47 +02:00
Alexandre Paillier
59dd149534 Added some NULL checks for global structure pointers 2022-08-05 17:52:46 +02:00
Alexandre Paillier
c0eaf8d106 Proper cleanup after EIP712 message 2022-08-05 17:52:46 +02:00
Alexandre Paillier
0525f7cda8 Fixes bad multi-screen value behaviour 2022-08-05 17:52:46 +02:00
Alexandre Paillier
2badb7b5b2 Now displays the field values
Show ints as uints for now
2022-08-05 17:52:45 +02:00
Alexandre Paillier
9cd39e2c02 Now uses some of the old EIP712 code as common code between the two implementations + approve/reject button now works 2022-08-05 17:52:45 +02:00
Alexandre Paillier
9f29a7caa2 UI handling WIP 2022-08-05 17:52:44 +02:00
Alexandre Paillier
b8424d1a21 Now handles domain & message struct not based on order but on struct name 2022-08-05 17:52:44 +02:00
Alexandre Paillier
5c00a5c27b Structs alignment in memory, fixes device freezes/crashes 2022-08-05 17:52:44 +02:00
Alexandre Paillier
d43849d852 Sets the memory buffer to 5K 2022-08-05 17:52:43 +02:00
Alexandre Paillier
90dfa74538 Emulates old behaviour with new APDUs but computed all on-device 2022-08-05 17:52:43 +02:00
Alexandre Paillier
516682b206 Fix impl APDU wrongly returning 0x6a80 2022-08-05 17:52:42 +02:00
Alexandre Paillier
3095d54394 Now initializes the eip712 context 2022-08-05 17:52:42 +02:00
Alexandre Paillier
b6e4f887cb Fixes printf formatting issues caused by the toolchain 2022-08-05 17:52:42 +02:00
Alexandre Paillier
4442ba5716 Now responds to EIP712 APDUs 2022-08-05 17:52:41 +02:00
Alexandre Paillier
faae5a909c Fix PIC crashes 2022-08-05 17:52:41 +02:00
Alexandre Paillier
9f8b2da74c WIP integration in app 2022-08-05 17:52:41 +02:00
Alexandre Paillier
e070c379da Removed old code main function & apdu handling function 2022-08-05 17:52:40 +02:00