subbrute_worker.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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. bool subbrute_worker_init_file_attack(
  22. SubBruteWorker* instance,
  23. uint64_t step,
  24. uint8_t load_index,
  25. const char* file_key,
  26. SubBruteProtocol* protocol);
  27. bool subbrute_worker_start(SubBruteWorker* instance);
  28. void subbrute_worker_stop(SubBruteWorker* instance);
  29. bool subbrute_worker_transmit_current_key(SubBruteWorker* instance, uint64_t step);
  30. bool subbrute_worker_can_manual_transmit(SubBruteWorker* instance);
  31. void subbrute_worker_set_callback(
  32. SubBruteWorker* instance,
  33. SubBruteWorkerCallback callback,
  34. void* context);