Commit graph

127 commits

Author SHA1 Message Date
bunnie
7deb6fd4a1 add notes about how to clear test entries 2022-06-24 18:58:07 +08:00
bunnie
4771f04451 update progress while making test entries 2022-06-24 18:57:44 +08:00
bunnie
c6aecc08dc fix bug where entries don't redraw scrolling up/down to new page 2022-06-24 18:57:24 +08:00
bunnie
3c82898780 fix some minor bugs
- test entries for passwords at 100 entries. it's...pretty slow
at 300 passwords, about 8 seconds to scan/read-in the database.
once the database is read-in, sorting and viewing is fast. good
news is that heap usage is about 300k for that many entries,
no OOM crashes found. just slow.

- fix an unimplemented()! error

- strip out some debug
2022-06-24 17:23:00 +08:00
bunnie
847e64c46a add totp record add/edit rough draft UX flows 2022-06-24 15:53:57 +08:00
bunnie
024b9d9ce1 make it so that attempts to list empty dictionaries don't fail
this might point at a larger error of empty dictionaries not
being recorded, but this is a work-around for now...?
2022-06-24 15:53:23 +08:00
bunnie
9a5c04cc73 add a time progress bar in TOTP mode 2022-06-24 03:40:21 +08:00
bunnie
7765f3dec3 add other hash support; notch back the hmac dependencies
our engine is a version older in API rev, so notch back the
dependencies so we're all at the same rev
2022-06-24 01:46:09 +08:00
bunnie
5d8b85c0bf totp demo working 2022-06-24 01:18:37 +08:00
bunnie
57845b6fb6 clean up warnings in ctap 2022-06-24 01:18:32 +08:00
bunnie
729a6ad186 add the beginning of the TOTP functions 2022-06-24 00:31:25 +08:00
bunnie
ce461a06fe add routines to populate test entries, and use less synthetic data 2022-06-24 00:30:45 +08:00
bunnie
e998e96323 change visibility of some routines so we can access storage in the UX 2022-06-24 00:30:29 +08:00
bunnie
512f435b2a move the FIDO random secret into the FIDO_DICT
originally we stuck it in the CRED_DICT because it forces its
creation -- but there's no reason to *really* do that. We just
set the dictionary to be created if it's not existent in the later
API calls.

By moving this to FIDO_DICT instead of FIDO_CRED_DICT it makes
key access & sorting much cleaner in the UX, because you don't
have this odd key hanging out, and it also means that you can't
have an attack on the system where you try to name a key with
the name held in FIDO_CRED_DICT to try and read it out.
2022-06-24 00:28:58 +08:00
bunnie
5e08941950 change display order for passwords
sort by description not username
2022-06-23 04:22:11 +08:00
bunnie
ad22618c8d add some debug around deserialization errors 2022-06-23 04:17:37 +08:00
bunnie
8c986035b8 add trailing newline to serializations
the final entry can accrue cruft after it if there is no newline
2022-06-23 04:11:58 +08:00
bunnie
57f9e1a5f9 fix font setting 2022-06-23 03:01:44 +08:00
bunnie
304c865bb3 fix count on password access; make USB HID selected when vault is active 2022-06-23 02:27:05 +08:00
bunnie
09046854db add password edit/delete functions 2022-06-23 01:32:06 +08:00
bunnie
9671ef65f5 add password deserialization framework and UX routines 2022-06-22 21:20:19 +08:00
bunnie
f7f2868802 refactor to put blocking modals into its own thread
UX interaction via blocking modals are put into its own thread
so that the background UX can update while menus and modals are
popped up.

Still some bugs to work out to make this fully implemented,
but this is the major work fleshed out.
2022-06-22 04:52:40 +08:00
bunnie
ad92cbe1cb add customized menu contexts per sub-app 2022-06-21 02:41:03 +08:00
bunnie
8d4cdb3284 fix indexing bugs 2022-06-21 01:14:37 +08:00
bunnie
82e9c57ed4 add dirty rectangle flags to improve drawing performance 2022-06-20 22:20:28 +08:00
bunnie
b310967cf2 strip out excess redraws 2022-06-20 03:09:24 +08:00
bunnie
5a72076768 add dynamic search as text is typed 2022-06-19 19:04:25 +08:00
bunnie
72e6be8679 add some initial selectable list framework 2022-06-19 17:33:26 +08:00
bunnie
b945a085b0 more prototyping of the list browser UI 2022-06-19 03:17:12 +08:00
bunnie
b7453b627e add API tokens to prediction API
The prediction API now takes an API token. This is a 128-bit
number that gets passed to the prediction engine, and it's meant
to be unique for every context that requires a predictor.

