Skip to content

chore: update contributors - #1

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
chore/update-contributors
Open

chore: update contributors#1
github-actions[bot] wants to merge 1 commit into
mainfrom
chore/update-contributors

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown

Automated update of CONTRIBUTORS.svg.

hahwul added a commit that referenced this pull request Jun 4, 2026
- Fix manual_clamp clippy lint with .clamp(1, N)
- Add min/max validation to target-field brute, server::crack_brute, and MCP brute paths
- Use .chars().count() instead of .len() for charset size in estimate_combinations calls (and legacy generator for consistency)
- Use saturating_pow + guards/break to prevent u64/usize overflow panics and wrong wrapped search spaces in estimate and enumeration loops

These changes make pre-commit (fmt, clippy -D warnings, test) pass.

(Review issues 5-9 remain for separate consideration; no GitHub comments were posted.)

Co-authored-by: bsysop <9998303+bsysop@users.noreply.github.com>
hahwul added a commit that referenced this pull request Jun 4, 2026
- Fix manual_clamp clippy lint with .clamp(1, MAX_POWER_THREADS)
- Add --min/--max validation to target-field brute, server::crack_brute, and MCP brute paths
- Use .chars().count() instead of .len() for charset size in estimate_combinations (and legacy generator for consistency)
- Use saturating_pow + early break on u64::MAX to prevent overflow panics/wraps in estimate and enumeration loops

These changes make pre-commit (fmt, clippy -D warnings, test) pass.

Co-authored-by: bsysop <9998303+bsysop@users.noreply.github.com>
bsysop added a commit that referenced this pull request Jun 4, 2026
…ches (hahwul#208)

* perf: reduce memory consumption by ~99% with mimalloc + streaming batches

- Swap global allocator to mimalloc for aggressive page reclamation
- Stream dictionary wordlists in 100K batches instead of loading entire file
- Eliminate duplicate expanded Vec in targeted field dictionary path
- Cap --power thread pool at 32 to prevent allocator pressure
- Remove redundant shrink_to_fit/re-reserve cycles in batch loops

Peak RSS drops from ~15.9 GB to ~10 MB (-99.94%) while throughput
improves from 939K to 1.44M keys/sec (+53%).

* feat: add --min flag for brute-force cracking

Allows starting brute-force from a minimum password length instead
of always beginning at 1.  Skips computationally wasteful short
combinations when the target secret is known to be longer.

Example: jwt-hack crack TOKEN --mode brute --chars az --min 4 --max 8

- Add min: usize to CrackOptions and CLI args (default: 1)
- Update estimate_combinations to accept min_len
- Update crack_bruteforce to loop min_length..=max_length
- Update server/mcp/shell call sites
- Add validation: min >= 1, min <= max
- Add tests for min/max range estimation

* fix: address review findings #1-4

- Fix manual_clamp clippy lint with .clamp(1, MAX_POWER_THREADS)
- Add --min/--max validation to target-field brute, server::crack_brute, and MCP brute paths
- Use .chars().count() instead of .len() for charset size in estimate_combinations (and legacy generator for consistency)
- Use saturating_pow + early break on u64::MAX to prevent overflow panics/wraps in estimate and enumeration loops

These changes make pre-commit (fmt, clippy -D warnings, test) pass.

Co-authored-by: bsysop <9998303+bsysop@users.noreply.github.com>

---------

Co-authored-by: hahwul <hahwul@gmail.com>
Co-authored-by: bsysop <9998303+bsysop@users.noreply.github.com>
@github-actions
github-actions Bot force-pushed the chore/update-contributors branch from 3d18437 to 6d22ec5 Compare June 4, 2026 19:51
bsysop added a commit that referenced this pull request Jun 5, 2026
Critical:
- CPU fallback when GPU init or dispatch fails (#1)
- Zero-initialise Metal results buffer to prevent false positives (hahwul#2)
- Skip candidates > 64 bytes in kernel (HMAC key-hashing not implemented) (hahwul#3)

High:
- Remove redundant secret/k_padded double copy in kernel (hahwul#4)
- Remove unused total_remaining variable (hahwul#5)
- Replace byte-by-byte zeroing with drop+reallocate (hahwul#6)

Medium:
- Add keys/sec rate to GPU progress line (hahwul#7)
- Flush stderr after progress update (hahwul#8)
- Always show progress (not just for multi-batch runs) (hahwul#9)
- Add --no-gpu flag to force CPU mode (hahwul#10)
bsysop added a commit that referenced this pull request Jun 5, 2026
High:
- make_buffer uses saturating_mul to prevent overflow (#1)
- Move use std::io::Write to top-level imports (hahwul#2)

Medium:
- is_available() checks MTLGPUFamily::Common2, not just device presence (hahwul#3)
- Cache device info with OnceLock to avoid double objc lookup (hahwul#4)
- Show progress after dispatch (rate reflects actual work) (hahwul#5)
- Add ETA to progress line (hahwul#6)

Low:
- Fix kernel typo 'anyally' → 'computationally' (hahwul#7)
bsysop added a commit that referenced this pull request Jun 6, 2026
High:
- Add Hs256Verifier::into_parts() to avoid re-parsing token on GPU path (#1)
- Reuse verifier's signing_input + expected_sig instead of re-deriving

Medium:
- Extract validate_brute_lengths() shared by CPU and GPU paths (hahwul#3)
- Show 'ETA <1s' instead of 'ETA 0s' when near completion (hahwul#4)
- Use labelled break 'length: instead of fragile double-break (hahwul#5)
- Remove unused base64::Engine import (decode now via into_parts)
bsysop added a commit that referenced this pull request Jun 6, 2026
Critical:
- Re-add expected_sig.len() != 32 check after into_parts() refactor.
  prepare_hs256_verifier does not validate signature byte length;
  a malformed token could cause GPU kernel to read past buffer (#1)

Medium:
- ETA now computed against global total_combinations, not per-length
  total.  Cracking 5..=7 now shows ETA for the entire job (hahwul#2)

Low:
- Remove redundant local GPU_BATCH const, use gpu::GPU_BATCH_SIZE (hahwul#3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant