Sfoglia il codice sorgente

Merge branch 'patch-1' into 'main'

Convert `auto_nr_mac` from bool to enum

See merge request bettse/picopass!4
Eric Betts 8 mesi fa
parent
commit
c4e5c68b80

+ 1 - 1
picopass.c

@@ -117,7 +117,7 @@ Picopass* picopass_alloc() {
         }
     }
 
-    picopass->auto_nr_mac = false;
+    picopass->nr_mac_type = ManualNRMAC;
 
     return picopass;
 }

+ 6 - 1
picopass_i.h

@@ -84,6 +84,11 @@ typedef struct {
     size_t macs_collected;
 } PicopassLoclassContext;
 
+typedef enum {
+    ManualNRMAC,
+    AutoNRMAC
+} NRMACType;
+
 struct Picopass {
     ViewDispatcher* view_dispatcher;
     Gui* gui;
@@ -119,7 +124,7 @@ struct Picopass {
     PicopassWriteKeyContext write_key_context;
     PicopassLoclassContext loclass_context;
 
-    bool auto_nr_mac;
+    NRMACType nr_mac_type;
 };
 
 typedef enum {

+ 1 - 1
scenes/picopass_scene_elite_dict_attack.c

@@ -187,7 +187,7 @@ bool picopass_scene_elite_dict_attack_on_event(void* context, SceneManagerEvent
                    PICOPASS_BLOCK_LEN) == 0) {
                 scene_manager_next_scene(picopass->scene_manager, PicopassSceneReadFactorySuccess);
             } else {
-                if(auth == PicopassDeviceAuthMethodFailed && picopass->auto_nr_mac) {
+                if(auth == PicopassDeviceAuthMethodFailed && picopass->nr_mac_type == AutoNRMAC) {
                     // save partial as <CSN>-partial
                     picopass->dev->format = PicopassDeviceSaveFormatPartial;
                     uint8_t* csn =

+ 2 - 2
scenes/picopass_scene_nr_mac_saved.c

@@ -27,10 +27,10 @@ bool picopass_scene_nr_mac_saved_on_event(void* context, SceneManagerEvent event
 
     if(event.type == SceneManagerEventTypeCustom) {
         if(event.event == PicopassCustomEventViewExit) {
-            if(picopass->auto_nr_mac) {
+            if(picopass->nr_mac_type == AutoNRMAC) {
                 consumed = scene_manager_search_and_switch_to_previous_scene(
                     picopass->scene_manager, PicopassSceneEliteDictAttack);
-                picopass->auto_nr_mac = false;
+                picopass->nr_mac_type = ManualNRMAC;
             } else {
                 scene_manager_set_scene_state(
                     picopass->scene_manager, PicopassSceneStart, 0); // Set back to "read card"

+ 2 - 2
scenes/picopass_scene_start.c

@@ -17,7 +17,7 @@ void picopass_scene_start_submenu_callback(void* context, uint32_t index) {
 void picopass_scene_start_on_enter(void* context) {
     Picopass* picopass = context;
     // Reset on enter
-    picopass->auto_nr_mac = false;
+    picopass->nr_mac_type = ManualNRMAC;
 
     Submenu* submenu = picopass->submenu;
     submenu_add_item(
@@ -72,7 +72,7 @@ bool picopass_scene_start_on_event(void* context, SceneManagerEvent event) {
             scene_manager_next_scene(picopass->scene_manager, PicopassSceneLoclass);
             consumed = true;
         } else if(event.event == SubmenuIndexNRMAC) {
-            picopass->auto_nr_mac = true;
+            picopass->nr_mac_type = AutoNRMAC;
             scene_manager_set_scene_state(
                 picopass->scene_manager, PicopassSceneStart, SubmenuIndexNRMAC);
             scene_manager_next_scene(picopass->scene_manager, PicopassSceneEliteDictAttack);