It's up to the prediction engine to do anything with the token.
For the "null" engines (such as the icontray for `vault` and
`tts`) the token is just ignored. But for example, in `shellchat`,
the API token is used to store a history record in a HashMap on
a per-token basis. This means that every app that uses the
`shellchat` history function gets their own history that can only
be read out by that app.

The actual token itself is mostly passed through the API. The
token storage is in the Context layer (each Context has a record
for a token, that starts as `None`), and is passed down to
the predictor every time the context swaps, and the predictor
receives the token and passes it back if the token was `Some`,
or allocates a new random token if it was `None`.

Note that everything is a Context, including, for example, menus and
modal dialog boxes, but not all contexts have predictors. Only
Contexts that ask for a predictor have them. This mechanism
works smoothly in this model (as opposed to other hacks and work-arounds
previously tried getting to this solution).
2022-06-19 01:01:25 +08:00
bunnie
d874e50030 stash the latest changes 2022-06-18 13:59:26 +08:00
bunnie
c46579117b add the "trusted init" check to hosted mode
need to debug a problem with the IMEF connecting/disconnecting
causing trusted init to fail when there is more than one
plugin in the system.
2022-06-18 01:30:49 +08:00
bunnie
11932898ac oops, broke CI with something in *this* code
push a fix that will get CI running, but breaks this dev flow
2022-06-18 01:16:39 +08:00
bunnie
645fcf46fd refactor file locations so the structure is more scalable 2022-06-17 23:52:04 +08:00
bunnie
e5b4f4ad7f clean up a minor warning for a merge to main
let's put these GAM changes into production so others can use
them, even though the app is still coming together.
2022-06-17 21:38:45 +08:00
bunnie
f77324a4e5 add some test text 2022-06-17 21:37:39 +08:00
bunnie
37b2ee444d add basic submenu support to vault app 2022-06-17 18:51:13 +08:00
bunnie
551258b18d add a submenu entry for the vault app 2022-06-17 18:29:21 +08:00
bunnie
3d4f689ef5 lay in the groundwork for the "icontray"
this allows the predictor area to serve as hot keys to
swap between modes of operation for the vault app.
2022-06-17 12:42:22 +08:00
bunnie
7b2fbdc88b evict f64's from the kernel, and eliminate f32 parsing
turns out these routines add quite a bit of bloat to the kernel
for only cosmetic reasons.
2022-06-14 04:14:25 +08:00
bunnie
d2aff7da44 Fix #181
This is still a bogus AAGUID but at least it's less likely to
collide with other bogus AAGUIDs.
2022-06-13 17:49:14 +08:00
bunnie
cce617366f move to the release version of usbd-human-interface-device
thanks @dlkj!
2022-06-13 00:20:14 +08:00
bunnie
9ab3f71f23 modify naming of FidoInterface to RawFidoInterface
per maintainer request of usbd-human-interface-device for PR
2022-06-12 23:05:20 +08:00
bunnie
3f791f5979 sync pddb after any credential change state
help prevent data loss in case of power outage/crash
2022-06-11 03:08:23 +08:00
bunnie
e32ea4d3f5 fix #174 2022-06-10 21:36:53 +08:00
bunnie
cae1c3267e add sentinels for test automation 2022-06-10 21:16:59 +08:00
bunnie
42996a8177 fix U2F flow
accidentally broke it while debugging FIDO2. added notes about how
the flow is implemented.
2022-06-09 02:57:31 +08:00
bunnie
e68c976735 configure vault for production and add maintainer's notes 2022-06-09 00:20:36 +08:00
bunnie
3fc038cca9 add some missing translations, and add a listener to the unplug state 2022-06-08 23:48:09 +08:00
bunnie
52211f078e adjust autotest flow for UDP-based button pressing 2022-06-08 20:15:32 +08:00