Commit Graph
35 Commits
Author SHA1 Message Date
Robin Krahl 721d1eb5b6 Update cbor-smol to v0.5.0 2024-10-22 14:27:20 +02:00
Sosthène Guédon d297b553ff Add interrupt support 2023-06-20 16:35:26 +02:00
Robin Krahl c749b095ee Remove public postcard re-exports
postcard serialization is only used internally and therefore is an
implementation detail that should not be part of the public API.  Crates
that also need postcard serialization should declare their own
dependency for that.
2023-04-19 21:11:02 +02:00
Nicolas Stalder 78fd34b87e Reduce extension-related types 2023-02-07 12:03:14 +01:00
Robin Krahl e65d5031b8 Add API extensions
This patch adds API extensions to Trussed.  To avoid having to add a
type parameter to Request and Reply, we serialize the requests and
replies.  Extensions can be implemented by custom backends and are
executed by the dispatch implementation provided to the Service.  An
additional type parameter is needed for ClientImplementation to express
the supported extensions.  See tests/ext.rs for an example
implementation.

The serialization and deserialization of the requests and replies of
course adds additional overhead.  An alternative would be to make
Request and Reply generic over the set of extensions.
2023-02-07 12:03:14 +01:00
Robin Krahl fcb9371b3e Add support for multiple backends 2023-02-05 21:10:57 +01:00
Robin Krahl 0f05d974c2 Disable clippy missing_safety_doc lint
clippy currently complains about missing safety docs.  This is not
trivial to fix because documentation is still sparse within Trussed, but
we want to ignore this for the time being to be able to use clippy in
the CI.
2023-01-26 18:24:50 +01:00
Sosthène Guédon 114f9081e0 Document virt module 2022-10-11 16:59:37 +02:00
Nicolas Stalder 8e347abf99 Run cargo fmt 2022-09-11 22:28:21 +02:00
Robin Krahl f203946b61 Add virtual client implementation 2022-07-21 16:29:06 +02:00
Nicolas Stalder 817a9e71db Bump heapless 2021-06-10 17:55:43 -04:00
Nicolas Stalder 2eb45a7e57 Clippy things 2021-04-13 22:44:36 +02:00
Nicolas Stalder 01f9c622a0 Use postcard instead of cbor in ChachaPoly key wrap/unwrap 2021-03-12 15:42:22 +01:00
Nicolas Stalder f7a43c1e57 Rename ByteBuf->Bytes. Add HmacSha{1,512}. Bump cbor-smol. Add postcard 2021-03-12 15:42:22 +01:00
Nicolas Stalder 110db7c31e Another bugfix re. trailing nuls 2021-02-26 17:53:35 +01:00
Nicolas Stalder 8613b052ad Oh hi registered trademark 2021-02-12 01:03:45 +01:00
Nicolas Stalder 1bb2c98e19 Split out Keystore from ServiceResources; muchly simplifying mechanism implementations 2021-02-10 00:51:46 +01:00
Nicolas Stalder 615a212635 Woops, for a minute there, we were not no_std 2021-02-07 20:43:20 +01:00
Nicolas Stalder f808583600 Extract mechanism-specific Client methods; shorten Ed255; add documentation 2021-02-07 00:40:47 +01:00
Nicolas Stalder 46c1c7f43b Add (untested) X25519, prepare testing 2021-02-06 16:09:55 +01:00
Nicolas Stalder f551a67e18 Remove requirement to select a clients-* feature in libraries 2021-02-05 14:03:55 +01:00
Nicolas Stalder 7b7a45aa26 Consistently use platform (e.g. also PC) instead of board 2021-02-05 13:39:06 +01:00
Nicolas Stalder 8ec47f0fcd Use published libraries only. Add CI 2021-02-01 01:59:01 +01:00
Nicolas Stalder 0a463c6a27 Re-export Interchange 2021-01-31 12:23:33 +01:00
Nicolas Stalder 3da5d1d8e8 Semihosting flusher seems to work; open questions for USB serial 2021-01-06 22:07:17 +01:00
Nicolas Stalder 43fc8eef39 Move client/platform out of traits directory 2021-01-05 01:31:38 +01:00
Conor Patrick 9eb2b765fe fix trussed tests 2021-01-05 01:31:38 +01:00
Conor Patrick 61d2fcbfa2 refactor TrussedClient to be a trait + trait impl with Syscall param 2021-01-05 01:31:38 +01:00
Nicolas Stalder 681124e1cd trussed-board crate, trussed Board trait
* All of `trussed` relies on certain facilities implemented by
  a "board". These are not tightly tied to "Solo Bee", so we move
  them into a crate that `trussed` itself depends on.
* The existing boards then implement this instead
* Preparing for addition of UI resources to the trussed service
  (buttons, LEDs), we model a "Board" trait that on the one hand
  gives access to the resources trussed needs, but on the other
  hand (like the approach in littlefs/Store) is *not* generic, but
  instead uses associated types. This is to prevent "generics
  explosion" in the code base
2020-09-11 00:54:57 +02:00
Conor Patrick a8d81ccdab substitute all uses of semihosting and funnel with logging crate 2020-08-23 14:36:29 +02:00
Nicolas Stalder 5f3b20fa89 Simplify adpu-manager logic, rename to apdu-dispatch 2020-07-16 23:29:07 +02:00
Nicolas Stalder 4ccd8b8b25 Some general cleanup 2020-06-09 22:24:59 +02:00
Nicolas Stalder fc704a3fe6 Get rid of block!/syscall! code duplication 2020-05-31 15:01:16 +02:00
Nicolas Stalder d8726c1ca9 Get rid of heapless-bytes: use hopefully soon to be upstreamed heapless additions 2020-05-22 01:51:09 +02:00
Nicolas Stalder a3060d43b1 Rename crypto-service -> trussed. Introduce iso7816 component 2020-05-14 18:10:23 +02:00