Skip to content

node_key: private-only key store; Windows keys in Credential Manager only (#19) - #22

Merged
rgfaber merged 4 commits into
masterfrom
venus-windows-keys
Oct 7, 2026
Merged

rgfaber merged 4 commits into
masterfrom
venus-windows-keys

Conversation

@rgfaber

@rgfaber rgfaber commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Draft for CI only (the windows-latest Credential Manager job). Not for merge here: master moves by the usual push after review.

Purpose (security): a node's identity key at rest on Windows is readable by its owner only. Register row: Identity keys protected at rest.

🤖 Generated with Claude Code

…tial Manager only (#19)

Every KeyStore keeps the ML-DSA-87 seed, and in pq_hybrid the RSA-PSS key
as PKCS #1, at most 2,429 bytes, inside Credential Manager's 2,560; the
public keys are derived again on load. A key kept in 0.7.0's key-file form
is refused KeptInTheKeyFileForm, which says to create the identity again.
The seed form moves to node_key/seed_form.rs; key files (node_key/key_file.rs)
are unix only, and on Windows NodeKey::save, load and load_or_create refuse
NoKeyFile, naming the store to use. A windows-latest CI job round-trips
both profiles through the real Credential Manager. Tests: the kept size at
the worst RSA size, and the 0.7.0 form refused; both failed first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rgfaber rgfaber closed this Oct 7, 2026
@rgfaber rgfaber reopened this Oct 7, 2026
rgfaber and others added 3 commits October 7, 2026 08:54
…ut bytes are wiped (#19)

From Fable's review: KeyringStore on Windows builds its Credential Manager
credential with persistence=local (CRED_PERSIST_LOCAL_MACHINE); the store's
default, Enterprise, roams with a domain profile. A key's laid-out bytes are
Zeroizing, allocated once at full size so no growth leaves a copy. The kept
size at most is 2,431 bytes (STORE_MAGIC is 27). FFI docs and its key-file
test say unix only; the Windows test clears a stale file first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…a mapping

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rgfaber
rgfaber merged commit a1253d7 into master Oct 7, 2026
7 checks passed
@rgfaber
rgfaber deleted the venus-windows-keys branch October 7, 2026 07:12
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