diff --git a/.github/workflows/lint-workflow.yml b/.github/workflows/lint-workflow.yml index dbcbbc4b..69b7cdc9 100644 --- a/.github/workflows/lint-workflow.yml +++ b/.github/workflows/lint-workflow.yml @@ -45,4 +45,4 @@ jobs: # Use Config file when the github action supports it builtin: clear,rare check_filenames: true - skip: ./libsol/printer_test.c,./tests/Cargo.lock,./tools/apdu_generator/Cargo.lock + skip: ./libsol/printer_test.c,./tests/Cargo.lock,./tools/apdu_generator/Cargo.lock,./tests/python/apps/solana_utils.py diff --git a/libsol/common_byte_strings.h b/libsol/common_byte_strings.h index 6c0bf00c..0ab6cc10 100644 --- a/libsol/common_byte_strings.h +++ b/libsol/common_byte_strings.h @@ -88,3 +88,7 @@ 0x06, 0xa7, 0xd5, 0x17, 0x19, 0x2c, 0x5c, 0x51, 0x21, 0x8c, 0xc9, 0x4c, 0x3d, 0x4a, 0xf1, \ 0x7f, 0x58, 0xda, 0xee, 0x08, 0x9b, 0xa1, 0xfd, 0x44, 0xe3, 0xdb, 0xd9, 0x8a, 0x00, 0x00, \ 0x00, 0x00 + +// Domain specifiers +#define OFFCHAIN_MESSAGE_SIGNING_DOMAIN /* "\xffsolana offchain" */ \ + 0xff, 0x73, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x20, 0x6f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e diff --git a/libsol/include/sol/offchain_message_signing.h b/libsol/include/sol/offchain_message_signing.h new file mode 100644 index 00000000..be25b25d --- /dev/null +++ b/libsol/include/sol/offchain_message_signing.h @@ -0,0 +1,19 @@ +#pragma once +#include + +#define OFFCHAIN_MESSAGE_SIGNING_DOMAIN_LENGTH 16 + +/** + * 1. Signing domain (16 bytes) + * 2. Header version (1 byte) + * 3. Application domain (32 bytes) + * 4. Message format (1 byte) + * 5. Signer count (1 bytes) + * 6. Signers (signer_count * 32 bytes) - assume that only one signer is present + * 7. Message length (2 bytes) + */ +typedef struct OffchainMessageSigningDomain { + uint8_t data[OFFCHAIN_MESSAGE_SIGNING_DOMAIN_LENGTH]; +} OffchainMessageSigningDomain; + +extern const OffchainMessageSigningDomain offchain_message_signing_domain; diff --git a/libsol/include/sol/parser.h b/libsol/include/sol/parser.h index 70ff0e16..c0083e1e 100644 --- a/libsol/include/sol/parser.h +++ b/libsol/include/sol/parser.h @@ -59,9 +59,18 @@ typedef struct MessageHeader { size_t instructions_length; } MessageHeader; +//@TODO move to offchain message sign .h +#define OFFCHAIN_MESSAGE_APPLICATION_DOMAIN_LENGTH 32 +typedef struct OffchainMessageApplicationDomain { + uint8_t data[OFFCHAIN_MESSAGE_APPLICATION_DOMAIN_LENGTH]; +} OffchainMessageApplicationDomain; + typedef struct OffchainMessageHeader { uint8_t version; + const OffchainMessageApplicationDomain *application_domain; uint8_t format; + size_t signers_length; + const Pubkey *signers; uint16_t length; } OffchainMessageHeader; diff --git a/libsol/include/sol/string_utils.h b/libsol/include/sol/string_utils.h new file mode 100644 index 00000000..a1396b90 --- /dev/null +++ b/libsol/include/sol/string_utils.h @@ -0,0 +1,7 @@ +#pragma once +#include +#include +#include + +bool is_data_utf8(const uint8_t *data, size_t length); +bool is_data_ascii(const uint8_t *data, size_t length); \ No newline at end of file diff --git a/libsol/include/sol/transaction_summary.h b/libsol/include/sol/transaction_summary.h index 5dd05686..1cbb2d8c 100644 --- a/libsol/include/sol/transaction_summary.h +++ b/libsol/include/sol/transaction_summary.h @@ -44,6 +44,7 @@ enum SummaryItemKind { SummaryItemSizedString, SummaryItemString, SummaryItemTimestamp, + SummaryItemOffchainMessageApplicationDomain, }; typedef enum SummaryItemKind SummaryItemKind_t; @@ -51,6 +52,7 @@ typedef struct SummaryItem SummaryItem; extern char G_transaction_summary_title[TITLE_SIZE]; #define TEXT_BUFFER_LENGTH BASE58_PUBKEY_LENGTH + extern char G_transaction_summary_text[TEXT_BUFFER_LENGTH]; void transaction_summary_reset(); @@ -85,3 +87,7 @@ void summary_item_set_hash(SummaryItem *item, const char *title, const Hash *val void summary_item_set_sized_string(SummaryItem *item, const char *title, const SizedString *value); void summary_item_set_string(SummaryItem *item, const char *title, const char *value); void summary_item_set_timestamp(SummaryItem *item, const char *title, int64_t value); +void summary_item_set_offchain_message_application_domain( + SummaryItem *item, + const char *title, + const OffchainMessageApplicationDomain *value); \ No newline at end of file diff --git a/libsol/message.c b/libsol/message.c index 3c0b85a3..52e30e75 100644 --- a/libsol/message.c +++ b/libsol/message.c @@ -117,7 +117,7 @@ int process_message_body(const uint8_t *message_body, // Ensure we've consumed the entire message body BAIL_IF(!parser_is_empty(&parser)); - // If we don't know about all of the instructions, bail + // If we don't know about all the instructions, bail for (size_t i = 0; i < instruction_count; i++) { BAIL_IF(instruction_info[i].kind == ProgramIdUnknown); } diff --git a/libsol/offchain_message_signing.c b/libsol/offchain_message_signing.c new file mode 100644 index 00000000..22f5df09 --- /dev/null +++ b/libsol/offchain_message_signing.c @@ -0,0 +1,5 @@ +#include "sol/offchain_message_signing.h" +#include "common_byte_strings.h" + +const OffchainMessageSigningDomain offchain_message_signing_domain = { + {OFFCHAIN_MESSAGE_SIGNING_DOMAIN}}; diff --git a/libsol/parser.c b/libsol/parser.c index 63a645b4..c7ccaec2 100644 --- a/libsol/parser.c +++ b/libsol/parser.c @@ -1,10 +1,7 @@ #include "sol/parser.h" +#include "sol/offchain_message_signing.h" #include "util.h" -#define OFFCHAIN_MESSAGE_SIGNING_DOMAIN \ - "\xff" \ - "solana offchain" - static int check_buffer_length(Parser *parser, size_t num) { return parser->buffer_length < num ? 1 : 0; } @@ -115,6 +112,14 @@ int parse_pubkeys(Parser *parser, PubkeysHeader *header, const Pubkey **pubkeys) return 0; } +int parse_pubkeys_with_len(Parser *parser, size_t num_pubkeys, const Pubkey **pubkeys) { + size_t pubkeys_size = num_pubkeys * PUBKEY_SIZE; + BAIL_IF(check_buffer_length(parser, pubkeys_size)); + *pubkeys = (const Pubkey *) parser->buffer; + advance(parser, pubkeys_size); + return 0; +} + int parse_hash(Parser *parser, const Hash **hash) { BAIL_IF(check_buffer_length(parser, HASH_SIZE)); *hash = (const Hash *) parser->buffer; @@ -136,26 +141,43 @@ int parse_version(Parser *parser, MessageHeader *header) { return 0; } +int parse_offchain_message_application_domain(Parser *parser, + const OffchainMessageApplicationDomain **app_domain) { + BAIL_IF(check_buffer_length(parser, OFFCHAIN_MESSAGE_APPLICATION_DOMAIN_LENGTH)); + *app_domain = (const OffchainMessageApplicationDomain *) parser->buffer; + advance(parser, OFFCHAIN_MESSAGE_APPLICATION_DOMAIN_LENGTH); + return 0; +} + int parse_message_header(Parser *parser, MessageHeader *header) { BAIL_IF(parse_version(parser, header)); - BAIL_IF(parse_pubkeys(parser, &header->pubkeys_header, &header->pubkeys)); + BAIL_IF(parse_pubkeys_header(parser, &header->pubkeys_header)); + BAIL_IF( + parse_pubkeys_with_len(parser, header->pubkeys_header.pubkeys_length, &header->pubkeys)); BAIL_IF(parse_blockhash(parser, &header->blockhash)); BAIL_IF(parse_length(parser, &header->instructions_length)); return 0; } int parse_offchain_message_header(Parser *parser, OffchainMessageHeader *header) { - const size_t domain_len = strlen(OFFCHAIN_MESSAGE_SIGNING_DOMAIN); + const size_t domain_len = OFFCHAIN_MESSAGE_SIGNING_DOMAIN_LENGTH; BAIL_IF(check_buffer_length(parser, domain_len)); int res; - if ((res = memcmp(OFFCHAIN_MESSAGE_SIGNING_DOMAIN, parser->buffer, domain_len)) != 0) { + if ((res = + memcmp((const void *) &offchain_message_signing_domain, parser->buffer, domain_len)) != + 0) { return res; } - advance(parser, domain_len); - - BAIL_IF(parse_u8(parser, &header->version)); - BAIL_IF(parse_u8(parser, &header->format)); - BAIL_IF(parse_u16(parser, &header->length)); + advance(parser, domain_len); // Signing domain - 16 bytes + + BAIL_IF(parse_u8(parser, &header->version)); // Header version + BAIL_IF(parse_offchain_message_application_domain(parser, &header->application_domain)); + BAIL_IF(parse_u8(parser, &header->format)); // Message format + uint8_t signers_length = 0; + BAIL_IF(parse_u8(parser, &signers_length)); // Signer count + header->signers_length = signers_length; + BAIL_IF(parse_pubkeys_with_len(parser, header->signers_length, &header->signers)); + BAIL_IF(parse_u16(parser, &header->length)); // Message length return 0; } diff --git a/libsol/string_utils.c b/libsol/string_utils.c new file mode 100644 index 00000000..81b6aea9 --- /dev/null +++ b/libsol/string_utils.c @@ -0,0 +1,66 @@ +#include "include/sol/string_utils.h" + +/** + * Checks if data is in UTF-8 format. + * Adapted from: https://www.cl.cam.ac.uk/~mgk25/ucs/utf8_check.c + */ +bool is_data_utf8(const uint8_t *data, size_t length) { + if (!data) { + return false; + } + size_t i = 0; + while (i < length) { + if (data[i] < 0x80) { + /* 0xxxxxxx */ + ++i; + } else if ((data[i] & 0xe0) == 0xc0) { + /* 110XXXXx 10xxxxxx */ + if (i + 1 >= length || (data[i + 1] & 0xc0) != 0x80 || + (data[i] & 0xfe) == 0xc0) /* overlong? */ { + return false; + } else { + i += 2; + } + } else if ((data[i] & 0xf0) == 0xe0) { + /* 1110XXXX 10Xxxxxx 10xxxxxx */ + if (i + 2 >= length || (data[i + 1] & 0xc0) != 0x80 || (data[i + 2] & 0xc0) != 0x80 || + (data[i] == 0xe0 && (data[i + 1] & 0xe0) == 0x80) || /* overlong? */ + (data[i] == 0xed && (data[i + 1] & 0xe0) == 0xa0) || /* surrogate? */ + (data[i] == 0xef && data[i + 1] == 0xbf && + (data[i + 2] & 0xfe) == 0xbe)) /* U+FFFE or U+FFFF? */ { + return false; + } else { + i += 3; + } + } else if ((data[i] & 0xf8) == 0xf0) { + /* 11110XXX 10XXxxxx 10xxxxxx 10xxxxxx */ + if (i + 3 >= length || (data[i + 1] & 0xc0) != 0x80 || (data[i + 2] & 0xc0) != 0x80 || + (data[i + 3] & 0xc0) != 0x80 || + (data[i] == 0xf0 && (data[i + 1] & 0xf0) == 0x80) || /* overlong? */ + (data[i] == 0xf4 && data[i + 1] > 0x8f) || data[i] > 0xf4) /* > U+10FFFF? */ { + return false; + } else { + i += 4; + } + } else { + return false; + } + } + return true; +} + +/* + * Checks if data is in ASCII format + */ +bool is_data_ascii(const uint8_t *data, size_t length) { + if (!data) { + return false; + } + for (size_t i = 0; i < length; ++i) { + // Line feed char is accepted + if (((data[i] < 0x20 && data[i] != 0x0A) || data[i] > 0x7e)) { + return false; + } + } + return true; +} diff --git a/libsol/string_utils_test.c b/libsol/string_utils_test.c new file mode 100644 index 00000000..444207a5 --- /dev/null +++ b/libsol/string_utils_test.c @@ -0,0 +1,97 @@ +#include "include/sol/string_utils.h" +#include +#include +#include + +void test_is_ascii() { + uint8_t message[] = "normal ascii text"; + // don't count 0x00 byte at the end + assert(is_data_ascii(message, sizeof(message) - 1) == true); +} + +void test_is_ascii_invalid_end_char() { + uint8_t message[] = "normal ascii text"; + + // Null terminated string should not be recognized as ascii + assert(is_data_ascii(message, sizeof(message)) == false); +} + +void test_is_ascii_invalid_emoji() { + uint8_t message[] = "👍"; + + assert(is_data_ascii(message, sizeof(message)) == false); +} + +void test_is_ascii_invalid_null() { + uint8_t *message = NULL; + assert(is_data_ascii(message, sizeof(message)) == false); +} + +// test if emoji is going to be recognized as utf8 string +void test_is_utf8() { + uint8_t message[] = "👍"; + + assert(is_data_utf8(message, sizeof(message)) == true); +} + +void test_is_utf8_2() { + uint8_t message[] = "żółć 안녕하세요 привет"; + + assert(is_data_ascii(message, sizeof(message) - 1) == false); // And we ignore null terminator + assert(is_data_utf8(message, sizeof(message)) == true); +} + +void test_is_utf8_invalid_1() { + // Invalid Sequence Identifier + uint8_t message[] = {0xa0, 0xa1}; + + assert(is_data_utf8(message, sizeof(message)) == false); +} + +void test_is_utf8_invalid_overlong() { + // Invalid UTF-8 (overlong) + uint8_t message[] = {0xC0, 0xAF}; + uint8_t message2[] = {0xC0, 0x80}; + + assert(is_data_utf8(message, sizeof(message)) == false); + assert(is_data_utf8(message2, sizeof(message2)) == false); +} + +void test_is_utf8_invalid_surrogate() { + // Invalid UTF-8 (surrogate) + uint8_t message[] = {0xED, 0xA0, 0x80}; + + assert(is_data_utf8(message, sizeof(message)) == false); +} + +void test_is_utf8_invalid_3() { + uint8_t message1[] = {0x80}; // Invalid UTF-8 (starts with 10xxxxxx) + uint8_t message2[] = {0xF4, 0x90, 0x80, 0x80}; // Invalid UTF-8 (> U+10FFFF) + + assert(is_data_utf8(message1, sizeof(message1)) == false); + assert(is_data_utf8(message2, sizeof(message2)) == false); +} + +void test_is_utf8_invalid_null() { + uint8_t *message = NULL; + + assert(is_data_utf8(message, sizeof(message)) == false); +} + +int main() { + test_is_ascii(); + test_is_ascii_invalid_end_char(); + test_is_ascii_invalid_emoji(); + test_is_ascii_invalid_null(); + + test_is_utf8(); + test_is_utf8_2(); + test_is_utf8_invalid_1(); + test_is_utf8_invalid_overlong(); + test_is_utf8_invalid_surrogate(); + test_is_utf8_invalid_3(); + test_is_utf8_invalid_null(); + + printf("passed\n"); + return 0; +} \ No newline at end of file diff --git a/libsol/transaction_summary.c b/libsol/transaction_summary.c index 4edef52b..ad2ae90b 100644 --- a/libsol/transaction_summary.c +++ b/libsol/transaction_summary.c @@ -15,6 +15,7 @@ struct SummaryItem { const char *string; SizedString sized_string; TokenAmount token_amount; + const OffchainMessageApplicationDomain *application_domain; }; }; @@ -79,6 +80,15 @@ void summary_item_set_timestamp(SummaryItem *item, const char *title, int64_t va item->i64 = value; } +void summary_item_set_offchain_message_application_domain( + SummaryItem *item, + const char *title, + const OffchainMessageApplicationDomain *value) { + item->kind = SummaryItemOffchainMessageApplicationDomain; + item->title = title; + item->application_domain = value; +} + typedef struct TransactionSummary { SummaryItem primary; SummaryItem fee_payer; @@ -197,6 +207,12 @@ static int transaction_summary_update_display_for_item(const SummaryItem *item, case SummaryItemTimestamp: BAIL_IF(print_timestamp(item->i64, G_transaction_summary_text, TEXT_BUFFER_LENGTH)); break; + case SummaryItemOffchainMessageApplicationDomain: + BAIL_IF(encode_base58(item->application_domain, + OFFCHAIN_MESSAGE_APPLICATION_DOMAIN_LENGTH, + G_transaction_summary_text, + TEXT_BUFFER_LENGTH)); + break; } print_string(item->title, G_transaction_summary_title, TITLE_SIZE); return 0; diff --git a/src/globals.h b/src/globals.h index eebf87ff..c39c2829 100644 --- a/src/globals.h +++ b/src/globals.h @@ -25,16 +25,31 @@ #define ROUND_TO_NEXT(x, next) (((x) == 0) ? 0 : ((((x - 1) / (next)) + 1) * (next))) /* See constant by same name in sdk/src/packet.rs */ -#define PACKET_DATA_SIZE (1280 - 40 - 8) +// Packet data size increased to allow handling bigger messages (OCMS) +#define PACKET_DATA_SIZE ((15 * 1024) - 40 - 8) #define MAX_BIP32_PATH_LENGTH 5 #define MAX_DERIVATION_PATH_BUFFER_LENGTH (1 + MAX_BIP32_PATH_LENGTH * 4) #define TOTAL_SIGN_MESSAGE_BUFFER_LENGTH (PACKET_DATA_SIZE + MAX_DERIVATION_PATH_BUFFER_LENGTH) +#define MAX_OFFCHAIN_MESSAGE_LENGTH PACKET_DATA_SIZE + +// Assuming that only one signer +#define OFFCHAIN_MESSAGE_HEADER_LENGTH 85 + +// Application buffer - no content reference value +#define OFFCHAIN_EMPTY_APPLICATION_DOMAIN \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00 + #define MAX_MESSAGE_LENGTH ROUND_TO_NEXT(TOTAL_SIGN_MESSAGE_BUFFER_LENGTH, USB_SEGMENT_SIZE) -#define MAX_OFFCHAIN_MESSAGE_LENGTH (MAX_MESSAGE_LENGTH - 1 > 1212 ? 1212 : MAX_MESSAGE_LENGTH - 1) -#define OFFCHAIN_MESSAGE_HEADER_LENGTH 20 +// credit: https://stackoverflow.com/questions/807244/c-compiler-asserts-how-to-implement +#define CASSERT(predicate, file) _impl_CASSERT_LINE(predicate, __LINE__, file) +#define _impl_PASTE(a, b) a##b +#define _impl_CASSERT_LINE(predicate, line, file) \ + typedef char _impl_PASTE(assertion_failed_##file##_, line)[2 * !!(predicate) -1]; typedef enum InstructionCode { // DEPRECATED - Use non "16" suffixed variants below diff --git a/src/handle_sign_message.c b/src/handle_sign_message.c index d8d9cd2c..ff199a1f 100644 --- a/src/handle_sign_message.c +++ b/src/handle_sign_message.c @@ -17,16 +17,12 @@ static int scan_header_for_signer(const uint32_t *derivation_path, uint32_t derivation_path_length, size_t *signer_index, const MessageHeader *header) { - uint8_t signer_pubkey[PUBKEY_SIZE]; - get_public_key(signer_pubkey, derivation_path, derivation_path_length); - for (size_t i = 0; i < header->pubkeys_header.num_required_signatures; ++i) { - const Pubkey *current_pubkey = &(header->pubkeys[i]); - if (memcmp(current_pubkey, signer_pubkey, PUBKEY_SIZE) == 0) { - *signer_index = i; - return 0; - } - } - return -1; + Pubkey signer_pubkey; + get_public_key(signer_pubkey.data, derivation_path, derivation_path_length); + return get_pubkey_index(&signer_pubkey, + header->pubkeys, + header->pubkeys_header.num_required_signatures, + signer_index); } void handle_sign_message_parse_message(volatile unsigned int *tx) { diff --git a/src/handle_sign_offchain_message.c b/src/handle_sign_offchain_message.c index dc0a743b..8f18517b 100644 --- a/src/handle_sign_offchain_message.c +++ b/src/handle_sign_offchain_message.c @@ -3,85 +3,73 @@ #include "ux.h" #include "cx.h" #include "utils.h" +#include "sol/string_utils.h" #include "sol/parser.h" -#include "sol/printer.h" -#include "sol/print_config.h" -#include "sol/message.h" #include "sol/transaction_summary.h" #include "globals.h" #include "apdu.h" #include "handle_sign_offchain_message.h" #include "ui_api.h" -// Store locally the derived public key content -static Pubkey G_publicKey; +// ensure the command buffer has space to append a NUL terminal +CASSERT(MAX_OFFCHAIN_MESSAGE_LENGTH < MAX_MESSAGE_LENGTH, global_h); -/** - * Checks if data is in UTF-8 format. - * Adapted from: https://www.cl.cam.ac.uk/~mgk25/ucs/utf8_check.c - */ -static bool is_data_utf8(const uint8_t *data, size_t length) { - if (!data) { - return false; +// To reduce unnecessary +// preprocessor directives and keep the function cleaner, i explicitly suppress +// warnings about unused `parser`. +void ui_general(OffchainMessageHeader *header, + bool is_ascii, + Parser *parser __attribute__((unused))) { + const uint8_t empty_application_domain[OFFCHAIN_MESSAGE_APPLICATION_DOMAIN_LENGTH] = { + OFFCHAIN_EMPTY_APPLICATION_DOMAIN}; + // Check if application domain buffer contains only zeroes + SummaryItem *item = transaction_summary_general_item(); + if (memcmp(header->application_domain, + empty_application_domain, + OFFCHAIN_MESSAGE_APPLICATION_DOMAIN_LENGTH) == 0) { + // Application buffer contains only zeroes - displaying base58 encoded string not needed + summary_item_set_string(item, "Application", "Domain not provided"); + } else { + summary_item_set_offchain_message_application_domain(item, + "Application", + header->application_domain); } - size_t i = 0; - while (i < length) { - if (data[i] < 0x80) { - /* 0xxxxxxx */ - ++i; - } else if ((data[i] & 0xe0) == 0xc0) { - /* 110XXXXx 10xxxxxx */ - if (i + 1 >= length || (data[i + 1] & 0xc0) != 0x80 || - (data[i] & 0xfe) == 0xc0) /* overlong? */ { - return false; - } else { - i += 2; - } - } else if ((data[i] & 0xf0) == 0xe0) { - /* 1110XXXX 10Xxxxxx 10xxxxxx */ - if (i + 2 >= length || (data[i + 1] & 0xc0) != 0x80 || (data[i + 2] & 0xc0) != 0x80 || - (data[i] == 0xe0 && (data[i + 1] & 0xe0) == 0x80) || /* overlong? */ - (data[i] == 0xed && (data[i + 1] & 0xe0) == 0xa0) || /* surrogate? */ - (data[i] == 0xef && data[i + 1] == 0xbf && - (data[i + 2] & 0xfe) == 0xbe)) /* U+FFFE or U+FFFF? */ { - return false; - } else { - i += 3; - } - } else if ((data[i] & 0xf8) == 0xf0) { - /* 11110XXX 10XXxxxx 10xxxxxx 10xxxxxx */ - if (i + 3 >= length || (data[i + 1] & 0xc0) != 0x80 || (data[i + 2] & 0xc0) != 0x80 || - (data[i + 3] & 0xc0) != 0x80 || - (data[i] == 0xf0 && (data[i + 1] & 0xf0) == 0x80) || /* overlong? */ - (data[i] == 0xf4 && data[i + 1] > 0x8f) || data[i] > 0xf4) /* > U+10FFFF? */ { - return false; - } else { - i += 4; - } - } else { - return false; - } + + if (N_storage.settings.display_mode == DisplayModeExpert) { + summary_item_set_u64(transaction_summary_general_item(), "Version", header->version); + summary_item_set_u64(transaction_summary_general_item(), "Format", header->format); + summary_item_set_u64(transaction_summary_general_item(), "Size", header->length); + summary_item_set_hash(transaction_summary_general_item(), "Hash", &G_command.message_hash); + } else if (!is_ascii) { + summary_item_set_hash(transaction_summary_general_item(), "Hash", &G_command.message_hash); } - return true; } -/* - * Checks if data is in ASCII format - */ -static bool is_data_ascii(const uint8_t *data, size_t length) { - if (!data) { - return false; +void setup_ui(OffchainMessageHeader *header, bool is_ascii, Parser *parser, size_t signer_index) { + // fill out UI steps + transaction_summary_reset(); + SummaryItem *item = transaction_summary_primary_item(); + summary_item_set_string(item, "Sign", "Off-Chain Message"); + + item = transaction_summary_fee_payer_item(); + // First signer + summary_item_set_pubkey(item, "Signer", &header->signers[signer_index]); + + if (header->signers_length > 1) { + item = transaction_summary_general_item(); + summary_item_set_u64(item, "Other signers", header->signers_length); } - for (size_t i = 0; i < length; ++i) { - if (data[i] < 0x20 || data[i] > 0x7e) { - return false; - } + + ui_general(header, is_ascii, parser); + + enum SummaryItemKind summary_step_kinds[MAX_TRANSACTION_SUMMARY_ITEMS]; + size_t num_summary_steps = 0; + if (transaction_summary_finalize(summary_step_kinds, &num_summary_steps)) { + THROW(ApduReplySolanaSummaryFinalizeFailed); } - return true; + start_sign_offchain_message_ui(is_ascii, num_summary_steps); } -////////////////////////////////////////////////////////////////////// - void handle_sign_offchain_message(volatile unsigned int *flags, volatile unsigned int *tx) { if (!tx || G_command.instruction != InsSignOffchainMessage || G_command.state != ApduStatePayloadComplete) { @@ -96,63 +84,53 @@ void handle_sign_offchain_message(volatile unsigned int *flags, volatile unsigne THROW(ApduReplySdkNotSupported); } + if (G_command.message_length > MAX_OFFCHAIN_MESSAGE_LENGTH) { + THROW(ApduReplySolanaInvalidMessageSize); + } + // parse header Parser parser = {G_command.message, G_command.message_length}; OffchainMessageHeader header; + Pubkey public_key; + if (parse_offchain_message_header(&parser, &header)) { THROW(ApduReplySolanaInvalidMessageHeader); } // validate message - if (header.version != 0 || header.format > 1 || header.length > MAX_OFFCHAIN_MESSAGE_LENGTH || - header.length + OFFCHAIN_MESSAGE_HEADER_LENGTH != G_command.message_length) { + if (header.version != 0 || header.format > 1 || header.length == 0 || + header.length != parser.buffer_length || header.signers_length == 0) { + THROW(ApduReplySolanaInvalidMessageHeader); + } + + get_public_key(public_key.data, G_command.derivation_path, G_command.derivation_path_length); + + // assert that the requested signer exists in the signers list + size_t signer_index; + if (get_pubkey_index(&public_key, header.signers, header.signers_length, &signer_index) != 0) { THROW(ApduReplySolanaInvalidMessageHeader); } - const bool is_ascii = - is_data_ascii(G_command.message + OFFCHAIN_MESSAGE_HEADER_LENGTH, header.length); - const bool is_utf8 = - is_ascii ? true - : is_data_utf8(G_command.message + OFFCHAIN_MESSAGE_HEADER_LENGTH, header.length); - if (!is_ascii && (!is_utf8 || header.format == 0)) { + + const bool is_ascii = is_data_ascii(parser.buffer, parser.buffer_length); + const bool is_utf8 = is_ascii ? true : is_data_utf8(parser.buffer, parser.buffer_length); + + if ((!is_ascii && header.format != 1) || !is_utf8) { + // Message has invalid header version or is not valid utf8 string THROW(ApduReplySolanaInvalidMessageFormat); } else if (!is_ascii && N_storage.settings.allow_blind_sign != BlindSignEnabled) { + // UTF-8 messages are allowed only with blind sign enabled THROW(ApduReplySdkNotSupported); } // compute message hash if needed if (!is_ascii || N_storage.settings.display_mode == DisplayModeExpert) { - cx_hash_sha256(G_command.message, - G_command.message_length, + cx_hash_sha256(parser.buffer, // Only message content is hashed + header.length, (uint8_t *) &G_command.message_hash, HASH_LENGTH); } - // fill out UX steps - transaction_summary_reset(); - SummaryItem *item = transaction_summary_primary_item(); - summary_item_set_string(item, "Sign", "Off-Chain Message"); - - if (N_storage.settings.display_mode == DisplayModeExpert) { - summary_item_set_u64(transaction_summary_general_item(), "Version", header.version); - summary_item_set_u64(transaction_summary_general_item(), "Format", header.format); - summary_item_set_u64(transaction_summary_general_item(), "Size", header.length); - summary_item_set_hash(transaction_summary_general_item(), "Hash", &G_command.message_hash); - - get_public_key(G_publicKey.data, - G_command.derivation_path, - G_command.derivation_path_length); - summary_item_set_pubkey(transaction_summary_general_item(), "Signer", &G_publicKey); - } else if (!is_ascii) { - summary_item_set_hash(transaction_summary_general_item(), "Hash", &G_command.message_hash); - } - - enum SummaryItemKind summary_step_kinds[MAX_TRANSACTION_SUMMARY_ITEMS]; - size_t num_summary_steps = 0; - if (transaction_summary_finalize(summary_step_kinds, &num_summary_steps)) { - THROW(ApduReplySolanaSummaryFinalizeFailed); - } - - start_sign_offchain_message_ui(is_ascii, num_summary_steps); + setup_ui(&header, is_ascii, &parser, signer_index); *flags |= IO_ASYNCH_REPLY; -} +} \ No newline at end of file diff --git a/src/ui/sign_message_bagl.c b/src/ui/sign_message_bagl.c index 0fb4e126..f6335c7b 100644 --- a/src/ui/sign_message_bagl.c +++ b/src/ui/sign_message_bagl.c @@ -112,5 +112,4 @@ void start_sign_offchain_message_ui(bool is_ascii, size_t num_summary_steps) { ux_flow_init(0, flow_steps, NULL); } - #endif diff --git a/src/utils.c b/src/utils.c index 234bcd04..57c74555 100644 --- a/src/utils.c +++ b/src/utils.c @@ -35,6 +35,20 @@ void get_public_key(uint8_t publicKeyArray[static PUBKEY_LENGTH], } } +int get_pubkey_index(const Pubkey *needle, + const Pubkey *haystack, + size_t haystack_len, + size_t *index) { + for (size_t i = 0; i < haystack_len; ++i) { + const Pubkey *current_pubkey = &(haystack[i]); + if (memcmp(current_pubkey, needle, PUBKEY_SIZE) == 0) { + *index = i; + return 0; + } + } + return -1; +} + int read_derivation_path(const uint8_t *data_buffer, size_t data_size, uint32_t *derivation_path, diff --git a/src/utils.h b/src/utils.h index 4ed3bdb8..0763a619 100644 --- a/src/utils.h +++ b/src/utils.h @@ -26,6 +26,11 @@ void get_public_key(uint8_t publicKeyArray[static PUBKEY_LENGTH], const uint32_t *derivationPath, size_t pathLength); +int get_pubkey_index(const Pubkey *needle, + const Pubkey *haystack, + size_t haystack_len, + size_t *index); + /** * Deserialize derivation path from raw bytes. * @@ -59,9 +64,8 @@ uint8_t set_result_sign_message(void); } while (0) #define PRINTF(msg, arg) printf(msg, arg) #define PIC(code) code -//#define TARGET_NANOS 1 -#define TARGET_BLUE 1 -#define MEMCLEAR(dest) explicit_bzero(&dest, sizeof(dest)); +#define TARGET_BLUE 1 +#define MEMCLEAR(dest) explicit_bzero(&dest, sizeof(dest)); #else #define MEMCLEAR(dest) \ do { \ diff --git a/tests/python/apps/solana.py b/tests/python/apps/solana.py index 600204b5..e79af8f6 100644 --- a/tests/python/apps/solana.py +++ b/tests/python/apps/solana.py @@ -67,6 +67,7 @@ class ErrorType: SOLANA_SUMMARY_UPDATE_FAILED = 0x6f01 UNIMPLEMENTED_INSTRUCTION = 0x6d00 INVALID_CLA = 0x6e00 + SOLANA_INVALID_MESSAGE_SIZE = 0x6a83 def _extend_and_serialize_multiple_derivations_paths(derivations_paths: List[bytes]): diff --git a/tests/python/apps/solana_cmd_builder.py b/tests/python/apps/solana_cmd_builder.py index 8c0e1a39..44aa09bb 100644 --- a/tests/python/apps/solana_cmd_builder.py +++ b/tests/python/apps/solana_cmd_builder.py @@ -150,23 +150,24 @@ class MessageFormat(IntEnum): class v0_OffchainMessage: format: MessageFormat message: bytes + signer_pubkey: bytes - def __init__(self, message: bytes): + def __init__(self, message: bytes, signer_pubkey: bytes): # /// Construct a new OffchainMessage object from the given message - if len(message) <= MAX_LEN_LEDGER: - if is_printable_ascii(message): - self.format = MessageFormat.RestrictedAscii - elif is_utf8(message): - self.format = MessageFormat.LimitedUtf8 - else: - raise ValueError() - elif len(message) <= MAX_LEN: + if is_printable_ascii(message): + self.format = MessageFormat.RestrictedAscii + elif is_utf8(message): + self.format = MessageFormat.LimitedUtf8 + else: + raise ValueError() + + if len(message) <= MAX_LEN: if is_utf8(message): self.format = MessageFormat.ExtendedUtf8 else: raise ValueError() - else: - raise ValueError() + + self.signer_pubkey = signer_pubkey self.message = message # Serialize the message to bytes, including the full header @@ -175,6 +176,10 @@ def serialize(self) -> bytes: data: bytes = b"" # format data += self.format.to_bytes(1, byteorder='little') + # signers count + data += (1).to_bytes(1, byteorder='little') + # signers + data += self.signer_pubkey # message length data += len(self.message).to_bytes(2, byteorder='little') # message @@ -185,22 +190,29 @@ def serialize(self) -> bytes: class OffchainMessage: version: int message: v0_OffchainMessage + app_domain: bytes # Construct a new OffchainMessage object from the given version and message - def __init__(self, version: int, message: bytes): + def __init__(self, version: int, message: bytes, signer_pubkey: bytes, app_domain: bytes=b""): self.version = version + # Ensure app_domain is exactly 32 bytes, pad with zeros if necessary + self.app_domain = app_domain.ljust(32, b'\x00')[:32] + if version == 0: - self.message = v0_OffchainMessage(message) + self.message = v0_OffchainMessage(message, signer_pubkey) else: - raise ValueError() + raise ValueError("Unsupported version") # Serialize the off-chain message to bytes including full header def serialize(self) -> bytes: data: bytes = b"" - # serialize signing domain + # Serialize signing domain data += SIGNING_DOMAIN - - # serialize version and call version specific serializer + # Serialize version data += self.version.to_bytes(1, byteorder='little') + # Include padded app_domain + data += self.app_domain + # Serialize message data += self.message.serialize() return data + diff --git a/tests/python/apps/solana_utils.py b/tests/python/apps/solana_utils.py index 7f462283..a0fafdd9 100644 --- a/tests/python/apps/solana_utils.py +++ b/tests/python/apps/solana_utils.py @@ -117,3 +117,8 @@ def enable_expert_mode(navigator, firmware, snapshots_name: str): snapshots_name, nav, screen_change_before_first_instruction=False) + + +LONG_VALID_UTF8 = 'PkOPx7dIJoS$fdJՄIܠbAѭ|/.cRm\u05fcI``ŝ*!Nѭmƚ]8Ļ]3rgтRwFRHË[UvKb[܊&Rs%1N˟N֊6l_MX%*ֿst*ic]{Rc`ݑdT!.ƅ)4_ڦZ;%ܐ|>ӟV1ʵҴi>FU"\\װ@KPԖ<=-~ΦZEζ1ϥd-!8Sj4P,FA7Se"BK4y?܀w=V%AٰɩBʩ5OWΊLiz"5HɚױؙVy^սhJU|&;:e\'`e[26Zdh6Wاj]kCZ|ѿIĚDE"3iQKu.n[Ĺl0_&ԏf:i~\\^5Աb@z#A7>Ztf8Ԯޅs[&zѢ/y\'uS(VS߉!J$<#}+(Бs6kMwY;ܜgvJс!ʌ$q\u05caPjJuŗafx&mxy12=0~(#IKkF:4$jKϤTQ͙\\ՖSRJdfDs1qa3`3P?p+8 R40ӀF,η%͝{0V˜֜W&e`GN[.f1wBK\u074bYOJG^ˇ0ԓ\\&0=,ܴ Ѡmՙ9\u058cڮm+yuqɅI7\\aoK֢H*sٺ("Tred̮ax-Q=P>`N]qLg?O֪ĞDKZJֶgwҦɹT>qX fݏj`gȗc,8>D5VjГÌլ%zL\\{k̶pLsn$I%ʃXY{[)B2Y"]ȃ2Ȱ:~|K_m]ãԵa5Hħz!yN;*ܫك`ЯmRҰBwhFDڀV?SÄri\\z(]ì=ۮpIc{t͍1Ia,أIpRqLi]d֧Yp9?PRbq>\xad2rM)ȠUʹ(fN%םrؓ@wqQπ-!~1нv گ:xnj$}>ԛulwŲaZeSϰO\u07bcsÆF˩N4;OC>yvi§(]ffJJXd0݉ȵ6Cv-tϧN o[gP#Xh-bݠgh\u05ebo.:&Yjd-oڛ{KYץ2X{ݎko&SÅbμc5q;dogߙUUMfg$ՙƵ8zr3uݦG̱ԱKڃ9]\\пhhGTUx<|1~βLmy(K؟(ÁqT:ɓʸzcmzDi:ךp2Q+ōLfqvӬ3ڔȗ[Io\\ln##-FgבFFa6.*"7ezQXJSvۈ)Ԡp֤Oq}QlBv|s<7;qD>&tƬ݊-Gй߰w/5юt)\u06ddq-9faϱ#v7T>5ej΄#f&554HZe?TeͤOŁСu&BT/VNɝ͐9=)Sʆer0b3zuȱQ7m5yEŅЭlj&xwWFӓ,dGYd),ܗ=KS*ڞKQԳΑ%>آ\'jOqȎfe@ZN?0ˋOMaآTϝZظIܿ5ZѿGΦ\\_%>]1XAM}͌TơӬТנX׆X<\\T~Թ\u05c9itsy?I%WnVYqQO]Xźܙڟ!çԗH<9] ̋fp͘\\-aj.9c&.nQ%C5bE:1ƌÀƉC$HH1bHK&m6 Ë"HB!:?4L_CwAWALˍ.E˯osۣY79_5Wd1$Awع%ӃhȓaLs0Qfrvf;-ŊͲ0BEQ%0(qh]"#"Z]pAҪZF9ȃ؊LVlɽ.jc ?\'xWɅ\\" w^Bώ͔RSʧǬ[|S٫̕ݖ-,}ֲ}֕m74R?m>>kGֱW:КnQF24ƦvUm,8˔_ا)hؿ*tahkו66͵ܢ٘ܲŢ)U(*A̶(ѬofVhЪ:eJ+pdO3ƅaOp[(Ug9>2VxE(7TEعj?k1̻o$o@d8_e\\:s")={~=P؟j@jǔ$#%TѥR1ԔƑ;&OsS(pڞ@{Fy%fod\u07fcɆg9A8ME1۾ųũ3X2ky+V?tW/7*yrι6Uм͑S8yblΉ֞ݔYo)@[F5YT>nB/PqoZς¿tۤ۹r}>f*218K-vDžZ==Pzи\\دDʑ˫юG>ܬooX<`,.0ے{SZfĐҡBWeh#~Ǘ;ltks0mR_-a"/C%s#-sĄd,=t=!7PCؠmǫ\'-k<הļ!O244s2ٽ/kN".3)܃ G#VDg!ʼnđ,Y~JbևՠHŎǭYJ%l\\li۬qgjw\u05c9|>˩]ȅ|אGMD`ponIG^95%eb-Ek:{9a@߾ڰ<7ׁ [\\ȝLҽFܸ4hFڤ*S\\>dy[ìJ4#$Nv}+XLѶł=ݕл^ 6N͟9gZ~LZ#"@)Ļ8נe7CsF!\'>!]Y0qyu~gٛÁVdl5ܻlٮLNeΈ͘7rϮ&g4Rl0|[/m5 2oω;LLI#db\'>R֦#:{ʨ-ލ/PI?(ԮJ:Ӯt{~q@>&Whѩ-#V;M~x՞IP(%3Y?p{4(}b_ցɋ|ؒ-GV̮̿jx{۱0R8r"RjxmZ̶Lx.Jg\'tĪ#aS}6Bؽq eQ`O_r+M)n>dԀĽj~͝gw7=CqolÉ&G֚X`he5Ų(6\u070ehL~k̃J5)Wj\u05ec8siNj:SǕӗ`՚(ҫdO&]ϠuԳ|o\u07be\'ǪǂU%͈kx,V(ZmβʣUcU:,XIBMGfMќ{^iŤv}<{6X\'NJˬ<,%\\aLǀIfXKӄoXc]ۡJ{\u074b$ȑ&ɜ=SuÅ\'[ɉҞp\u07b6a5O^g4zJҢ=rZߊpNp,ޔŴ;ģO&4CmurNs?8qZ"[!Tx4#\u07fczёPld :v܁zn[B&_2Ͻ@!k*;ä/2ɦ\'DQSӓt)æ2V^uܡ(ݢ\\z{:\\ȴ"Yɓsj[ޛ1!,=XХoŚkҊs3ŠĔLV;ΐWGqdwo?ׂ3Bq.,p*ڸrGE~ƹ>OU"PKk58MI)V8fkSh{PvouŸ+ixHx¥^,oEɭZOۏp6"Hy(t0Q\'ܸ:xҏn]qp*ڔjnjUI]FTb6)6}$+e8JIr7B,"ю_6ף(2FP=RF@Jн5"lHťRVȁɈ5.ǭǢߊJAX:Ҍǒ)¥߫3ȷ@N_$»ns"FsQ4]ȐǖcF\'*$zVSHKʶ~iȐN!;uhhmVʐ[I\u05f86ĠҨ8#=Ӟ 8ߑ.̖$F\u03a2xAcޡ\u05canZϿWPG$vY}tO=t5}P֜Ҍ6mݑϑٻ[JVI*jxʔM[Dt=:Bo6xt.ިĩޣʰ.8`0EkW|jڒ\u05c9,T|bCawޞ9/D2|^thӒG3dq${ZCf?ߣXc2ޭυPvܖTȾ2е٢gHQ՝U۹Ͽ\'u(O٧ۭƲ[CY7_9\\U8¿ԋtւ1ڲ`GėȄX[AϪ/_d&0%3ФvK!I:A.g/[SDg´z-5ntBtѺN0̺MkI9g",=Bۏ+нηQkcjDȝ/ԲwslIO)5~-%ͅjQˋ8$PyӐ֙G͠z>åYԗ{øbх*ͮZX 3+U֡+Ԃ\\\u07bcY[+!aٱ,J;EC6(-QTAۓsJ$,jݟzw:+3*߀Ү!¥*\u074cёeNNq@C3AeqvΕ)ʶnЮ!^>2)^ (Rj?!Q?%"WӉʼ1,ɊIC4ڜ{!$6 zx~H-pkp-QM:z,˂ג]MB\'1mH4[HNȵw ̐/j-N2ի.(}h_Ξ%ڕgsd*Vx lƯ5ĨA߅9ppӿv(GR|WQ]-[fjD֘*Ɓ!((1šgGLӟ\\=OuSRDZ]۵n![.ś(˖Yĕr(G\'űAK+ůV8ڳ֑Uj)˽FNw|g*¹ShxȲkߌ; :A|lI=qѯP,O.Ջܸ݁"&b7teץkB4݀ۀLɃĦwWϮ0E4^T+v4Fɦ5\u038d|~:߉mÒ8TaDZH0 Br/:6a?ˣaʠNA \\*~2%w^9o!ݢǞٍ7(Z\u0603)i3UZԗXqlԵ:@/ÇTZMLHpaݾwa1?`t^RD(̧}щK%o/p}X 0#.b)GUi0Zwt`6uF2Deȣ%̀qWfRa՟.E؏xƋ@ڏ%#cR˯`@SGS)GPpsU4\\Lq2L?_Ġƶ[;`]eͷO[(m.qC>`ߒɢj)Ń{ީhk՝V\\m؋,đK&3f3*ܐQ4c>*ikfaciϞkvхEcÂ+r6P!Nلe](D?[(NjٱٳVݹxJ̕(P(}[q2ԛ#Fŵ7ѶGi,b(ӉKRy :!ſx\'n#VcCè*2Yԫz?z=ْHɤia۳\u0590ϩѿASߗ|GFZ~ϵag2*S/?1fkX3xETaٗ&PΓϷŊZMMĊ˅˻ؿMx<ȭQ5YXhܛerʊĺ,,xV5ޡ(([hݏů:@f|JM6s;ƞC5!0;x9&5f2U4UR=9р@?²lTmuYXĢ%m>N&ًҏO۷coXUJgiYLnHa:KVrn`YSɃ.aDqij\'33`20zӥ?{Q4eք:w_dW-\\ӷiz4L4ѡԵR5ɿ°Pno2!2LDs π(Q҉NjeUIs(T s$K{}Ví7NWtRعCʦ,=Ց4uhnrDz\'W+>9ŽKȣȎI=/4Dž2߁y8\'VBoC8;{c̻u0\u0605)ٱ?HB6s6_S,`7G2Ԡ!#R8i0+6\\*C]F\'!9xx0\\jɂS|G~:#nHĶ,%Ҷآ!ߤ6rTRî%ЫP(#ϲ]Q{WBgFȪd)CM;ûfF1-ԎӖѵ{7Ɋ8tWҧցժ$Q>̯œEy.6WI ذSMu`ǣ6qOr5;&j`z,"!Kn"ăI&)N/)˖q0vGICՉȌhOZu6.̄}Ii̳<@Տ~XBcĤ\'ןǑ@(idѰ+vH{:+}_$vjil&D۠za OӸ`}gWF{Rܑp_<_AԼ]ظ؏Ainš$pS`>ْ\u05c8L~MΎƘвk3ϏG[Nś10pXIw0];ܛaіm"hS3ts5(ӽ ڰ\'--;%jcϞtO]۞Tdɨ#*ݰ/jj]D֯{CzrkݹIT< MAHaƯVSbp,,6$iׯE>9%_g(ݲ1G((^-#ҪNf\'<ѕ*@ښŮFЦ178s-OVڊ9qDG-Ǒ@֮n\\pŞ[ȻX%ԹCŗſ¦t3zٝg-8md&L^Zp,b}(]8ֿ\u07bb9°@dvGރȰ܄ҪMӴz88ܸN(SPMyPLUAkh)"WC5eyۯNRsdkx̢9B*AkďAëf?1NjsQ(x\\b?pIP2Dդϲ̈XȜ2ދJzXʡՅJ͑r7vX%ʳڎTB!=;.<.EP(L9;ӣɨjیΩw!(a1|(1./\\ßgFOޑ [K%ͷ]ڻDDm+iIu̸6WO?J\\nŌ~܌K *pΒB9X.ɘKq?dbׯ>=VX6kN5t3lnGي!ޓˡ`ۆ0yr]͌\u05cdԜ=IX/V-:"Hw+ָ9\\ٚeIs{pu8Z/ʶVӫw>(<$cKVc?wҢVJ*DѨϴrzVҔϦ\'pNn(]ߔُF7^Ot©ػMψsM9ܴEGv܉5>YwcچxlP=W2`ߌŸh*ͬҊYxZd۬i5/qSFRO*_&Տ/2wnDޏ\u0380pc!°JU&:;yLO /HqKȜ7(wߢg/tqGeGĠ4G$dGFk3>J$VD)>s_ϣS*@.:u`9ʼ-ЭŰdƚߔΫ)|̗gqw1\'0҂@Ę,}e\\^)^?3Bޤ¼ت#k7vEF8xMNr"kCOzӸ>~eVrzɏ/Y{݉וGy/Y}0u*\'SޘaR8ؘKO!{mɃSTLP,7kiښyáiw+ jtK\u07bcazmҘû^4Rh4,\\(Cź ɓ͐[~ҊԾ`OM( dяJwiO2ۣxЭ/d8l.E`~cј?ĀU\'Us[_Lsϒ\u05cftZ-fq{ſoX-ոωXcK0BGΰWX[ܨCO#1jQΖ\'?ƑGԞ֣Qpq5m^&$kkΦ>=ҵ2N#Бn4j[D[4gP-ʝJӏ!Jڞ{/gh~B_vD]tY͚[E1Շv؇/TozP2JFҵ7;\u07b5-\'&aŸ0\u0382+s˷ƥh+0e֜{7YoU?Gp?<,Yl(ςI.El\\[Nj4~;te7Jsr/nתGde f43ŠE.y4O[ŢЬzZļHɵ#с3ε]\'Qwp!t]]*˓٠6hԛ?.tUxJȪl&MĪTd&w*ȔmP>2ٚēʚz5/ی|a4̈:}ݸ&rTdu ,eܦ)iޞKӉO%mRfȿڸZ7Il5`ŬTm 4N^^!ՠо%۱ݙkϮc[7?_Nsσ]pLw_4c"gʻCŪӫqɻGŝQNÃr<3REn\u061c>~RDXY̟E+F?ogUOWFk2K|rZ&*T@þ99G)v^ؤzr2-,0{w7l>ߕŕc9̃շօ%Ȍ٤\'xWluʉބx*5-nȎڟ4rN{߈a,^]1Lѩ3~`i4_؏q\\#4@L9x8Y&kn^8P1HlјPM؋QS/MDmrGֻv.%*t>TsȂV!>ڿ\'b5X`=;fѹۑϒ]͂i(G/fy`vը2Ulunlg>ҳgaH7N4HbޕH^lu1\u0600fĪH["8Nүhhd9*#Š%:nZʦk_\\˘&̤_F\'f\\2&`)ԛLАp]ۀ*W0ޗe#N\\*ǩf8<,R),mDs\u058c02fүԻ()P|\u0558N5Xʤ/҃\u07b9GPwiȦWL>HݡPJ~%@5KJVwP̸43}1Nuޮ˵=;Bg͢s7JٙrXXza-EpלcpD̮֊Wd8Ƕ|h\'[]tkm~Vn-eHau,ޕI2goE++Z?ި)2`׆RT2_GK0o~NqaZ1Pī\u05eeȍijOԗEF~3ܝvnx-#eJCYҀOv@[E͟w$àXn-#κ0~NE)i0ơݜRa/æϠ!/Gӊ(JK̥#ǘjAЊD߳3a\\|\'ܡC8IӒ8wR6v0~Ң]bʑ<\\Jz-U>qnm=I4PGlrjUCjE%(iBsdҷu?@/sPjɤ}hTƧw҄.P4p^ϡYS"Mj{Yٜ̣MB-_`RnyzѪ[ 8WޥE\'ޤR&1%>ĦDNώӼQرR~v{m.Ǔșwb\\[-؉qo:Э\\`ΏQ-4|d\'Ү&$ش6xܨdƛ5uǷj5+LȒZ}:{NIʥ:ƎmO٘|5@ҩ[l@bEvQҎgȍs.=A݃Zqt\'+tD9/$2J\'^O#yTOiHβANG*̝ψzʃ]FWV|m1rU?ϣ"c*Q\\UuݝdӛǷƗ=&v1.b^S̟^ۯW_Zաm&nRӣvˌjɚ@6#F=χ@mHsz|{âۯ\'UGWsQ}~kȖ+o<\\͵ӑCr

