SUIT secure firmware updates

SUIT secure firmware updates. More...

Detailed Description

SUIT secure firmware updates.

Warning
This feature is experimental!

SUIT CoAP helper API

Author
Kaspar Schleiser kaspa.nosp@m.r@sc.nosp@m.hleis.nosp@m.er.d.nosp@m.e
Francisco Molina franc.nosp@m.ois-.nosp@m.xavie.nosp@m.r.mo.nosp@m.lina@.nosp@m.inri.nosp@m.a.fr
Alexandre Abadie alexa.nosp@m.ndre.nosp@m..abad.nosp@m.ie@i.nosp@m.nria..nosp@m.fr

Modules

 SUIT draft v4
 SUIT manifest handling.
 

Macros

#define SUIT_COAP_SUBTREE
 SUIT CoAP endpoint entry. More...
 

Functions

void suit_coap_run (void)
 Start SUIT CoAP thread.
 
void suit_init_conditions (void)
 Initialize boot-time conditions for SUIT manifests. More...
 
uuid_tsuit_get_vendor_id (void)
 Retrieve the generated vendor ID. More...
 
uuid_tsuit_get_class_id (void)
 Retrieve the generated class ID. More...
 
uuid_tsuit_get_device_id (void)
 Retrieve the generated device ID. More...
 
#define SUIT_VENDOR_DOMAIN   "riot-os.org"
 SUIT conditions. More...
 
#define SUIT_CLASS_ID   RIOT_BOARD
 The SUIT class ID source. More...
 
enum  { SUIT_COND_VENDOR_ID = 1, SUIT_COND_CLASS_ID = 2, SUIT_COND_DEV_ID = 3, SUIT_COND_BEST_BEFORE = 4 }
 SUIT conditionals.
 

Macro Definition Documentation

◆ SUIT_CLASS_ID

#define SUIT_CLASS_ID   RIOT_BOARD

The SUIT class ID source.

By default the RIOT_VERSION define is used for this

Definition at line 49 of file conditions.h.

◆ SUIT_COAP_SUBTREE

#define SUIT_COAP_SUBTREE
Value:
{ \
.path="/suit/", \
.methods=COAP_MATCH_SUBTREE | COAP_METHOD_GET | COAP_METHOD_POST | COAP_METHOD_PUT, \
.handler=coap_subtree_handler, \
.context=(void*)&coap_resource_subtree_suit \
}
#define COAP_MATCH_SUBTREE
Path is considered as a prefix when matching.
Definition: nanocoap.h:110

SUIT CoAP endpoint entry.

In order to use, include this header, then add SUIT_COAP_SUBTREE to the nanocoap endpoint array. Mind the alphanumerical sorting!

See examples/suit_update for an example.

Definition at line 49 of file coap.h.

◆ SUIT_VENDOR_DOMAIN

#define SUIT_VENDOR_DOMAIN   "riot-os.org"

SUIT conditions.

SUIT conditions API

Author
Koen Zandberg koen@.nosp@m.berg.nosp@m.zand..nosp@m.net
Kaspar Schleiser kaspa.nosp@m.r@sc.nosp@m.hleis.nosp@m.er.d.nosp@m.e The SUIT vendor ID source

The basis of the UUID must be the vendor domain, please change this when using this module in a productDevice vendor domain

Definition at line 40 of file conditions.h.

Function Documentation

◆ suit_get_class_id()

uuid_t* suit_get_class_id ( void  )

Retrieve the generated class ID.

Returns
The class ID as UUID

◆ suit_get_device_id()

uuid_t* suit_get_device_id ( void  )

Retrieve the generated device ID.

Returns
The device ID as UUID

◆ suit_get_vendor_id()

uuid_t* suit_get_vendor_id ( void  )

Retrieve the generated vendor ID.

Returns
The vendor ID as UUID

◆ suit_init_conditions()

void suit_init_conditions ( void  )

Initialize boot-time conditions for SUIT manifests.

This initializes the device-based conditions for validating manifest preconditions

Vendor url as UUID: UUID5(DNS_PREFIX, SUIT_VENDOR_DOMAIN) Device class UUID: UUID5(vendor, SUIT_CLASS_ID) Device specific UUID: UUID5(vendor, Device ID)