AloneLiberty 2 лет назад
Родитель
Сommit
f15f924985
2 измененных файлов с 61 добавлено и 1 удалено
  1. 1 1
      mifare_nested_i.h
  2. 60 0
      scenes/mifare_nested_scene_static_encrypted_nonce.c

+ 1 - 1
mifare_nested_i.h

@@ -19,7 +19,7 @@
 #include <lib/nfc/nfc_device.h>
 #include "mifare_nested_icons.h"
 
-#define NESTED_VERSION_APP "1.2.4"
+#define NESTED_VERSION_APP "1.2.5"
 #define NESTED_GITHUB_LINK "https://github.com/AloneLiberty/FlipperNested"
 #define NESTED_RECOVER_KEYS_GITHUB_LINK "https://github.com/AloneLiberty/FlipperNestedRecovery"
 #define NESTED_NONCE_FORMAT_VERSION "3"

+ 60 - 0
scenes/mifare_nested_scene_static_encrypted_nonce.c

@@ -0,0 +1,60 @@
+#include "../mifare_nested_i.h"
+
+void mifare_nested_scene_static_encrypted_nonce_widget_callback(
+    GuiButtonType result,
+    InputType type,
+    void* context) {
+    MifareNested* mifare_nested = context;
+    if(type == InputTypeShort) {
+        view_dispatcher_send_custom_event(mifare_nested->view_dispatcher, result);
+    }
+}
+
+void mifare_nested_scene_static_encrypted_nonce_on_enter(void* context) {
+    MifareNested* mifare_nested = context;
+    Widget* widget = mifare_nested->widget;
+
+    notification_message(mifare_nested->notifications, &sequence_error);
+
+    widget_add_icon_element(widget, 73, 12, &I_DolphinCry);
+    widget_add_string_element(
+        widget, 1, 9, AlignLeft, AlignTop, FontPrimary, "Static encrypted nonce");
+    widget_add_string_element(
+        widget, 1, 19, AlignLeft, AlignTop, FontSecondary, "This tag can't be");
+    widget_add_string_element(
+        widget, 1, 29, AlignLeft, AlignTop, FontSecondary, "used with Nested");
+    widget_add_string_element(widget, 1, 39, AlignLeft, AlignTop, FontSecondary, "attack.");
+
+    widget_add_button_element(
+        widget,
+        GuiButtonTypeLeft,
+        "Back",
+        mifare_nested_scene_static_encrypted_nonce_widget_callback,
+        mifare_nested);
+
+    // Setup and start worker
+    view_dispatcher_switch_to_view(mifare_nested->view_dispatcher, MifareNestedViewWidget);
+}
+
+bool mifare_nested_scene_static_encrypted_nonce_on_event(void* context, SceneManagerEvent event) {
+    MifareNested* mifare_nested = context;
+    bool consumed = false;
+
+    if(event.type == SceneManagerEventTypeCustom) {
+        if(event.event == GuiButtonTypeCenter || event.event == GuiButtonTypeLeft) {
+            scene_manager_search_and_switch_to_previous_scene(mifare_nested->scene_manager, 0);
+            consumed = true;
+        }
+    } else if(event.type == SceneManagerEventTypeBack) {
+        scene_manager_search_and_switch_to_previous_scene(mifare_nested->scene_manager, 0);
+        consumed = true;
+    }
+
+    return consumed;
+}
+
+void mifare_nested_scene_static_encrypted_nonce_on_exit(void* context) {
+    MifareNested* mifare_nested = context;
+
+    widget_reset(mifare_nested->widget);
+}