Commit Graph

575 Commits

Author SHA1 Message Date
Justin Bollinger
fbe2fc7226 fix: remove switch prompt from download_found hashview option
The download_found option downloads already-cracked hashes (with cleartext
passwords). These cannot be used for cracking, so the 'Switch to this hashfile
for cracking?' prompt is inappropriate and confusing.

The switch prompt is kept for download_left since those are uncracked hashes
that can be cracked.

- Remove the switch-to-cracking prompt from download_found flow
- Add clarifying message that found hashes are already cracked
- Align with intended behavior: download_left prompts to switch, download_found just downloads
2026-02-10 10:46:28 -05:00
Justin Bollinger
d683f839e2 fix: exclude submodule directories from mypy checks and update pre-push hook
- Add HashcatRosetta and hashcat-utils to mypy exclude patterns in pyproject.toml
- Update .github/workflows/mypy.yml to exclude submodule directories
- Update pre-push hook to exclude submodules and use consistent mypy flags
- Set ignore_missing_imports=true to handle external dependencies gracefully
- Ensure pre-push hook permissions are set correctly (executable)

Fixes mypy check failures caused by missing hashcat_rosetta.formatting stub.
2026-02-10 10:24:51 -05:00
Justin Bollinger
775952e7ef Update menu text for option 91 to show 'Analyze Hashcat Rules' 2026-02-10 09:21:44 -05:00
Justin Bollinger
efc25c335a Apply ruff formatting fixes
- Fix line length and formatting in hate_crack/api.py
- Fix line wrapping and f-string formatting in hate_crack/attacks.py
- Apply code style improvements in hate_crack/main.py
- Format test files for consistency
- All changes applied via 'ruff check --fix'
2026-02-09 20:08:51 -05:00
Justin Bollinger
e40080676e Add menu option 91 for rule analysis using HashcatRosetta 2026-02-09 20:02:52 -05:00
Justin Bollinger
80106f1aa4 Update HashcatRosetta submodule to latest version with rule analysis features 2026-02-09 19:58:58 -05:00
Justin Bollinger
a89c7c3fce Add HashcatRosetta as a submodule for rule analysis functionality 2026-02-09 19:58:04 -05:00
Justin Bollinger
90696278d3 added debug options 2026-02-09 14:30:37 -05:00
Justin Bollinger
1fab01d444 updated documentation 2026-02-06 19:51:48 -05:00
Justin Bollinger
210a4006f5 removed extended expander 2026-02-06 19:37:39 -05:00
Justin Bollinger
0683c86c54 fingerprint: select expander length and optionally run hybrid on expanded 2026-02-06 16:44:11 -05:00
Justin Bollinger
59cbad7890 working loopback mode with tests 2026-02-06 15:06:25 -05:00
Justin Bollinger
40172c8df9 updated loopback logic and added testing 2026-02-06 14:37:37 -05:00
Justin Bollinger
4f51ce7379 updated loopback logic and added testing 2026-02-06 14:36:15 -05:00
Justin Bollinger
75f39123f1 Remove badge status explanations from README
Removed explanations for badge statuses in the README.
2026-02-06 09:51:28 -05:00
Justin Bollinger
45c78d6a7c ci: add individual badges for each Python version (3.9-3.14)
- Create separate workflow files for Python 3.9, 3.10, 3.11, 3.12, 3.13, 3.14
- Each Python version gets its own status badge
- Easily track which version(s) are failing tests
- Update README to display all 6 Python version badges
- Badges are clickable and link to individual workflow results
- Maintain pytest.yml as combined multi-version workflow
2026-02-06 09:50:32 -05:00
Justin Bollinger
d34aae8cb2 ci: split tests workflow into separate ruff, mypy, and pytest workflows
- Create individual workflow files for ruff, mypy, and pytest
- Each workflow has its own status badge for independent monitoring
- Ruff badge shows code quality status
- Mypy badge shows type checking status
- Pytest badge shows multi-version testing status
- Update README with all three badges and clear status documentation
- Remove combined tests.yml in favor of granular workflows
2026-02-06 09:49:30 -05:00
Justin Bollinger
74857f061e ci: add multi-version Python testing and status banners
- Separate lint job for ruff and mypy checks on Python 3.13
- Add pytest matrix strategy to test Python 3.9 through 3.14
- Add GitHub Actions status badge to README
- Document CI/CD pipeline and what each check does
- Include pass/fail criteria for linting, type checking, and testing
- Link to Actions tab for detailed workflow results
2026-02-06 09:46:26 -05:00
Justin Bollinger
605ec28fd7 test: improve live test to skip gracefully when server unavailable
- Add server reachability check before attempting connection
- Test skips if Hashview server is not available on localhost:5000
- Prevents test failures when HASHVIEW_TEST_REAL env var is set but server isn't running
- Allows test to succeed when Docker/server is available and configured
2026-02-06 09:43:49 -05:00
Justin Bollinger
742529962a test: improve live test to skip gracefully when server unavailable
- Add server reachability check before attempting connection
- Test skips if Hashview server is not available on localhost:5000
- Prevents test failures when HASHVIEW_TEST_REAL env var is set but server isn't running
- Allows test to succeed when Docker/server is available and configured
2026-02-06 09:43:23 -05:00
Justin Bollinger
56dd272e75 test: update CLI menu test strings to match recent changes
The Hashview menu has been updated:
- Old: 'Available Customers'
- New: 'What would you like to do?'

