Releases: blazenxt/vault100
Release list
Vault100 v2.1.0 β the fine ladder (111 key-turning options)
v2.1.0 β the fine ladder: 111 key-turning options
Requested: "add 100+ options" to the Argon2id key-turning dropdown. Delivered β
111 choices:
- The 3 named presets:
standard(64 MiB Γ 3) Β·paranoid(256 MiB Γ 4) Β·
max(auto-tuned & device-verified, from v2.0.4) - The fine ladder β 108 notches: 18 memory tiers (16 β 1024 MiB) Γ 6 turning
counts (1β6), rendered as a graded optgroup, weakest β heaviest
(β 001 Β· 16 MiB Γ 1 turnβ¦β 108 Β· 1024 MiB Γ 6 turns)
Interop by design: ladder choices ride as raw KDF parameters, which Vault100
has always stamped into the vault header β so a vault sealed at any notch opens
byte-exactly in the CLI and desktop app (and vice versa, the proven property).
Pick heavy notches with sense: they cost time and memory on every open, and
small devices may refuse the top tiers (the clerk reports honestly if so).
Verified
| Check | Result |
|---|---|
| Headless-Chromium E2E: 111 options sorted & rendered | β |
| Ladder notch 128 MiB Γ 4: encrypt β download β decrypt | β byte-exact |
max + cascade still green, zero console errors |
β |
CLI: vault100 info reads web-made ladder vault (128 MiB Γ 4, p=4) |
β |
CLI: vault100 decrypt restores it |
β byte-exact, original filename preserved |
No Python engine changes; the 49-test suite and all prior interop proofs stand.
v2.0.24 β The pocket annex (Android) π±
The pocket annex π± β Vault100 becomes a real Android app.
A genuine, signed .apk β the entire seal bureau folded into a handset:
- Zero Android permissions β not even INTERNET. Every page, script and primitive ships inside the APK; the counter is offline by physics, not policy. Same worker, same vaults, byte-for-byte with the CLI/web/desktop engines.
- Ticketed save relay β sealed vaults, armors, quorum slips, notary stamps, record booksβ¦ every finished filing lands in the system save tray.
- Inspectable seal β verify any bundle before sideloading:
apksigner verify --print-certs Vault100-2.0.24.apk
signer cert SHA-256:2414563d5860443dcc3ffc78941274a3ed894f8d782b5f31507433dc93c52c7f - Requirements: Android 7.0+ Β· size 655 KB Β· install via
adb installor direct sideload.
This release's APK digest (SHA-256): 197dd4ff6efe1ccceff93331eba26e6057b81f1c045e9d2a038e28005cf027c1
(published here β and not inside the bundle itself β because a hash cannot be stamped into the very file it measures)
Also in 2.0.24: android/ no-Gradle build (./build.sh β signed aligned apk), VB.download pocket-annex relay, get page's fifth way ("in the handset", signer digest printed), suite stamps 2.0.24 across the 12 counters. 84/84 engine proofs green.
Live counter: https://vault100.blazenxt.in/
v2.0.23 β The Notary (ed25519 endorsements)
Series 3, desk 1 of 4 β the notary ποΈ. Prove whose paper a vault is β and that not one byte has moved since β without ever opening it.
What's new
vault100/notary.pyβ mint a personal seal (V100SEAL1+ 32-byte seed, written0600, KEEP SECRET) and its public stamp (V100STAMP1+ pk, share freely). Endorse any vault/file into a detached 108-byte.v100sig(V100SIG1 | epoch | pk | signature). Attest with optional stamp-pinning.- CLI β
vault100 notary mint me.v100sealΒ·vault100 notary endorse papers.v100 -s me.v100sealΒ·vault100 notary attest papers.v100 [--stamp me.v100stamp]β batch verdicts, exit codes, refusal dossiers (doctored vault / foreign seal / torn or forged paper). - Web β Annex D instrument (i): three desks β mint (two downloads + fingerprint), endorse (vault+seal β
.v100sig), attest (vault+sig+optional stamp β green ENDORSEMENT HOLDS / red REFUSED verdict cards). Worker opsnotary-mint/notary-sign/notary-verify, seal bytes zeroed, sweep burns picks and verdicts. - Interop β ed25519 detached signatures are deterministic: the desk CLI and the web notary produce byte-identical endorsements of the same paper with the same seal (cross-attested both directions in tests).
- Features page β Schedule A gains provision β 16.
Verification
- 84/84 pytest (7 new NotaryTests: mint roundtrip+0600 perms, holds, doctored refusal, foreign-seal/stamp mismatch, torn/forged paper, determinism, full CLI flow)
- 14/14 new headless-Chromium notary E2E Β· courier 40/40 Β· quorum 19/19 Β· regress 11/11 β local + live
- fixed-seed cross-vector: Python endorsement == JS endorsement, every byte
The guardrails stand: zero-knowledge Β· honest claims Β· no telemetry β attestation proves custody, never reads contents.
v2.0.22 β Desk box hardening (GUI night-ledger + CLI verify)
Series 2, desk 4 of 4 β the desk box hardened, plus the custody clerk. The Tkinter GUI now wears the bureau's night-ledger livery, and verify proves any vault opens clean without writing a single plaintext byte.
What's new
- GUI night-ledger theme β full clam-based restyle: desk-felt background, form-paper wells, ruling lines, carbon ink, official stamp-red accents (matches the web counter). Every tab dressed: Seal / Open / Shred / Tools / About.
- Live strength bar β per-score colored bar + crack-time label beside the password wells.
- Stopwatch bench β Tools β ββ± Engage the stopwatchβ runs cipher-throughput + Argon2id notch trials and files the report in the tab's record.
- Recently-handled forms β MRU comboboxes on both filing tabs and the Tools vault desk, kept in your own
~/.config/vault100/recent.json(cap 8, XDG-aware). The bureau crosses nothing out β your own desk remembers. verifyeverywhere βpython -m vault100 verify secret.pdf.v100 backup.v100ascand Tools β βVerify integrity (no files written)β¦β: each chunk is decrypted+authenticated exactly as a real open would, but plaintext falls into a null sink. Works on.v100and.v100ascarmor alike; batch mode, per-file verdicts, exit code 0 only if ALL proven.- get.html β engine card learns
verify+share split; desktop card describes the new livery. - GUI now stamps its title with the live
__version__.
Verification
- 77/77 pytest (6 new CustodyVerifyTests: null-sink writes nothing, tamper/wrong-pw refusal, armored vaults, CLI batch exit codes, GUI module import + recents round-trip) Β· GUI constructs fully under xvfb (theme, strength bar, recents) Β· courier 40/40 + quorum 19/19 E2E re-green Β· full 12-page audit
The guardrails stand: zero-knowledge Β· honest claims Β· no telemetry Β· and now, proof without traces.
v2.0.21 β The courier's corner (QR hand-off + record receipts)
Series 2, desk 3 of 4 β the courier's corner. Short scraps now travel to your phone by camera, never by wire β plus stamped paper trails and friendlier counters.
What's new
- QR stamps β Annex D instrument (h), βthe courier's cornerβ: paste any short scrap β stamped QR square (ECC M, β1,200 ch royal capacity) with module-count report + .svg download. Vendored MIT
qrcode-generator(Kazuhiko Arase) β fully offline, SW-precached. QR travels eye-and-lens only. - Hand-offs everywhere β every quorum slip card gains a QR β button (slip β stamp in one click, βcarrying: slip k of nβ); the armorer (Form 100-M) stamps short armor inline; over-capacity scraps get a polite refusal with advice.
- Clerk's record download β every counter's record book now carries ββ³ record (.txt)β: a bureau-masthead receipt with window, ISO timestamp, punched serial (
β V100Β·β¦Β·RΒ·β¦), engine version and the zero-retention clause. - Drag-anywhere intake β files dropped anywhere on the seal/open/rewrap counters are filed (custody veil + βdelivered to the counter floorβ); bound intake zones keep first claim β the double-filing bug is dead.
- get.html β real ββ³ Install the counterβ¦β PWA button wired to
beforeinstallprompt, with a sleeping-state hint explaining the menu path. - Fixes β rewrap counter inspected each vault head twice (now once); slip joiner dead code swept; sweep burns courier stamps along with slips, wells and reprints.
- Features page β Schedule A gains provision β 15.
Verification
- 40/40 new headless-Chromium courier E2E (local + live) Β· 19/19 quorum Β· 11/11 regress Β· 11/11 armorer Β· 29/29 nav Β· 25/25 SEO Β· 30/30 icons Β· 71/71 pytest
- whole-site 12-page crawl: zero console errors, zero CSP violations
The guardrails stand: zero-knowledge Β· honest claims Β· no telemetry Β· camera beats cable.
v2.0.20 β The quorum press (Shamir M-of-N slips)
Series 2, desk 2 of 4 β the quorum press. Break one secret into N stamped slips; any M of them reprint it, fewer learn nothing at all β Shamir secret sharing over GF(2βΈ), pressed locally everywhere.
What's new
- Python engine β
vault100/shamir.py: GF(2βΈ) Shamir (AES polynomial, generator 3), crc32-stamped slips (V100S1binary +BEGIN V100 SHARE k OF ntext slips, 64-col base64 like the armor), press-id guards against mixing pressings, Horner-table split / Lagrange-at-zero join. - CLI β
vault100 share split combo.txt -n 5 -m 3(writescombo.slip-k-of-5.v100sor--stdout) andvault100 share join slips... -o out(several slips may ride in one file; junk lines tolerated). - Web β Annex D instrument (g), βThe quorum pressβ: strike desk (type/paste a secret or press a fresh 256-bit one; 2β12 slips Γ quorum 2βN) mints serial-punched slip cards with copy/download/heap-download; reprint desk satisfies the quorum from pasted slips; worker ops
share-split/share-join, secret bytes transferred + zeroed, sweep/Esc-Esc burns slips and reprints. - Interop β slips are byte-exact between the web press and the desk CLI, both directions (verified in CI).
- Features page β Schedule A gains provision β 14.
Verification
- 71/71 pytest (new QuorumPressTests Γ11: GF laws incl. AES vector, all C(5,3) subsets, below-quorum refusal + flat-noise spot check, lengths 1β4096, tamper/mixing/doctored-title rejection, CLI roundtrip)
- 19/19 headless-Chromium quorum E2E Β· 11/11 regress Β· 11/11 armorer Β· 29/29 nav Β· 25/25 SEO Β· 30/30 icons β local + live
- PythonβJS cross-interop byte-exact both directions (unicode secrets intact)
The guardrails stand: zero-knowledge (slips and secrets never leave the room) Β· honest claims Β· no telemetry.
Vault100 v2.0.19 β The Armorer's desk
v2.0.19 β Feature series 2, pack 1/4: The Armorer βοΈ
V100A1 ASCII armor β fold any message (or file) into paste-anywhere text:
-----BEGIN V100 ARMOR-----
VjEwMEVOQzICAQAgAAABAAAABABNylTb5aR/fYQaSJmOsJiDBEFX0VZi6rFjFzpyβ¦
-----END V100 ARMOR-----
Web β Form 100-M Β· the armorer's desk (6th window)
- The stamper: type/whisper text β mint armor (108-notch ladder, optional double-lock) β copy / download
.v100asc - The opener: paste armor (furniture-tolerant) β combination β readable message, furnace-copied
- β€ 512 KiB letters; keyfiles deliberately not offered here β armor must travel alone
Engine + CLI
crypto_core.armor_encode/decode+ streaming_ArmorWriter/_ArmorReader(64-column, whitespace/furniture tolerant β verified byte-identical one-shot β streaming)encrypt --armorwrites.v100asc; decrypt auto-detects armor;infoflags it;passwdrefuses politely (re-seal instead)
Interop proven both directions: web-minted armor opens byte-exact in the CLI; CLI --armor opens byte-exact in the browser (unicode + tabs intact).
Housekeeping: sweep now empties text wells (textareas) β plaintext never survives Esc, Esc Β· 12 pages consistent (window tab, directory row, registry footer, sitemap Γ12, SW precache).
Tests: 60/60 pytest Β· 11/11 armorer E2E Β· 29/29 nav Β· 25/25 SEO Β· 11/11 regression Β· 30/30 icons.
Vault100 v2.0.18 β the wax-seal icon kit
v2.0.18 β Icons upgrade πΉοΈ
The wax-seal medallion β a scalloped rubber-stamp seal with the bureau's keyhole, drawn in pure vector (no bitmap fonts, crisp at every size):
icon.svg/icon-maskable.svgβ the master marks (sheet + perforation ring; full-bleed maskable)- PNG family: 16/32/180 (apple touch)/192/512 + maskable 192/512 β any variants have transparent corners, maskable is safe-zone verified (129px < 205px)
- All 11 pages: 4-tag favicon kit (
svg+xml, PNG 32, PNG 16, apple-touch-icon) β the old data-URI dot is retired - manifest.json: purposes any+maskable, all srcs resolve, renamed "Vault100 β The Seal Bureau"
- Service worker precaches the whole icon family
Tests: 30/30 icons E2E Β· 28/28 nav E2E Β· 10/10 regression Β· 55/55 pytest.
Vault100 v2.0.17 β public-website pages & navigation
v2.0.17 β Public-website UI upgrade
Six new registry pages β everything a public website carries, each in the bureau's own stock:
- about.html β the charter copy: story, zero-knowledge creed Γ3, three bodies, post-office box (issues / advisories)
- features.html β Schedule A: 12 provisions (container, 111 notches, cascade, keyfiles, instant recombinate, gzip/folder, tray, timekeeper, sec-ops, themes, interop, self-host)
- faq.html β 10 questions heard at the counter, with FAQPage JSON-LD
- get.html β take-home bundle: PWA install, CLI engine, desktop box, self-host snippets
- privacy.html β Writ β 100-P (9 clauses, honest hosting-log exception)
- terms.html β Terms of counter service β 100-T (8 clauses)
Navigation
- Registry strip under the window tabs on every page: about Β· features Β· faq Β· β³ get vault100 (red CTA) Β· privacy Β· terms, with active-state stamping
- Three-column registry footer (counters / bureau / instruments) + Β© 2026 BlazeNXT Β· MIT on all 11 pages
Infra: sitemap 5β11 URLs Β· service-worker precaches all 11 pages Β· all pages get the full meta kit (canonical, OG, Twitter)
Tests: 55/55 pytest Β· 28/28 nav E2E Β· 24/24 SEO E2E Β· 10/10 regression E2E (headless Chromium).
Vault100 v2.0.16 β public launch & search-engine kit
v2.0.16 β Public launch release π
Search-engine kit (web)
- Per-page meta kit: unique titles/descriptions, robots
index,follow, canonical URLs, Open Graph + Twitter cards (1200Γ630 bureau cover) robots.txt+sitemap.xml(5 URLs on vault100.blazenxt.in)- JSON-LD structured data: SoftwareApplication + FAQPage + WebSite
- Crawlable "recorded charter" on the front desk β about / how-it-works / crypto layers / 6-question FAQ
- server.mjs: proper
application/xml(+gzip) for the sitemap
Launch docs (repo)
- README overhaul: badges, live link, screenshots, contents, changelog
- SECURITY.md (private-vulnerability-reporting policy) Β· CONTRIBUTING.md Β· CODE_OF_CONDUCT.md
- Issue templates (bug/feature) + PR template Β· CI workflow included (add via web UI β token had no workflow scope)
Tests: 55/55 pytest Β· 18/18 SEO E2E Β· 10/10 regression E2E.