Repository navigation
Items: multi-field entries, 22 categories, and bidirectional 1Password sync #16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 2 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
8f0f607
Items: a record of fields, not a record of one secret
vaulttec-dev b9ed853
Address PR feedback for items-v2 protocol, store, and CLI
vaulttec-dev 2f21cd2
Rebuild firmware image without rust-src for CI reproducibility
vaulttec-dev 544f8aa
Address secondary review findings on backup, TOTP, and notes
vaulttec-dev 611306e
Fix legacy login UTF-8 validation and open notesPlain class
vaulttec-dev File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -31,7 +31,7 @@ tap the BOOT button on the board... | |
| ``` | ||
|
|
||
| Nothing came back without a press, and the TOTP secret behind that code has no way out of | ||
| the device at all — there is no command for it. | ||
| the device under routine use — only an explicit export under a double tap reads it back. | ||
|
|
||
| ## What it is | ||
|
|
||
|
|
@@ -43,8 +43,9 @@ the device at all — there is no command for it. | |
| try, which is four years for eight digits and a fortnight for six. JTAG is disabled; Secure Boot | ||
| v2 (RSA-3072) is on; Flash Encryption is deliberately not used. | ||
| - Every code, password and `.env` needs a button gesture. Eight wrong PINs wipe everything. | ||
| - A TOTP secret goes in once and never comes out in the clear — there is no command for it. The one | ||
| way out is `vkey backup`, which reseals every item under a backup passphrase. | ||
| - A TOTP secret leaves the key in the clear only under an explicit double tap (`vkey export` or | ||
| `vkey get --seed`). Routine use returns only codes. `vkey backup` reseals every item under a | ||
| backup passphrase without revealing secrets. | ||
| - Everything, `list` included, needs the PIN — except a `vkey auth` login, a tap alone; the key | ||
| re-locks after two idle minutes. Secrets and | ||
| PINs are never arguments or environment variables — hidden prompt or stdin. | ||
|
|
@@ -147,19 +148,24 @@ line to add by hand. | |
|
|
||
| | Gesture | LED | What it releases | | ||
| |---|---|---| | ||
| | Tap | amber | one TOTP code, one password, one `.env`, or one `vkey auth` login | | ||
| | Tap | amber | one TOTP code, the secret fields of one item, one `.env`, or one `vkey auth` login | | ||
| | Hold 5 s | red | factory wipe: every secret and the PIN | | ||
| | Double tap | blue | the encrypted backup file | | ||
| | Double tap | blue | the encrypted backup file, or an export / seed readout | | ||
|
|
||
| A tap never wipes and never exports, so a hostile host cannot swap a code request for a | ||
| wipe or an export: the gesture the owner makes for one satisfies neither of the others. | ||
| A TOTP seed leaves the key in the clear only under the double tap, and only because | ||
| `vkey export` writes an item back into 1Password whole — what that costs is written out | ||
| in `docs/threat-model.md`. | ||
|
|
||
| | | Limit | | ||
| |---|---| | ||
| | Entries (TOTP secrets and passwords together) | 256 slots | | ||
| | `.env` blobs | 16, up to 8000 bytes each | | ||
| | Entry name | 32 bytes; names are one namespace | | ||
| | Login, password, note | 255 bytes each, 256 per entry in total | | ||
| | Items (every category together) | 256 | | ||
| | Fields per item | 32 | | ||
| | One field | 8056 bytes — a `.env`, an SSH key, a note | | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P3: This limit update leaves conflicting 8128-byte guidance in the CLI, shell, and threat model, so users can prepare an Prompt for AI agents |
||
| | One item | 8192 bytes, packed | | ||
| | The vault | ~210 KB, two copies; a write costs what the vault holds, not what it might | | ||
| | Item name | 32 bytes; names are one namespace | | ||
| | PIN | exactly 8 digits, 8 attempts | | ||
| | Backup passphrase | 12–128 characters; five or six random words, not an invented one | | ||
|
|
||
|
|
||
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.