diff --git a/app/Makefile.version b/app/Makefile.version index 438ccf4e..140ebb66 100644 --- a/app/Makefile.version +++ b/app/Makefile.version @@ -3,4 +3,4 @@ APPVERSION_M=2 # This is the `spec_version` field of `Runtime` APPVERSION_N=35 # This is the patch version of this release -APPVERSION_P=17 +APPVERSION_P=18 diff --git a/app/script_s2.ld b/app/script_s2.ld deleted file mode 100644 index db3150b3..00000000 --- a/app/script_s2.ld +++ /dev/null @@ -1,170 +0,0 @@ -/******************************************************************************* -* Ledger Blue - Secure firmware -* (c) 2016, 2017, 2018, 2019 Ledger -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -********************************************************************************/ - -/** - * Global chip memory layout and constants - * - */ - -MEMORY -{ - DISCARD (rwx) : ORIGIN = 0xd0000000, LENGTH = 1M - - FLASH (rx) : ORIGIN = 0xc0de0000, LENGTH = 400K - DATA (r) : ORIGIN = 0xc0de0000, LENGTH = 400K - SRAM (rwx) : ORIGIN = 0xda7a0000, LENGTH = 30K -} - -PAGE_SIZE = 512; -STACK_SIZE = 8192; -END_STACK = ORIGIN(SRAM) + LENGTH(SRAM); - -ENTRY(main); - -SECTIONS -{ - /****************************************************************/ - /* This section locates the code in FLASH */ - /****************************************************************/ - - /** put text in Flash memory, VMA will be equal to LMA */ - .text : - { - /* provide start code symbol, shall be zero */ - _text = .; - _nvram_start = .; - - /* ensure main is always @ 0xC0D00000 */ - *(.boot*) - - /* place the other code and rodata defined BUT nvram variables that are displaced in a r/w area */ - *(.text*) - *(.rodata) - *(.rodata.[^N]*) /*.data.rel.ro* not here to detect invalid PIC usage */ - *(.rodata.N[^_]*) - - . = ALIGN(4); - - /* all code placed */ - _etext = .; - - . = ALIGN(PAGE_SIZE); - - _nvram_data = .; - - /* NVM data (ex-filesystem) */ - *(.bss.N_* .rodata.N_*) - - . = ALIGN(PAGE_SIZE); - _envram_data = .; - - _install_parameters = .; - _nvram_end = .; - } > FLASH = 0x00 - - .data (NOLOAD): - { - . = ALIGN(4); - - /** - * Place RAM initialized variables - */ - _data = .; - - *(vtable) - *(.data*) - - _edata = .; - - } > DISCARD /*> SRAM AT>FLASH = 0x00 */ - - .bss : - { - /** - * Place RAM uninitialized variables - */ - _bss = .; - *(.bss*) - _ebss = .; - - - /** - * Reserve stack size - */ - . = ALIGN(4); - app_stack_canary = .; - PROVIDE(app_stack_canary = .); - . += 4; - _stack_validation = .; - . = _stack_validation + STACK_SIZE; - _stack = ABSOLUTE(END_STACK) - STACK_SIZE; - PROVIDE( _stack = ABSOLUTE(END_STACK) - STACK_SIZE); - _estack = ABSOLUTE(END_STACK); - PROVIDE( _estack = ABSOLUTE(END_STACK) ); - - } > SRAM = 0x00 - - /****************************************************************/ - /* DEBUG */ - /****************************************************************/ - - /* remove the debugging information from the standard libraries */ - DEBUG (NOLOAD) : - { - libc.a ( * ) - libm.a ( * ) - libgcc.a ( * ) - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } > DISCARD - - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } -} - -PROVIDE(_nvram = ABSOLUTE(_nvram_start)); -PROVIDE(_envram = ABSOLUTE(_nvram_end)); \ No newline at end of file diff --git a/app/src/apdu_handler.c b/app/src/apdu_handler.c index a7ed6dc5..18ca7d10 100644 --- a/app/src/apdu_handler.c +++ b/app/src/apdu_handler.c @@ -203,18 +203,10 @@ __Z_INLINE void handleSign(volatile uint32_t *flags, volatile uint32_t *tx, uint THROW(APDU_CODE_DATA_INVALID); } - // Put address in output buffer, we will use it to confirm source address - zxerr_t zxerr = app_fill_address(); - if (zxerr != zxerr_ok) { - *tx = 0; - THROW(APDU_CODE_DATA_INVALID); - } - parser_tx_obj.tx_json.own_addr = (const char *) (G_io_apdu_buffer + VIEW_ADDRESS_OFFSET_SECP256K1); const char *error_msg = tx_parse(sign_type); - if (error_msg != NULL) { - int error_msg_length = strlen(error_msg); + const int error_msg_length = strnlen(error_msg, sizeof(G_io_apdu_buffer)); MEMCPY(G_io_apdu_buffer, error_msg, error_msg_length); *tx += (error_msg_length); THROW(APDU_CODE_DATA_INVALID); diff --git a/app/src/parser_impl.h b/app/src/parser_impl.h index 53d91cef..1af7a28f 100644 --- a/app/src/parser_impl.h +++ b/app/src/parser_impl.h @@ -33,8 +33,8 @@ typedef struct { } parser_context_t; typedef struct { - char str1[50]; - char str2[50]; + const char *str1; + const char *str2; } key_subst_t; typedef struct { diff --git a/app/src/tx_display.c b/app/src/tx_display.c index 208d436d..2b414332 100644 --- a/app/src/tx_display.c +++ b/app/src/tx_display.c @@ -323,7 +323,7 @@ __Z_INLINE parser_error_t is_default_chainid(bool *is_default) { if (is_default == NULL) { return parser_unexpected_value; } - + CHECK_PARSER_ERR(tx_indexRootFields()) *is_default = display_cache.is_default_chain; @@ -355,7 +355,7 @@ __Z_INLINE parser_error_t get_subitem_count(root_item_e root_item, uint8_t *num_ int32_t tmp_num_items = display_cache.root_item_number_subitems[root_item]; bool is_expert_or_default = false; - + switch (root_item) { case root_item_chain_id: case root_item_sequence: @@ -508,6 +508,7 @@ static const key_subst_t key_substitutions[] = { {"memo", "Memo"}, {"fee/amount", "Fee"}, {"fee/gas", "Gas"}, + {"fee/gas_limit", "Gas Limit"}, {"fee/granter", "Granter"}, {"fee/payer", "Payer"}, {"msgs/type", "Type"}, @@ -550,9 +551,18 @@ parser_error_t tx_display_make_friendly() { // post process keys for (size_t i = 0; i < array_length(key_substitutions); i++) { - if (!strncmp(parser_tx_obj.tx_json.query.out_key, key_substitutions[i].str1, strlen(key_substitutions[i].str1))) { - strncpy_s(parser_tx_obj.tx_json.query.out_key, key_substitutions[i].str2, parser_tx_obj.tx_json.query.out_key_len); - break; + const char* str1 = (const char*) PIC(key_substitutions[i].str1); + const char* str2 = (const char*) PIC(key_substitutions[i].str2); + const uint16_t str1Len = strlen(str1); + const uint16_t str2Len = strlen(str2); + + + const uint16_t outKeyLen = strnlen(parser_tx_obj.tx_json.query.out_key, parser_tx_obj.tx_json.query.out_key_len); + if ((outKeyLen == str1Len && strncmp(parser_tx_obj.tx_json.query.out_key, str1, str1Len) == 0) + && parser_tx_obj.tx_json.query.out_key_len >= str2Len) { + MEMZERO(parser_tx_obj.tx_json.query.out_key, parser_tx_obj.tx_json.query.out_key_len); + MEMCPY(parser_tx_obj.tx_json.query.out_key, str2, str2Len); + break; } } diff --git a/app/src/tx_parser.c b/app/src/tx_parser.c index f8ded002..43296511 100644 --- a/app/src/tx_parser.c +++ b/app/src/tx_parser.c @@ -84,28 +84,29 @@ parser_error_t tx_getToken(uint16_t token_index, const char *inValue = parser_tx_obj.tx_json.tx + token_start; uint16_t inLen = token_end - token_start; + // empty strings are considered the first page *pageCount = 1; if (inLen > 0) { for (uint32_t i = 0; i < array_length(value_substitutions); i++) { - const char *substStr = value_substitutions[i].str1; - const size_t substStrLen = strlen(substStr); - if (inLen == substStrLen && !MEMCMP(inValue, substStr, substStrLen)) { - inValue = value_substitutions[i].str2; - inLen = strlen(value_substitutions[i].str2); + const char* str1 = (const char*) PIC(value_substitutions[i].str1); + const char* str2 = (const char*) PIC(value_substitutions[i].str2); + const uint16_t str1Len = strlen(str1); + const uint16_t str2Len = strlen(str2); + + if (inLen == str1Len && strncmp(inValue, str1, str1Len) == 0) { + inValue = str2; + inLen = str2Len; //Extra Depth level for Multisend type extraDepthLevel = false; if (strstr(inValue, "Multi") != NULL) { extraDepthLevel = true; } - break; } } - pageStringExt(out_val, out_val_len, inValue, inLen, pageIdx, pageCount); - } if (pageIdx >= *pageCount) { diff --git a/tests/testcases/manual.json b/tests/testcases/manual.json index 0c1371e1..b7d00e03 100644 --- a/tests/testcases/manual.json +++ b/tests/testcases/manual.json @@ -2174,7 +2174,7 @@ "5 | Sender [2/2] : wcgvqa", "6 | Proposal ID : 44", "7 | Fee : 54 uatom", - "8 | Gas : 106309", + "8 | Gas Limit : 106309", "9 | Granter : cosmosaccaddr1d9h8xxxGRANTER", "10 | Payer : cosmosaccaddr1d9h8qatxxPAYER" ], diff --git a/tests_zemu/snapshots/s-mainmenu/00004.png b/tests_zemu/snapshots/s-mainmenu/00004.png index ddbc4c55..8de0d02d 100644 Binary files a/tests_zemu/snapshots/s-mainmenu/00004.png and b/tests_zemu/snapshots/s-mainmenu/00004.png differ diff --git a/tests_zemu/snapshots/s-mainmenu/00010.png b/tests_zemu/snapshots/s-mainmenu/00010.png index ddbc4c55..8de0d02d 100644 Binary files a/tests_zemu/snapshots/s-mainmenu/00010.png and b/tests_zemu/snapshots/s-mainmenu/00010.png differ diff --git a/tests_zemu/snapshots/s-sign_basic/00001.png b/tests_zemu/snapshots/s-sign_basic/00001.png index 368d6198..5be09342 100644 Binary files a/tests_zemu/snapshots/s-sign_basic/00001.png and b/tests_zemu/snapshots/s-sign_basic/00001.png differ diff --git a/tests_zemu/snapshots/s-sign_basic/00002.png b/tests_zemu/snapshots/s-sign_basic/00002.png index 56fe9ab2..0041b258 100644 Binary files a/tests_zemu/snapshots/s-sign_basic/00002.png and b/tests_zemu/snapshots/s-sign_basic/00002.png differ diff --git a/tests_zemu/snapshots/s-sign_basic/00003.png b/tests_zemu/snapshots/s-sign_basic/00003.png index 9dae9154..368d6198 100644 Binary files a/tests_zemu/snapshots/s-sign_basic/00003.png and b/tests_zemu/snapshots/s-sign_basic/00003.png differ diff --git a/tests_zemu/snapshots/s-sign_basic/00004.png b/tests_zemu/snapshots/s-sign_basic/00004.png index 08fc31e0..56fe9ab2 100644 Binary files a/tests_zemu/snapshots/s-sign_basic/00004.png and b/tests_zemu/snapshots/s-sign_basic/00004.png differ diff --git a/tests_zemu/snapshots/s-sign_basic/00005.png b/tests_zemu/snapshots/s-sign_basic/00005.png index 7ee7a7ba..9dae9154 100644 Binary files a/tests_zemu/snapshots/s-sign_basic/00005.png and b/tests_zemu/snapshots/s-sign_basic/00005.png differ diff --git a/tests_zemu/snapshots/s-sign_basic/00006.png b/tests_zemu/snapshots/s-sign_basic/00006.png index 006c26ab..08fc31e0 100644 Binary files a/tests_zemu/snapshots/s-sign_basic/00006.png and b/tests_zemu/snapshots/s-sign_basic/00006.png differ diff --git a/tests_zemu/snapshots/s-sign_basic/00007.png b/tests_zemu/snapshots/s-sign_basic/00007.png index 131855e2..7ee7a7ba 100644 Binary files a/tests_zemu/snapshots/s-sign_basic/00007.png and b/tests_zemu/snapshots/s-sign_basic/00007.png differ diff --git a/tests_zemu/snapshots/s-sign_basic/00008.png b/tests_zemu/snapshots/s-sign_basic/00008.png new file mode 100644 index 00000000..006c26ab Binary files /dev/null and b/tests_zemu/snapshots/s-sign_basic/00008.png differ diff --git a/tests_zemu/snapshots/s-sign_basic/00009.png b/tests_zemu/snapshots/s-sign_basic/00009.png new file mode 100644 index 00000000..131855e2 Binary files /dev/null and b/tests_zemu/snapshots/s-sign_basic/00009.png differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00001.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00001.png index 368d6198..5be09342 100644 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00001.png and b/tests_zemu/snapshots/s-sign_basic_extra_fields/00001.png differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00002.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00002.png index 56fe9ab2..0041b258 100644 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00002.png and b/tests_zemu/snapshots/s-sign_basic_extra_fields/00002.png differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00003.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00003.png index 9dae9154..368d6198 100644 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00003.png and b/tests_zemu/snapshots/s-sign_basic_extra_fields/00003.png differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00004.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00004.png index 08fc31e0..56fe9ab2 100644 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00004.png and b/tests_zemu/snapshots/s-sign_basic_extra_fields/00004.png differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00005.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00005.png index 7ee7a7ba..9dae9154 100644 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00005.png and b/tests_zemu/snapshots/s-sign_basic_extra_fields/00005.png differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00006.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00006.png index 006c26ab..08fc31e0 100644 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00006.png and b/tests_zemu/snapshots/s-sign_basic_extra_fields/00006.png differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00007.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00007.png index 131855e2..7ee7a7ba 100644 Binary files a/tests_zemu/snapshots/s-sign_basic_extra_fields/00007.png and b/tests_zemu/snapshots/s-sign_basic_extra_fields/00007.png differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00008.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00008.png new file mode 100644 index 00000000..006c26ab Binary files /dev/null and b/tests_zemu/snapshots/s-sign_basic_extra_fields/00008.png differ diff --git a/tests_zemu/snapshots/s-sign_basic_extra_fields/00009.png b/tests_zemu/snapshots/s-sign_basic_extra_fields/00009.png new file mode 100644 index 00000000..131855e2 Binary files /dev/null and b/tests_zemu/snapshots/s-sign_basic_extra_fields/00009.png differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00004.png b/tests_zemu/snapshots/sp-mainmenu/00004.png index 7e2cf019..57e29fc4 100644 Binary files a/tests_zemu/snapshots/sp-mainmenu/00004.png and b/tests_zemu/snapshots/sp-mainmenu/00004.png differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00010.png b/tests_zemu/snapshots/sp-mainmenu/00010.png index 7e2cf019..57e29fc4 100644 Binary files a/tests_zemu/snapshots/sp-mainmenu/00010.png and b/tests_zemu/snapshots/sp-mainmenu/00010.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00002.png b/tests_zemu/snapshots/sp-sign_basic/00002.png index b47dabb4..d5c15863 100644 Binary files a/tests_zemu/snapshots/sp-sign_basic/00002.png and b/tests_zemu/snapshots/sp-sign_basic/00002.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00003.png b/tests_zemu/snapshots/sp-sign_basic/00003.png index 4e0f2906..b47dabb4 100644 Binary files a/tests_zemu/snapshots/sp-sign_basic/00003.png and b/tests_zemu/snapshots/sp-sign_basic/00003.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00004.png b/tests_zemu/snapshots/sp-sign_basic/00004.png index a51f4624..4e0f2906 100644 Binary files a/tests_zemu/snapshots/sp-sign_basic/00004.png and b/tests_zemu/snapshots/sp-sign_basic/00004.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00005.png b/tests_zemu/snapshots/sp-sign_basic/00005.png index 1e4be699..a51f4624 100644 Binary files a/tests_zemu/snapshots/sp-sign_basic/00005.png and b/tests_zemu/snapshots/sp-sign_basic/00005.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00006.png b/tests_zemu/snapshots/sp-sign_basic/00006.png index 430a37e8..1e4be699 100644 Binary files a/tests_zemu/snapshots/sp-sign_basic/00006.png and b/tests_zemu/snapshots/sp-sign_basic/00006.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic/00007.png b/tests_zemu/snapshots/sp-sign_basic/00007.png new file mode 100644 index 00000000..430a37e8 Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_basic/00007.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00002.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00002.png index b47dabb4..d5c15863 100644 Binary files a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00002.png and b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00002.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00003.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00003.png index 4e0f2906..b47dabb4 100644 Binary files a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00003.png and b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00003.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00004.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00004.png index a51f4624..4e0f2906 100644 Binary files a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00004.png and b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00004.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00005.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00005.png index 1e4be699..a51f4624 100644 Binary files a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00005.png and b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00005.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00006.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00006.png index 430a37e8..1e4be699 100644 Binary files a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00006.png and b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00006.png differ diff --git a/tests_zemu/snapshots/sp-sign_basic_extra_fields/00007.png b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00007.png new file mode 100644 index 00000000..430a37e8 Binary files /dev/null and b/tests_zemu/snapshots/sp-sign_basic_extra_fields/00007.png differ diff --git a/tests_zemu/snapshots/st-mainmenu/00001.png b/tests_zemu/snapshots/st-mainmenu/00001.png index 416afe49..47b645c3 100644 Binary files a/tests_zemu/snapshots/st-mainmenu/00001.png and b/tests_zemu/snapshots/st-mainmenu/00001.png differ diff --git a/tests_zemu/snapshots/st-sign_basic/00001.png b/tests_zemu/snapshots/st-sign_basic/00001.png index d9c11af8..e3f499c1 100644 Binary files a/tests_zemu/snapshots/st-sign_basic/00001.png and b/tests_zemu/snapshots/st-sign_basic/00001.png differ diff --git a/tests_zemu/snapshots/st-sign_basic/00002.png b/tests_zemu/snapshots/st-sign_basic/00002.png index 08c557da..ed9f206f 100644 Binary files a/tests_zemu/snapshots/st-sign_basic/00002.png and b/tests_zemu/snapshots/st-sign_basic/00002.png differ diff --git a/tests_zemu/snapshots/st-sign_basic/00003.png b/tests_zemu/snapshots/st-sign_basic/00003.png index f384cce6..c78dbcd7 100644 Binary files a/tests_zemu/snapshots/st-sign_basic/00003.png and b/tests_zemu/snapshots/st-sign_basic/00003.png differ diff --git a/tests_zemu/snapshots/st-sign_basic/00004.png b/tests_zemu/snapshots/st-sign_basic/00004.png index ba2e8a92..7da083e4 100644 Binary files a/tests_zemu/snapshots/st-sign_basic/00004.png and b/tests_zemu/snapshots/st-sign_basic/00004.png differ diff --git a/tests_zemu/snapshots/st-sign_basic/00005.png b/tests_zemu/snapshots/st-sign_basic/00005.png new file mode 100644 index 00000000..ba2e8a92 Binary files /dev/null and b/tests_zemu/snapshots/st-sign_basic/00005.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00001.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00001.png index d9c11af8..e3f499c1 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00001.png and b/tests_zemu/snapshots/st-sign_basic_extra_fields/00001.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00002.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00002.png index 08c557da..ed9f206f 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00002.png and b/tests_zemu/snapshots/st-sign_basic_extra_fields/00002.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00003.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00003.png index f384cce6..c78dbcd7 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00003.png and b/tests_zemu/snapshots/st-sign_basic_extra_fields/00003.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00004.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00004.png index ba2e8a92..7da083e4 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00004.png and b/tests_zemu/snapshots/st-sign_basic_extra_fields/00004.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00005.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00005.png new file mode 100644 index 00000000..ba2e8a92 Binary files /dev/null and b/tests_zemu/snapshots/st-sign_basic_extra_fields/00005.png differ diff --git a/tests_zemu/snapshots/x-mainmenu/00004.png b/tests_zemu/snapshots/x-mainmenu/00004.png index 7e2cf019..57e29fc4 100644 Binary files a/tests_zemu/snapshots/x-mainmenu/00004.png and b/tests_zemu/snapshots/x-mainmenu/00004.png differ diff --git a/tests_zemu/snapshots/x-mainmenu/00010.png b/tests_zemu/snapshots/x-mainmenu/00010.png index 7e2cf019..57e29fc4 100644 Binary files a/tests_zemu/snapshots/x-mainmenu/00010.png and b/tests_zemu/snapshots/x-mainmenu/00010.png differ diff --git a/tests_zemu/snapshots/x-sign_basic/00002.png b/tests_zemu/snapshots/x-sign_basic/00002.png index 5a83f183..88e2d4c9 100644 Binary files a/tests_zemu/snapshots/x-sign_basic/00002.png and b/tests_zemu/snapshots/x-sign_basic/00002.png differ diff --git a/tests_zemu/snapshots/x-sign_basic/00003.png b/tests_zemu/snapshots/x-sign_basic/00003.png index 88e82f3d..5a83f183 100644 Binary files a/tests_zemu/snapshots/x-sign_basic/00003.png and b/tests_zemu/snapshots/x-sign_basic/00003.png differ diff --git a/tests_zemu/snapshots/x-sign_basic/00004.png b/tests_zemu/snapshots/x-sign_basic/00004.png index a51f4624..88e82f3d 100644 Binary files a/tests_zemu/snapshots/x-sign_basic/00004.png and b/tests_zemu/snapshots/x-sign_basic/00004.png differ diff --git a/tests_zemu/snapshots/x-sign_basic/00005.png b/tests_zemu/snapshots/x-sign_basic/00005.png index 1e4be699..a51f4624 100644 Binary files a/tests_zemu/snapshots/x-sign_basic/00005.png and b/tests_zemu/snapshots/x-sign_basic/00005.png differ diff --git a/tests_zemu/snapshots/x-sign_basic/00006.png b/tests_zemu/snapshots/x-sign_basic/00006.png index 430a37e8..1e4be699 100644 Binary files a/tests_zemu/snapshots/x-sign_basic/00006.png and b/tests_zemu/snapshots/x-sign_basic/00006.png differ diff --git a/tests_zemu/snapshots/x-sign_basic/00007.png b/tests_zemu/snapshots/x-sign_basic/00007.png new file mode 100644 index 00000000..430a37e8 Binary files /dev/null and b/tests_zemu/snapshots/x-sign_basic/00007.png differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00002.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00002.png index 5a83f183..88e2d4c9 100644 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00002.png and b/tests_zemu/snapshots/x-sign_basic_extra_fields/00002.png differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00003.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00003.png index 88e82f3d..5a83f183 100644 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00003.png and b/tests_zemu/snapshots/x-sign_basic_extra_fields/00003.png differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00004.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00004.png index a51f4624..88e82f3d 100644 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00004.png and b/tests_zemu/snapshots/x-sign_basic_extra_fields/00004.png differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00005.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00005.png index 1e4be699..a51f4624 100644 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00005.png and b/tests_zemu/snapshots/x-sign_basic_extra_fields/00005.png differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00006.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00006.png index 430a37e8..1e4be699 100644 Binary files a/tests_zemu/snapshots/x-sign_basic_extra_fields/00006.png and b/tests_zemu/snapshots/x-sign_basic_extra_fields/00006.png differ diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00007.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00007.png new file mode 100644 index 00000000..430a37e8 Binary files /dev/null and b/tests_zemu/snapshots/x-sign_basic_extra_fields/00007.png differ