mifare_fuzzer_worker.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal.h>
  4. #include <nfc/nfc_device.h>
  5. #include <nfc/nfc_listener.h>
  6. #include <nfc/protocols/iso14443_3a/iso14443_3a.h>
  7. #include <nfc/protocols/iso14443_3a/iso14443_3a_listener.h>
  8. typedef enum MifareFuzzerWorkerState {
  9. MifareFuzzerWorkerStateEmulate,
  10. MifareFuzzerWorkerStateStop,
  11. } MifareFuzzerWorkerState;
  12. #define UID_LEN 7
  13. #define ATQA_LEN 2
  14. typedef struct MifareFuzzerWorker {
  15. FuriThread* thread;
  16. MifareFuzzerWorkerState state;
  17. NfcListener* nfc_listener;
  18. NfcDevice* nfc_device;
  19. Iso14443_3aData nfc_data;
  20. Nfc* nfc;
  21. } MifareFuzzerWorker;
  22. // worker
  23. MifareFuzzerWorker* mifare_fuzzer_worker_alloc();
  24. void mifare_fuzzer_worker_free(MifareFuzzerWorker* mifare_fuzzer_worker);
  25. void mifare_fuzzer_worker_stop(MifareFuzzerWorker* mifare_fuzzer_worker);
  26. void mifare_fuzzer_worker_start(MifareFuzzerWorker* mifare_fuzzer_worker);
  27. // task
  28. int32_t mifare_fuzzer_worker_task(void* context);
  29. //
  30. bool mifare_fuzzer_worker_is_emulating(MifareFuzzerWorker* mifare_fuzzer_worker);
  31. void mifare_fuzzer_worker_set_nfc_device(
  32. MifareFuzzerWorker* mifare_fuzzer_worker,
  33. NfcDevice* nfc_device);
  34. NfcDevice* mifare_fuzzer_worker_get_nfc_device(MifareFuzzerWorker* mifare_fuzzer_worker);
  35. void mifare_fuzzer_worker_set_nfc_data(
  36. MifareFuzzerWorker* mifare_fuzzer_worker,
  37. Iso14443_3aData nfc_data);
  38. Iso14443_3aData mifare_fuzzer_worker_get_nfc_data(MifareFuzzerWorker* mifare_fuzzer_worker);