Skip to content

Add v3 package documentation and code review#38

Merged
prjseal merged 5 commits into
dev/v3from
feature/passphrase
May 25, 2026
Merged

Add v3 package documentation and code review#38
prjseal merged 5 commits into
dev/v3from
feature/passphrase

Conversation

@prjseal
Copy link
Copy Markdown
Owner

@prjseal prjseal commented May 25, 2026

Detailed single-file reference covering the public API, internal
generation flow, confirmed bugs (error-string returns, off-by-one
character selection, modulo bias, non-uniform shuffle, static RNG),
build/test results, packaging hygiene, feature gaps, and a prioritised
v3 plan.

https://claude.ai/code/session_01NNRvLbK1UWy49i4Yg43QEd

claude added 5 commits May 25, 2026 15:35
Replace the 390-word built-in list with the EFF Large Wordlist (7,776
words, ~12.9 bits/word), raising a 6-word passphrase to ~77 bits. Add
CC BY 3.0 attribution (WordList.cs header, THIRD-PARTY-NOTICES.md,
Readme, CHANGELOG), an InternalsVisibleTo for the test project, and
word-list integrity tests. Switch the passphrase smoke test to a '.'
separator since a few EFF words are hyphenated.

https://claude.ai/code/session_01Y5PCRCxt2rJFBLnbaQdQRB
Add ForPassphraseWithEntropy(targetBits) which derives the word count
needed to reach a target and enforces it, plus an optional
minimumEntropyBits floor on ForPassphrase that rejects weak configs.
Expose PassphraseGenerator.WordCountForEntropy and surface
EstimateEntropyBits on the IPasswordGenerator interface.

https://claude.ai/code/session_01Y5PCRCxt2rJFBLnbaQdQRB
Add includeSymbol to the passphrase generator and factories: a random
symbol is attached to one randomly chosen word so phrases satisfy
"needs a number and a symbol" validators while staying memorable.
Entropy estimation now accounts for the symbol's value and position.
Document that some EFF words are hyphenated, so callers tokenizing the
output should use a separator that does not appear in any word.

https://claude.ai/code/session_01Y5PCRCxt2rJFBLnbaQdQRB
Add PassphraseOptions and a PasswordOptions.Passphrase property so the
DI registration can resolve a passphrase IPasswordGenerator, in code or
bound from a "Passphrase" configuration section. Add a ForMemorable()
preset (capitalized words sized to at least 80 bits).

https://claude.ai/code/session_01Y5PCRCxt2rJFBLnbaQdQRB
Add seeded-RNG tests covering word selection by index, capitalization,
symbol placement, plus a broad-sampling distribution check. Update
api-surface.md and architecture.md to reflect the EFF Large Wordlist,
entropy targeting/floor, symbol injection, EstimateEntropyBits on the
interface, and passphrase configuration through DI.

https://claude.ai/code/session_01Y5PCRCxt2rJFBLnbaQdQRB
@prjseal prjseal changed the base branch from master to dev/v3 May 25, 2026 16:35
@prjseal prjseal merged commit 0fcca79 into dev/v3 May 25, 2026
1 check passed
@prjseal prjseal deleted the feature/passphrase branch May 25, 2026 16:38
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.

2 participants