An implementation of the FIDO Device Onboard Specification written in rust.
The current implementation targets specification version: 1.1 20211214.
The fido-fdo-rs implements all core components of the FIDO Device Onboard Specification including:
- Client
- Rendezvous Server
- Onboarding Server
- Manufacturing Tool both client and server
- Device Initialize Protocol (DI)
- Transfer Ownership Protocol 0 (TO0)
- Transfer Ownership Protocol 1 (TO1)
- Transfer Ownership Protocol 2 (TO2)
fdo-client-linuxapp
: Performs TO1 and TO2 client side protocols.fdo-data-formats
: [DI, TO0, TO1, TO2]: Implements the different low-level messaging formats used.fdo-http-wrapper
: Helpers for HTTP operations in both FDO server and client.fdo-integration-tests
: This crate contains the integration testing.fdo-libfdo-data
: C wrapper aroundfdo-data-formats
, allowing code in other languages to parse Ownership Vouchers, and possibly other data formats in the future.fdo-manufacturing-client
: Client side implementation of Device Initialize and Device Initialize over Untrusted Networks (DIUN) protocols.fdo-manufacturing-server
: Server side implementation of Device Initialize protocol. It supports as well Untrusted Networks (DIUN) protocols, that can be used for local prototypes.fdo-owner-onboarding-server
: Onboarding server, server side of TO2 protocol.fdo-owner-tool
: Tool for initializing devices, dump ownership vouchers, dump device credentials, extend ownership vouchers and report the device to the rendezvous service.fdo-rendezvous-server
: Rendezvous server implementation.fdo-store
: Implementation of different backend datastores for services.fdo-util
: Utilities/helpers for server (and, in the future client) crates.fdo-iot-stream-message
: Implements the stream message creation/parsing of StreamMsg. Currently not implemented.fdo-serviceinfo-api-server
: Service Info API Server implementation. The specification is written in serviceinfo_api.md.
This project currently releases RPMs and containers tracking the main
branch. RPMs are available in COPR. Containers are available on Quay.io.