Skip to content

Commit 4bbf2f0

Browse files
committed
added the two needed helpers for the supertaskbuilder
1 parent 6843952 commit 4bbf2f0

File tree

4 files changed

+164
-62
lines changed

4 files changed

+164
-62
lines changed

src/api/v2/index.php

Lines changed: 65 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -306,65 +306,70 @@ public static function addCORSheaders(Request $request, $response) {
306306
});
307307

308308

309-
require __DIR__ . "/../../inc/apiv2/auth/token.routes.php";
310-
311-
require __DIR__ . "/../../inc/apiv2/common/openAPISchema.routes.php";
312-
313-
require __DIR__ . "/../../inc/apiv2/model/accessgroups.routes.php";
314-
require __DIR__ . "/../../inc/apiv2/model/agentassignments.routes.php";
315-
require __DIR__ . "/../../inc/apiv2/model/agentbinaries.routes.php";
316-
require __DIR__ . "/../../inc/apiv2/model/agenterrors.routes.php";
317-
require __DIR__ . "/../../inc/apiv2/model/agents.routes.php";
318-
require __DIR__ . "/../../inc/apiv2/model/agentstats.routes.php";
319-
require __DIR__ . "/../../inc/apiv2/model/chunks.routes.php";
320-
require __DIR__ . "/../../inc/apiv2/model/configs.routes.php";
321-
require __DIR__ . "/../../inc/apiv2/model/configsections.routes.php";
322-
require __DIR__ . "/../../inc/apiv2/model/crackers.routes.php";
323-
require __DIR__ . "/../../inc/apiv2/model/crackertypes.routes.php";
324-
require __DIR__ . "/../../inc/apiv2/model/files.routes.php";
325-
require __DIR__ . "/../../inc/apiv2/model/globalpermissiongroups.routes.php";
326-
require __DIR__ . "/../../inc/apiv2/model/hashes.routes.php";
327-
require __DIR__ . "/../../inc/apiv2/model/hashlists.routes.php";
328-
require __DIR__ . "/../../inc/apiv2/model/hashtypes.routes.php";
329-
require __DIR__ . "/../../inc/apiv2/model/healthcheckagents.routes.php";
330-
require __DIR__ . "/../../inc/apiv2/model/healthchecks.routes.php";
331-
require __DIR__ . "/../../inc/apiv2/model/logentries.routes.php";
332-
require __DIR__ . "/../../inc/apiv2/model/notifications.routes.php";
333-
require __DIR__ . "/../../inc/apiv2/model/preprocessors.routes.php";
334-
require __DIR__ . "/../../inc/apiv2/model/pretasks.routes.php";
335-
require __DIR__ . "/../../inc/apiv2/model/speeds.routes.php";
336-
require __DIR__ . "/../../inc/apiv2/model/supertasks.routes.php";
337-
require __DIR__ . "/../../inc/apiv2/model/tasks.routes.php";
338-
require __DIR__ . "/../../inc/apiv2/model/taskwrappers.routes.php";
339-
require __DIR__ . "/../../inc/apiv2/model/users.routes.php";
340-
require __DIR__ . "/../../inc/apiv2/model/vouchers.routes.php";
341-
342-
require __DIR__ . "/../../inc/apiv2/helper/abortChunk.routes.php";
343-
require __DIR__ . "/../../inc/apiv2/helper/assignAgent.routes.php";
344-
require __DIR__ . "/../../inc/apiv2/helper/changeOwnPassword.routes.php";
345-
require __DIR__ . "/../../inc/apiv2/helper/currentUser.routes.php";
346-
require __DIR__ . "/../../inc/apiv2/helper/createSupertask.routes.php";
347-
require __DIR__ . "/../../inc/apiv2/helper/createSuperHashlist.routes.php";
348-
require __DIR__ . "/../../inc/apiv2/helper/exportCrackedHashes.routes.php";
349-
require __DIR__ . "/../../inc/apiv2/helper/exportLeftHashes.routes.php";
350-
require __DIR__ . "/../../inc/apiv2/helper/exportWordlist.routes.php";
351-
require __DIR__ . "/../../inc/apiv2/helper/getAccessGroups.routes.php";
352-
require __DIR__ . "/../../inc/apiv2/helper/getAgentBinary.routes.php";
353-
require __DIR__ . "/../../inc/apiv2/helper/getCracksOfTask.routes.php";
354-
require __DIR__ . "/../../inc/apiv2/helper/getFile.routes.php";
355-
require __DIR__ . "/../../inc/apiv2/helper/getTaskProgressImage.routes.php";
356-
require __DIR__ . "/../../inc/apiv2/helper/getUserPermission.routes.php";
357-
require __DIR__ . "/../../inc/apiv2/helper/importCrackedHashes.routes.php";
358-
require __DIR__ . "/../../inc/apiv2/helper/importFile.routes.php";
359-
require __DIR__ . "/../../inc/apiv2/helper/purgeTask.routes.php";
360-
require __DIR__ . "/../../inc/apiv2/helper/rebuildChunkCache.routes.php";
361-
require __DIR__ . "/../../inc/apiv2/helper/recountFileLines.routes.php";
362-
require __DIR__ . "/../../inc/apiv2/helper/rescanGlobalFiles.routes.php";
363-
require __DIR__ . "/../../inc/apiv2/helper/resetChunk.routes.php";
364-
require __DIR__ . "/../../inc/apiv2/helper/resetUserPassword.routes.php";
365-
require __DIR__ . "/../../inc/apiv2/helper/searchHashes.routes.php";
366-
require __DIR__ . "/../../inc/apiv2/helper/setUserPassword.routes.php";
367-
require __DIR__ . "/../../inc/apiv2/helper/taskExtraDetails.routes.php";
368-
require __DIR__ . "/../../inc/apiv2/helper/unassignAgent.routes.php";
309+
require_once(__DIR__ . "/../../inc/apiv2/auth/token.routes.php");
310+
require_once(__DIR__ . "/../../inc/apiv2/common/openAPISchema.routes.php");
311+
312+
$modelDir = __DIR__ . "/../../inc/apiv2/model";
313+
314+
require_once($modelDir . "/accessgroups.routes.php");
315+
require_once($modelDir . "/agentassignments.routes.php");
316+
require_once($modelDir . "/agentbinaries.routes.php");
317+
require_once($modelDir . "/agenterrors.routes.php");
318+
require_once($modelDir . "/agents.routes.php");
319+
require_once($modelDir . "/agentstats.routes.php");
320+
require_once($modelDir . "/chunks.routes.php");
321+
require_once($modelDir . "/configs.routes.php");
322+
require_once($modelDir . "/configsections.routes.php");
323+
require_once($modelDir . "/crackers.routes.php");
324+
require_once($modelDir . "/crackertypes.routes.php");
325+
require_once($modelDir . "/files.routes.php");
326+
require_once($modelDir . "/globalpermissiongroups.routes.php");
327+
require_once($modelDir . "/hashes.routes.php");
328+
require_once($modelDir . "/hashlists.routes.php");
329+
require_once($modelDir . "/hashtypes.routes.php");
330+
require_once($modelDir . "/healthcheckagents.routes.php");
331+
require_once($modelDir . "/healthchecks.routes.php");
332+
require_once($modelDir . "/logentries.routes.php");
333+
require_once($modelDir . "/notifications.routes.php");
334+
require_once($modelDir . "/preprocessors.routes.php");
335+
require_once($modelDir . "/pretasks.routes.php");
336+
require_once($modelDir . "/speeds.routes.php");
337+
require_once($modelDir . "/supertasks.routes.php");
338+
require_once($modelDir . "/tasks.routes.php");
339+
require_once($modelDir . "/taskwrappers.routes.php");
340+
require_once($modelDir . "/users.routes.php");
341+
require_once($modelDir . "/vouchers.routes.php");
342+
343+
$helperDir = __DIR__ . "/../../inc/apiv2/helper";
344+
345+
require_once($helperDir . "/abortChunk.routes.php");
346+
require_once($helperDir . "/assignAgent.routes.php");
347+
require_once($helperDir . "/bulkSupertaskBuilder.routes.php");
348+
require_once($helperDir . "/changeOwnPassword.routes.php");
349+
require_once($helperDir . "/currentUser.routes.php");
350+
require_once($helperDir . "/createSupertask.routes.php");
351+
require_once($helperDir . "/createSuperHashlist.routes.php");
352+
require_once($helperDir . "/exportCrackedHashes.routes.php");
353+
require_once($helperDir . "/exportLeftHashes.routes.php");
354+
require_once($helperDir . "/exportWordlist.routes.php");
355+
require_once($helperDir . "/getAccessGroups.routes.php");
356+
require_once($helperDir . "/getAgentBinary.routes.php");
357+
require_once($helperDir . "/getCracksOfTask.routes.php");
358+
require_once($helperDir . "/getFile.routes.php");
359+
require_once($helperDir . "/getTaskProgressImage.routes.php");
360+
require_once($helperDir . "/getUserPermission.routes.php");
361+
require_once($helperDir . "/importCrackedHashes.routes.php");
362+
require_once($helperDir . "/importFile.routes.php");
363+
require_once($helperDir . "/maskSupertaskBuilder.routes.php");
364+
require_once($helperDir . "/purgeTask.routes.php");
365+
require_once($helperDir . "/rebuildChunkCache.routes.php");
366+
require_once($helperDir . "/recountFileLines.routes.php");
367+
require_once($helperDir . "/rescanGlobalFiles.routes.php");
368+
require_once($helperDir . "/resetChunk.routes.php");
369+
require_once($helperDir . "/resetUserPassword.routes.php");
370+
require_once($helperDir . "/searchHashes.routes.php");
371+
require_once($helperDir . "/setUserPassword.routes.php");
372+
require_once($helperDir . "/taskExtraDetails.routes.php");
373+
require_once($helperDir . "/unassignAgent.routes.php");
369374

