Commit Graph

994 Commits

Author SHA1 Message Date
Alexandre Paillier
a375e5b07d Moved the memory allocator and its util functions out of the EIP712 subdirectory and gave it its own compilation flag
Also removed dead code
2022-08-05 18:15:51 +02:00
Alexandre Paillier
7dad477413 Moved EIP 712 commands handling into their own file & renamed some things 2022-08-05 18:15:50 +02:00
Alexandre Paillier
399b865e5c Moved EIP712 filtering related code into its own file 2022-08-05 18:15:50 +02:00
Alexandre Paillier
cd77ca5152 Small refactoring on EIP712 set_struct_name function 2022-08-05 18:15:50 +02:00
Alexandre Paillier
b782a69137 Moved all typed data in RAM related code into its own file 2022-08-05 18:15:49 +02:00
Alexandre Paillier
0100eed1fd EIP712 code now uses the global apdu response code; error handling improvements 2022-08-05 18:15:49 +02:00
Alexandre Paillier
12b97d91db Added a global apdu response code variable 2022-08-05 18:15:48 +02:00
Alexandre Paillier
01179730a1 Updated the EIP-712 filtering signature specs; Update the verification implementation to now handle field path intead of only the field key name 2022-08-05 18:15:48 +02:00
Alexandre Paillier
4574c223f2 Clean up mem allocation alignment macro usage + small refactoring of the typehash dependencies search 2022-08-05 18:15:48 +02:00
Alexandre Paillier
339d24445e Merge the duplicated EIP-712 filtering function 2022-08-05 18:15:47 +02:00
Alexandre Paillier
ee660317aa EIP712 signatures now computed on schema hash 2022-08-05 18:15:47 +02:00
Alexandre Paillier
188a75ffff App now computes EIP-712 schema identifier 2022-08-05 18:15:47 +02:00
Alexandre Paillier
5450f0c46f Refactored some type EIP712 formatting and hashing code to re-use it 2022-08-05 18:15:46 +02:00
Alexandre Paillier
1b00038859 Fixed compilation warning 2022-08-05 18:15:46 +02:00
Alexandre Paillier
47e47dd818 EIP712 signatures now computed on chain ID 2022-08-05 18:15:45 +02:00
Alexandre Paillier
559e729188 Better UI for verbose EIP-712, now shows the review struct screen even on inner structures 2022-08-05 18:15:45 +02:00
Alexandre Paillier
032d74e301 Now checks the EIP712Domain chain ID 2022-08-05 18:15:45 +02:00
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