Skip to content

Merge changes from Nitrokey/admin-app#3

Open
robin-nitrokey wants to merge 81 commits into
trussed-dev:mainfrom
Nitrokey:main
Open

Merge changes from Nitrokey/admin-app#3
robin-nitrokey wants to merge 81 commits into
trussed-dev:mainfrom
Nitrokey:main

Conversation

@robin-nitrokey

Copy link
Copy Markdown
Member

This PR upstreams the changes from Nitrokey/admin-app, mainly:

  • New commands are moved under a single CTAPHID vendor command.
  • Add device configuration mechanism.
  • Add factory reset mechanism.
  • Add filesystem migration mechanism.

robin-nitrokey and others added 30 commits January 31, 2023 12:08
Previously, we used one CTAPHID vendor command per application command.
This makes it hard to extend the functionality because we have to
synchronize the used vendor commands over all applications in the
Trussed ecosystem.

As an alternative, this patch introduces a new vendor command that acts
as a namespace for the admin application.  The actual application
command is encoded in the first byte of the payload.  In the future, we
might want to make this configurable so that the runner can decide the
namespace used by CTAPHID apps.

For compatibility, the CTAPHID vendor commands are still available.

This change also allows us to combine the CTAPHID and APDU command
handling into a single dispatch function.
Move CTAPHID commands under a single vendor command
This patch adds an alternative mode to the Version command that makes it
possible to query a full version string instead of the major, minor and
patch versions only (useful for release candidates, alphas, etc.).
This patch adds a new status command that can be used to read out
information about the device status.  The interpretation of the status
code depends on the runner implementation.
Add version and status information
Make app generic over status type
Adapt to interrupt mechanism
Add test function for the SE050
Move tests to a custom backend
This patch adds a generic configuration mechanism to the admin app.
There are two new commands, GET_CONFIG and SET_CONFIG, that can be used
to query and change configuration values by key.  The runner is
responsible for providing the configuration struct and a mapping from
key to field.
Remove outdated run_tests.rs file
…NVALID_LENGTH)

This allows nitropy to easily skip the test if the command is not supported
se050 test: Return UnsuportedCommand (INVALID_COMMAND) instead of NotAvailable (INVALID_LENGTH)
robin-nitrokey and others added 27 commits March 15, 2024 11:49
This patch replaces the dependencies on trussed-staging and
trussed-se050-backend with the extension crates trussed-manage and
trussed-se050-manage.  See the these PRs for more information:
- trussed-dev/trussed-staging#19
- Nitrokey/trussed-se050-backend#13
Add migration mechanism without relying on the staging backend.
Allow mutable access to the config
Add trait for StatusBytes and allow lazyly configuring the initialization of the RNG
Previously, we had a timeout of 15 seconds for the user presence check
when rebooting to bootloader.  This can be too short in some situations,
see for example Nitrokey/nitrokey-3-firmware#519.

This patch increases the timeout to 30 seconds.
This reverts commit 37d5437.

I misunderstood the requirement described in
Nitrokey/nitrokey-3-firmware#519, so this
change was unnecessary.
The simplified Store trait no longer uses the Fs indirection so we can
simplify the code calling the migration functions.

This patch also updates littlefs2 to avoid duplicate dependencies.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants