Skip to content

An implementation of the FIDO Device Onboard (FDO) spec written in Rust.

License

Notifications You must be signed in to change notification settings

mmartinv/fido-device-onboard-rs

 
 

Repository files navigation

fido-device-onboard-rs

An implementation of the FIDO Device Onboard Specification written in rust.

The current implementation targets specification version: 1.1 20211214.

Components

The fido-fdo-rs implements all core components of the FIDO Device Onboard Specification including:

Protocols

Crates and parts

  • 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 around fdo-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.

RPMs and containers

This project currently releases RPMs and containers tracking the main branch. RPMs are available in COPR. Containers are available on Quay.io.

About

An implementation of the FIDO Device Onboard (FDO) spec written in Rust.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 92.6%
  • Shell 5.8%
  • Go 0.5%
  • C 0.4%
  • Jinja 0.4%
  • Makefile 0.2%
  • Other 0.1%