Skip to content

Commit 4ef8d21

Browse files
committed
fix: Handle cases for decryption and auth wallet for nominee
1 parent e068507 commit 4ef8d21

File tree

10 files changed

+51
-27
lines changed

10 files changed

+51
-27
lines changed

apps/inheritance_app/inheritance_auth_wallet.c

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -166,18 +166,23 @@ STATIC bool auth_wallet_handle_inititate_query(inheritance_query_t *query) {
166166
char msg[100] = "";
167167

168168
if (!check_which_request(query,
169-
INHERITANCE_AUTH_WALLET_REQUEST_INITIATE_TAG) ||
170-
!get_wallet_name_by_id(query->auth_wallet.initiate.wallet_id,
171-
(uint8_t *)wallet_name,
172-
inheritance_send_error)) {
173-
// TODO: update this for nominee
169+
INHERITANCE_AUTH_WALLET_REQUEST_INITIATE_TAG)) {
174170
return false;
175171
}
176-
177-
snprintf(msg,
178-
sizeof(msg),
179-
ui_text_inheritance_wallet_auth_flow_confirmation,
180-
wallet_name);
172+
if (get_wallet_name_by_id(query->auth_wallet.initiate.wallet_id,
173+
(uint8_t *)wallet_name,
174+
NULL)) {
175+
snprintf(msg,
176+
sizeof(msg),
177+
ui_text_inheritance_wallet_auth_flow_confirmation,
178+
wallet_name);
179+
180+
} else {
181+
snprintf(msg,
182+
sizeof(msg),
183+
"%s",
184+
ui_text_inheritance_wallet_auth_flow_confirmation_generic);
185+
}
181186

