diff options
| author | cirakg <cirakg@cirakg.xyz> | 2026-10-19 22:28:09 +0200 |
|---|---|---|
| committer | cirakg <cirakg@cirakg.xyz> | 2026-10-19 22:28:09 +0200 |
| commit | 81a5b903297e59d599dd0d6f580b89597630909d (patch) | |
| tree | 1af601e39e46957fdb57f684befea6bfe3de7849 /docs/SECURITY.md | |
| parent | 2373b6f02ef027a423762d5d6349cd9e0f36090e (diff) | |
docs: record M4 results and simulator findings; bump to 0.4.0v0.4.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/SECURITY.md')
| -rw-r--r-- | docs/SECURITY.md | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/docs/SECURITY.md b/docs/SECURITY.md index 6a30397..ee2f94d 100644 --- a/docs/SECURITY.md +++ b/docs/SECURITY.md @@ -148,3 +148,8 @@ A locked entry that arrives while the session is locked, or before a PIN exists, This is best effort, as README 7.8 says. - **Invalid UTF-8 is checked before decoding.** `StringUtil.convertEncodedString` stops the app with an uncatchable error on invalid UTF-8, so `Bytes.toUtf8` validates first, and damaged text can't crash the app. + +## Test builds and fixtures + +- **The UI-test build** (`uitest.jungle`) wipes the store at every start and fills it with fake entries. It sets the PIN 123456 by storing a precomputed wrap of a fixed fake master key (`tools/gen_fixture_wrap.py`), and freezes the clock. All of this is `(:uitest)` or `(:debug)` code; release builds, and therefore the Store package, contain none of it. +- **The PIN screen hands the derivation a copy of the typed digits** and wipes both the copy and its own buffer once the derivation is done. The native HMAC object may keep its own copy (see above). |
