Skip to main content

admin_app/
lib.rs

1//! # management-app
2//!
3//! A simple application that implements management operations,
4//! such as firmware upgrade.
5//!
6//! It directly implements the APDU and CTAPHID dispatch App interfaces.
7#![no_std]
8
9use trussed_core::{CryptoClient, FilesystemClient, ManagementClient, UiClient};
10
11#[macro_use]
12extern crate delog;
13generate_macros!();
14
15mod admin;
16mod config;
17pub mod migrations;
18
19pub use admin::{App, Reboot, StatusBytes};
20pub use config::{
21    Config, ConfigError, ConfigField, ConfigValueMut, FieldType, ResetConfigResult, ResetSignal,
22    ResetSignalAllocation,
23};
24use trussed_manage::ManageClient;
25#[cfg(feature = "se050")]
26use trussed_se050_manage::Se050ManageClient;
27
28#[cfg(not(feature = "se050"))]
29pub trait Client:
30    CryptoClient + FilesystemClient + ManagementClient + UiClient + ManageClient
31{
32}
33#[cfg(not(feature = "se050"))]
34impl<C: CryptoClient + FilesystemClient + ManagementClient + UiClient + ManageClient> Client for C {}
35
36#[cfg(feature = "se050")]
37pub trait Client:
38    CryptoClient + FilesystemClient + ManagementClient + UiClient + Se050ManageClient + ManageClient
39{
40}
41#[cfg(feature = "se050")]
42impl<
43        C: CryptoClient
44            + FilesystemClient
45            + ManagementClient
46            + UiClient
47            + Se050ManageClient
48            + ManageClient,
49    > Client for C
50{
51}