Repository navigation
Added association of hashtypes to cracker binaries - #2503
Merged
Merged
Conversation
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
5 times, most recently
from
September 22, 2026 13:53
5013534 to
6b133ce
Compare
s3inlc
marked this pull request as ready for review
September 22, 2026 14:20
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
from
September 23, 2026 07:29
6b133ce to
58d78f3
Compare
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
from
September 23, 2026 08:22
58d78f3 to
5a88abe
Compare
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
2 times, most recently
from
September 23, 2026 09:43
9fbffb7 to
7fd3fa1
Compare
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
from
September 23, 2026 11:48
7fd3fa1 to
aaa91ce
Compare
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
from
September 23, 2026 13:03
aaa91ce to
d03cdbf
Compare
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
from
September 23, 2026 13:56
d03cdbf to
0f2f787
Compare
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved critical access-control, data-integrity, and API contract issues remain.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 5
Open (9)
Generic relationship routes bypass binary ACL checks · New Hashtype updates bypass binary access control · New Reverse relationship exposes inaccessible binaries · New Join table lacks unique constraint for concurrent inserts · New Migration lacks unique constraint for associations · New Relationship schemas overwrite task relationship paths · New Spec advertises unsupported readonly relationship mutations · New Relationship linkage uses plural instead of resource type · New Reverse relationship linkage uses plural resource type · New
What changed in this PR
Adds cracker-binary/hash-type associations, automatic hashcat linking, API management, lifecycle cleanup, OpenAPI updates, and tests.
Changes:
- Adds association schemas, models, factories, and backfill logic.
- Exposes bidirectional API relationships.
- Adds lifecycle handling, documentation, and test coverage.
| File | Summary |
|---|---|
src/migrations/postgres/20260918091600_cracker-binary-hashtypes.sql |
PostgreSQL association schema and backfill |
src/migrations/mysql/20260918091600_cracker-binary-hashtypes.sql |
MySQL association schema and backfill |
src/inc/utils/HashtypeUtils.php |
Hash-type association lifecycle |
src/inc/utils/CrackerUtils.php |
Binary association management and cleanup |
src/inc/startup/setup.php |
Initial hashcat association backfill |
src/inc/apiv2/model/HashTypeAPI.php |
Reverse relationship API |
src/inc/apiv2/model/CrackerBinaryAPI.php |
Editable hashtype relationship API |
src/inc/apiv2/common/AbstractBaseAPI.php |
Factory and permission registration |
src/dba/models/generator.php |
Association model metadata |
src/dba/models/CrackerBinaryHashtypeFactory.php |
Association factory |
src/dba/models/CrackerBinaryHashtype.php |
Association model |
src/dba/Factory.php |
Factory registration |
openapi.json |
Generated API specification |
ci/phpunit/TestBase.php |
Association test cleanup |
ci/phpunit/inc/utils/HashtypeUtilsTest.php |
Hash-type lifecycle tests |
ci/phpunit/inc/utils/CrackerUtilsTest.php |
Binary association tests |
ci/phpunit/inc/apiv2/openapi/SpecBuilderModelApiTest.php |
OpenAPI relationship fixture coverage |
ci/phpunit/fixtures/openapi/hashtype.spec.json |
Hash-type OpenAPI fixture |
ci/apiv2/test_hashtype.py |
Reverse relationship tests |
ci/apiv2/test_cracker.py |
Cracker relationship API tests |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
from
September 30, 2026 14:03
c5712e8 to
23994f1
Compare
jessevz
approved these changes
Sep 30, 2026
jessevz
reviewed
Sep 30, 2026
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
from
October 1, 2026 06:45
23994f1 to
a14443c
Compare
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
from
October 1, 2026 12:59
a14443c to
e98feac
Compare
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
from
October 5, 2026 13:31
e98feac to
63108f7
Compare
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
from
October 5, 2026 14:30
63108f7 to
389d596
Compare
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
2 times, most recently
from
October 7, 2026 10:59
92369f7 to
559713b
Compare
s3inlc
force-pushed
the
886-stack-4-hashtype-assoc
branch
from
October 19, 2026 14:06
559713b to
fb4631b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Adds support for defining which hash types each cracker binary can process.
Hashcat binaries are associated with all available hash types automatically, including hash types added later. Other cracker types start without associations, allowing users to explicitly configure only the hash types they support.
Supported hash types can be viewed and managed through the cracker binary API. The reverse relationship is also visible on each hash type, making it possible to determine which cracker binaries support it.
Associations are kept consistent when cracker binaries or hash types are deleted.
NOTE: the edit relations part for crackers which are of binary 'hashcat' is only "temporary", in the next stack PR, this will be superseded by automation. This will then only be used for generic crackers.