182187
if (!core_confirmation(msg, inheritance_send_error)) {
183188
return false;

apps/inheritance_app/inheritance_decrypt_data.c

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -209,17 +209,23 @@ STATIC bool inheritance_handle_initiate_query(inheritance_query_t *query) {
209209

210210
if (!check_which_request(
211211
query, INHERITANCE_DECRYPT_DATA_WITH_PIN_REQUEST_INITIATE_TAG) ||
212-
!validate_request_data(&query->decrypt) ||
213-
!get_wallet_name_by_id(query->decrypt.initiate.wallet_id,
214-
(uint8_t *)wallet_name,
215-
inheritance_send_error)) {
212+
!validate_request_data(&query->decrypt)) {
216213
return false;
217214
}
218215

219-
snprintf(msg,
220-
sizeof(msg),
221-
ui_text_inheritance_decryption_flow_confirmation,
222-
wallet_name);
216+
if (get_wallet_name_by_id(
217+
query->decrypt.initiate.wallet_id, (uint8_t *)wallet_name, NULL)) {
218+
snprintf(msg,
219+
sizeof(msg),
220+
ui_text_inheritance_decryption_flow_confirmation,
221+
wallet_name);
222+
223+
} else {
224+
snprintf(msg,
225+
sizeof(msg),
226+
"%s",
227+
ui_text_inheritance_decryption_flow_confirmation_generic);
228+
}
223229

224230
if (!core_confirmation(msg, inheritance_send_error)) {
225231
return false;

src/card_operations/card_fetch_encrypt_data.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161

6262
#include "buzzer.h"
6363
#include "card_fetch_data.h"
64+
#include "card_fetch_wallet_list.h"
6465
#include "card_internal.h"
6566
#include "card_utils.h"
6667
#include "nfc.h"
@@ -107,8 +108,7 @@ card_error_type_e card_fetch_encrypt_data(const uint8_t *wallet_id,
107108

108109
char wallet_name[NAME_SIZE] = "";
109110
#if USE_SIMULATOR == 0
110-
// Confirm NULL use for rejection_cb
111-
ASSERT(get_wallet_name_by_id(wallet_id, (uint8_t *)wallet_name, NULL));
111+
card_fetch_wallet_name(wallet_id, wallet_name);
112112
#endif
113113

114114
instruction_scr_init(ui_text_place_card_below, ui_text_tap_1_2_cards);

src/card_operations/card_fetch_wallet_list.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363

6464
#include <stdint.h>
6565

66+
#include "app_error.h"
6667
#include "card_internal.h"
6768
#include "card_operation_typedefs.h"
6869
#include "card_utils.h"
@@ -132,7 +133,10 @@ card_error_type_e card_fetch_wallet_list(
132133

133134
if (card_data.nfc_data.status == SW_NO_ERROR ||
134135
card_data.nfc_data.status == SW_RECORD_NOT_FOUND) {
135-
buzzer_start(BUZZER_DURATION);
136+
if (card_data.nfc_data.status == SW_RECORD_NOT_FOUND ||
137+
config->operation.buzzer_on_success) {
138+
buzzer_start(BUZZER_DURATION);
139+
}
136140
if (!config->operation.skip_card_removal) {
137141
wait_for_card_removal();
138142
}
@@ -186,7 +190,8 @@ bool card_fetch_wallet_name(const uint8_t *wallet_id, char *wallet_name) {
186190
card_fetch_wallet_list_config_t configuration = {
187191
.operation = {.acceptable_cards = ACCEPTABLE_CARDS_ALL,
188192
.skip_card_removal = true,
189-
.expected_family_id = get_family_id()},
193+
.expected_family_id = get_family_id(),
194+
.buzzer_on_success = false},
190195
.frontend = {.heading = ui_text_tap_1_2_cards,
191196
.msg = ui_text_place_card_below}};
192197

src/card_operations/card_pair.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,6 @@ card_error_type_e single_card_pair_operation(char *heading,
514514
}
515515

516516
buzzer_start(BUZZER_DURATION);
517-
wait_for_card_removal();
518517

519518
break;
520519
}
@@ -534,4 +533,4 @@ card_error_type_e single_card_pair_operation(char *heading,
534533

535534
nfc_deselect_card();
536535
return card_data.error_type;
537-
}
536+
}

src/constant_texts.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,8 @@ const char *ui_critical_card_health_migrate_data =
532532
// Inheritance
533533
const char *ui_text_inheritance_wallet_auth_flow_confirmation =
534534
"Start %s wallet authentication?";
535+
const char *ui_text_inheritance_wallet_auth_flow_confirmation_generic =
536+
"Start wallet authentication?";
535537
const char *ui_text_inheritance_wallet_authenticating =
536538
"Wallet\nauthenticating...";
537539
const char *ui_text_inheritance_wallet_auth_success =
@@ -547,6 +549,8 @@ const char *ui_text_inheritance_encryption_flow_failure = "Encryption Failed";
547549

548550
const char *ui_text_inheritance_decryption_flow_confirmation =
549551
"Proceed to decrypt data for %s?";
552+
const char *ui_text_inheritance_decryption_flow_confirmation_generic =
553+
"Proceed to decrypt data?";
550554
const char *ui_text_inheritance_decryption_flow_success = "Decryption Success";
551555
const char *ui_text_inheritance_decryption_flow_failure = "Decryption Failed";
552556

src/constant_texts.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@ extern const char *ui_critical_card_health_migrate_data;
375375

376376
// Inheritance
377377
extern const char *ui_text_inheritance_wallet_auth_flow_confirmation;
378+
extern const char *ui_text_inheritance_wallet_auth_flow_confirmation_generic;
378379
extern const char *ui_text_inheritance_wallet_authenticating;
379380
extern const char *ui_text_inheritance_wallet_auth_success;
380381
extern const char *ui_text_inheritance_wallet_auth_fail;
@@ -385,6 +386,7 @@ extern const char *ui_text_inheritance_encryption_flow_success;
385386
extern const char *ui_text_inheritance_encryption_flow_failure;
386387

387388
extern const char *ui_text_inheritance_decryption_flow_confirmation;
389+
extern const char *ui_text_inheritance_decryption_flow_confirmation_generic;
388390
extern const char *ui_text_inheritance_decryption_flow_success;
389391
extern const char *ui_text_inheritance_decryption_flow_failure;
390392

src/settings/card_health_check.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ void card_health_check(void) {
107107
configuration.operation.acceptable_cards = ACCEPTABLE_CARDS_ALL;
108108
configuration.operation.skip_card_removal = true;
109109
configuration.operation.expected_family_id = get_family_id();
110+
configuration.operation.buzzer_on_success = true;
110111
configuration.frontend.heading = NULL;
111112
configuration.frontend.msg = ui_text_card_health_check_start;
112113

@@ -201,4 +202,4 @@ void card_health_check(void) {
201202
}
202203

203204
return;
204-
}
205+
}

src/settings/factory_reset.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ static bool get_wallet_list_from_two_cards(wallet_list_t *wallet_list) {
217217
configuration.operation.acceptable_cards = ACCEPTABLE_CARDS_ALL;
218218
configuration.operation.skip_card_removal = false;
219219
configuration.operation.expected_family_id = get_family_id();
220+
configuration.operation.buzzer_on_success = true;
220221
configuration.frontend.heading = ui_text_tap_1_2_cards;
221222
configuration.frontend.msg = ui_text_place_card_below;
222223

@@ -365,4 +366,4 @@ void clear_device_data(void) {
365366

366367
// Reset device to apply new settings
367368
BSP_reset();
368-
}
369+
}

src/settings/sync_with_cards.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ static bool get_wallets_from_card(wallet_list_t *wallet_list,
140140
configuration.operation.acceptable_cards = ACCEPTABLE_CARDS_ALL;
141141
configuration.operation.skip_card_removal = false;
142142
configuration.operation.expected_family_id = get_family_id();
143+
configuration.operation.buzzer_on_success = true;
143144

144145
configuration.frontend.heading = ui_text_tap_1_2_cards;
145146
configuration.frontend.msg = ui_text_place_card_below;
@@ -328,4 +329,4 @@ void sync_with_cards(void) {
328329
delay_scr_init(msg, DELAY_TIME);
329330

330331
return;
331-
}
332+
}

0 commit comments

Comments
 (0)