370375
$app->run();
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
3+
use DBA\Pretask;
4+
use DBA\Supertask;
5+
6+
require_once(dirname(__FILE__) . "/../common/AbstractHelperAPI.class.php");
7+
8+
class BulkSupertaskBuilderHelperAPI extends AbstractHelperAPI {
9+
public static function getBaseUri(): string {
10+
return "/api/v2/helper/bulkSupertaskBuilder";
11+
}
12+
13+
public static function getAvailableMethods(): array {
14+
return ['POST'];
15+
}
16+
17+
public function getRequiredPermissions(string $method): array {
18+
return [Pretask::PERM_CREATE, Supertask::PERM_CREATE];
19+
}
20+
21+
public function getFormFields(): array {
22+
return [
23+
"name" => ['type' => 'str'],
24+
"isCpu" => ['type' => 'bool'],
25+
"isSmall" => ['type' => 'bool'],
26+
"crackerBinaryTypeId" => ['type' => 'int'],
27+
"benchtype" => ['type' => 'str'],
28+
"command" => ['type' => 'str'],
29+
"maxAgents" => ['type' => 'int'],
30+
"basefiles" => ["type" => "array", "subtype" => "int"],
31+
"iterfiles" => ["type" => "array", "subtype" => "int"],
32+
];
33+
}
34+
35+
public static function getResponse(): string {
36+
return "Supertask";
37+
}
38+
39+
/**
40+
* Endpoint to import cracked hashes into a hashlist.
41+
* @throws HTException
42+
*/
43+
public function actionPost($data): object|array|null {
44+
return SupertaskUtils::bulkSupertask($data['name'], $data['command'], $data['isCpu'], $data['maxAgents'], $data['isSmall'], $data['crackerBinaryTypeId'], $data['benchtype'], $data['basefiles'], $data['iterfiles'], Login::getInstance()->getUser());
45+
}
46+
}
47+
48+
BulkSupertaskBuilderHelperAPI::register($app);
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
use DBA\Pretask;
4+
use DBA\Supertask;
5+
6+
require_once(dirname(__FILE__) . "/../common/AbstractHelperAPI.class.php");
7+
8+
class MaskSupertaskBuilderHelperAPI extends AbstractHelperAPI {
9+
public static function getBaseUri(): string {
10+
return "/api/v2/helper/maskSupertaskBuilder";
11+
}
12+
13+
public static function getAvailableMethods(): array {
14+
return ['POST'];
15+
}
16+
17+
public function getRequiredPermissions(string $method): array {
18+
return [Pretask::PERM_CREATE, Supertask::PERM_CREATE];
19+
}
20+
21+
public function getFormFields(): array {
22+
return [
23+
"name" => ['type' => 'str'],
24+
"isCpu" => ['type' => 'bool'],
25+
"isSmall" => ['type' => 'bool'],
26+
"optimized" => ['type' => 'bool'],
27+
"crackerBinaryTypeId" => ['type' => 'int'],
28+
"benchtype" => ['type' => 'str'],
29+
"masks" => ['type' => 'str'],
30+
"maxAgents" => ['type' => 'int'],
31+
];
32+
}
33+
34+
public static function getResponse(): string {
35+
return "Supertask";
36+
}
37+
38+
/**
39+
* Endpoint to import cracked hashes into a hashlist.
40+
* @throws HTException
41+
*/
42+
public function actionPost($data): object|array|null {
43+
return SupertaskUtils::importSupertask($data['name'], $data['isCpu'], $data['maxAgents'], $data['isSmall'], $data['optimized'], $data['crackerBinaryTypeId'], explode("\n", str_replace("\r\n", "\n", $data['masks'])), $data['benchtype']);
44+
}
45+
}
46+
47+
MaskSupertaskBuilderHelperAPI::register($app);