\\Х٫km!mbIɴ}ȇlW|3mԶޤUЙE}BJ)OKb\'r>tǤyVۺ6VvlG4\\{ik\u05cb&֮qbZ$ZYqP+0}MKbBաCj\\ƳE=װ_ Yʧ:jn#-][ԁ"ӊ[D@,S&{#MXܣՌ"rTWwʪ\'DT6n)Nk*0q?B:mп;gПUV2ZǠ*\'jKZ7o{שƍͅ:m^٦@F|߿ίگǥr~EexkDžp 5qDڠXė˹&oiܛ;P7lA8>ȽQoΤf;"%<ܡўaK!M¯)C{Կh݈V_ %j݉KH\'[h1y˿NDi9"^vq{ğNdxmt#9;CgJǴ&g$RƑk@ԣRܖІ/8>;gΪٖAY;G^O76ߛMnmź9];#K_͙SzYٹ!q,ߟיrz=r#ru?}wj%*{ņЙ˖~BʹLͻt1Ir͎ڷǛpǏMPGܯ.cɽ^W(_F"iA1LҮɁէwOŪۓѫܵwD"`3HGNy?fLۑ<6SнXP{[[$1dcӛoc̣5Xv*?тHliש)ܹe][c\u038b֏p/n@4Ֆ7jˈ&+Њe=\'1nW\'xͯAU)+QĭWۻ`@Nܣ4p8+eޜbɛ(ь20`cԖAa8eЍL}aɁ6f/g=Chpg*ޖT"=*xÞָN:L1lfTč\\бGsc˿+g8AݙBNïwE@h~ ИF{w˫n#>knubGdAțYtעU˛F9ujmՕL݊fH+ߧ3%RJ:Wڥצl$putآRܱѼKeƉ;B؞Vѝ30qy_P!\u05f8ӓcz۪4ߍ<ҡ+#,ާ11GͨQ~umH~#Xtȇ42X*ՅTvgY9{!tM=ݘXwɒ\'$V\\r6Qh>QIS5ܚ"_mȒYcfٞwwvSuC?:QTj|TןPm(xسlnqϳrԝa&v2>(z?ݺ^7o˻ήGVHti6Xړph!p) }!Aۊ]ٶ&%>1/94ͤ̏MD$7N35JɗUp?ƛ-ď??BE`-CBڏɍyZ=Gfkͪ_ ӷ/qUnκ4g73ӭ؟PdeoeQ֩P6JAVdEFՉGSޝU_y0K\\j7EnO&6M\'B$-Pɢ(֑"/6vI H[ҳnɹWöGƛg<ـ7Hyu͎j۔-˸لS3ʪW܈m( 7H@i[m~Logؗfsε,"Ǎߙ*\\,W\\Æɑʧps:n;%bu}dˮo+R!R6\\7ǖ8?čaǴ٥ڢOe^,:HŮƳ]ȠeFgVzEv[7ftAd0יPc|z#Hdʰ\u074cmۨ@^Lj% R8(Om8Ƙ"LӘl3Myq*R},zךW4?(މϓ}I\\,Xϕ:úXvQUbf" ߮(\'R:*λVo%)آe5dɋ*վRFy9xIvŜϩmL[Ο.x;Ze?yPIF|,DHKٺ\'DfA3}^\u05eeƉQ{2xK?ʆۯb݉%w7QA̎]ʦH2>ǃ_0W(_*ډ;EȨ?Q.^CʠؕOˀ̠I-WD{UƬїBd֎A!Gօ0S΅NwF8jn͙_ބZȮXsl9V8I2ފfӭN"JWޜԦ;mtT2.ۻ߹ȱ=~=)jOϠpO\'٣N>ώam#PPFrS*HΗp6KZ8_EF¼*ynܥO e{\'l_4;tHǖOɫ,U-J۞D%N%oΌ#cȠĥ\u07bdgkΛ;pߨg4U7/ėBOL* T9F?[.}Z.XZ=ϋȑq|Νk2){;^4KCСo/W"w-LxەɷD\u0600:\u03799;Sٸ,j!Șn|I;ϓ|m4ɨ!t±hYkޝqMNEZ}\'G7o,ͫ]đϢF*@55@;x~ۺͭiđ73dPgB;V"2ě148@9KMu{%b9pۘɢ[O/r}|9\u05cdn4J\'F\u074bfo{#ŘLe\\2Ȇ:Uּmy,xٵMמ3jċNXpyAiDzh]0iyL}Qˠ\\}P>SZG³;:,~uI̬vωkmgHCڲ#ڨe8;y}TYvĆ#ʒiZyKS+ȧ¿ٶVUZ[U֤[N8YȮ{8F%M`ؾ:#k=\'(zm\\Ϩ _֨˰׃A~gRȽԃ/>Mxgmp٥߉ڼۛ%[sIիԃn2z<Ǣ#0O˔3sƸ^eQӚ"&7acՐ~c!4`{>wT<ߎ4)>o+cփbͺ]Rw1n)IM9_MЬ\u07b2WgX,<>sX5`Ҭq+vǯzޜ*o(/NϧXf_ynNAZo=()aٳaT~[UڑydP39bnecg$#،;śa8فkݽtR2ׯϭvÍވ?Ū}A\'#V7)֘ݝ˻ottԓv3npq`Ϯeϫ59CbJ6˺L`"щfufN#-[4sRaհk΅)7;9r.F,-VcVRJ(9fG-r\'OuZ̭GҁQBH<\xa0m̱hQ\u074cx3$ӅMHF?aN6\\9tʄ5m9o{e[Ӽ"7!|V*3*̾0c(X`CWŴԒ\\BfWdʲV%hņK#@^ªۜ=ўoD}WF&&V!N[g ̕hlŗaA>UaY0wETIbSe^ʞק>|hhLLdX&ѢBFpwܟҿ3κ`N$-i>9ۑU6A;>1GCʶ{VmhPް4 ?\'?2I\\:hXvӠ;.r\\]r6f__8/gI1&0\'%3P#JzԢS>Ë`F5l[qON0щ.0fNw?Ѱ@hVޗ8\'}[:#͒(uOaBmv%f\u058ckUדBxyV>{VӠ5BڹD$E aܾӨ/.~H6}V;?f}ŗ6[ΚTTi~L\\zBr9axϛ55"|>cc~dd7ڷ,۾Rv4q)u6&c.JȉҢ-Jy+Iș+ϤS;v(0$YتMݐ͑V)y^\\ݶ?8҉+2.$sh{cj}1f^GbՐc\u0379=rNsVbvή̦|\\ǟx-xôAͳ?T kP6*[jRJKq,v5[@z1p6")UC21i١7w}I۽uށ3[3!ǯ&jIf=SdQP\'N4ݽ/5\'~w3̔&V1t1ͶIcحQͮIpa,0YwbS˓0֜NEȈ&{7ռdUp_pboǎveCFGǗԱ%ˆTٚΠKrȴ9óoޓ7Dϣ~ߵBΏ2WMNOd٥NhC%xx#͈+W_- z֙V`Z[^St{d8g]ÚC3AO}Қ;585TlYGjCWĜUKyo"aiӲ+_lٱNxޝ\'ݙ\\tw)FVZ.c.2i\u07b33TSO4oGIͷmΛyI[^/nѾ~QtH-bah`eʨj&iEvEh͂C8к\u05cb=F/1@?N\\4P,ЙBHdV2QR^wH\'N߲ϓʘԴ҈]ف$n9j:"UόV]-Xldu%Ѡ0V¬۰ƕ)_Ŵ)čnѼâՔríHMܩgԯF&!܀Tb(d[ۘ"pyܚ0;jg\\d7ˮG*qyI/$IDVXVAߒ%L>ԌԽ@ͳ$v_LVuX~_˨1ϫ.^КFطm!qօЄO[sHFݗX?);wN#֕ՅkCݕ`ߟ!i_%Ha4aZֆl_ۆȄmf!ŨA}؍÷ƩQzәIg)9aޏ#NyܕNr,\'xZ2:T&iU _f/N@8Ep;7lAٝk:AuɰWXQۢүɵ.(Ͷim#ъ60`ʊB#%ݯ3X݂_tf#IIA4}{dNws]qh`"w3Aφ4GðA;ZhÍ@ѝ7\\5+=Pٚ\'z5jTI\\dI"#Ve2x;5U\'[AWcx%ۙ{ӺX˛/&3v ۋЀ?q;DFm%Д҇8-P{˺,[Y\\Җӝ|ln{$֔Ⱥ_pD&j4D4+n|g:j3}Ce˷Rt.ޯ:r#"Ϊ=8?1x1%=ݎά-:1ߵ[^wuvǝ"&_%ʼn^V۸P)Lϟ\\֣Q>Yջo\\QHǃ0ք13+ڞH@a>xAttU0υ^RA0lߺb~ѣǂ˵͔a@sVBʏ+DnA:ɘ-nIBrރÉ۩P[q+jAGy}0m^"C43_y@>;qϨqPBЀU>qL.xjř`ִ"d&BڗT}O93UR`˹b4T\\5Ϯul3#͜Ǥz{1|ӣeo`c٦XJ2Jo͋p`t9CM"n@_kCȕ٠ǟ3˾pײ8/|/-MT9ɓyGX&\u07b6Y`˰)pHdv>,:a˪8E,ҶQP[A{F\u05f69o\'j ڨM9@-Џ\'H("|ǿ6{Ѻ\\(ۆ1KQxTжТZ71n5Ϻ3Ȓ00`G*(VU.k_OܚL$;[fm]w{0)ҽ%[߆\u07fcnɷ72¨)7ȋ(r7>?yԏ@`_& :δ>d\u05ebHgђ&oB}Qك٦)D=Ǿ2tS|:F^:/C"ǖ*DԍZ˪wd},ϗP˝2gEwޮ"uMNtՙ}ȓN#;A[wqU/֑g}7305t^fw|C#7?\'߿\'fNz)ԋ@`ܵ\\\\0}ţϡtUq0ckJkLfEٸ.d5Gv4ڮCU.ԲDAƛQV5ǁrѣZ*֒ҍ_A8*Wy\\j6bQՉI3&YݍS(і\\D~q5Pr|\u06dd9O1gh4۵Y9@Ǟ}ҡɷ<=`Abc_VUEھUoޛqQF1fޚ]IGٷ\u070es/\\!crĮϒ ΥAhAY#HGO9%ݍwKyԌ&WlI):%ȕv d9xַfG<-' + +LONG_VALID_ASCII = b'ovZBRVWvLXuvojXKFDGxsnGLIrZWDqlqvQfQitcIRJSNMDILbyHVxHOIkvYSuZqswIxvJKBenivpYVSkgJGdmMrclHLybHwHAhwCaHGakesRfRuOnwDGwJVNOczzJlhgGusUbQsAsgIWZBuQcaIKdvnxyTWjTuxZInLpZcerfJEwyHLgKylxPSPvUtPLcwXxAidVBiTcFdvjlgLEKNaZAIYpPRTHmFbByPMxkqEDThQyYrTfdWHPXQJCrzidedMDNUFLszfnGewDcvVaisFzGQdROplYcWsnMCSXcYOOqLJRurLmOCvsDLpxZkgPSXyDmyYJptKUmDFCzTaJcUFNzOgEfXUYdxmfwFSckrjXrHJzIpxACLwlfmvYPSHkOuMtRlCzDleHHEAOKPkCWYMKDDkCoPADUkSVFUeHbqiLiXVIGDDkEYGBXvuBlLGtkLcgjcHaByDRYggpOJNJjLyArtjOScBCLEYDGmVSnGAzmijeufMeXMUwtIKjCVVBVQiwFWWzzyeFsQnMXsWNeEHToyxooRUAQTkuhUCZKhhhzgIMnCykEvgwafjznlbhydGkCyZJVUuczmtrbNGDRAgawdEXAkMgZXODJcYpqKTdxoSEHVWOXaNpyUfvIGxypQdwZfJjoZzgjSrwhVhAYgbjwerEEDIOYdJMZLeDgtVtibTVoahPuYbWtCATmCngVTasceiNLwlVySxYCAzdtLmBqQdYPbyhcFkUPgWRBfmoexwOyHLemncxUSbEXwbHIaCIBSouJfvkUAUDvizBGBHPxKPKOMYoTWqbXIlhVuCQjAQAlcmHHCgTKBVUDmszSlaXcpJVqeyTvfJWvVqDeCbStpxBsACMMJRosaHnsvPcRsEELgiqMLxuXDVPfRcCXmKdrfvTZxrxxcHCdsqYGiYyADItuHBkSwnDDEHsbnZZzVMGqieOqEWzveHQbzHBVVhNwAMORoMgtpYghSlkCFAshNQxFKOnIhtRdvTrVaDOvftwLOmjRjCFSufLYCxwQOEyIKjHeYulvYwFIOygCvfysRIXOoJcUAqxYHifyNzidEKzeWTsqMDGvOGomyxHbcwQSmghZUbynfZFIJkhJkWDUOlRRDAkHOnxfzkoEDUuablcEZftxynHmOYiqMsPLSYvIdMgFTgQcxQgDSJOgQzhhfJLhrdywnKlOZCGYfzSIBcmMBQTWApbXaFnCThVBMwHPRtULPgTHXjjJoeLeWvzKvnpQNHfnpVWpcKWGjFVSwWYManeIQENRLiMFXhxcajJGoiPGBSzmdxPLexLGbgSgOnRYONLVFvPZAHqcNSLDvOCxPQOMRurFZlQuDDmrXiDazswsterxdfzUIvTuagFulOhaJDsVuBaTCTBrouNYmNkFTkmXQaXbiiEGzEUvJmJAZDhVRRHOMpYImIzIavpFaGChVhpAEqxXKFbwRNCMhadgbcCgsxQPHmXcedlaZWXubDBuxEdEWPCyfemGaMECSTYvUNGrACwMLcjXguCgPKZLTFSyMSAAFmNGkjSxCxcjXHCsgrwNduBGIJhjtSDcnxwMUdCsztkcsTecgrqocFTichqaCGxBHfRzJkeTTDvFwBiZDkjMBlYoAPmHOqJIgZOwLYCLhhBgHPDNrJZRvLgxtWlhXsJnTTbkgQQEqUkclOqgMwSklnTnQSabJeEHCOFxHrCqtoXJfRUfqjwtPsFKpnPzqXGmhweWlpVEswnuMSbjlmvcTwsVqhVJnPOluSezktsecSspBEikPyLAbMgMEnqhrFObxRipyARtmJXfopvgBhjjckZtjllyvtxeZXYoaGwwfKbtttIpPpjdqayYuLHazcXlHrIMyShFQOWWkUEuSHagNIQenBJKBTXyfJPbUbpEXvkbVGUtsxSUdZJryJpvRmGtgcQYpxqXklKwXJFBLemFmaNxddEfwASWiZUplbWyKgyFDwyEJZTlfPDzaKlfFDwjwtiFcdQobjJUFsPnegNOllRokmiESyyugPKjobJCtCObeSrLSqnEZvvKKtHJwVmyRRQCIBiSGgkuhqlvoaDkCnAQnUEHjRQgmQhfZhsVTgRaMnkIfeubWoljHOhJDqjAnlUbtAUAkRkGiOsIsSISBtdaqQkkNzPipCguPKzjqHSBZuJDGkQwAezrbuzLfMfLgmEHahoCsgznFiZHbqAnuiHYsFemqxFvXhgidFzVWnqwbEaUVtuJeQYUSDZXFBlIVTPTwcbsqUfhsgTgMvgTYpXaOyqrHvtsBAPGmzkAmyLwkCmSwkhArUjjfoKPVjnmRrayzlkphConTVFAOoLaGLuJakfvtagqRjNPUwaFJuUWHXMIqSZGSSPvlWksVtHyiKYJHCkjvQoEWoTrZNDMBJSAzJfrmvGibBLiOgcysBKhiYYGLbLYyAylxhWnFICoGAYGcPLAThBbgKbyzPohGZsACAKgsUxoiuCoGOiMLoIbBGeNVumWWdjsdAsjVvYOFTxbzeiGKqLPSyABOiXaaDDvRkZVrFqOwZoTvXENgSBjxkbhdCJcOXYuDPGCHpFOUirhMtBBVwXwiNZaVgRZjXlzRyqQzWojefJQIAUWmwICgRRTLJaeIBwgMTHDOMpoUdeZZKOKfPKBcoaiojBJIuQlovpXsgZCNPPQWErVwoTvrhKsmJknesHPRcdNURnfVBvTVVCWjGPeXkSPwcOprFllhmFDTolGSzpiwtrjkbEACkePmPNmBnuBVWOZyEZlfhetKhKsQywOfYHjIvzMlsLEnygQlkkPEoovSjAHVCIBpLfaeenzOskarULiMKOqoUbzZPKiJeHAHWulqtOPJOavmHaBbFnPtWwNmpWVbiEsSkavHwgBGsvSdIsXxolagzMUNQYPScwURiDxqNXOkBonEoUbyUqQLiBDxmwntrjZCIQGeKsZYSzoUxyelSBfeICtYguUzKPntYJCtsmUJVFysjLlhPXRfvMLZMGAXvjigBuTsggupOhAaYnZSmbLwQbsXghLAZOihXyEjJzMfyyXbdBXyLkamFNejwgayjqgSUoUAAkuScYNVziIMYrOxovavbYdFEkDQmODkMPgiIDPxKKWXeIydVCgboWOIWSWtObTOyaqBdJtRXKdSvrarZFrceBzGUYPLrDdmpFNrzgbZnispjHIMjcaQhpnVoDaIjiDuSfntMGSptERKAVsemjAZgWgafqoxtIGSeBGBieatFTdvDJVdqpOvWCRXJZYPjVPMWLtcfimJUrKRJyDgrKVJJdQSHQVKKfBQspxmrDdXdzsOwDiGLhXtDJVFkLHGFMWbVKuYntplvozLDjwZtHTuIdOxSTEuorpGdIjjTnWiANaTUyHSMPAYLTPjmyvRKUPvWWFCxaqprBJZGxkvyxayAwJjOYtIUICVqEnsGvsJeTKlpvkULEFMnhXfPtqpwNVIfePyTpOOSMBLlgvOIaqmPehyfmnecurJCTYMaXUvAulISTEQXYlFwLLBnimuMSNGLUsLGZpSIXSxTMcQsZYXkKQLoFqKlczKCqzVJOWiCowQBGSVQnKJgpRUEwRmHgjVphHaUVcNAnWGBeqVQMXyDSWXIDWenIRBPNplptqQCfharQHulnZLDuCVmstCiyZYthZcAeItHfMgqKTnijAsraGJbqohjePZTbQqGgnOyrHZrMWcATWoLUQidFdbFIgHTOcpXNQfEsvXClkpgOUoYKNsfPDSmHSsUiXDmFsAtvcKPRbbLHjhrylYwiIxOEnuXfiyklCEkIUjGrjEIhmHNnhQFMLGHCpZnEVtSDnOylXSHLoqeNMbzeMWmIZecPdQSxbwCoLWDHLuMdYDtuudyOsWcdefBBoKTZFrBJYgRQhspQpdbzoYUHiFcNzHyjxzpkLWlHYLMoWjkJmWUeaRyDOqXdqnehjGMKOUXrPZjZdjqLhmVgIOvPftcPJFMuJqRTGqYVnsdQCXPlgDTXhdkKUiDcLYTHouaVggHUfoOZgKccRYkpABxIuCFtyExYJGbHnTDxqqjeebjafiOwkpeoHxivFRCMdQCdcLMogJWjthofAejZReQjEjxYHaLatBqEvldiWdunONrqSRWSKuWFouYetAkGkDuTSEBpzIABCLOuMfQSyqECFqwNfECOOBUcdqLNXPzIpdIxiCqrqKlfnecSPvvThpIkxgscrgObiPIqfZukRYtEEzbzVNsBugFGMIERpThjQweoAldcduWmCaTmXmWPDDEksnyknHhdBvSFQIpmIlMjtotkhtvBpPcIfXHvBNyDGMsmTUDaAifdszQaQSOKLsAkdiFMjWKyujvwXekcOzrGtRisTwPRTEIXRTMyTonKEtlGpkiBPXRRHylEHXmCIADCyNVUSgIXncYXJaTNhxzEglnlznZbVrjaLqJabErLYejzTjvCoxcoihtXNQeWzXSizuuEHBNsHWFgucUgOvwzHWxzFAgEQlkspfVbFLSouoLPiMrhBqogpaKAVCKfQkyPplOgnlIrcstRjWvgJfpjNdYyHrGFeLETIBAodyqYiUkEyCnFawVpaZLcrRwSvSUYzqfQOTGDPOaugRQcSQjzTCGINOHFYSHialcKXfJbIeKwSvJnlJZtraQDZELztYaAzEkIdJmtFAVdDQwzBHpZDrARghtJOwDVwGLFUbojYasknvPUdKwDDPuBrhKnqkpuwMhbNpjrlDepjtQXaBwBHPWmmgQXETZdPaLuOPOHiNRQZrvgxeaDFaWAiXhkUOHHwowoIZAglPARMnWIZFCutBLyCChrCQhdWJQHKtZSnbNbCSeKVbCACzVRTBKpYOASPvpjXCYKrSqTMNbfAYBibkJcfPeDRGDxbNEMLYawmXoXuVdjmfPgATjSZWALIcAISkrmC' \ No newline at end of file diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00000.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00000.png index 3e0fc149..33db39e3 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00000.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00000.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png index 6994bdce..176399e9 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png index 3e2ac62c..3d81df48 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00003.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00003.png index c6f86d4f..7a07d06d 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00003.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00003.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00004.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00004.png index 8b981d44..b1740e3a 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00004.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00004.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00005.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00005.png index 34a975b5..8b981d44 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00005.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_ok_2/00005.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00000.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00000.png index 3e0fc149..33db39e3 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00000.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00000.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png index 6994bdce..176399e9 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png index 3e2ac62c..3d81df48 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00003.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00003.png index c6f86d4f..7a07d06d 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00003.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00003.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00004.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00004.png index 2b40ba7b..b1740e3a 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00004.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00004.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00005.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00005.png index 2d8bbe34..2b40ba7b 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00005.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00005.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00006.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00006.png index 34a975b5..2d8bbe34 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00006.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_expert_refused_2/00006.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00000.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00000.png index 8a4f7333..3e0fc149 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00000.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00000.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00001.png index 76d34fd8..e62d3ead 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00001.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00002.png index 26c0a981..a635c85c 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00002.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00003.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00003.png index 8b981d44..c6f86d4f 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00003.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00003.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00004.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00004.png index 34a975b5..8b981d44 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00004.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00004.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00005.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00005.png new file mode 100644 index 00000000..34a975b5 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_ok/00005.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00000.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00000.png index 8a4f7333..3e0fc149 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00000.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00000.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00001.png index 76d34fd8..e62d3ead 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00001.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00002.png index 26c0a981..a635c85c 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00002.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00003.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00003.png index 2b40ba7b..c6f86d4f 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00003.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00003.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00004.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00004.png index 2d8bbe34..2b40ba7b 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00004.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00004.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00005.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00005.png index 34a975b5..2d8bbe34 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00005.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00005.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00006.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00006.png new file mode 100644 index 00000000..34a975b5 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_ascii_refused/00006.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png index e069cbb4..23f12a11 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png index e561c7b1..b861c4b4 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png index e069cbb4..23f12a11 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png index e561c7b1..b861c4b4 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00000.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00000.png index 8a4f7333..3e0fc149 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00000.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00000.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00001.png index 1d5c8531..a25b0f10 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00001.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00002.png index 26c0a981..34456a51 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00002.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00003.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00003.png index 8b981d44..c6f86d4f 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00003.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00003.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00004.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00004.png index 34a975b5..8b981d44 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00004.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00004.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00005.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00005.png new file mode 100644 index 00000000..34a975b5 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_ok_2/00005.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00000.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00000.png index 8a4f7333..3e0fc149 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00000.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00000.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00001.png index 1d5c8531..a25b0f10 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00001.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00002.png index 26c0a981..34456a51 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00002.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00003.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00003.png index 2b40ba7b..c6f86d4f 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00003.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00003.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00004.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00004.png index 2d8bbe34..2b40ba7b 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00004.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00004.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00005.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00005.png index 34a975b5..2d8bbe34 100644 Binary files a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00005.png and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00005.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00006.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00006.png new file mode 100644 index 00000000..34a975b5 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_utf8_refused_2/00006.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00000.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00000.png new file mode 100644 index 00000000..34a975b5 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00000.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00001.png new file mode 100644 index 00000000..3db5269c Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00002.png new file mode 100644 index 00000000..4ba5bd7d Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00003.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00003.png new file mode 100644 index 00000000..34a975b5 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00003.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00000.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00000.png new file mode 100644 index 00000000..3e0fc149 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00000.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00001.png new file mode 100644 index 00000000..0b858161 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00002.png new file mode 100644 index 00000000..34456a51 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00003.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00003.png new file mode 100644 index 00000000..c6f86d4f Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00003.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00004.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00004.png new file mode 100644 index 00000000..8b981d44 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00004.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00005.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00005.png new file mode 100644 index 00000000..34a975b5 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00005.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00000.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00000.png new file mode 100644 index 00000000..3e0fc149 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00000.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00001.png new file mode 100644 index 00000000..e62d3ead Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00002.png new file mode 100644 index 00000000..91cff31d Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00003.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00003.png new file mode 100644 index 00000000..c6f86d4f Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00003.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00004.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00004.png new file mode 100644 index 00000000..8b981d44 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00004.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00005.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00005.png new file mode 100644 index 00000000..34a975b5 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_ascii_ok/00005.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00000.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00000.png new file mode 100644 index 00000000..34a975b5 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00000.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00001.png new file mode 100644 index 00000000..3db5269c Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00002.png new file mode 100644 index 00000000..4ba5bd7d Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00003.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00003.png new file mode 100644 index 00000000..34a975b5 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00003.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00000.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00000.png new file mode 100644 index 00000000..3e0fc149 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00000.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00001.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00001.png new file mode 100644 index 00000000..592b6e1d Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00001.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00002.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00002.png new file mode 100644 index 00000000..34456a51 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00002.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00003.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00003.png new file mode 100644 index 00000000..c6f86d4f Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00003.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00004.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00004.png new file mode 100644 index 00000000..8b981d44 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00004.png differ diff --git a/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00005.png b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00005.png new file mode 100644 index 00000000..34a975b5 Binary files /dev/null and b/tests/python/snapshots/flex/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png index 68529eda..0238e26d 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png index 26e38313..68529eda 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00003.png index fe47f76c..26e38313 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00003.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00004.png index 9595b8ab..fe47f76c 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00004.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00005.png index 7576d88b..64698947 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00005.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00006.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00006.png index 5c23bf26..7576d88b 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00006.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00006.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00007.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00007.png index 53ae6519..5c23bf26 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00007.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00007.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00008.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00008.png index 890ae49f..53ae6519 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00008.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00008.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00009.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00009.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_ok_2/00009.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png index 68529eda..0238e26d 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png index 26e38313..68529eda 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00003.png index fe47f76c..26e38313 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00003.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00004.png index 9595b8ab..fe47f76c 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00004.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00005.png index 7576d88b..64698947 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00005.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00006.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00006.png index 5c23bf26..7576d88b 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00006.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00006.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00007.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00007.png index 53ae6519..5c23bf26 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00007.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00007.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00008.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00008.png index c4c84cf4..53ae6519 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00008.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00008.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00009.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00009.png index 890ae49f..c4c84cf4 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00009.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00009.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00010.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00010.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_expert_refused_2/00010.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00001.png index 5c23bf26..0238e26d 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00001.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00002.png index 53ae6519..7576d88b 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00002.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00003.png index 890ae49f..5c23bf26 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00003.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00004.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00005.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_ok/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00001.png index 5c23bf26..0238e26d 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00001.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00002.png index 53ae6519..7576d88b 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00002.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00003.png index c4c84cf4..5c23bf26 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00003.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00004.png index 890ae49f..53ae6519 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00004.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00005.png new file mode 100644 index 00000000..c4c84cf4 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00006.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00006.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_ascii_refused/00006.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png index 68529eda..0238e26d 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png index 28d7b6b9..68529eda 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00003.png index c6ed4629..28d7b6b9 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00003.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00004.png index 6e8a1502..c6ed4629 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00004.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00005.png index 7576d88b..ed2b5bdc 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00005.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00006.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00006.png index 53ae6519..7576d88b 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00006.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00006.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00007.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00007.png index 890ae49f..53ae6519 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00007.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00007.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00008.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00008.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_ok_3/00008.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png index 68529eda..0238e26d 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png index 28d7b6b9..68529eda 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00003.png index c6ed4629..28d7b6b9 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00003.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00004.png index 6e8a1502..c6ed4629 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00004.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00005.png index 7576d88b..ed2b5bdc 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00005.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00006.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00006.png index 53ae6519..7576d88b 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00006.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00006.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00007.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00007.png index c4c84cf4..53ae6519 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00007.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00007.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00008.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00008.png index 890ae49f..c4c84cf4 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00008.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00008.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00009.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00009.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_expert_refused_3/00009.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00001.png index 6e8a1502..0238e26d 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00001.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00002.png index 53ae6519..ed2b5bdc 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00002.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00003.png index 890ae49f..7576d88b 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00003.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00004.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00005.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_ok_2/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00001.png index 6e8a1502..0238e26d 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00001.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00002.png index 53ae6519..ed2b5bdc 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00002.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00003.png index c4c84cf4..7576d88b 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00003.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00004.png index 890ae49f..53ae6519 100644 Binary files a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00004.png and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00005.png new file mode 100644 index 00000000..c4c84cf4 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00006.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00006.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_utf8_refused_2/00006.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00000.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00000.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00000.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00001.png new file mode 100644 index 00000000..d885fe67 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00002.png new file mode 100644 index 00000000..b621cda4 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00003.png new file mode 100644 index 00000000..3fd7edaf Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00004.png new file mode 100644 index 00000000..6b36d093 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00005.png new file mode 100644 index 00000000..b621cda4 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00006.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00006.png new file mode 100644 index 00000000..8e568ae3 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00006.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00007.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00007.png new file mode 100644 index 00000000..9f6637dd Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00007.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00008.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00008.png new file mode 100644 index 00000000..c00dba11 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00008.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00009.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00009.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00009.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00000.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00000.png new file mode 100644 index 00000000..21398f44 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00000.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00001.png new file mode 100644 index 00000000..c96b20aa Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00002.png new file mode 100644 index 00000000..69778506 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00003.png new file mode 100644 index 00000000..7576d88b Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00004.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00005.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00000.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00000.png new file mode 100644 index 00000000..21398f44 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00000.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00001.png new file mode 100644 index 00000000..0238e26d Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00002.png new file mode 100644 index 00000000..7576d88b Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00003.png new file mode 100644 index 00000000..d7dc3226 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00004.png new file mode 100644 index 00000000..44a9b4c9 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00005.png new file mode 100644 index 00000000..59e9de76 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00006.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00006.png new file mode 100644 index 00000000..a881a6cc Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00006.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00007.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00007.png new file mode 100644 index 00000000..4659b53e Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00007.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00008.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00008.png new file mode 100644 index 00000000..b1be10be Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00008.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00009.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00009.png new file mode 100644 index 00000000..c36b80a2 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00009.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00010.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00010.png new file mode 100644 index 00000000..7a10232a Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00010.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00011.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00011.png new file mode 100644 index 00000000..408d2494 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00011.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00012.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00012.png new file mode 100644 index 00000000..0ae1f5e6 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00012.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00013.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00013.png new file mode 100644 index 00000000..8e330b55 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00013.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00014.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00014.png new file mode 100644 index 00000000..3d703d63 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00014.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00015.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00015.png new file mode 100644 index 00000000..626b616d Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00015.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00016.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00016.png new file mode 100644 index 00000000..0c3a4795 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00016.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00017.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00017.png new file mode 100644 index 00000000..6623fcb4 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00017.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00018.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00018.png new file mode 100644 index 00000000..4abb3131 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00018.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00019.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00019.png new file mode 100644 index 00000000..ef2462fc Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00019.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00020.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00020.png new file mode 100644 index 00000000..b505a773 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00020.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00021.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00021.png new file mode 100644 index 00000000..b9cb62ea Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00021.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00022.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00022.png new file mode 100644 index 00000000..1be30ab6 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00022.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00023.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00023.png new file mode 100644 index 00000000..f16c9acb Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00023.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00024.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00024.png new file mode 100644 index 00000000..028322b8 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00024.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00025.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00025.png new file mode 100644 index 00000000..0098ad31 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00025.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00026.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00026.png new file mode 100644 index 00000000..0dbb6ebf Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00026.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00027.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00027.png new file mode 100644 index 00000000..632fe89c Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00027.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00028.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00028.png new file mode 100644 index 00000000..bb455ce4 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00028.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00029.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00029.png new file mode 100644 index 00000000..5f7b1021 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00029.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00030.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00030.png new file mode 100644 index 00000000..252f1924 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00030.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00031.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00031.png new file mode 100644 index 00000000..acbfe0dc Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00031.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00032.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00032.png new file mode 100644 index 00000000..b06768e5 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00032.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00033.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00033.png new file mode 100644 index 00000000..d56796b7 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00033.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00034.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00034.png new file mode 100644 index 00000000..5d053008 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00034.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00035.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00035.png new file mode 100644 index 00000000..a3b5ef6c Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00035.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00036.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00036.png new file mode 100644 index 00000000..8a01b80a Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00036.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00037.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00037.png new file mode 100644 index 00000000..c17ea7fb Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00037.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00038.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00038.png new file mode 100644 index 00000000..2ee47e57 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00038.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00039.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00039.png new file mode 100644 index 00000000..8fe76683 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00039.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00040.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00040.png new file mode 100644 index 00000000..30a8650f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00040.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00041.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00041.png new file mode 100644 index 00000000..4a0abf8f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00041.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00042.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00042.png new file mode 100644 index 00000000..e646b5cf Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00042.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00043.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00043.png new file mode 100644 index 00000000..af5b04c5 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00043.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00044.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00044.png new file mode 100644 index 00000000..03da302f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00044.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00045.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00045.png new file mode 100644 index 00000000..f7172fcb Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00045.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00046.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00046.png new file mode 100644 index 00000000..39a81f74 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00046.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00047.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00047.png new file mode 100644 index 00000000..7861ee37 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00047.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00048.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00048.png new file mode 100644 index 00000000..97924bda Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00048.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00049.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00049.png new file mode 100644 index 00000000..68433e27 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00049.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00050.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00050.png new file mode 100644 index 00000000..3561b40a Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00050.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00051.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00051.png new file mode 100644 index 00000000..9bf583ab Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00051.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00052.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00052.png new file mode 100644 index 00000000..51b62515 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00052.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00053.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00053.png new file mode 100644 index 00000000..cc76f360 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00053.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00054.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00054.png new file mode 100644 index 00000000..4cf41f58 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00054.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00055.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00055.png new file mode 100644 index 00000000..6747f2c7 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00055.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00056.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00056.png new file mode 100644 index 00000000..364e5a87 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00056.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00057.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00057.png new file mode 100644 index 00000000..c4a177de Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00057.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00058.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00058.png new file mode 100644 index 00000000..42da0ac4 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00058.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00059.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00059.png new file mode 100644 index 00000000..9cb77c9f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00059.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00060.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00060.png new file mode 100644 index 00000000..e0433344 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00060.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00061.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00061.png new file mode 100644 index 00000000..33bb475e Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00061.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00062.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00062.png new file mode 100644 index 00000000..4fef559f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00062.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00063.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00063.png new file mode 100644 index 00000000..a2626910 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00063.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00064.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00064.png new file mode 100644 index 00000000..00312208 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00064.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00065.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00065.png new file mode 100644 index 00000000..8e0a2eee Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00065.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00066.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00066.png new file mode 100644 index 00000000..5f516e7d Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00066.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00067.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00067.png new file mode 100644 index 00000000..adbd6535 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00067.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00068.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00068.png new file mode 100644 index 00000000..f9b01d92 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00068.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00069.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00069.png new file mode 100644 index 00000000..ee7c606e Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00069.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00070.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00070.png new file mode 100644 index 00000000..ffc7b45a Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00070.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00071.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00071.png new file mode 100644 index 00000000..9a19c6fc Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00071.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00072.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00072.png new file mode 100644 index 00000000..a4e5c2bb Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00072.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00073.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00073.png new file mode 100644 index 00000000..ce148bd7 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00073.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00074.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00074.png new file mode 100644 index 00000000..c95ff511 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00074.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00075.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00075.png new file mode 100644 index 00000000..d20abe5c Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00075.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00076.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00076.png new file mode 100644 index 00000000..65f00ede Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00076.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00077.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00077.png new file mode 100644 index 00000000..3ba1804a Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00077.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00078.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00078.png new file mode 100644 index 00000000..26d6b92d Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00078.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00079.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00079.png new file mode 100644 index 00000000..6d00326c Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00079.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00080.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00080.png new file mode 100644 index 00000000..b10b8f8b Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00080.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00081.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00081.png new file mode 100644 index 00000000..9d5a9656 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00081.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00082.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00082.png new file mode 100644 index 00000000..ae22d4be Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00082.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00083.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00083.png new file mode 100644 index 00000000..33204965 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00083.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00084.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00084.png new file mode 100644 index 00000000..150926eb Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00084.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00085.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00085.png new file mode 100644 index 00000000..9e4e3dc0 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00085.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00086.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00086.png new file mode 100644 index 00000000..082b1706 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00086.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00087.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00087.png new file mode 100644 index 00000000..2fa26d15 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00087.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00088.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00088.png new file mode 100644 index 00000000..2af1160b Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00088.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00089.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00089.png new file mode 100644 index 00000000..27b26327 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00089.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00090.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00090.png new file mode 100644 index 00000000..81fe56d6 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00090.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00091.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00091.png new file mode 100644 index 00000000..c998fc55 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00091.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00092.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00092.png new file mode 100644 index 00000000..dfa82c81 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00092.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00093.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00093.png new file mode 100644 index 00000000..c172d293 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00093.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00094.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00094.png new file mode 100644 index 00000000..63968df4 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00094.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00095.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00095.png new file mode 100644 index 00000000..9d6286cd Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00095.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00096.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00096.png new file mode 100644 index 00000000..bd05e27e Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00096.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00097.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00097.png new file mode 100644 index 00000000..63cb4e1a Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00097.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00098.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00098.png new file mode 100644 index 00000000..a6082a16 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00098.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00099.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00099.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00099.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00100.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00100.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_ascii_ok/00100.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00000.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00000.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00000.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00001.png new file mode 100644 index 00000000..d885fe67 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00002.png new file mode 100644 index 00000000..b621cda4 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00003.png new file mode 100644 index 00000000..3fd7edaf Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00004.png new file mode 100644 index 00000000..6b36d093 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00005.png new file mode 100644 index 00000000..b621cda4 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00005.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00006.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00006.png new file mode 100644 index 00000000..8e568ae3 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00006.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00007.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00007.png new file mode 100644 index 00000000..9f6637dd Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00007.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00008.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00008.png new file mode 100644 index 00000000..c00dba11 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00008.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00009.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00009.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00009.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00000.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00000.png new file mode 100644 index 00000000..21398f44 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00000.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00001.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00001.png new file mode 100644 index 00000000..0238e26d Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00001.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00002.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00002.png new file mode 100644 index 00000000..e21219f2 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00002.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00003.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00003.png new file mode 100644 index 00000000..7576d88b Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00003.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00004.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00004.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00004.png differ diff --git a/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00005.png b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00005.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanosp/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png index 68529eda..0238e26d 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png index 26e38313..68529eda 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00003.png index fe47f76c..26e38313 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00003.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00004.png index 9595b8ab..fe47f76c 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00004.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00005.png index 7576d88b..64698947 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00005.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00006.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00006.png index 5c23bf26..7576d88b 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00006.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00006.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00007.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00007.png index 53ae6519..5c23bf26 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00007.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00007.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00008.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00008.png index 890ae49f..53ae6519 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00008.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00008.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00009.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00009.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_ok_2/00009.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png index 68529eda..0238e26d 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png index 26e38313..68529eda 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00003.png index fe47f76c..26e38313 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00003.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00004.png index 9595b8ab..fe47f76c 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00004.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00005.png index 7576d88b..64698947 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00005.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00006.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00006.png index 5c23bf26..7576d88b 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00006.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00006.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00007.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00007.png index 53ae6519..5c23bf26 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00007.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00007.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00008.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00008.png index c4c84cf4..53ae6519 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00008.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00008.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00009.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00009.png index 890ae49f..c4c84cf4 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00009.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00009.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00010.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00010.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_expert_refused_2/00010.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00001.png index 5c23bf26..0238e26d 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00001.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00002.png index 53ae6519..7576d88b 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00002.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00003.png index 890ae49f..5c23bf26 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00003.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00004.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00005.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_ok/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00001.png index 5c23bf26..0238e26d 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00001.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00002.png index 53ae6519..7576d88b 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00002.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00003.png index c4c84cf4..5c23bf26 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00003.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00004.png index 890ae49f..53ae6519 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00004.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00005.png new file mode 100644 index 00000000..c4c84cf4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00006.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00006.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_ascii_refused/00006.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png index 68529eda..0238e26d 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png index 28d7b6b9..68529eda 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00003.png index c6ed4629..28d7b6b9 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00003.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00004.png index 6e8a1502..c6ed4629 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00004.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00005.png index 7576d88b..ed2b5bdc 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00005.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00006.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00006.png index 53ae6519..7576d88b 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00006.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00006.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00007.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00007.png index 890ae49f..53ae6519 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00007.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00007.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00008.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00008.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_ok_3/00008.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png index 68529eda..0238e26d 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png index 28d7b6b9..68529eda 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00003.png index c6ed4629..28d7b6b9 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00003.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00004.png index 6e8a1502..c6ed4629 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00004.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00005.png index 7576d88b..ed2b5bdc 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00005.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00006.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00006.png index 53ae6519..7576d88b 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00006.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00006.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00007.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00007.png index c4c84cf4..53ae6519 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00007.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00007.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00008.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00008.png index 890ae49f..c4c84cf4 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00008.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00008.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00009.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00009.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_expert_refused_3/00009.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00001.png index 6e8a1502..0238e26d 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00001.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00002.png index 53ae6519..ed2b5bdc 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00002.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00003.png index 890ae49f..7576d88b 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00003.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00004.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00005.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_ok_2/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00001.png index 6e8a1502..0238e26d 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00001.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00002.png index 53ae6519..ed2b5bdc 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00002.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00003.png index c4c84cf4..7576d88b 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00003.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00004.png index 890ae49f..53ae6519 100644 Binary files a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00004.png and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00005.png new file mode 100644 index 00000000..c4c84cf4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00006.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00006.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_utf8_refused_2/00006.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00000.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00000.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00000.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00001.png new file mode 100644 index 00000000..d885fe67 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00002.png new file mode 100644 index 00000000..b621cda4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00003.png new file mode 100644 index 00000000..3fd7edaf Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00004.png new file mode 100644 index 00000000..6b36d093 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00005.png new file mode 100644 index 00000000..b621cda4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00006.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00006.png new file mode 100644 index 00000000..8e568ae3 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00006.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00007.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00007.png new file mode 100644 index 00000000..9f6637dd Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00007.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00008.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00008.png new file mode 100644 index 00000000..c00dba11 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00008.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00009.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00009.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00009.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00000.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00000.png new file mode 100644 index 00000000..21398f44 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00000.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00001.png new file mode 100644 index 00000000..c96b20aa Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00002.png new file mode 100644 index 00000000..69778506 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00003.png new file mode 100644 index 00000000..7576d88b Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00004.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00005.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00000.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00000.png new file mode 100644 index 00000000..21398f44 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00000.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00001.png new file mode 100644 index 00000000..0238e26d Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00002.png new file mode 100644 index 00000000..7576d88b Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00003.png new file mode 100644 index 00000000..d7dc3226 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00004.png new file mode 100644 index 00000000..44a9b4c9 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00005.png new file mode 100644 index 00000000..59e9de76 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00006.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00006.png new file mode 100644 index 00000000..a881a6cc Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00006.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00007.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00007.png new file mode 100644 index 00000000..4659b53e Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00007.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00008.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00008.png new file mode 100644 index 00000000..b1be10be Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00008.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00009.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00009.png new file mode 100644 index 00000000..c36b80a2 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00009.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00010.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00010.png new file mode 100644 index 00000000..7a10232a Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00010.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00011.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00011.png new file mode 100644 index 00000000..408d2494 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00011.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00012.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00012.png new file mode 100644 index 00000000..0ae1f5e6 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00012.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00013.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00013.png new file mode 100644 index 00000000..8e330b55 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00013.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00014.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00014.png new file mode 100644 index 00000000..3d703d63 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00014.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00015.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00015.png new file mode 100644 index 00000000..626b616d Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00015.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00016.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00016.png new file mode 100644 index 00000000..0c3a4795 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00016.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00017.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00017.png new file mode 100644 index 00000000..6623fcb4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00017.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00018.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00018.png new file mode 100644 index 00000000..4abb3131 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00018.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00019.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00019.png new file mode 100644 index 00000000..ef2462fc Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00019.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00020.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00020.png new file mode 100644 index 00000000..b505a773 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00020.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00021.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00021.png new file mode 100644 index 00000000..b9cb62ea Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00021.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00022.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00022.png new file mode 100644 index 00000000..1be30ab6 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00022.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00023.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00023.png new file mode 100644 index 00000000..f16c9acb Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00023.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00024.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00024.png new file mode 100644 index 00000000..028322b8 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00024.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00025.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00025.png new file mode 100644 index 00000000..0098ad31 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00025.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00026.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00026.png new file mode 100644 index 00000000..0dbb6ebf Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00026.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00027.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00027.png new file mode 100644 index 00000000..632fe89c Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00027.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00028.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00028.png new file mode 100644 index 00000000..bb455ce4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00028.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00029.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00029.png new file mode 100644 index 00000000..5f7b1021 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00029.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00030.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00030.png new file mode 100644 index 00000000..252f1924 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00030.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00031.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00031.png new file mode 100644 index 00000000..acbfe0dc Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00031.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00032.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00032.png new file mode 100644 index 00000000..b06768e5 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00032.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00033.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00033.png new file mode 100644 index 00000000..d56796b7 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00033.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00034.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00034.png new file mode 100644 index 00000000..5d053008 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00034.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00035.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00035.png new file mode 100644 index 00000000..a3b5ef6c Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00035.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00036.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00036.png new file mode 100644 index 00000000..8a01b80a Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00036.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00037.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00037.png new file mode 100644 index 00000000..c17ea7fb Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00037.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00038.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00038.png new file mode 100644 index 00000000..2ee47e57 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00038.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00039.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00039.png new file mode 100644 index 00000000..8fe76683 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00039.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00040.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00040.png new file mode 100644 index 00000000..30a8650f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00040.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00041.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00041.png new file mode 100644 index 00000000..4a0abf8f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00041.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00042.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00042.png new file mode 100644 index 00000000..e646b5cf Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00042.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00043.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00043.png new file mode 100644 index 00000000..af5b04c5 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00043.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00044.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00044.png new file mode 100644 index 00000000..03da302f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00044.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00045.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00045.png new file mode 100644 index 00000000..f7172fcb Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00045.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00046.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00046.png new file mode 100644 index 00000000..39a81f74 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00046.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00047.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00047.png new file mode 100644 index 00000000..7861ee37 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00047.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00048.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00048.png new file mode 100644 index 00000000..97924bda Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00048.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00049.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00049.png new file mode 100644 index 00000000..68433e27 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00049.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00050.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00050.png new file mode 100644 index 00000000..3561b40a Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00050.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00051.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00051.png new file mode 100644 index 00000000..9bf583ab Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00051.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00052.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00052.png new file mode 100644 index 00000000..51b62515 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00052.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00053.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00053.png new file mode 100644 index 00000000..cc76f360 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00053.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00054.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00054.png new file mode 100644 index 00000000..4cf41f58 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00054.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00055.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00055.png new file mode 100644 index 00000000..6747f2c7 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00055.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00056.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00056.png new file mode 100644 index 00000000..364e5a87 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00056.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00057.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00057.png new file mode 100644 index 00000000..c4a177de Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00057.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00058.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00058.png new file mode 100644 index 00000000..42da0ac4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00058.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00059.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00059.png new file mode 100644 index 00000000..9cb77c9f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00059.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00060.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00060.png new file mode 100644 index 00000000..e0433344 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00060.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00061.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00061.png new file mode 100644 index 00000000..33bb475e Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00061.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00062.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00062.png new file mode 100644 index 00000000..4fef559f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00062.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00063.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00063.png new file mode 100644 index 00000000..a2626910 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00063.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00064.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00064.png new file mode 100644 index 00000000..00312208 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00064.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00065.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00065.png new file mode 100644 index 00000000..8e0a2eee Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00065.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00066.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00066.png new file mode 100644 index 00000000..5f516e7d Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00066.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00067.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00067.png new file mode 100644 index 00000000..adbd6535 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00067.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00068.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00068.png new file mode 100644 index 00000000..f9b01d92 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00068.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00069.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00069.png new file mode 100644 index 00000000..ee7c606e Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00069.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00070.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00070.png new file mode 100644 index 00000000..ffc7b45a Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00070.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00071.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00071.png new file mode 100644 index 00000000..9a19c6fc Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00071.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00072.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00072.png new file mode 100644 index 00000000..a4e5c2bb Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00072.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00073.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00073.png new file mode 100644 index 00000000..ce148bd7 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00073.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00074.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00074.png new file mode 100644 index 00000000..c95ff511 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00074.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00075.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00075.png new file mode 100644 index 00000000..d20abe5c Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00075.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00076.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00076.png new file mode 100644 index 00000000..65f00ede Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00076.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00077.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00077.png new file mode 100644 index 00000000..3ba1804a Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00077.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00078.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00078.png new file mode 100644 index 00000000..26d6b92d Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00078.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00079.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00079.png new file mode 100644 index 00000000..6d00326c Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00079.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00080.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00080.png new file mode 100644 index 00000000..b10b8f8b Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00080.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00081.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00081.png new file mode 100644 index 00000000..9d5a9656 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00081.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00082.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00082.png new file mode 100644 index 00000000..ae22d4be Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00082.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00083.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00083.png new file mode 100644 index 00000000..33204965 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00083.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00084.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00084.png new file mode 100644 index 00000000..150926eb Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00084.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00085.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00085.png new file mode 100644 index 00000000..9e4e3dc0 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00085.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00086.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00086.png new file mode 100644 index 00000000..082b1706 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00086.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00087.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00087.png new file mode 100644 index 00000000..2fa26d15 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00087.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00088.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00088.png new file mode 100644 index 00000000..2af1160b Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00088.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00089.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00089.png new file mode 100644 index 00000000..27b26327 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00089.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00090.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00090.png new file mode 100644 index 00000000..81fe56d6 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00090.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00091.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00091.png new file mode 100644 index 00000000..c998fc55 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00091.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00092.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00092.png new file mode 100644 index 00000000..dfa82c81 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00092.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00093.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00093.png new file mode 100644 index 00000000..c172d293 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00093.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00094.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00094.png new file mode 100644 index 00000000..63968df4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00094.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00095.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00095.png new file mode 100644 index 00000000..9d6286cd Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00095.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00096.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00096.png new file mode 100644 index 00000000..bd05e27e Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00096.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00097.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00097.png new file mode 100644 index 00000000..63cb4e1a Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00097.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00098.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00098.png new file mode 100644 index 00000000..a6082a16 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00098.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00099.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00099.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00099.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00100.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00100.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00100.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00101.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00101.png new file mode 100644 index 00000000..d772bfad Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00101.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00102.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00102.png new file mode 100644 index 00000000..ee7f7795 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00102.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00103.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00103.png new file mode 100644 index 00000000..fc533c53 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00103.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00104.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00104.png new file mode 100644 index 00000000..bc3dcabd Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00104.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00105.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00105.png new file mode 100644 index 00000000..71355f78 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00105.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00106.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00106.png new file mode 100644 index 00000000..b4add7b4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00106.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00107.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00107.png new file mode 100644 index 00000000..58449d7d Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00107.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00108.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00108.png new file mode 100644 index 00000000..313ae41b Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00108.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00109.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00109.png new file mode 100644 index 00000000..3ffe0908 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00109.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00110.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00110.png new file mode 100644 index 00000000..4f847d36 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00110.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00111.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00111.png new file mode 100644 index 00000000..f4fe70e8 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00111.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00112.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00112.png new file mode 100644 index 00000000..371e3178 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00112.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00113.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00113.png new file mode 100644 index 00000000..4d9251ed Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00113.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00114.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00114.png new file mode 100644 index 00000000..138751a9 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00114.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00115.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00115.png new file mode 100644 index 00000000..797d01a6 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00115.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00116.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00116.png new file mode 100644 index 00000000..f29f31ab Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00116.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00117.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00117.png new file mode 100644 index 00000000..c0ca2eba Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00117.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00118.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00118.png new file mode 100644 index 00000000..a8967d46 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00118.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00119.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00119.png new file mode 100644 index 00000000..f7f31b2f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00119.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00120.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00120.png new file mode 100644 index 00000000..debe7db5 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00120.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00121.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00121.png new file mode 100644 index 00000000..6990f31b Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00121.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00122.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00122.png new file mode 100644 index 00000000..91da9597 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00122.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00123.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00123.png new file mode 100644 index 00000000..0d4d9707 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00123.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00124.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00124.png new file mode 100644 index 00000000..c7cedd83 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00124.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00125.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00125.png new file mode 100644 index 00000000..b8c55f6f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00125.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00126.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00126.png new file mode 100644 index 00000000..e35019fb Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00126.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00127.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00127.png new file mode 100644 index 00000000..1b07cbf0 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00127.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00128.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00128.png new file mode 100644 index 00000000..9fa9c73b Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00128.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00129.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00129.png new file mode 100644 index 00000000..6e9d7010 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00129.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00130.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00130.png new file mode 100644 index 00000000..2306a920 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00130.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00131.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00131.png new file mode 100644 index 00000000..44da28c4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00131.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00132.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00132.png new file mode 100644 index 00000000..e1e1b3c6 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00132.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00133.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00133.png new file mode 100644 index 00000000..1d1850e9 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00133.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00134.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00134.png new file mode 100644 index 00000000..ae9602e6 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00134.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00135.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00135.png new file mode 100644 index 00000000..6729df2b Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00135.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00136.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00136.png new file mode 100644 index 00000000..b1b75749 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00136.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00137.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00137.png new file mode 100644 index 00000000..f606eb59 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00137.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00138.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00138.png new file mode 100644 index 00000000..f51df038 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00138.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00139.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00139.png new file mode 100644 index 00000000..35398d24 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00139.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00140.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00140.png new file mode 100644 index 00000000..2764e610 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00140.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00141.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00141.png new file mode 100644 index 00000000..1a4832f9 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00141.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00142.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00142.png new file mode 100644 index 00000000..c38ef5a7 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00142.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00143.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00143.png new file mode 100644 index 00000000..c62b12e6 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00143.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00144.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00144.png new file mode 100644 index 00000000..b496b924 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00144.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00145.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00145.png new file mode 100644 index 00000000..a597ef63 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00145.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00146.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00146.png new file mode 100644 index 00000000..8f7222e7 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00146.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00147.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00147.png new file mode 100644 index 00000000..a9d94d00 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00147.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00148.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00148.png new file mode 100644 index 00000000..74f5f828 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00148.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00149.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00149.png new file mode 100644 index 00000000..d717cf7c Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00149.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00150.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00150.png new file mode 100644 index 00000000..d06c52e6 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00150.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00151.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00151.png new file mode 100644 index 00000000..99a19508 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00151.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00152.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00152.png new file mode 100644 index 00000000..f20ca5c8 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00152.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00153.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00153.png new file mode 100644 index 00000000..0895b033 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00153.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00154.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00154.png new file mode 100644 index 00000000..524d9487 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00154.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00155.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00155.png new file mode 100644 index 00000000..fd856b95 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00155.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00156.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00156.png new file mode 100644 index 00000000..b958f30f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00156.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00157.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00157.png new file mode 100644 index 00000000..4188c4d7 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00157.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00158.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00158.png new file mode 100644 index 00000000..f42d5cea Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00158.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00159.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00159.png new file mode 100644 index 00000000..c886e8e1 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00159.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00160.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00160.png new file mode 100644 index 00000000..ac2fb350 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00160.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00161.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00161.png new file mode 100644 index 00000000..8e6aa59d Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00161.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00162.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00162.png new file mode 100644 index 00000000..c1e04132 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00162.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00163.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00163.png new file mode 100644 index 00000000..55e71816 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00163.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00164.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00164.png new file mode 100644 index 00000000..d2dc36c3 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00164.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00165.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00165.png new file mode 100644 index 00000000..1867050a Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00165.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00166.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00166.png new file mode 100644 index 00000000..26b27f3c Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00166.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00167.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00167.png new file mode 100644 index 00000000..adac07b4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00167.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00168.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00168.png new file mode 100644 index 00000000..9e65c8b4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00168.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00169.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00169.png new file mode 100644 index 00000000..eb431fb9 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00169.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00170.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00170.png new file mode 100644 index 00000000..a7e7496e Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00170.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00171.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00171.png new file mode 100644 index 00000000..894950af Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00171.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00172.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00172.png new file mode 100644 index 00000000..ebccf4e6 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00172.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00173.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00173.png new file mode 100644 index 00000000..0cb02019 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00173.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00174.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00174.png new file mode 100644 index 00000000..47a1a4b2 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00174.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00175.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00175.png new file mode 100644 index 00000000..821b3b9c Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00175.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00176.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00176.png new file mode 100644 index 00000000..70e99eb1 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00176.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00177.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00177.png new file mode 100644 index 00000000..684523e0 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00177.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00178.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00178.png new file mode 100644 index 00000000..04b67d5f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00178.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00179.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00179.png new file mode 100644 index 00000000..13c97d04 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00179.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00180.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00180.png new file mode 100644 index 00000000..51e202cf Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00180.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00181.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00181.png new file mode 100644 index 00000000..3533b98d Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00181.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00182.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00182.png new file mode 100644 index 00000000..6afa2821 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00182.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00183.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00183.png new file mode 100644 index 00000000..8c527ee5 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00183.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00184.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00184.png new file mode 100644 index 00000000..3dcffb43 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00184.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00185.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00185.png new file mode 100644 index 00000000..aa784419 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00185.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00186.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00186.png new file mode 100644 index 00000000..0be30361 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00186.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00187.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00187.png new file mode 100644 index 00000000..bc2ae5ca Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00187.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00188.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00188.png new file mode 100644 index 00000000..045688d7 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00188.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00189.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00189.png new file mode 100644 index 00000000..42914612 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00189.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00190.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00190.png new file mode 100644 index 00000000..c46a0821 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00190.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00191.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00191.png new file mode 100644 index 00000000..95968e91 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00191.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00192.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00192.png new file mode 100644 index 00000000..89b43ee6 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00192.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00193.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00193.png new file mode 100644 index 00000000..f03ce4c5 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00193.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00194.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00194.png new file mode 100644 index 00000000..519076f5 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00194.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00195.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00195.png new file mode 100644 index 00000000..f83b8bc7 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00195.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00196.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00196.png new file mode 100644 index 00000000..978c9783 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00196.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00197.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00197.png new file mode 100644 index 00000000..86051c5c Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00197.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00198.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00198.png new file mode 100644 index 00000000..03fa586b Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00198.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00199.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00199.png new file mode 100644 index 00000000..71f62ec9 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00199.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00200.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00200.png new file mode 100644 index 00000000..62d137cb Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00200.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00201.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00201.png new file mode 100644 index 00000000..a598a14b Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00201.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00202.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00202.png new file mode 100644 index 00000000..7f37d7d2 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00202.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00203.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00203.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00203.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00204.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00204.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_ascii_ok/00204.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00000.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00000.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00000.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00001.png new file mode 100644 index 00000000..d885fe67 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00002.png new file mode 100644 index 00000000..b621cda4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00003.png new file mode 100644 index 00000000..3fd7edaf Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00004.png new file mode 100644 index 00000000..6b36d093 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00005.png new file mode 100644 index 00000000..b621cda4 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00005.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00006.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00006.png new file mode 100644 index 00000000..8e568ae3 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00006.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00007.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00007.png new file mode 100644 index 00000000..9f6637dd Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00007.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00008.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00008.png new file mode 100644 index 00000000..c00dba11 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00008.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00009.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00009.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00009.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00000.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00000.png new file mode 100644 index 00000000..21398f44 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00000.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00001.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00001.png new file mode 100644 index 00000000..0238e26d Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00001.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00002.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00002.png new file mode 100644 index 00000000..e21219f2 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00002.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00003.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00003.png new file mode 100644 index 00000000..7576d88b Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00003.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00004.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00004.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00004.png differ diff --git a/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00005.png b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00005.png new file mode 100644 index 00000000..890ae49f Binary files /dev/null and b/tests/python/snapshots/nanox/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00005.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png index 6d46c1cf..1a9c03bd 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_ok_2/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png index 6e843d1f..f147a524 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_ok_2/00002.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_ok_2/00006.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_ok_2/00006.png index a63aad0d..c6586bd4 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_ok_2/00006.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_ok_2/00006.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png index 6d46c1cf..1a9c03bd 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_refused_2/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png index 6e843d1f..f147a524 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_refused_2/00002.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_refused_2/00007.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_refused_2/00007.png index a63aad0d..c6586bd4 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_refused_2/00007.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_expert_refused_2/00007.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_ok/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_ok/00001.png index 40674d03..a3370bcd 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_ok/00001.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_ok/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_refused/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_refused/00001.png index 40674d03..a3370bcd 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_refused/00001.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_ascii_refused/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png index 94825770..06a4aab0 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_ok_3/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png index f0e1beba..3eddfc6d 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_ok_3/00002.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png index 94825770..06a4aab0 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_refused_3/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png index f0e1beba..3eddfc6d 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_expert_refused_3/00002.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_ok_2/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_ok_2/00001.png index ba80f1cb..f86bba15 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_ok_2/00001.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_ok_2/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_refused_2/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_refused_2/00001.png index ba80f1cb..f86bba15 100644 Binary files a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_refused_2/00001.png and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_utf8_refused_2/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00000.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00000.png new file mode 100644 index 00000000..c6586bd4 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00000.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00001.png new file mode 100644 index 00000000..ca6a8171 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00002.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00002.png new file mode 100644 index 00000000..600222ba Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00002.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00003.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00003.png new file mode 100644 index 00000000..c6586bd4 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_1/00003.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00000.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00000.png new file mode 100644 index 00000000..33aafe11 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00000.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00001.png new file mode 100644 index 00000000..639c3f24 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00002.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00002.png new file mode 100644 index 00000000..f0e1beba Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00002.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00003.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00003.png new file mode 100644 index 00000000..c26115c5 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00003.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00004.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00004.png new file mode 100644 index 00000000..cfee3aec Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00004.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00005.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00005.png new file mode 100644 index 00000000..c6586bd4 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_message_with_app_domain_utf8_ok_2/00005.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00000.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00000.png new file mode 100644 index 00000000..43cd25f3 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00000.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00001.png new file mode 100644 index 00000000..b198953a Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00002.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00002.png new file mode 100644 index 00000000..cfc47bf0 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00002.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00003.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00003.png new file mode 100644 index 00000000..cfee3aec Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00003.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00004.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00004.png new file mode 100644 index 00000000..c6586bd4 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_ascii_ok/00004.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00000.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00000.png new file mode 100644 index 00000000..c6586bd4 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00000.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00001.png new file mode 100644 index 00000000..ca6a8171 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00002.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00002.png new file mode 100644 index 00000000..600222ba Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00002.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00003.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00003.png new file mode 100644 index 00000000..c6586bd4 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_1/00003.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00000.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00000.png new file mode 100644 index 00000000..43cd25f3 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00000.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00001.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00001.png new file mode 100644 index 00000000..2133fbae Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00001.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00002.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00002.png new file mode 100644 index 00000000..cfc47bf0 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00002.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00003.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00003.png new file mode 100644 index 00000000..cfee3aec Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00003.png differ diff --git a/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00004.png b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00004.png new file mode 100644 index 00000000..c6586bd4 Binary files /dev/null and b/tests/python/snapshots/stax/test_ledger_sign_offchain_very_long_message_utf8_ok_2/00004.png differ diff --git a/tests/python/test_solana.py b/tests/python/test_solana.py index e48895ea..1d5d679f 100644 --- a/tests/python/test_solana.py +++ b/tests/python/test_solana.py @@ -1,11 +1,14 @@ from ragger.backend import RaisePolicy from ragger.utils import RAPDU +from ragger.error import ExceptionRAPDU from .apps.solana import SolanaClient, ErrorType from .apps.solana_cmd_builder import SystemInstructionTransfer, Message, verify_signature, OffchainMessage from .apps.solana_utils import FOREIGN_PUBLIC_KEY, FOREIGN_PUBLIC_KEY_2, AMOUNT, AMOUNT_2, SOL_PACKED_DERIVATION_PATH, SOL_PACKED_DERIVATION_PATH_2, ROOT_SCREENSHOT_PATH -from .apps.solana_utils import enable_blind_signing, enable_expert_mode +from .apps.solana_utils import enable_blind_signing, enable_expert_mode, LONG_VALID_ASCII, LONG_VALID_UTF8 +import random +import string class TestGetPublicKey: @@ -81,7 +84,21 @@ def test_ledger_sign_offchain_message_ascii_ok(self, backend, scenario_navigator sol = SolanaClient(backend) from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) - offchain_message: OffchainMessage = OffchainMessage(0, b"Test message") + offchain_message: OffchainMessage = OffchainMessage(0, b"Test message", from_public_key) + message: bytes = offchain_message.serialize() + + with sol.send_async_sign_offchain_message(SOL_PACKED_DERIVATION_PATH, message): + scenario_navigator.review_approve(path=ROOT_SCREENSHOT_PATH) + + signature: bytes = sol.get_async_response().data + verify_signature(from_public_key, message, signature) + + + def test_ledger_sign_offchain_very_long_message_ascii_ok(self, backend, scenario_navigator): + sol = SolanaClient(backend) + from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) + + offchain_message: OffchainMessage = OffchainMessage(0, LONG_VALID_ASCII, from_public_key) message: bytes = offchain_message.serialize() with sol.send_async_sign_offchain_message(SOL_PACKED_DERIVATION_PATH, message): @@ -94,7 +111,8 @@ def test_ledger_sign_offchain_message_ascii_ok(self, backend, scenario_navigator def test_ledger_sign_offchain_message_ascii_refused(self, backend, scenario_navigator): sol = SolanaClient(backend) - offchain_message: OffchainMessage = OffchainMessage(0, b"Test message") + from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) + offchain_message: OffchainMessage = OffchainMessage(0, b"Test message", from_public_key) message: bytes = offchain_message.serialize() backend.raise_policy = RaisePolicy.RAISE_NOTHING @@ -104,6 +122,23 @@ def test_ledger_sign_offchain_message_ascii_refused(self, backend, scenario_navi rapdu: RAPDU = sol.get_async_response() assert rapdu.status == ErrorType.USER_CANCEL + def test_ledger_sign_offchain_message_ascii_message_too_long(self, backend, scenario_navigator): + sol = SolanaClient(backend) + from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) + + INVALID_LONG_MESSAGE = ''.join(random.choices(string.ascii_letters, k=32*1024)) + INVALID_LONG_MESSAGE = INVALID_LONG_MESSAGE.encode("ascii") + + offchain_message: OffchainMessage = OffchainMessage(0, INVALID_LONG_MESSAGE, from_public_key) + message: bytes = offchain_message.serialize() + + try: + with sol.send_async_sign_offchain_message(SOL_PACKED_DERIVATION_PATH, message): + pass + assert False, "Ledger accepted too long message" + except ExceptionRAPDU as e: + assert e.status == ErrorType.SOLANA_INVALID_MESSAGE_SIZE + def test_ledger_sign_offchain_message_ascii_expert_ok(self, backend, scenario_navigator, navigator, test_name): enable_expert_mode(navigator, backend.firmware, test_name + "_1") @@ -111,7 +146,7 @@ def test_ledger_sign_offchain_message_ascii_expert_ok(self, backend, scenario_na sol = SolanaClient(backend) from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) - offchain_message: OffchainMessage = OffchainMessage(0, b"Test message") + offchain_message: OffchainMessage = OffchainMessage(0, b"Test message", from_public_key) message: bytes = offchain_message.serialize() with sol.send_async_sign_offchain_message(SOL_PACKED_DERIVATION_PATH, message): @@ -125,8 +160,9 @@ def test_ledger_sign_offchain_message_ascii_expert_refused(self, backend, scenar enable_expert_mode(navigator, backend.firmware, test_name + "_1") sol = SolanaClient(backend) + from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) - offchain_message: OffchainMessage = OffchainMessage(0, b"Test message") + offchain_message: OffchainMessage = OffchainMessage(0, b"Test message",from_public_key) message: bytes = offchain_message.serialize() backend.raise_policy = RaisePolicy.RAISE_NOTHING @@ -143,7 +179,63 @@ def test_ledger_sign_offchain_message_utf8_ok(self, backend, scenario_navigator, sol = SolanaClient(backend) from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) - offchain_message: OffchainMessage = OffchainMessage(0, bytes("Тестовое сообщение", 'utf-8')) + offchain_message: OffchainMessage = OffchainMessage(0, bytes("Тестовое сообщение", 'utf-8'), from_public_key) + message: bytes = offchain_message.serialize() + + with sol.send_async_sign_offchain_message(SOL_PACKED_DERIVATION_PATH, message): + scenario_navigator.review_approve(path=ROOT_SCREENSHOT_PATH, test_name=test_name + "_2") + + signature: bytes = sol.get_async_response().data + verify_signature(from_public_key, message, signature) + + + def test_ledger_sign_offchain_very_long_message_utf8_ok(self, backend, scenario_navigator, navigator, test_name): + enable_blind_signing(navigator, backend.firmware, test_name + "_1") + + sol = SolanaClient(backend) + from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) + + # Decode to a UTF-8 string, ignoring invalid characters + VALID_LONG_MESSAGE = LONG_VALID_UTF8.encode("utf-8") + + offchain_message: OffchainMessage = OffchainMessage(0, VALID_LONG_MESSAGE, from_public_key) + message: bytes = offchain_message.serialize() + + with sol.send_async_sign_offchain_message(SOL_PACKED_DERIVATION_PATH, message): + scenario_navigator.review_approve(path=ROOT_SCREENSHOT_PATH, test_name=test_name + "_2") + + signature: bytes = sol.get_async_response().data + verify_signature(from_public_key, message, signature) + + + def test_ledger_sign_offchain_message_utf8_message_too_long(self, backend, scenario_navigator): + sol = SolanaClient(backend) + from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) + + # Generate 2048 random bytes + random_bytes = bytes(random.randint(0, 255) for _ in range(32*1024)) + + # Decode to a UTF-8 string, ignoring invalid characters + INVALID_LONG_MESSAGE = random_bytes.decode("utf-8", errors="ignore").encode("utf-8") + + offchain_message: OffchainMessage = OffchainMessage(0, INVALID_LONG_MESSAGE, from_public_key) + message: bytes = offchain_message.serialize() + + try: + with sol.send_async_sign_offchain_message(SOL_PACKED_DERIVATION_PATH, message): + pass + assert False, "Ledger accepted too long message" + except ExceptionRAPDU as e: + assert e.status == ErrorType.SOLANA_INVALID_MESSAGE_SIZE + + + def test_ledger_sign_offchain_message_with_app_domain_utf8_ok(self, backend, scenario_navigator, navigator, test_name): + enable_blind_signing(navigator, backend.firmware, test_name + "_1") + + sol = SolanaClient(backend) + from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) + + offchain_message: OffchainMessage = OffchainMessage(0, bytes("Tęśtową wiądómóścią", 'utf-8'), from_public_key, b"My Candy App") message: bytes = offchain_message.serialize() with sol.send_async_sign_offchain_message(SOL_PACKED_DERIVATION_PATH, message): @@ -157,8 +249,9 @@ def test_ledger_sign_offchain_message_utf8_refused(self, backend, scenario_navig enable_blind_signing(navigator, backend.firmware, test_name + "_1") sol = SolanaClient(backend) + from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) - offchain_message: OffchainMessage = OffchainMessage(0, bytes("Тестовое сообщение", 'utf-8')) + offchain_message: OffchainMessage = OffchainMessage(0, bytes("Тестовое сообщение", 'utf-8'), from_public_key) message: bytes = offchain_message.serialize() backend.raise_policy = RaisePolicy.RAISE_NOTHING @@ -176,7 +269,7 @@ def test_ledger_sign_offchain_message_utf8_expert_ok(self, backend, scenario_nav sol = SolanaClient(backend) from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) - offchain_message: OffchainMessage = OffchainMessage(0, bytes("Тестовое сообщение", 'utf-8')) + offchain_message: OffchainMessage = OffchainMessage(0, bytes("Тестовое сообщение", 'utf-8'), from_public_key) message: bytes = offchain_message.serialize() with sol.send_async_sign_offchain_message(SOL_PACKED_DERIVATION_PATH, message): @@ -191,8 +284,9 @@ def test_ledger_sign_offchain_message_utf8_expert_refused(self, backend, scenari enable_expert_mode(navigator, backend.firmware, test_name + "_2") sol = SolanaClient(backend) + from_public_key = sol.get_public_key(SOL_PACKED_DERIVATION_PATH) - offchain_message: OffchainMessage = OffchainMessage(0, bytes("Тестовое сообщение", 'utf-8')) + offchain_message: OffchainMessage = OffchainMessage(0, bytes("Тестовое сообщение", 'utf-8'),from_public_key) message: bytes = offchain_message.serialize() backend.raise_policy = RaisePolicy.RAISE_NOTHING @@ -390,4 +484,4 @@ def test_solana_trusted_name_create(self, backend, scenario_navigator): with sol.send_async_sign_message(SOL.SOL_PACKED_DERIVATION_PATH, message): scenario_navigator.review_approve(path=ROOT_SCREENSHOT_PATH) signature: bytes = sol.get_async_response().data - verify_signature(SOL.OWNED_PUBLIC_KEY, message, signature) + verify_signature(SOL.OWNED_PUBLIC_KEY, message, signature) \ No newline at end of file