build(deps): Bump zeroize from 1.8.2 to 1.9.0 - #22
Open
dependabot[bot] wants to merge 24 commits into
Open
Conversation
…tact Replace github.com/vault with leocelis/vault across badges, GHSA, and cosign docs; add security email fallback; track public-flip checklist in AUDIT_READINESS. Co-authored-by: Cursor <cursoragent@cursor.com>
Delete all workflows and Dependabot (no paid CI). Releases are maintainer-local per docs/RELEASE.md. OSS scrub: README badges, samples path, UC-19 .sdlc ref, CLI drift. Co-authored-by: Cursor <cursoragent@cursor.com>
SUPPORT.md, README docs/community sections, INSTALL accuracy, public-readiness checklist complete. Bump to 0.1.0-alpha.2; quality gate local-only. Co-authored-by: Cursor <cursoragent@cursor.com>
Implement vault stanzas list/add/remove guidance, headless C27 exit 7, fix constraint index labels, add minimal CI, docs hub, README release-first install. Bump v0.1.0-alpha.3. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Soften stanzas claim, clarify prebuilt platform scope, align CI status with GHA workflow, add docs hub link, and refresh VERIFYING_RELEASES. Co-authored-by: Cursor <cursoragent@cursor.com>
Align RELEASE/SECURITY/AUDIT_READINESS with minimal GHA CI and alpha.3; expand docs/README hub; add vault-clip to ARCHITECTURE; fix THREAT_MODEL footnote; bump UC spec headers from Draft to Accepted v0.2. Co-authored-by: Cursor <cursoragent@cursor.com>
Mark repo public in AUDIT_READINESS/ROADMAP, restore README CI badge, add rust-cache to GHA workflow, remove pre-flip checklist language. Co-authored-by: Cursor <cursoragent@cursor.com>
cargo fmt on stanzas/cli tests; document Stanza::on_disk_len for clippy. Co-authored-by: Cursor <cursoragent@cursor.com>
Land P0–P3 audit items: format freeze (ADR-0005), KDF floor policy, sync provisioning guide, YubiKey strict default, agent broker scaffold (ADR-0006), cargo-vet in audit-ready, ptrace hardening, rotate-data-key crypto-shred, recovery codes, live FIDO2/TPM via subprocess tools, streaming payload parse, GUI in-app TOTP, Padmé research, and doc/threat-model updates. Gate 0 crypto fixes accepted in ADR-0003/0004 without maintainer sign-off ceremony. Third-party audit explicitly declined; automated gates only. Co-authored-by: Cursor <cursoragent@cursor.com>
Fix cargo fmt --check failures on CI (agent, hardware, sys modules). Co-authored-by: Cursor <cursoragent@cursor.com>
Document FIDO2/TPM envelope fields, derive SaveOptions Default, fix needless return/borrow in vault-agent and vault-cli. Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve Option? misuse in vault-agent store on non-macOS Unix. Add --allow-weak-kdf to init-only paths; omit it from upgrade-kdf invocations. Co-authored-by: Cursor <cursoragent@cursor.com>
upgrade-kdf hard-rejects below-floor Argon2id; bump to m=19456 t=2 p=1. Co-authored-by: Cursor <cursoragent@cursor.com>
Pattern YAML lives outside the vault repo; regression tests anchor on in-repo research docs only so GitHub Actions stays self-contained. Co-authored-by: Cursor <cursoragent@cursor.com>
GitHub Actions may expose a readable but non-writable coredump_filter; match C25 best-effort semantics and skip when write fails. Co-authored-by: Cursor <cursoragent@cursor.com>
…repo hygiene - MAINTAINERS.md: flat handle list, authority delegated to CODEOWNERS - GOVERNANCE.md decision tiers: code-owner sign-off (path-scoped), no person-rank labels - cowork.yaml / CLAUDE.md / CODEOWNERS comment: lane split without hierarchy wording - Remove internal work-tracking references from public research notes, ADR metadata, scripts, supply-chain config, and test/doc comments - Update audit_commission doc test to match renamed section Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ted clouds (C61-C66) One sealed blob for any file/folder, droppable on Dropbox/Drive/S3/git: - vault-core: file-archive TLV payload behind the existing STREAM envelope (VLTF magic, fresh data key per seal, no new crypto paths — C61); zero plaintext metadata (C62); bounded-memory streaming seal/open with one KDF run per op (C63); fail-closed staged extraction (C64); zip-slip-safe paths (C65); Padmé padding default-on (C66); new fuzz target file_archive_parse - vault-cli: seal/open/peek + pipe modes, --append, stanza management, upgrade-kdf and rotate-data-key on .vltf, keyfile/YubiKey/FIDO2/TPM unlock - vault-gui: drag-and-drop seal/open, worker-thread progress + cancel, keyfile/YubiKey 2FA at seal time, virtualized peek - vault-tui: seal/open/peek parity with progress gauge - intent v1.8.0: G16 forward constraints C61-C66 + conflict SC9; spec UC-23 Accepted v1.0; PRD, ROADMAP S-22, CONSTRAINT_INDEX, THREAT_MODEL, CLI docs updated; synthetic samples/project_docs for a safe try-it path - research: encrypted_cloud_storage_research.md — the survey grounding the design (tools, academic literature, community practice) Tests: 48 workspace suites green incl. sealed_constraints, joint satisfaction on one artifact, CLI round-trip/auth/append matrices, GUI/TUI wiring; clippy -D warnings clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Renames the project end-to-end (crates, binary, env vars, default data directories, CLI docs, runtime hint strings) and repositions the README around the agent-broker use case instead of the password-manager frame. Why: crates.io names `vault`/`vault-cli`/`vault-core` are already taken by unrelated projects, so `cargo install vault-cli` (promised throughout the old docs) could never work. Infisical's "Agent Vault" (github.com/Infisical/ agent-vault) validated the AI-agent-credential-broker category with 1.9K stars in ~4 months on a research preview, while GitGuardian found ~24,000 secrets in public MCP config files in 2026 — the local-first, no-account, handle-based lane (blindkey-agent) is the differentiated angle this project already had the tech for (C27, ADR-0006) but had buried under a password- manager pitch competing with 10-year-old incumbents. Full research/decision record: limitless/docs/research/ventures/vault/ VAULT_AGENT_SECURITY_PIVOT_DECISION_2026-07.md (private). What changed: - 8 crates renamed vault-* → blindkey-* (dirs, Cargo.toml package/bin names, path deps, all `use` imports); workspace builds and all 404+ tests pass. - Binary `vault` → `blindkey`; env vars VAULT_* → BLINDKEY_*; default data dir `~/.vault` → `~/.blindkey`; `vault_intent.yaml` → `blindkey_intent.yaml`. - Every user-facing runtime hint string in the CLI/TUI/agent broker updated (e.g. "run `vault init` first" → "run `blindkey init` first") — these are real error/help text a user would otherwise follow into a command that no longer exists. - README rewritten: new positioning headline, agent-broker comparison table, MCP/GitGuardian context in "Why Blindkey exists". - Full docs/specs/ADR/guides/research sweep for brand references, while deliberately leaving internal Rust identifiers (the `Vault` struct type, `vault_id`/`vault_version` field names) untouched — those are generic domain vocabulary, not brand references, and renaming them was out of scope and unnecessary risk in a crypto-adjacent codebase. - Root `LICENSE` pointer file's prose replaced with verbatim MIT text: it could not simply be deleted (an earlier hygiene-pass attempt to delete it for GitHub license-detection reasons violated constraint C24, which the test suite caught) — this keeps the file present per C24 while giving GitHub's detector real, recognizable license text instead of custom prose. - Also includes the previously-uncommitted OSS-readiness audit fixes: CI matrix expanded to macOS + experimental Windows, new `audit` and `reproducible` CI jobs, Dependabot config, 3 broken doc links fixed, stale constraint-count fix, quickstart fixed for binary-only installs. Verification: cargo build --workspace, cargo test --workspace --all-features --no-fail-fast (0 failures), cargo clippy --all-targets --all-features -D warnings (0 warnings), cargo fmt --all -- --check (clean). Not included — needs Leo directly: git history rewrite (old commits still reference internal card/limitless paths), crates.io publish (needs `cargo login` token), Apple Developer notarization for macOS binaries, signed v1.0.0 release tag, branch protection on main. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
… fixes
Full re-audit of the Vault→Blindkey rename requested after the initial
push. Found and fixed real gaps the first pass missed:
- **fuzz/ crate was never touched — completely broken.** It's excluded
from the main Cargo workspace (cargo-fuzz needs nightly-only features),
so `cargo test --workspace` never caught that fuzz/Cargo.toml still
depended on `vault-core = { path = "../crates/vault-core" }` — a path
that no longer existed after the rename. `cargo check` inside fuzz/
failed outright. Fixed: crate renamed blindkey-fuzz, path dep and all
6 fuzz target imports updated to blindkey_core; added `exclude =
["fuzz"]` to the root workspace (a separate pre-existing nesting
ambiguity, unrelated to naming, that blocked verifying the fix).
- **~20 more files with `vault <subcommand>` references**, mostly in Rust
doc comments (`///`, `//!`) that my first pass's string-literal-only
regex didn't match: crypto/tune.rs, error.rs, vault.rs, format/stanza.rs,
format/payload.rs, docs/PRD.md, docs/CLI.md, docs/RELEASE.md (binary
paths in the release process — missed entirely, first pass didn't cover
this file), several UC specs, ROADMAP.md, samples/keys.txt.
- **Grammar breaks from the earlier blind `Vault`→`Blindkey` regex**,
where "Vault" was a generic noun, not the brand: "Credential Blindkey"
→ "Credential Vault" (research/vault_spec.md, research/ui_architecture.md
titles), "the Blindkey" → dropped article in 2 UC spec titles, "cross-
blindkey lock contention" → "cross-vault" (a hyphenated compound the
regex matched mid-word), "The blindkey open/save orchestration" (doc
comment meant "vault-opening", not the CLI command) reverted.
- **CHANGELOG.md: 8 instances of `Vault::` (the actual Rust struct/method
name, e.g. `Vault::find`, `Vault::open_keyfile`) had been incorrectly
capitalized to `Blindkey::`** by the same broad regex — these described
real API history and were now factually wrong (that method never existed
under that name). Reverted. Also fixed the "Known limitations" collision
note, which had been rewritten to claim `blindkey`/`blindkey-cli` are
crates.io-taken — backwards; the taken names were the old `vault-*` ones,
which is the whole reason for the rename.
- **macOS bundle**: CFBundleName/CFBundleDisplayName in bundle-macos.sh
still said "Vault" — the actual Dock/Finder-visible app name.
- Root LICENSE restored correctly (confirmed still present, C24-satisfying,
from the previous commit).
- Top-comment brand mentions in justfile, supply-chain/config.toml,
.github/workflows/ci.yml (non-.md files the doc sweep didn't cover).
Verification: cargo build/test(--no-fail-fast, 0 failures)/clippy(0
warnings)/fmt(clean), all local. Also checked GitHub Actions on the prior
rename push (run 29663071185): `check` (macOS + Linux) and `reproducible`
jobs — the ones that actually exercise the rename — passed clean. Two
unrelated pre-existing issues surfaced for the first time because this is
the first run of the newly-added `audit` job and Windows job: a real
`cargo audit` failure (2 high-severity RUSTSEC advisories in `quick-xml`,
a transitive GUI dependency) and a missing-docs compile error in
blindkey-sys on Windows (continue-on-error, non-blocking by design).
Neither is a rename bug — both would fail identically under the old name.
Flagged separately for Leo, not fixed here.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
dependabot
Bot
force-pushed
the
dependabot/cargo/zeroize-1.9.0
branch
from
July 18, 2026 22:34
0291810 to
9a9548a
Compare
…e-path leak Third and deepest verification pass over the Vault→Blindkey rename. This round targeted binary-invocation forms and metadata the earlier subcommand-only sweeps structurally could not catch. Critical: - **Anti-lockout recovery instructions pointed at a nonexistent command.** crates/blindkey-cli/src/commands/mod.rs printed 7 user-facing messages telling a locked-out user to unlock with `vault --recovery <command>` / `vault --vault F --keyfile K open …`. After the rename the binary is `blindkey`, so anyone who lost their keyfile and followed the printed recovery steps would hit "command not found" — the worst possible moment for a dead instruction. All 7 corrected to `blindkey …`. These are the flag-form (`vault --flag`) invocations the prior subcommand-matching passes never saw. - **Private path leaked into the public CHANGELOG.** The rename entry cited an internal `limitless/…` research path (added in the previous commit). Removed; the rename rationale now stands on the public-safe crates.io name-collision explanation alone. - **Cargo.toml `repository`/`homepage` still pointed at github.com/leocelis /vault.** GitHub redirects, but this is the canonical metadata crates.io and docs.rs would display — repointed to /blindkey. Also: - ~18 documentation files: `vault --flag` invocations and future/rejected command names (`vault exec`, `vault capture`, `vault migrate`, `vault doctor`) → `blindkey …`, across CLI.md, the enterprise/recovery/ sync guides, and UC-05/07/09/17/23 specs. Fixed with a lookbehind so the `--vault` selector flag is never corrupted. - Consistency in examples: rejected hypothetical `VAULT_PASSWORD` → `BLINDKEY_PASSWORD` (UC-05), example shell var `VAULT_FILE` → `BLINDKEY_FILE` and `/etc/vault/` → `/etc/blindkey/` (sync guide). Deliberately retained as generic domain vocabulary, not brand: the `Vault` struct type, `vault_id`/`vault_version` fields, `VAULT_VERSION` TLV tag, the `.vlt`/`.vltf` extensions, the `~/.blindkey/vault.vlt` filename, the "vault header is corrupt" error string, and the CHANGELOG's historical `vault`/`vault-cli`/`vault-core` mentions that explain why the rename happened. Verification: cargo build/test(--no-fail-fast, 48 suites, 0 failures)/ clippy(-D warnings, 0)/fmt(clean). Exhaustive sweep confirms zero `leocelis/vault` URLs, zero `limitless` references, zero bare-binary `vault`-command invocations remaining. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…xemptions Closes the two pre-existing findings the newly-added CI jobs surfaced (both unrelated to the rename — they would fail identically under any name). Windows build: - blindkey-sys `read_line_from_fd` had an undocumented `cfg(not(unix))` stub under `#![deny(missing_docs)]`, so the crate failed to compile on Windows (the only platform that selects that arm). Documented the stub. Supply-chain advisories (RUSTSEC-2026-0194 / -0195, quick-xml < 0.41): - Documented, per-ID exemptions in `deny.toml` and a new `.cargo/audit.toml`, with rationale and a removal trigger. The advisory is a DoS on *malicious* XML; quick-xml enters the tree only via `wayland-scanner`, a BUILD-TIME proc-macro that parses trusted vendored Wayland protocol XML to generate bindings — never runtime or untrusted input, and only in `blindkey-gui` on Linux/Wayland. `cargo tree -i quick-xml` confirms the security core, CLI, and blindkey-sys never depend on it. No upstream fix exists: `wayland-scanner` at its latest release (0.31.10) still pins quick-xml 0.39, so no dependency bump moves it. Exemptions are scoped to single IDs and drop automatically when the Wayland crates ship quick-xml >= 0.41. - New `docs/SUPPLY_CHAIN.md` documents the gates, the security boundary, every exemption, and the review cadence — publicly and in version control, as a security tool should. Linked from SECURITY.md and the docs hub. Docs accuracy: - Corrected stale "60 constraints" → "66" in three current-facing docs (AUDIT_COMMISSION, ENTERPRISE_POSTURE, THIRD_PARTY_AUDIT) and the intake checklist script. Version-tagged historical references (v1.7.0 == 60) are left intact — that pairing is accurate for its version. Verification: cargo build/test(48 suites, 0 failures)/clippy(-D warnings, 0)/ fmt clean; all doc links resolve. The `cargo audit` / `cargo deny` exemptions are verified in CI (those tools run there, not locally). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…core The newly-added `audit` CI job runs `cargo deny check` for the first time, which is stricter than `cargo audit` and surfaced pre-existing policy gaps (all in the desktop-GUI dependency tree; the security core is unaffected): - **Licenses:** allow `BSL-1.0` (clipboard-win, error-code), `Zlib` (foldhash, slotmap), and `MPL-2.0` (nucleo-matcher). All are OSI-approved permissive / file-scoped-copyleft licenses confined to `blindkey-gui`'s transitive tree; none impose any obligation on Blindkey's own MIT-or-Apache-2.0 source. - **Wildcards:** pin `blindkey-gui`'s intra-workspace path deps (`blindkey-core`, `blindkey-clip`) to `version = "1.0.0"`; a versionless path dep reads as a wildcard under `wildcards = "deny"`. - **Unmaintained advisories:** ignore RUSTSEC-2024-0436 (`paste`) and RUSTSEC-2026-0192 (`ttf-parser`) — "no longer maintained" notices, not vulnerabilities, both GUI-only transitive. `cargo deny` errors on unmaintained by default; documented in docs/SUPPLY_CHAIN.md with a removal trigger. Windows CI: `blindkey-agent`'s broker is Unix-socket only (a `compile_error!` guards non-Unix) and the CLI depends on it, so the full workspace does not build on Windows. Replaced the always-red experimental full-workspace job with `check-windows-core`, which tests the PORTABLE security crates (`blindkey-core`, `-sys`, `-clip`, `-hardware`) — real, green Windows signal for the crypto/format/memory/hardware layers that must be correct everywhere, instead of a masked failure. docs/SUPPLY_CHAIN.md updated to cover the license additions, the two unmaintained exemptions, the remaining non-blocking `lru`/`memmap2` warnings, and the Windows support boundary. Verification: cargo build/metadata/fmt clean locally; `cargo deny` / `cargo audit` verified in CI (those tools run there). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bumps [zeroize](https://github.com/RustCrypto/utils) from 1.8.2 to 1.9.0. - [Commits](RustCrypto/utils@zeroize-v1.8.2...zeroize-v1.9.0) --- updated-dependencies: - dependency-name: zeroize dependency-version: 1.9.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot
Bot
force-pushed
the
dependabot/cargo/zeroize-1.9.0
branch
from
July 18, 2026 23:17
9a9548a to
37f9333
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps zeroize from 1.8.2 to 1.9.0.
Commits
0b71573zeroize v1.9.0 (#1494)3e3f18czeroize: always enable AVX-512 support (#1493)1ea42bbzeroize_derive v1.5.0 (#1492)8d785d1zeroize: rustdoc improvements (#1491)d844f36zeroize: incorporate README.md into rustdoc (#1490)c65c09dctutils: usereasoninstead of comment inforbidattribute (#1489)cbd0963Release block-buffer v0.12.1 (#1488)9aa541dblock-buffer: fix exception safety (#1487)5c7e4f9cmov v0.5.4 (#1485)87cadbccmov: fix clippy (#1484)