subbrute_worker.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include "../subbrute_protocols.h"
  3. typedef enum {
  4. SubBruteWorkerStateIDLE,
  5. SubBruteWorkerStateReady,
  6. SubBruteWorkerStateTx,
  7. SubBruteWorkerStateFinished
  8. } SubBruteWorkerState;
  9. typedef void (*SubBruteWorkerCallback)(void* context, SubBruteWorkerState state);
  10. typedef struct SubBruteWorker SubBruteWorker;
  11. SubBruteWorker* subbrute_worker_alloc();
  12. void subbrute_worker_free(SubBruteWorker* instance);
  13. uint64_t subbrute_worker_get_step(SubBruteWorker* instance);
  14. bool subbrute_worker_set_step(SubBruteWorker* instance, uint64_t step);
  15. bool subbrute_worker_is_running(SubBruteWorker* instance);
  16. bool subbrute_worker_init_default_attack(
  17. SubBruteWorker* instance,
  18. SubBruteAttacks attack_type,
  19. uint64_t step,
  20. const SubBruteProtocol* protocol,
  21. uint8_t extra_repeats);
  22. bool subbrute_worker_init_file_attack(
  23. SubBruteWorker* instance,
  24. uint64_t step,
  25. uint8_t load_index,
  26. const char* file_key,
  27. SubBruteProtocol* protocol,
  28. uint8_t extra_repeats);
  29. bool subbrute_worker_start(SubBruteWorker* instance);
  30. void subbrute_worker_stop(SubBruteWorker* instance);
  31. bool subbrute_worker_transmit_current_key(SubBruteWorker* instance, uint64_t step);
  32. bool subbrute_worker_can_manual_transmit(SubBruteWorker* instance);
  33. void subbrute_worker_set_callback(
  34. SubBruteWorker* instance,
  35. SubBruteWorkerCallback callback,
  36. void* context);