diff --git a/CHANGELOG.md b/CHANGELOG.md index 52ee37482..c1d1bf415 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [1.11.2](https://github.com/ledgerhq/app-ethereum/compare/1.11.1...1.11.2) - 2024-08-13 + +### Added + +- Blind-signing setting + +### Changed + +- Simplified blind-signing warnings on Flex & Stax +- Restored blind-signing warning screen from < 1.11.0 on Nano devices + ## [1.11.1](https://github.com/ledgerhq/app-ethereum/compare/1.11.0...1.11.1) - 2024-07-26 ### Fixed @@ -38,6 +49,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - Ledger Flex support ### Removed + - (clone) Flare - (clone) Flare Coston - (clone) Eth Goerli diff --git a/Makefile b/Makefile index 26c380864..55a7e2610 100644 --- a/Makefile +++ b/Makefile @@ -159,7 +159,6 @@ DISABLE_STANDARD_APP_FILES = 1 ######################################## DEFINES += CHAINID_COINNAME=\"$(TICKER)\" CHAIN_ID=$(CHAIN_ID) -DEFINES += BUILD_YEAR=\"$(shell date +%Y)\" # Enabled Features # include makefile_conf/features.mk diff --git a/client/src/ledger_app_clients/ethereum/settings.py b/client/src/ledger_app_clients/ethereum/settings.py index 5e452a0ca..3edd31e79 100644 --- a/client/src/ledger_app_clients/ethereum/settings.py +++ b/client/src/ledger_app_clients/ethereum/settings.py @@ -5,22 +5,25 @@ class SettingID(Enum): + BLIND_SIGNING = auto() VERBOSE_ENS = auto() - VERBOSE_EIP712 = auto() NONCE = auto() + VERBOSE_EIP712 = auto() DEBUG_DATA = auto() def get_device_settings(firmware: Firmware) -> list[SettingID]: if firmware == Firmware.NANOS: return [ + SettingID.BLIND_SIGNING, SettingID.NONCE, SettingID.DEBUG_DATA, ] return [ + SettingID.BLIND_SIGNING, SettingID.VERBOSE_ENS, - SettingID.VERBOSE_EIP712, SettingID.NONCE, + SettingID.VERBOSE_EIP712, SettingID.DEBUG_DATA, ] diff --git a/src/common_ui.h b/src/common_ui.h index 97dabad7a..677863d47 100644 --- a/src/common_ui.h +++ b/src/common_ui.h @@ -5,7 +5,8 @@ #include void ui_idle(void); -void ui_warning_contract_data(void); +void ui_warning_blind_signing(void); +void ui_error_blind_signing(void); void ui_display_public_eth2(void); void ui_display_privacy_public_key(void); void ui_display_privacy_shared_secret(void); diff --git a/src/handle_swap_sign_transaction.c b/src/handle_swap_sign_transaction.c index 107365d4b..2ea314af7 100644 --- a/src/handle_swap_sign_transaction.c +++ b/src/handle_swap_sign_transaction.c @@ -95,10 +95,8 @@ void __attribute__((noreturn)) handle_swap_sign_transaction(const chain_config_t if (N_storage.initialized != 0x01) { internalStorage_t storage; - storage.contractDetails = 0x00; - storage.initialized = 0x01; - storage.displayNonce = 0x00; - storage.contractDetails = 0x00; + explicit_bzero(&storage, sizeof(storage)); + storage.initialized = true; nvm_write((void*) &N_storage, (void*) &storage, sizeof(internalStorage_t)); } diff --git a/src/main.c b/src/main.c index 8478e0d68..c115af24f 100644 --- a/src/main.c +++ b/src/main.c @@ -557,14 +557,7 @@ __attribute__((noreturn)) void coin_main(libargs_t *args) { if (!N_storage.initialized) { internalStorage_t storage; - storage.contractDetails = false; - storage.displayNonce = false; -#ifdef HAVE_EIP712_FULL_SUPPORT - storage.verbose_eip712 = false; -#endif -#ifdef HAVE_DOMAIN_NAME - storage.verbose_domain_name = false; -#endif + explicit_bzero(&storage, sizeof(storage)); storage.initialized = true; nvm_write((void *) &N_storage, (void *) &storage, sizeof(internalStorage_t)); } diff --git a/src/shared_context.h b/src/shared_context.h index 9208b0dc2..dfde37f12 100644 --- a/src/shared_context.h +++ b/src/shared_context.h @@ -30,6 +30,7 @@ typedef struct bip32_path_t { } bip32_path_t; typedef struct internalStorage_t { + bool dataAllowed; bool contractDetails; bool displayNonce; #ifdef HAVE_EIP712_FULL_SUPPORT diff --git a/src/ui_callbacks.h b/src/ui_callbacks.h index ed6a41edd..bd933c471 100644 --- a/src/ui_callbacks.h +++ b/src/ui_callbacks.h @@ -21,6 +21,4 @@ unsigned int io_seproxyhal_touch_eth2_address_ok(const bagl_element_t *e); unsigned int io_seproxyhal_touch_privacy_ok(const bagl_element_t *e); unsigned int io_seproxyhal_touch_privacy_cancel(const bagl_element_t *e); -void ui_warning_contract_data(void); - void io_seproxyhal_send_status(uint32_t sw); diff --git a/src_bagl/common_ui.c b/src_bagl/common_ui.c index 044df68b6..80645a360 100644 --- a/src_bagl/common_ui.c +++ b/src_bagl/common_ui.c @@ -12,8 +12,12 @@ void ui_idle(void) { ux_flow_init(0, ux_idle_flow, NULL); } -void ui_warning_contract_data(void) { - ux_flow_init(0, ux_blind_signing_flow, NULL); +void ui_error_blind_signing(void) { + ux_flow_init(0, ux_error_blind_signing_flow, NULL); +} + +void ui_warning_blind_signing(void) { + ux_flow_init(0, ux_warning_blind_signing_flow, NULL); } void ui_display_public_eth2(void) { diff --git a/src_bagl/ui_flow.c b/src_bagl/ui_flow.c index 823a2360f..53a57ddd0 100644 --- a/src_bagl/ui_flow.c +++ b/src_bagl/ui_flow.c @@ -10,22 +10,24 @@ // Reuse the strings.common.fullAmount buffer for settings displaying. // No risk of collision as this buffer is unused in the settings menu -#define SETTING_VERBOSE_DOMAIN_NAME_STATE (strings.common.fullAmount + (BUF_INCREMENT * 0)) -#define SETTING_VERBOSE_EIP712_STATE (strings.common.fullAmount + (BUF_INCREMENT * 1)) +#define SETTING_BLIND_SIGNING_STATE (strings.common.fullAmount + (BUF_INCREMENT * 0)) +#define SETTING_VERBOSE_DOMAIN_NAME_STATE (strings.common.fullAmount + (BUF_INCREMENT * 1)) #define SETTING_DISPLAY_NONCE_STATE (strings.common.fullAmount + (BUF_INCREMENT * 2)) -#define SETTING_DISPLAY_DATA_STATE (strings.common.fullAmount + (BUF_INCREMENT * 3)) +#define SETTING_VERBOSE_EIP712_STATE (strings.common.fullAmount + (BUF_INCREMENT * 3)) +#define SETTING_DISPLAY_DATA_STATE (strings.common.fullAmount + (BUF_INCREMENT * 4)) #define BOOL_TO_STATE_STR(b) (b ? ENABLED_STR : DISABLED_STR) static void display_settings(const ux_flow_step_t* const start_step); +static void switch_settings_blind_signing(void); +#ifdef HAVE_DOMAIN_NAME +static void switch_settings_verbose_domain_name(void); +#endif // HAVE_DOMAIN_NAME static void switch_settings_display_data(void); static void switch_settings_display_nonce(void); #ifdef HAVE_EIP712_FULL_SUPPORT static void switch_settings_verbose_eip712(void); #endif // HAVE_EIP712_FULL_SUPPORT -#ifdef HAVE_DOMAIN_NAME -static void switch_settings_verbose_domain_name(void); -#endif // HAVE_DOMAIN_NAME ////////////////////////////////////////////////////////////////////// // clang-format off @@ -70,6 +72,26 @@ UX_FLOW(ux_idle_flow, FLOW_LOOP); // clang-format off +UX_STEP_CB( + ux_settings_flow_blind_signing_step, +#ifdef TARGET_NANOS + bnnn_paging, +#else + bnnn, +#endif + switch_settings_blind_signing(), + { +#ifdef TARGET_NANOS + .title = "Blind signing", + .text = +#else + "Blind signing", + "Enables transaction", + "blind signing", +#endif + SETTING_BLIND_SIGNING_STATE + }); + #ifdef HAVE_DOMAIN_NAME UX_STEP_CB( ux_settings_flow_verbose_domain_name_step, @@ -83,19 +105,6 @@ UX_STEP_CB( }); #endif // HAVE_DOMAIN_NAME -#ifdef HAVE_EIP712_FULL_SUPPORT -UX_STEP_CB( - ux_settings_flow_verbose_eip712_step, - bnnn, - switch_settings_verbose_eip712(), - { - "Raw messages", - "Displays raw content", - "from EIP712 messages", - SETTING_VERBOSE_EIP712_STATE - }); -#endif // HAVE_EIP712_FULL_SUPPORT - UX_STEP_CB( ux_settings_flow_display_nonce_step, #ifdef TARGET_NANOS @@ -116,6 +125,19 @@ UX_STEP_CB( SETTING_DISPLAY_NONCE_STATE }); +#ifdef HAVE_EIP712_FULL_SUPPORT +UX_STEP_CB( + ux_settings_flow_verbose_eip712_step, + bnnn, + switch_settings_verbose_eip712(), + { + "Raw messages", + "Displays raw content", + "from EIP712 messages", + SETTING_VERBOSE_EIP712_STATE + }); +#endif // HAVE_EIP712_FULL_SUPPORT + UX_STEP_CB( ux_settings_flow_display_data_step, #ifdef TARGET_NANOS @@ -147,17 +169,19 @@ UX_STEP_CB( // clang-format on UX_FLOW(ux_settings_flow, + &ux_settings_flow_blind_signing_step, #ifdef HAVE_DOMAIN_NAME &ux_settings_flow_verbose_domain_name_step, #endif // HAVE_DOMAIN_NAME + &ux_settings_flow_display_nonce_step, #ifdef HAVE_EIP712_FULL_SUPPORT &ux_settings_flow_verbose_eip712_step, #endif // HAVE_EIP712_FULL_SUPPORT - &ux_settings_flow_display_nonce_step, &ux_settings_flow_display_data_step, &ux_settings_flow_back_step); static void display_settings(const ux_flow_step_t* const start_step) { + strlcpy(SETTING_BLIND_SIGNING_STATE, BOOL_TO_STATE_STR(N_storage.dataAllowed), BUF_INCREMENT); strlcpy(SETTING_DISPLAY_DATA_STATE, BOOL_TO_STATE_STR(N_storage.contractDetails), BUF_INCREMENT); @@ -182,6 +206,10 @@ static void toggle_setting(volatile bool* setting, const ux_flow_step_t* ui_step display_settings(ui_step); } +static void switch_settings_blind_signing(void) { + toggle_setting(&N_storage.dataAllowed, &ux_settings_flow_blind_signing_step); +} + static void switch_settings_display_data(void) { toggle_setting(&N_storage.contractDetails, &ux_settings_flow_display_data_step); } @@ -204,76 +232,46 @@ static void switch_settings_verbose_domain_name(void) { ////////////////////////////////////////////////////////////////////// // clang-format off -UX_STEP_NOCB( - ux_blind_signing_warning_step, - pbb, - { - &C_icon_warning, #ifdef TARGET_NANOS - "Transaction", - "not trusted", -#else - "This transaction", - "cannot be trusted", -#endif - }); -#ifndef TARGET_NANOS -UX_STEP_NOCB( - ux_blind_signing_text1_step, - nnnn, +UX_STEP_CB( + ux_error_blind_signing_step, + bnnn_paging, + ui_idle(), { - "Your Ledger cannot", - "decode this", - "transaction. If you", - "sign it, you could", + "Error", + "Blind signing must be enabled in Settings", }); -UX_STEP_NOCB( - ux_blind_signing_text2_step, - nnnn, +#else +UX_STEP_CB( + ux_error_blind_signing_step, + pnn, + ui_idle(), { - "be authorizing", - "malicious actions", - "that can drain your", - "wallet.", + &C_icon_crossmark, + "Blind signing must be", + "enabled in Settings", }); #endif + UX_STEP_NOCB( - ux_blind_signing_link_step, - nn, - { - "Learn more:", - "ledger.com/e8", - }); -UX_STEP_CB( - ux_blind_signing_accept_step, + ux_warning_blind_signing_warn_step, pbb, - start_signature_flow(), { - &C_icon_validate_14, -#ifdef TARGET_NANOS - "Accept risk", - "and review", -#else - "Accept risk and", - "review transaction", -#endif - }); -UX_STEP_CB( - ux_blind_signing_reject_step, - pb, - report_finalize_error(), - { - &C_icon_crossmark, - "Reject", + &C_icon_warning, + "Blind", + "signing", }); +UX_STEP_INIT( + ux_warning_blind_signing_jump_step, + NULL, + NULL, + { + start_signature_flow(); + } +); // clang-format on -UX_FLOW(ux_blind_signing_flow, - &ux_blind_signing_warning_step, -#ifndef TARGET_NANOS - &ux_blind_signing_text1_step, - &ux_blind_signing_text2_step, -#endif - &ux_blind_signing_link_step, - &ux_blind_signing_accept_step, - &ux_blind_signing_reject_step); +UX_FLOW(ux_error_blind_signing_flow, &ux_error_blind_signing_step); +UX_FLOW(ux_warning_blind_signing_flow, + &ux_warning_blind_signing_warn_step, + &ux_warning_blind_signing_jump_step); diff --git a/src_bagl/ui_flow.h b/src_bagl/ui_flow.h index e3d427083..1bc3074b8 100644 --- a/src_bagl/ui_flow.h +++ b/src_bagl/ui_flow.h @@ -8,7 +8,9 @@ extern const ux_flow_step_t* const ux_idle_flow[]; -extern const ux_flow_step_t* const ux_blind_signing_flow[]; +extern const ux_flow_step_t* const ux_error_blind_signing_flow[]; + +extern const ux_flow_step_t* const ux_warning_blind_signing_flow[]; extern const ux_flow_step_t* const ux_settings_flow[]; diff --git a/src_bagl/ui_flow_signTx.c b/src_bagl/ui_flow_signTx.c index d32afe76c..f854eca7d 100644 --- a/src_bagl/ui_flow_signTx.c +++ b/src_bagl/ui_flow_signTx.c @@ -182,6 +182,15 @@ UX_STEP_CB( "Accept", "and send", }); +UX_STEP_CB( + ux_approval_accept_blind_step, + pbb, + io_seproxyhal_touch_tx_ok(NULL), + { + &C_icon_validate_14, + "Accept risk", + "and send", + }); UX_STEP_CB( ux_approval_reject_step, pb, @@ -198,14 +207,6 @@ UX_STEP_NOCB( .title = "Nonce", .text = strings.common.nonce, }); - -UX_STEP_NOCB(ux_approval_blind_signing_reminder_step, - pbb, - { - &C_icon_warning, - "You accepted", - "the risks", - }); // clang-format on const ux_flow_step_t *ux_approval_tx_flow[15]; @@ -256,10 +257,11 @@ void ux_approve_tx(bool fromPlugin) { } ux_approval_tx_flow[step++] = &ux_approval_fees_step; - if (!fromPlugin && tmpContent.txContent.dataPresent && !N_storage.contractDetails) { - ux_approval_tx_flow[step++] = &ux_approval_blind_signing_reminder_step; + if (tmpContent.txContent.dataPresent) { + ux_approval_tx_flow[step++] = &ux_approval_accept_blind_step; + } else { + ux_approval_tx_flow[step++] = &ux_approval_accept_step; } - ux_approval_tx_flow[step++] = &ux_approval_accept_step; ux_approval_tx_flow[step++] = &ux_approval_reject_step; ux_approval_tx_flow[step++] = FLOW_END_STEP; diff --git a/src_features/getAppConfiguration/cmd_getAppConfiguration.c b/src_features/getAppConfiguration/cmd_getAppConfiguration.c index 53f04eb89..8b137d503 100644 --- a/src_features/getAppConfiguration/cmd_getAppConfiguration.c +++ b/src_features/getAppConfiguration/cmd_getAppConfiguration.c @@ -12,7 +12,8 @@ void handleGetAppConfiguration(uint8_t p1, UNUSED(workBuffer); UNUSED(dataLength); UNUSED(flags); - G_io_apdu_buffer[0] = APP_FLAG_EXTERNAL_TOKEN_NEEDED; + G_io_apdu_buffer[0] = (N_storage.dataAllowed ? APP_FLAG_DATA_ALLOWED : 0x00); + G_io_apdu_buffer[0] |= APP_FLAG_EXTERNAL_TOKEN_NEEDED; G_io_apdu_buffer[1] = MAJOR_VERSION; G_io_apdu_buffer[2] = MINOR_VERSION; G_io_apdu_buffer[3] = PATCH_VERSION; diff --git a/src_features/signTx/logic_signTx.c b/src_features/signTx/logic_signTx.c index f9f8a8cdd..513f704ef 100644 --- a/src_features/signTx/logic_signTx.c +++ b/src_features/signTx/logic_signTx.c @@ -84,6 +84,11 @@ customStatus_e customProcessor(txContext_t *context) { uint32_t copySize; uint32_t fieldPos = context->currentFieldPos; if (fieldPos == 0) { // not reached if a plugin is available + if (!N_storage.dataAllowed) { + PRINTF("Data field forbidden\n"); + ui_error_blind_signing(); + return CUSTOM_FAULT; + } if (!N_storage.contractDetails) { return CUSTOM_NOT_HANDLED; } @@ -436,6 +441,12 @@ __attribute__((noinline)) static bool finalize_parsing_helper(void) { THROW(ERR_SILENT_MODE_CHECK_FAILED); } + if (tmpContent.txContent.dataPresent && !N_storage.dataAllowed) { + report_finalize_error(); + ui_error_blind_signing(); + return false; + } + // Prepare destination address and amount to display if (g_use_standard_ui) { // Format the address in a temporary buffer, if in swap case compare it with validated @@ -539,7 +550,7 @@ void finalizeParsing(void) { } else { // If blind-signing detected, start the warning flow beforehand if (tmpContent.txContent.dataPresent) { - ui_warning_contract_data(); + ui_warning_blind_signing(); } else { start_signature_flow(); } diff --git a/src_nbgl/ui_approve_tx.c b/src_nbgl/ui_approve_tx.c index 6b8b8ea4b..13aea2264 100644 --- a/src_nbgl/ui_approve_tx.c +++ b/src_nbgl/ui_approve_tx.c @@ -212,21 +212,14 @@ static void reviewCommon(void) { g_stax_shared_buffer + buf_size, reviewChoice); } else { - nbgl_useCaseReview(op, - &pairsList, - get_tx_icon(), - REVIEW("transaction"), - NULL, - SIGN("transaction"), - reviewChoice); - } -} - -void blind_confirm_cb(bool confirm) { - if (confirm) { - reviewCommon(); - } else { - reviewReject(); + nbgl_useCaseReview( + op, + &pairsList, + get_tx_icon(), + REVIEW("transaction"), + NULL, + tmpContent.txContent.dataPresent ? BLIND_SIGN("transaction") : SIGN("transaction"), + reviewChoice); } } diff --git a/src_nbgl/ui_blind_signing.c b/src_nbgl/ui_blind_signing.c new file mode 100644 index 000000000..14bcbe7f0 --- /dev/null +++ b/src_nbgl/ui_blind_signing.c @@ -0,0 +1,43 @@ +#include +#include "shared_context.h" +#include "ui_callbacks.h" +#include "feature_signTx.h" +#include "ui_nbgl.h" +#include "apdu_constants.h" + +static void ui_error_blind_signing_choice(bool confirm) { + if (confirm) { + ui_settings(); + } else { + ui_idle(); + } +} + +static void ui_warning_blind_signing_choice(bool confirm) { + if (confirm) { + reset_app_context(); + io_seproxyhal_send_status(APDU_RESPONSE_CONDITION_NOT_SATISFIED); + ui_idle(); + } else { + start_signature_flow(); + } +} + +void ui_error_blind_signing(void) { + nbgl_useCaseChoice(&C_Warning_64px, + "This transaction cannot be clear-signed", + "Enable blind signing in the settings to sign this transaction.", + "Go to settings", + "Reject transaction", + ui_error_blind_signing_choice); +} + +void ui_warning_blind_signing(void) { + nbgl_useCaseChoice(&C_Warning_64px, + "Blind signing ahead", + "This transaction's details are not fully verifiable. If you sign it, you " + "could lose all your assets.", + "Back to safety", + "Continue anyway", + ui_warning_blind_signing_choice); +} diff --git a/src_nbgl/ui_home.c b/src_nbgl/ui_home.c index 477123611..8c3accbc8 100644 --- a/src_nbgl/ui_home.c +++ b/src_nbgl/ui_home.c @@ -14,24 +14,26 @@ #define FORMAT_PLUGIN "This app enables clear\nsigning transactions for\nthe %s dApp." enum { - DEBUG_TOKEN = FIRST_USER_TOKEN, + BLIND_SIGNING_TOKEN = FIRST_USER_TOKEN, +#ifdef HAVE_DOMAIN_NAME + DOMAIN_NAME_VERBOSE_TOKEN, +#endif NONCE_TOKEN, #ifdef HAVE_EIP712_FULL_SUPPORT EIP712_VERBOSE_TOKEN, #endif -#ifdef HAVE_DOMAIN_NAME - DOMAIN_NAME_VERBOSE_TOKEN -#endif + DEBUG_TOKEN, }; enum { + BLIND_SIGNING_ID, #ifdef HAVE_DOMAIN_NAME DOMAIN_NAME_VERBOSE_ID, #endif + NONCE_ID, #ifdef HAVE_EIP712_FULL_SUPPORT EIP712_VERBOSE_ID, #endif - NONCE_ID, DEBUG_ID, SETTINGS_SWITCHES_NB }; @@ -54,30 +56,35 @@ static void setting_toggle_callback(int token, uint8_t index, int page) { bool value; switch (token) { - case DEBUG_TOKEN: - value = !N_storage.contractDetails; - switches[DEBUG_ID].initState = (nbgl_state_t) value; - nvm_write((void *) &N_storage.contractDetails, (void *) &value, sizeof(uint8_t)); + case BLIND_SIGNING_TOKEN: + value = !N_storage.dataAllowed; + switches[BLIND_SIGNING_ID].initState = (nbgl_state_t) value; + nvm_write((void *) &N_storage.dataAllowed, (void *) &value, sizeof(value)); + break; +#ifdef HAVE_DOMAIN_NAME + case DOMAIN_NAME_VERBOSE_TOKEN: + value = !N_storage.verbose_domain_name; + switches[DOMAIN_NAME_VERBOSE_ID].initState = (nbgl_state_t) value; + nvm_write((void *) &N_storage.verbose_domain_name, (void *) &value, sizeof(value)); break; +#endif // HAVE_DOMAIN_NAME case NONCE_TOKEN: value = !N_storage.displayNonce; switches[NONCE_ID].initState = (nbgl_state_t) value; - nvm_write((void *) &N_storage.displayNonce, (void *) &value, sizeof(uint8_t)); + nvm_write((void *) &N_storage.displayNonce, (void *) &value, sizeof(value)); break; #ifdef HAVE_EIP712_FULL_SUPPORT case EIP712_VERBOSE_TOKEN: value = !N_storage.verbose_eip712; switches[EIP712_VERBOSE_ID].initState = (nbgl_state_t) value; - nvm_write((void *) &N_storage.verbose_eip712, (void *) &value, sizeof(uint8_t)); + nvm_write((void *) &N_storage.verbose_eip712, (void *) &value, sizeof(value)); break; #endif // HAVE_EIP712_FULL_SUPPORT -#ifdef HAVE_DOMAIN_NAME - case DOMAIN_NAME_VERBOSE_TOKEN: - value = !N_storage.verbose_domain_name; - switches[DOMAIN_NAME_VERBOSE_ID].initState = (nbgl_state_t) value; - nvm_write((void *) &N_storage.verbose_domain_name, (void *) &value, sizeof(uint8_t)); + case DEBUG_TOKEN: + value = !N_storage.contractDetails; + switches[DEBUG_ID].initState = (nbgl_state_t) value; + nvm_write((void *) &N_storage.contractDetails, (void *) &value, sizeof(value)); break; -#endif // HAVE_DOMAIN_NAME } } @@ -107,8 +114,15 @@ const nbgl_icon_details_t *get_app_icon(bool caller_icon) { * * @param[in] appname given app name * @param[in] tagline given tagline (\ref NULL if default) + * @param[in] page to start on */ -static void prepare_and_display_home(const char *appname, const char *tagline) { +static void prepare_and_display_home(const char *appname, const char *tagline, uint8_t page) { + switches[BLIND_SIGNING_ID].initState = N_storage.dataAllowed ? ON_STATE : OFF_STATE; + switches[BLIND_SIGNING_ID].text = "Blind signing"; + switches[BLIND_SIGNING_ID].subText = "Enable transaction blind signing."; + switches[BLIND_SIGNING_ID].token = BLIND_SIGNING_TOKEN; + switches[BLIND_SIGNING_ID].tuneId = TUNE_TAP_CASUAL; + #ifdef HAVE_DOMAIN_NAME switches[DOMAIN_NAME_VERBOSE_ID].initState = N_storage.verbose_domain_name ? ON_STATE : OFF_STATE; @@ -118,6 +132,12 @@ static void prepare_and_display_home(const char *appname, const char *tagline) { switches[DOMAIN_NAME_VERBOSE_ID].tuneId = TUNE_TAP_CASUAL; #endif // HAVE_DOMAIN_NAME + switches[NONCE_ID].initState = N_storage.displayNonce ? ON_STATE : OFF_STATE; + switches[NONCE_ID].text = "Nonce"; + switches[NONCE_ID].subText = "Display nonce in transactions."; + switches[NONCE_ID].token = NONCE_TOKEN; + switches[NONCE_ID].tuneId = TUNE_TAP_CASUAL; + #ifdef HAVE_EIP712_FULL_SUPPORT switches[EIP712_VERBOSE_ID].initState = N_storage.verbose_eip712 ? ON_STATE : OFF_STATE; switches[EIP712_VERBOSE_ID].text = "Raw messages"; @@ -126,12 +146,6 @@ static void prepare_and_display_home(const char *appname, const char *tagline) { switches[EIP712_VERBOSE_ID].tuneId = TUNE_TAP_CASUAL; #endif // HAVE_EIP712_FULL_SUPPORT - switches[NONCE_ID].initState = N_storage.displayNonce ? ON_STATE : OFF_STATE; - switches[NONCE_ID].text = "Nonce"; - switches[NONCE_ID].subText = "Display nonce in transactions."; - switches[NONCE_ID].token = NONCE_TOKEN; - switches[NONCE_ID].tuneId = TUNE_TAP_CASUAL; - switches[DEBUG_ID].initState = N_storage.contractDetails ? ON_STATE : OFF_STATE; switches[DEBUG_ID].text = "Debug smart contracts"; switches[DEBUG_ID].subText = "Display contract data details."; @@ -154,7 +168,7 @@ static void prepare_and_display_home(const char *appname, const char *tagline) { nbgl_useCaseHomeAndSettings(appname, get_app_icon(true), tagline, - INIT_HOME_PAGE, + page, &settingContents, &infoList, NULL, @@ -162,24 +176,44 @@ static void prepare_and_display_home(const char *appname, const char *tagline) { } /** - * Go to home screen + * Get appname & tagline * * This function prepares the app name & tagline depending on how the application was called */ -void ui_idle(void) { - const char *appname = NULL; - const char *tagline = NULL; +static void get_appname_and_tagline(const char **appname, const char **tagline) { + uint64_t mainnet_chain_id; if (caller_app) { - appname = caller_app->name; + *appname = caller_app->name; if (caller_app->type == CALLER_TYPE_PLUGIN) { - snprintf(g_stax_shared_buffer, sizeof(g_stax_shared_buffer), FORMAT_PLUGIN, appname); - tagline = g_stax_shared_buffer; + snprintf(g_stax_shared_buffer, sizeof(g_stax_shared_buffer), FORMAT_PLUGIN, *appname); + *tagline = g_stax_shared_buffer; } } else { // Ethereum app - uint64_t mainnet_chain_id = ETHEREUM_MAINNET_CHAINID; - appname = get_network_name_from_chain_id(&mainnet_chain_id); + mainnet_chain_id = ETHEREUM_MAINNET_CHAINID; + *appname = get_network_name_from_chain_id(&mainnet_chain_id); } - prepare_and_display_home(appname, tagline); +} + +/** + * Go to home screen + */ +void ui_idle(void) { + const char *appname = NULL; + const char *tagline = NULL; + + get_appname_and_tagline(&appname, &tagline); + prepare_and_display_home(appname, tagline, INIT_HOME_PAGE); +} + +/** + * Go to settings screen + */ +void ui_settings(void) { + const char *appname = NULL; + const char *tagline = NULL; + + get_appname_and_tagline(&appname, &tagline); + prepare_and_display_home(appname, tagline, 0); } diff --git a/src_nbgl/ui_nbgl.h b/src_nbgl/ui_nbgl.h index d98331103..ad07dc31c 100644 --- a/src_nbgl/ui_nbgl.h +++ b/src_nbgl/ui_nbgl.h @@ -14,5 +14,6 @@ const nbgl_icon_details_t* get_app_icon(bool caller_icon); const nbgl_icon_details_t* get_tx_icon(void); void ui_idle(void); +void ui_settings(void); #endif // _UI_NBGL_H_ diff --git a/src_nbgl/ui_signing.h b/src_nbgl/ui_signing.h index e7b8f71a2..6595f1066 100644 --- a/src_nbgl/ui_signing.h +++ b/src_nbgl/ui_signing.h @@ -4,6 +4,7 @@ #define SIGN_BUTTON "Hold to sign" #define REJECT_BUTTON "Reject" #define SIGN(msg) "Sign " msg "?" +#define BLIND_SIGN(msg) "Accept risk and sign " msg "?" #define REVIEW(msg) "Review " msg #define REJECT(msg) "Reject " msg #define REJECT_QUESTION(msg) REJECT(msg) "?" diff --git a/src_nbgl/ui_warning_contract_data.c b/src_nbgl/ui_warning_contract_data.c deleted file mode 100644 index b4d1fb439..000000000 --- a/src_nbgl/ui_warning_contract_data.c +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include "shared_context.h" -#include "ui_callbacks.h" -#include "ui_nbgl.h" -#include "feature_signTx.h" - -static void ui_warning_contract_data_choice2(bool confirm) { - if (confirm) { - start_signature_flow(); - } else { - report_finalize_error(); - } -} - -static void ui_warning_contract_data_choice1(bool confirm) { - if (confirm) { - report_finalize_error(); - } else { - nbgl_useCaseChoice( - NULL, - "The transaction cannot be trusted", - "Your Ledger cannot decode this transaction. If you sign it, you could be authorizing " - "malicious actions that can drain your wallet.\n\nLearn more: ledger.com/e8", - "I accept the risk", - "Reject transaction", - ui_warning_contract_data_choice2); - } -} - -void ui_warning_contract_data(void) { - nbgl_useCaseChoice( - &C_Warning_64px, - "Security risk detected", - "It may not be safe to sign this transaction. To continue, you'll need to review the risk.", - "Back to safety", - "Review risk", - ui_warning_contract_data_choice1); -} diff --git a/tests/ragger/snapshots/flex/test_blind_sign_not_enabled_error/00000.png b/tests/ragger/snapshots/flex/test_blind_sign_not_enabled_error/00000.png new file mode 100644 index 000000000..24ce905e6 Binary files /dev/null and b/tests/ragger/snapshots/flex/test_blind_sign_not_enabled_error/00000.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_reject_in_risk_review/00002.png b/tests/ragger/snapshots/flex/test_blind_sign_not_enabled_error/00001.png similarity index 100% rename from tests/ragger/snapshots/flex/test_blind_sign_reject_in_risk_review/00002.png rename to tests/ragger/snapshots/flex/test_blind_sign_not_enabled_error/00001.png diff --git a/tests/ragger/snapshots/flex/test_blind_sign_reject_in_risk_review/00000.png b/tests/ragger/snapshots/flex/test_blind_sign_reject_in_risk_review/00000.png deleted file mode 100644 index 10188cdb7..000000000 Binary files a/tests/ragger/snapshots/flex/test_blind_sign_reject_in_risk_review/00000.png and /dev/null differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_reject_in_risk_review/00001.png b/tests/ragger/snapshots/flex/test_blind_sign_reject_in_risk_review/00001.png deleted file mode 100644 index a3c761382..000000000 Binary files a/tests/ragger/snapshots/flex/test_blind_sign_reject_in_risk_review/00001.png and /dev/null differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_rejected/00000.png b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00000.png index 10188cdb7..4397e0e07 100644 Binary files a/tests/ragger/snapshots/flex/test_blind_sign_rejected/00000.png and b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00000.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_rejected/00001.png b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00001.png index dabe7afea..8949bed74 100644 Binary files a/tests/ragger/snapshots/flex/test_blind_sign_rejected/00001.png and b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00001.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_rejected/00002.png b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00002.png new file mode 100644 index 000000000..2b71d8212 Binary files /dev/null and b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00002.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_rejected/00003.png b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00003.png new file mode 100644 index 000000000..68b268c9f Binary files /dev/null and b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00003.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_rejected/00004.png b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00004.png new file mode 100644 index 000000000..aeb3c483d Binary files /dev/null and b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00004.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_rejected/00005.png b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00005.png new file mode 100644 index 000000000..6a11e1187 Binary files /dev/null and b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00005.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_rejected/00006.png b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00006.png new file mode 100644 index 000000000..6bbdf2ff3 Binary files /dev/null and b/tests/ragger/snapshots/flex/test_blind_sign_rejected/00006.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_signed/00000.png b/tests/ragger/snapshots/flex/test_blind_sign_signed/00000.png index 10188cdb7..4397e0e07 100644 Binary files a/tests/ragger/snapshots/flex/test_blind_sign_signed/00000.png and b/tests/ragger/snapshots/flex/test_blind_sign_signed/00000.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_signed/00001.png b/tests/ragger/snapshots/flex/test_blind_sign_signed/00001.png index a3c761382..8949bed74 100644 Binary files a/tests/ragger/snapshots/flex/test_blind_sign_signed/00001.png and b/tests/ragger/snapshots/flex/test_blind_sign_signed/00001.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_signed/00002.png b/tests/ragger/snapshots/flex/test_blind_sign_signed/00002.png index 8949bed74..2b71d8212 100644 Binary files a/tests/ragger/snapshots/flex/test_blind_sign_signed/00002.png and b/tests/ragger/snapshots/flex/test_blind_sign_signed/00002.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_signed/00003.png b/tests/ragger/snapshots/flex/test_blind_sign_signed/00003.png index 2b71d8212..68b268c9f 100644 Binary files a/tests/ragger/snapshots/flex/test_blind_sign_signed/00003.png and b/tests/ragger/snapshots/flex/test_blind_sign_signed/00003.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_signed/00004.png b/tests/ragger/snapshots/flex/test_blind_sign_signed/00004.png index 68b268c9f..aeb3c483d 100644 Binary files a/tests/ragger/snapshots/flex/test_blind_sign_signed/00004.png and b/tests/ragger/snapshots/flex/test_blind_sign_signed/00004.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_signed/00005.png b/tests/ragger/snapshots/flex/test_blind_sign_signed/00005.png index f75df0d95..be51a9d55 100644 Binary files a/tests/ragger/snapshots/flex/test_blind_sign_signed/00005.png and b/tests/ragger/snapshots/flex/test_blind_sign_signed/00005.png differ diff --git a/tests/ragger/snapshots/flex/test_blind_sign_signed/00006.png b/tests/ragger/snapshots/flex/test_blind_sign_signed/00006.png deleted file mode 100644 index be51a9d55..000000000 Binary files a/tests/ragger/snapshots/flex/test_blind_sign_signed/00006.png and /dev/null differ diff --git a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00009.png b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00009.png index 10188cdb7..4397e0e07 100644 Binary files a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00009.png and b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00009.png differ diff --git a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00010.png b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00010.png index a3c761382..8949bed74 100644 Binary files a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00010.png and b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00010.png differ diff --git a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00011.png b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00011.png index 8949bed74..2b71d8212 100644 Binary files a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00011.png and b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00011.png differ diff --git a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00012.png b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00012.png index 2b71d8212..68b268c9f 100644 Binary files a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00012.png and b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00012.png differ diff --git a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00013.png b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00013.png index 68b268c9f..aeb3c483d 100644 Binary files a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00013.png and b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00013.png differ diff --git a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00014.png b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00014.png index f75df0d95..be51a9d55 100644 Binary files a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00014.png and b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00014.png differ diff --git a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00015.png b/tests/ragger/snapshots/flex/test_sign_parameter_selector/00015.png deleted file mode 100644 index be51a9d55..000000000 Binary files a/tests/ragger/snapshots/flex/test_sign_parameter_selector/00015.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_not_enabled_error/00000.png b/tests/ragger/snapshots/nanos/test_blind_sign_not_enabled_error/00000.png new file mode 100644 index 000000000..c2420afe1 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_blind_sign_not_enabled_error/00000.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_not_enabled_error/00001.png b/tests/ragger/snapshots/nanos/test_blind_sign_not_enabled_error/00001.png new file mode 100644 index 000000000..b31e45596 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_blind_sign_not_enabled_error/00001.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00014.png b/tests/ragger/snapshots/nanos/test_blind_sign_not_enabled_error/00002.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_blind_sign_signed/00014.png rename to tests/ragger/snapshots/nanos/test_blind_sign_not_enabled_error/00002.png diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00000.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00000.png index 2675875f9..54ae35404 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00000.png and b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00000.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00001.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00001.png index 2db2dcfd5..8d84cc70f 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00001.png and b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00001.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00002.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00002.png index a9eca4038..0a6a82343 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00002.png and b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00002.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00003.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00003.png index 9c7e7049c..04f6b02d7 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00003.png and b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00003.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00004.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00004.png index ce795f34e..8a8c617ae 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00004.png and b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00004.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00005.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00005.png new file mode 100644 index 000000000..9f2651390 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00005.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00006.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00006.png new file mode 100644 index 000000000..424902998 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00006.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00007.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00007.png new file mode 100644 index 000000000..bb4b73f5c Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00007.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00008.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00008.png new file mode 100644 index 000000000..b7a5302cd Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00008.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00009.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00009.png new file mode 100644 index 000000000..cc968dc82 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00009.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00010.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00010.png new file mode 100644 index 000000000..861f858ef Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00010.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00011.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00011.png new file mode 100644 index 000000000..9c7e7049c Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00011.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00025.png b/tests/ragger/snapshots/nanos/test_blind_sign_rejected/00012.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_sign_parameter_selector/00025.png rename to tests/ragger/snapshots/nanos/test_blind_sign_rejected/00012.png diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00000.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00000.png index 2675875f9..54ae35404 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00000.png and b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00000.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00001.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00001.png index 2db2dcfd5..8d84cc70f 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00001.png and b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00001.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00002.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00002.png index a9eca4038..0a6a82343 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00002.png and b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00002.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00003.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00003.png index 8d84cc70f..04f6b02d7 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00003.png and b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00003.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00004.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00004.png index 0a6a82343..8a8c617ae 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00004.png and b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00004.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00005.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00005.png index 04f6b02d7..9f2651390 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00005.png and b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00005.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00006.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00006.png index 8a8c617ae..424902998 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00006.png and b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00006.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00007.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00007.png index 9f2651390..bb4b73f5c 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00007.png and b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00007.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00008.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00008.png index 424902998..b7a5302cd 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00008.png and b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00008.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00009.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00009.png index bb4b73f5c..cc968dc82 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00009.png and b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00009.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00010.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00010.png index b7a5302cd..861f858ef 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00010.png and b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00010.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00011.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00011.png index cc968dc82..ce795f34e 100644 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00011.png and b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00011.png differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00012.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00012.png deleted file mode 100644 index 56d35dd10..000000000 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00012.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00013.png b/tests/ragger/snapshots/nanos/test_blind_sign_signed/00013.png deleted file mode 100644 index 1c9156c31..000000000 Binary files a/tests/ragger/snapshots/nanos/test_blind_sign_signed/00013.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00012.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00012.png index 2675875f9..54ae35404 100644 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00012.png and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00012.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00013.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00013.png index 2db2dcfd5..8d84cc70f 100644 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00013.png and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00013.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00014.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00014.png index a9eca4038..0a6a82343 100644 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00014.png and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00014.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00015.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00015.png index 8d84cc70f..04f6b02d7 100644 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00015.png and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00015.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00016.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00016.png index 0a6a82343..8a8c617ae 100644 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00016.png and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00016.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00017.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00017.png index 04f6b02d7..9f2651390 100644 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00017.png and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00017.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00018.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00018.png index 8a8c617ae..424902998 100644 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00018.png and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00018.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00019.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00019.png index 9f2651390..bb4b73f5c 100644 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00019.png and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00019.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00020.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00020.png index 424902998..b7a5302cd 100644 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00020.png and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00020.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00021.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00021.png index bb4b73f5c..cc968dc82 100644 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00021.png and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00021.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00022.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00022.png index b7a5302cd..861f858ef 100644 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00022.png and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00022.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00023.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00023.png index cc968dc82..ce795f34e 100644 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00023.png and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00023.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00024.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00024.png deleted file mode 100644 index 1c9156c31..000000000 Binary files a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/00024.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_not_enabled_error/00000.png b/tests/ragger/snapshots/nanosp/test_blind_sign_not_enabled_error/00000.png new file mode 100644 index 000000000..11ea8a56b Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_blind_sign_not_enabled_error/00000.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00012.png b/tests/ragger/snapshots/nanosp/test_blind_sign_not_enabled_error/00001.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_blind_sign_signed/00012.png rename to tests/ragger/snapshots/nanosp/test_blind_sign_not_enabled_error/00001.png diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00000.png b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00000.png index 37e557951..d1a0dc395 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00000.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00000.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00001.png b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00001.png index 8adfe9b4f..487ea10fc 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00001.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00001.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00002.png b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00002.png index 2d1cb479e..1ac2ab077 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00002.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00002.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00003.png b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00003.png index f1ac3dad5..cdcc19d05 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00003.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00003.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00004.png b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00004.png index dd0c56e96..d704566c0 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00004.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00004.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00005.png b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00005.png index e90cd9db3..0fd18b254 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00005.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00005.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00006.png b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00006.png index 657887225..03d02892e 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00006.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00006.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00007.png b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00007.png new file mode 100644 index 000000000..e90cd9db3 Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00007.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00020.png b/tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00008.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00020.png rename to tests/ragger/snapshots/nanosp/test_blind_sign_rejected/00008.png diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00000.png b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00000.png index 37e557951..d1a0dc395 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00000.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00000.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00001.png b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00001.png index 8adfe9b4f..487ea10fc 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00001.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00001.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00002.png b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00002.png index 2d1cb479e..1ac2ab077 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00002.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00002.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00003.png b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00003.png index f1ac3dad5..cdcc19d05 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00003.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00003.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00004.png b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00004.png index dd0c56e96..d704566c0 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00004.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00004.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00005.png b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00005.png index 487ea10fc..0fd18b254 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00005.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00005.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00006.png b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00006.png index 1ac2ab077..03d02892e 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00006.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00006.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00007.png b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00007.png index cdcc19d05..657887225 100644 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00007.png and b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00007.png differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00008.png b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00008.png deleted file mode 100644 index d704566c0..000000000 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00008.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00009.png b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00009.png deleted file mode 100644 index 0fd18b254..000000000 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00009.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00010.png b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00010.png deleted file mode 100644 index b4991039f..000000000 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00010.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00011.png b/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00011.png deleted file mode 100644 index 570ce28d5..000000000 Binary files a/tests/ragger/snapshots/nanosp/test_blind_sign_signed/00011.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00009.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00009.png index 37e557951..d1a0dc395 100644 Binary files a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00009.png and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00009.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00010.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00010.png index 8adfe9b4f..487ea10fc 100644 Binary files a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00010.png and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00010.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00011.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00011.png index 2d1cb479e..1ac2ab077 100644 Binary files a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00011.png and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00011.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00012.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00012.png index f1ac3dad5..cdcc19d05 100644 Binary files a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00012.png and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00012.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00013.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00013.png index dd0c56e96..d704566c0 100644 Binary files a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00013.png and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00013.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00014.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00014.png index 487ea10fc..0fd18b254 100644 Binary files a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00014.png and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00014.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00015.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00015.png index 1ac2ab077..03d02892e 100644 Binary files a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00015.png and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00015.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00016.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00016.png index cdcc19d05..657887225 100644 Binary files a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00016.png and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00016.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00017.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00017.png deleted file mode 100644 index d704566c0..000000000 Binary files a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00017.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00018.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00018.png deleted file mode 100644 index 0fd18b254..000000000 Binary files a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00018.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00019.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00019.png deleted file mode 100644 index 570ce28d5..000000000 Binary files a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/00019.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_not_enabled_error/00000.png b/tests/ragger/snapshots/nanox/test_blind_sign_not_enabled_error/00000.png new file mode 100644 index 000000000..11ea8a56b Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_blind_sign_not_enabled_error/00000.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00012.png b/tests/ragger/snapshots/nanox/test_blind_sign_not_enabled_error/00001.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_blind_sign_signed/00012.png rename to tests/ragger/snapshots/nanox/test_blind_sign_not_enabled_error/00001.png diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00000.png b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00000.png index 37e557951..d1a0dc395 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00000.png and b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00000.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00001.png b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00001.png index 8adfe9b4f..487ea10fc 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00001.png and b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00001.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00002.png b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00002.png index 2d1cb479e..1ac2ab077 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00002.png and b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00002.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00003.png b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00003.png index f1ac3dad5..cdcc19d05 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00003.png and b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00003.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00004.png b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00004.png index dd0c56e96..d704566c0 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00004.png and b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00004.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00005.png b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00005.png index e90cd9db3..0fd18b254 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00005.png and b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00005.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00006.png b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00006.png index 657887225..03d02892e 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00006.png and b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00006.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00007.png b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00007.png new file mode 100644 index 000000000..e90cd9db3 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00007.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00020.png b/tests/ragger/snapshots/nanox/test_blind_sign_rejected/00008.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_sign_parameter_selector/00020.png rename to tests/ragger/snapshots/nanox/test_blind_sign_rejected/00008.png diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00000.png b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00000.png index 37e557951..d1a0dc395 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00000.png and b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00000.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00001.png b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00001.png index 8adfe9b4f..487ea10fc 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00001.png and b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00001.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00002.png b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00002.png index 2d1cb479e..1ac2ab077 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00002.png and b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00002.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00003.png b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00003.png index f1ac3dad5..cdcc19d05 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00003.png and b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00003.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00004.png b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00004.png index dd0c56e96..d704566c0 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00004.png and b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00004.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00005.png b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00005.png index 487ea10fc..0fd18b254 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00005.png and b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00005.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00006.png b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00006.png index 1ac2ab077..03d02892e 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00006.png and b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00006.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00007.png b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00007.png index cdcc19d05..657887225 100644 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00007.png and b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00007.png differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00008.png b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00008.png deleted file mode 100644 index d704566c0..000000000 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00008.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00009.png b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00009.png deleted file mode 100644 index 0fd18b254..000000000 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00009.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00010.png b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00010.png deleted file mode 100644 index b4991039f..000000000 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00010.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00011.png b/tests/ragger/snapshots/nanox/test_blind_sign_signed/00011.png deleted file mode 100644 index 570ce28d5..000000000 Binary files a/tests/ragger/snapshots/nanox/test_blind_sign_signed/00011.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00009.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00009.png index 37e557951..d1a0dc395 100644 Binary files a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00009.png and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00009.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00010.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00010.png index 8adfe9b4f..487ea10fc 100644 Binary files a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00010.png and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00010.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00011.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00011.png index 2d1cb479e..1ac2ab077 100644 Binary files a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00011.png and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00011.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00012.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00012.png index f1ac3dad5..cdcc19d05 100644 Binary files a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00012.png and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00012.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00013.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00013.png index dd0c56e96..d704566c0 100644 Binary files a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00013.png and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00013.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00014.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00014.png index 487ea10fc..0fd18b254 100644 Binary files a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00014.png and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00014.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00015.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00015.png index 1ac2ab077..03d02892e 100644 Binary files a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00015.png and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00015.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00016.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00016.png index cdcc19d05..657887225 100644 Binary files a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00016.png and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00016.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00017.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00017.png deleted file mode 100644 index d704566c0..000000000 Binary files a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00017.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00018.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00018.png deleted file mode 100644 index 0fd18b254..000000000 Binary files a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00018.png and /dev/null differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00019.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00019.png deleted file mode 100644 index 570ce28d5..000000000 Binary files a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/00019.png and /dev/null differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_not_enabled_error/00000.png b/tests/ragger/snapshots/stax/test_blind_sign_not_enabled_error/00000.png new file mode 100644 index 000000000..db01a3a44 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_blind_sign_not_enabled_error/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_reject_in_risk_review/00002.png b/tests/ragger/snapshots/stax/test_blind_sign_not_enabled_error/00001.png similarity index 100% rename from tests/ragger/snapshots/stax/test_blind_sign_reject_in_risk_review/00002.png rename to tests/ragger/snapshots/stax/test_blind_sign_not_enabled_error/00001.png diff --git a/tests/ragger/snapshots/stax/test_blind_sign_reject_in_risk_review/00000.png b/tests/ragger/snapshots/stax/test_blind_sign_reject_in_risk_review/00000.png deleted file mode 100644 index a84d3f925..000000000 Binary files a/tests/ragger/snapshots/stax/test_blind_sign_reject_in_risk_review/00000.png and /dev/null differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_reject_in_risk_review/00001.png b/tests/ragger/snapshots/stax/test_blind_sign_reject_in_risk_review/00001.png deleted file mode 100644 index 193370d9f..000000000 Binary files a/tests/ragger/snapshots/stax/test_blind_sign_reject_in_risk_review/00001.png and /dev/null differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_rejected/00000.png b/tests/ragger/snapshots/stax/test_blind_sign_rejected/00000.png index a84d3f925..04055db7b 100644 Binary files a/tests/ragger/snapshots/stax/test_blind_sign_rejected/00000.png and b/tests/ragger/snapshots/stax/test_blind_sign_rejected/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_rejected/00001.png b/tests/ragger/snapshots/stax/test_blind_sign_rejected/00001.png index 339db1b45..d1b475b4c 100644 Binary files a/tests/ragger/snapshots/stax/test_blind_sign_rejected/00001.png and b/tests/ragger/snapshots/stax/test_blind_sign_rejected/00001.png differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_rejected/00002.png b/tests/ragger/snapshots/stax/test_blind_sign_rejected/00002.png new file mode 100644 index 000000000..83bb1fee0 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_blind_sign_rejected/00002.png differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_rejected/00003.png b/tests/ragger/snapshots/stax/test_blind_sign_rejected/00003.png new file mode 100644 index 000000000..aaf64ddf9 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_blind_sign_rejected/00003.png differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_rejected/00004.png b/tests/ragger/snapshots/stax/test_blind_sign_rejected/00004.png new file mode 100644 index 000000000..abc9677f7 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_blind_sign_rejected/00004.png differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_rejected/00005.png b/tests/ragger/snapshots/stax/test_blind_sign_rejected/00005.png new file mode 100644 index 000000000..2b6697001 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_blind_sign_rejected/00005.png differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_signed/00000.png b/tests/ragger/snapshots/stax/test_blind_sign_signed/00000.png index a84d3f925..04055db7b 100644 Binary files a/tests/ragger/snapshots/stax/test_blind_sign_signed/00000.png and b/tests/ragger/snapshots/stax/test_blind_sign_signed/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_signed/00001.png b/tests/ragger/snapshots/stax/test_blind_sign_signed/00001.png index 193370d9f..d1b475b4c 100644 Binary files a/tests/ragger/snapshots/stax/test_blind_sign_signed/00001.png and b/tests/ragger/snapshots/stax/test_blind_sign_signed/00001.png differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_signed/00002.png b/tests/ragger/snapshots/stax/test_blind_sign_signed/00002.png index d1b475b4c..83bb1fee0 100644 Binary files a/tests/ragger/snapshots/stax/test_blind_sign_signed/00002.png and b/tests/ragger/snapshots/stax/test_blind_sign_signed/00002.png differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_signed/00003.png b/tests/ragger/snapshots/stax/test_blind_sign_signed/00003.png index 83bb1fee0..aaf64ddf9 100644 Binary files a/tests/ragger/snapshots/stax/test_blind_sign_signed/00003.png and b/tests/ragger/snapshots/stax/test_blind_sign_signed/00003.png differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_signed/00004.png b/tests/ragger/snapshots/stax/test_blind_sign_signed/00004.png index 2a7991957..392165d4f 100644 Binary files a/tests/ragger/snapshots/stax/test_blind_sign_signed/00004.png and b/tests/ragger/snapshots/stax/test_blind_sign_signed/00004.png differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_signed/00005.png b/tests/ragger/snapshots/stax/test_blind_sign_signed/00005.png deleted file mode 100644 index 392165d4f..000000000 Binary files a/tests/ragger/snapshots/stax/test_blind_sign_signed/00005.png and /dev/null differ diff --git a/tests/ragger/snapshots/stax/test_blind_sign_signed/00006.png b/tests/ragger/snapshots/stax/test_blind_sign_signed/00006.png deleted file mode 100644 index 2ba6d27d5..000000000 Binary files a/tests/ragger/snapshots/stax/test_blind_sign_signed/00006.png and /dev/null differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/00009.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/00009.png index a84d3f925..04055db7b 100644 Binary files a/tests/ragger/snapshots/stax/test_sign_parameter_selector/00009.png and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/00009.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/00010.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/00010.png index 193370d9f..d1b475b4c 100644 Binary files a/tests/ragger/snapshots/stax/test_sign_parameter_selector/00010.png and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/00010.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/00011.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/00011.png index d1b475b4c..83bb1fee0 100644 Binary files a/tests/ragger/snapshots/stax/test_sign_parameter_selector/00011.png and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/00011.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/00012.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/00012.png index 83bb1fee0..aaf64ddf9 100644 Binary files a/tests/ragger/snapshots/stax/test_sign_parameter_selector/00012.png and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/00012.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/00013.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/00013.png index 2a7991957..392165d4f 100644 Binary files a/tests/ragger/snapshots/stax/test_sign_parameter_selector/00013.png and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/00013.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/00014.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/00014.png deleted file mode 100644 index 392165d4f..000000000 Binary files a/tests/ragger/snapshots/stax/test_sign_parameter_selector/00014.png and /dev/null differ diff --git a/tests/ragger/test_blind_sign.py b/tests/ragger/test_blind_sign.py index fa93bc5b7..cb2568718 100644 --- a/tests/ragger/test_blind_sign.py +++ b/tests/ragger/test_blind_sign.py @@ -62,6 +62,7 @@ def test_blind_sign(firmware: Firmware, global DEVICE_ADDR app_client = EthAppClient(backend) + settings_toggle(firmware, navigator, [SettingID.BLIND_SIGNING]) if DEVICE_ADDR is None: with app_client.get_public_addr(bip32_path=BIP32_PATH, display=False): pass @@ -77,41 +78,42 @@ def test_blind_sign(firmware: Firmware, moves = [] if firmware.is_nano: + # blind signing warning + moves += [NavInsID.RIGHT_CLICK] + + # review | from | amount | to | fees + moves += [NavInsID.RIGHT_CLICK] * 5 + if firmware == Firmware.NANOS: - moves += [NavInsID.RIGHT_CLICK] * 2 - else: + # for the two addresses moves += [NavInsID.RIGHT_CLICK] * 4 if not sign: moves += [NavInsID.RIGHT_CLICK] moves += [NavInsID.BOTH_CLICK] - - if sign: - if firmware == Firmware.NANOS: - moves += [NavInsID.RIGHT_CLICK] * 10 - else: - moves += [NavInsID.RIGHT_CLICK] * 6 - moves += [NavInsID.BOTH_CLICK] else: + moves += [NavInsID.USE_CASE_CHOICE_REJECT] + if firmware == Firmware.STAX: - tap_number = 2 + moves += [NavInsID.SWIPE_CENTER_TO_LEFT] * 2 else: - tap_number = 3 + moves += [NavInsID.SWIPE_CENTER_TO_LEFT] * 3 + if sign: - moves += [NavInsID.USE_CASE_CHOICE_REJECT] - moves += [NavInsID.USE_CASE_CHOICE_CONFIRM] - moves += [NavInsID.SWIPE_CENTER_TO_LEFT] * tap_number moves += [NavInsID.USE_CASE_REVIEW_CONFIRM] else: + moves += [NavInsID.USE_CASE_REVIEW_REJECT] moves += [NavInsID.USE_CASE_CHOICE_CONFIRM] + navigator.navigate_and_compare(default_screenshot_path, test_name, moves) except ExceptionRAPDU as e: - assert e.status == StatusWord.INVALID_DATA + assert not sign + assert e.status == StatusWord.CONDITION_NOT_SATISFIED else: - assert sign is True + assert sign # verify signature vrs = ResponseParser.signature(app_client.response().data) addr = recover_transaction(tx_params, vrs) @@ -120,22 +122,20 @@ def test_blind_sign(firmware: Firmware, def test_blind_sign_reject_in_risk_review(firmware: Firmware, backend: BackendInterface, - navigator: Navigator, - default_screenshot_path: Path, - test_name: str): + navigator: Navigator): app_client = EthAppClient(backend) if firmware.is_nano: pytest.skip("Not supported on non-NBGL apps") + settings_toggle(firmware, navigator, [SettingID.BLIND_SIGNING]) + try: with app_client.sign(BIP32_PATH, common_tx_params()): - moves = [NavInsID.USE_CASE_CHOICE_REJECT] * 2 - navigator.navigate_and_compare(default_screenshot_path, - test_name, - moves) + moves = [NavInsID.USE_CASE_CHOICE_CONFIRM] + navigator.navigate(moves) except ExceptionRAPDU as e: - assert e.status == StatusWord.INVALID_DATA + assert e.status == StatusWord.CONDITION_NOT_SATISFIED else: assert False # Should have thrown @@ -155,46 +155,37 @@ def test_sign_parameter_selector(firmware: Firmware, pass _, DEVICE_ADDR, _ = ResponseParser.pk_addr(app_client.response().data) - settings_toggle(firmware, navigator, [SettingID.DEBUG_DATA]) + settings_toggle(firmware, navigator, [SettingID.BLIND_SIGNING, SettingID.DEBUG_DATA]) tx_params = common_tx_params() data_len = len(bytes.fromhex(tx_params["data"][2:])) - # selector - flows = 1 - data_len -= 4 - # parameters - flows += data_len // 32 + params = (data_len - 4) // 32 with app_client.sign(BIP32_PATH, tx_params): moves = [] if firmware.is_nano: + # verify | selector + moves += [NavInsID.RIGHT_CLICK] * 2 + [NavInsID.BOTH_CLICK] if firmware == Firmware.NANOS: - moves += [NavInsID.RIGHT_CLICK] * 2 + [NavInsID.BOTH_CLICK] - # Parameters on Nano S are split on multiple pages, hardcoded because the two parameters don't use the - # same amount of pages because of non-monospace fonts + # hardcoded for each because for some params take more pages than others + # parameter 1 moves += [NavInsID.RIGHT_CLICK] * 4 + [NavInsID.BOTH_CLICK] + # parameter 2 moves += [NavInsID.RIGHT_CLICK] * 3 + [NavInsID.BOTH_CLICK] + # blind signing | review | from | amount | to | fees + moves += [NavInsID.RIGHT_CLICK] * 10 else: - moves += ([NavInsID.RIGHT_CLICK] * 2 + [NavInsID.BOTH_CLICK]) * flows - - if firmware == Firmware.NANOS: - moves += [NavInsID.RIGHT_CLICK] * 2 - else: - moves += [NavInsID.RIGHT_CLICK] * 4 - moves += [NavInsID.BOTH_CLICK] - - if firmware == Firmware.NANOS: - moves += [NavInsID.RIGHT_CLICK] * 9 - else: - moves += [NavInsID.RIGHT_CLICK] * 5 + # (verify | parameter) * flows + moves += ([NavInsID.RIGHT_CLICK] * 2 + [NavInsID.BOTH_CLICK]) * params + # blind signing | review | from | amount | to | fees + moves += [NavInsID.RIGHT_CLICK] * 6 moves += [NavInsID.BOTH_CLICK] else: + moves += ([NavInsID.SWIPE_CENTER_TO_LEFT] * 2 + [NavInsID.USE_CASE_REVIEW_CONFIRM]) * (1 + params) + moves += [NavInsID.USE_CASE_CHOICE_REJECT] if firmware == Firmware.STAX: tap_number = 2 else: tap_number = 3 - moves += ([NavInsID.SWIPE_CENTER_TO_LEFT] * 2 + [NavInsID.USE_CASE_REVIEW_CONFIRM]) * flows - moves += [NavInsID.USE_CASE_CHOICE_REJECT] - moves += [NavInsID.USE_CASE_CHOICE_CONFIRM] moves += [NavInsID.SWIPE_CENTER_TO_LEFT] * tap_number moves += [NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(default_screenshot_path, @@ -205,3 +196,28 @@ def test_sign_parameter_selector(firmware: Firmware, vrs = ResponseParser.signature(app_client.response().data) addr = recover_transaction(tx_params, vrs) assert addr == DEVICE_ADDR + + +def test_blind_sign_not_enabled_error(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str, + default_screenshot_path: Path): + app_client = EthAppClient(backend) + + try: + with app_client.sign(BIP32_PATH, common_tx_params()): + moves = [] + if firmware.is_nano: + if firmware == Firmware.NANOS: + moves += [NavInsID.RIGHT_CLICK] + moves += [NavInsID.BOTH_CLICK] + else: + moves += [NavInsID.USE_CASE_CHOICE_REJECT] + navigator.navigate_and_compare(default_screenshot_path, + test_name, + moves) + except ExceptionRAPDU as e: + assert e.status == StatusWord.INVALID_DATA + else: + assert False # Should have thrown