Updated test to check for the current menu text that displays
when using the --hashview flag.
2026-02-06 09:39:07 -05:00
Justin Bollinger
e51d1f7c59 build: add dev-install and dev-reinstall targets to Makefile
- Add 'make dev-install' to install project with [dev] dependencies
- Add 'make dev-reinstall' to uninstall and reinstall with dev deps
- Convenient way for developers to get linters and type checkers
2026-02-06 09:36:50 -05:00
Justin Bollinger
907be19d24 docs: add Development section to README
- Document how to install dev dependencies
- Provide commands for running ruff and mypy locally
- Include pre-push hook example for automated checks
- List all included dev dependencies
- Help contributors run checks before pushing
2026-02-06 09:35:20 -05:00
Justin Bollinger
cabefe5b26 refactor: add optional dev dependencies and mypy configuration
- Add optional [dev] dependency group with mypy, ruff, pytest, and type stubs
- Include types-requests, types-beautifulsoup4, and types-openpyxl
- Add mypy config to exclude submodule directories
- Update GitHub workflow to install with optional dev dependencies
- Remove --ignore-missing-imports flag from mypy for stricter type checking
2026-02-06 09:34:38 -05:00
Justin Bollinger
16f92a0f71 fix: resolve mypy import-untyped errors for requests library 2026-02-06 09:31:17 -05:00
Justin Bollinger
b1cf4d3e43 ruff fixes 2026-02-06 09:29:13 -05:00
Justin Bollinger
14ce2cb300 ruff fixes 2026-02-06 09:14:33 -05:00
Justin Bollinger
b52d856d7b download wordlists testing 2026-02-05 17:36:46 -05:00
Justin Bollinger
b16c3a1d26 fixed wordlist download and unit testing for live api 2026-02-05 16:32:17 -05:00
Justin Bollinger
c1d5658dd6 automatic hash_id detection via api for hashview hashes and updated tests. 2026-02-05 15:39:08 -05:00
Justin Bollinger
092b63f82c automatic hash_id detection via api for hashview hashes 2026-02-05 14:56:27 -05:00
Justin Bollinger
0c0690e2ef lots of refactoring around the menues and building out test cases 2026-02-05 13:52:06 -05:00
Justin Bollinger
c049065924 Update hashview API flow and tests 2026-02-04 15:48:19 -05:00
Justin Bollinger
d23fcd079d updated gitignore to ignore expanded files 2026-02-04 12:53:57 -05:00
Justin Bollinger
9101e8fe5d updated output path 2026-02-03 21:50:40 -05:00
Justin Bollinger
65d11a8024 fixed issue with argument parsing when using uv run vs an installed uv tool 2026-02-03 20:40:00 -05:00
Justin Bollinger
328c0ba676 rule download fixes from hashmob 2026-02-03 20:05:44 -05:00
Justin Bollinger
70334f0024 rule download fixes from hashmob 2026-02-03 19:44:58 -05:00
Justin Bollinger
f33ca19107 expanded tests and hashview menu changes 2026-02-03 19:28:45 -05:00
Justin Bollinger
6bb5cb6526 Merge branch 'main' of https://github.com/trustedsec/hate_crack 2026-02-03 17:21:43 -05:00
Justin Bollinger
d68bf287e4 updated formatting to take account terminal width 2026-02-03 17:10:00 -05:00
Justin Bollinger
3d37b08fe0 updated formatting to take account terminal width 2026-02-03 17:07:26 -05:00
Justin Bollinger
b9668bf8ed updated formatting to take account terminal width 2026-02-03 17:05:27 -05:00
Justin Bollinger
7b9f1bc7c9 updated formatting to take account terminal width 2026-02-03 17:01:57 -05:00
Justin Bollinger
ece18e33b7 fixed menu option by number 2026-02-03 14:53:57 -05:00
Justin Bollinger
6740c993e5 fixed pathing issue with hybrid 2026-02-02 16:06:55 -05:00
Justin Bollinger
7265c00022 fixed pathing issue with hybrid 2026-02-02 15:56:16 -05:00
Justin Bollinger
090a90837d updated formatting for rules listing 2026-02-02 13:22:41 -05:00
Justin Bollinger
ee375cfbd7 fixed menu pytest options that failed after updating them 2026-02-02 13:18:12 -05:00
Justin Bollinger
e3b05c96dd fixed menu pytest options that failed after updating them 2026-02-02 13:16:20 -05:00