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, Data, StatusBytes};
20pub use config::{Config, ConfigError, ConfigField, ConfigValueMut, FieldType, ResetConfigResult};
21use trussed_manage::ManageClient;
22#[cfg(feature = "se050")]
23use trussed_se050_manage::Se050ManageClient;
24
25#[cfg(not(feature = "se050"))]
26pub trait Client:
27    CryptoClient + FilesystemClient + ManagementClient + UiClient + ManageClient
28{
29}
30#[cfg(not(feature = "se050"))]
31impl<C: CryptoClient + FilesystemClient + ManagementClient + UiClient + ManageClient> Client for C {}
32
33#[cfg(feature = "se050")]
34pub trait Client:
35    CryptoClient + FilesystemClient + ManagementClient + UiClient + Se050ManageClient + ManageClient
36{
37}
38#[cfg(feature = "se050")]
39impl<
40        C: CryptoClient
41            + FilesystemClient
42            + ManagementClient
43            + UiClient
44            + Se050ManageClient
45            + ManageClient,
46    > Client for C
47{
48}