Skip to content

Admin password draws from the full mixed alphabet - #42

Merged
selul merged 3 commits into
developmentfrom
feat/password-alphabet
Jul 22, 2026
Merged

Admin password draws from the full mixed alphabet#42
selul merged 3 commits into
developmentfrom
feat/password-alphabet

Conversation

@selul

@selul selul commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

The derived admin password displayed the HMAC digest's hex form — 24 chars of [a-f0-9], which looks weak and can trip hosts that enforce mixed character classes. It now maps the raw digest bytes onto the full alphabet (upper/lower/digits/!@#$%^&*()-_=+), one byte per character.

Still fully deterministic from seed + auth salt: redisplay, the wp_check_password sync guard, and the agent token derivation are all unchanged. ~6.2 bits per character × 24 ≈ way past the effective HMAC bound either way — this is presentation and host-policy compatibility, not an entropy change.

Tests assert the alphabet and that the password isn't the bare hex digest. 21/21 green.

🤖 Generated with Claude Code

selul and others added 3 commits July 22, 2026 16:08
Maps the raw HMAC digest onto letters/digits/symbols instead of showing
the digest's hex form — still fully deterministic from seed + auth salt,
so redisplay and the wp_check_password sync guard are unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Merged #40's page test meets #42's alphabet: the admin password can now
contain '&', which the page escapes via esc_html, so the raw-substring
assertion failed whenever a run's random seed produced one (only some
CI legs hit it). Assert esc_html() of both credentials — the exact form
the row renders. Verified stable across repeated seeds.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@selul
selul merged commit e81a1de into development Jul 22, 2026
21 checks passed
@selul
selul deleted the feat/password-alphabet branch July 22, 2026 13:13
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