src/inc/utils/SupertaskUtils.class.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class SupertaskUtils {
2727
* @param User $user
2828
* @throws HTException
2929
*/
30-
public static function bulkSupertask($name, $command, $isCpuOnly, $maxAgents, $isSmall, $crackerBinaryTypeId, $benchtype, $basefiles, $iterfiles, $user) {
30+
public static function bulkSupertask($name, $command, $isCpuOnly, $maxAgents, $isSmall, $crackerBinaryTypeId, $benchtype, $basefiles, $iterfiles, $user): Supertask {
3131
$isCpuOnly = ($isCpuOnly) ? 1 : 0;
3232
$isSmall = ($isSmall) ? 1 : 0;
3333
$benchtype = ($benchtype == 'speed') ? 1 : 0;
@@ -86,6 +86,7 @@ public static function bulkSupertask($name, $command, $isCpuOnly, $maxAgents, $i
8686
Factory::getSupertaskPretaskFactory()->save($relation);
8787
}
8888
Factory::getAgentFactory()->getDB()->commit();
89+
return $supertask;
8990
}
9091

9192
/**
@@ -359,7 +360,7 @@ public static function createSupertask(string $name, array|null $pretasks): Supe
359360
* @param string $benchtype
360361
* @throws HTException
361362
*/
362-
public static function importSupertask($name, $isCpuOnly, $maxAgents, $isSmall, $useOptimized, $crackerBinaryTypeId, $masks, $benchtype) {
363+
public static function importSupertask($name, $isCpuOnly, $maxAgents, $isSmall, $useOptimized, $crackerBinaryTypeId, $masks, $benchtype): Supertask {
363364
$isCpuOnly = ($isCpuOnly) ? 1 : 0;
364365
$isSmall = ($isSmall) ? 1 : 0;
365366
$useOptimized = ($useOptimized) ? true : false;
@@ -386,6 +387,7 @@ public static function importSupertask($name, $isCpuOnly, $maxAgents, $isSmall,
386387
Factory::getSupertaskPretaskFactory()->save($relation);
387388
}
388389
Factory::getAgentFactory()->getDB()->commit();
390+
return $supertask;
389391
}
390392

391393
/**

0 commit comments

Comments
 (0)