Skip to content

Commit

Permalink
update: CDDL and supported table
Browse files Browse the repository at this point in the history
  • Loading branch information
kentakayama committed Nov 20, 2024
1 parent 821898c commit 1199456
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 24 deletions.
2 changes: 2 additions & 0 deletions Makefile.process
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ $(TARGET): $(OBJS) | ./bin

define test-one
$(TARGET) ./testfiles/suit_manifest_exp$(1).cbor \
-u "http://cdn.example/example3.bin" -f "./testfiles/raw_image.bin \
-u "http://example.com/file.bin" -f "./testfiles/raw_image.bin" \
-u "http://example.com/dependent.suit" -f "./testfiles/suit_manifest_expS0.cbor" \
-u "https://example.com/encrypted-firmware" -b "758c4b7bbae2c4c1d462423e0f0dc3164ffa7b85bb94d4bd6d7ed26ab32feb063385d4d3465927ec82cb5e198a59" \
-u "https://example.org/8d82573a-926d-4754-9353-32dc29997f74.suit" -f "./testfiles/suit_manifest_expU.cbor" \
Expand Down
41 changes: 25 additions & 16 deletions SUPPORTED.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
### SUIT Manifest
Operation | Metadata | Condition | Directive | Parameter | Text
---|---|---|---|---|---
decode | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square:
encode | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square:
process | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square:
decode | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square:
encode | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square:
process | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square::green_square:
### SUIT Multiple Trust Domains
Operation | Metadata | Condition | Directive | Parameter | Text
---|---|---|---|---|---
Expand All @@ -18,15 +18,15 @@ process | :green_square::green_square::green_square: | :green_square::green_squa
### SUIT Update Management
Operation | Metadata | Condition | Directive | Parameter | Text
---|---|---|---|---|---
decode | :green_square: | :green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square: | :green_square:
encode | :green_square: | :green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square: | :green_square:
process | :green_square: | :green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::green_square: | :green_square:
decode | :green_square: | :green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::red_square::red_square: |
encode | :green_square: | :green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::red_square::red_square: |
process | :green_square: | :green_square::green_square::green_square::green_square::green_square: | :green_square::green_square::green_square: | :green_square::green_square::green_square::green_square::red_square::red_square: |
### SUIT Encrypted Payload
Operation | Metadata | Condition | Directive | Parameter | Text
---|---|---|---|---|---
decode | | | | :green_square::green_square::green_square::red_square: |
encode | | | | :green_square::green_square::green_square::red_square: |
process | | | | :green_square::green_square::red_square::red_square: |
decode | | | | :green_square::green_square::green_square: |
encode | | | | :green_square::green_square::green_square: |
process | | | | :green_square::green_square::red_square: |
### SUIT MUD
Operation | Metadata | Condition | Directive | Parameter | Text
---|---|---|---|---|---
Expand Down Expand Up @@ -76,7 +76,7 @@ Authentication Wrapper | 2 | suit-authentication-wrapper | SUIT Manifest | N/M |
Manifest | 3 | suit-manifest | SUIT Manifest | N/M | RWX
CoSWID (s) | 14 | suit-coswid | SUIT Update Management | RECOMMENDED | RWX
Payload Fetch (s) | 16 | suit-payload-fetch | SUIT Manifest | OPTIONAL | RWX
Payload Installation (s) | 17 | suit-install | SUIT Manifest | OPTIONAL | RWX
Payload Installation (s) | 20 | suit-install | SUIT Manifest | OPTIONAL | RWX
Text Description (s) | 23 | suit-text | SUIT Manifest | OPTIONAL | RWX
SUIT MUD (s) | ? | suit-mud | SUIT MUD | OPTIONAL | ---

Expand All @@ -93,7 +93,7 @@ Image Invocation | 9 | suit-invoke | SUIT Manifest | OPTIONAL | RWX
CoSWID | 14 | suit-coswid | SUIT Update Management | RECOMMENDED | RWX
Dependency Resolution | 15 | suit-dependency-resolution | SUIT Multiple Trust Domains | N/M | RWX
Payload Fetch | 16 | suit-payload-fetch | SUIT Manifest | OPTIONAL | RWX
Payload Installation | 17 | suit-install | SUIT Manifest | OPTIONAL | RWX
Payload Installation | 20 | suit-install | SUIT Manifest | OPTIONAL | RWX
Text Description | 23 | suit-text | SUIT Manifest | OPTIONAL | RWX
Uninstall | 24 | suit-uninstall | SUIT Multiple Trust Domains | N/M | RWX
SUIT MUD | ? | suit-mud | SUIT MUD | OPTIONAL | ---
Expand Down Expand Up @@ -142,8 +142,8 @@ Wait | 29 | suit-directive-wait | SUIT Update Management | N/M | RWX
Swap | 31 | suit-directive-swap | SUIT Manifest | N/M | RWX
Run Sequence | 32 | suit-directive-run-sequence | SUIT Manifest | OPTIONAL | RWX
Unlink | 33 | suit-directive-unlink | SUIT Multiple Trust Domains | N/M | RWX
Override Multiple | 34? | suit-directive-override-multiple | SUIT Update Management | N/M | RWX
Copy Params | 35? | suit-directive-copy-params | SUIT Update Management | N/M | RWX
Override Multiple | 34 | suit-directive-override-multiple | SUIT Update Management | N/M | RWX
Copy Params | 35 | suit-directive-copy-params | SUIT Update Management | N/M | RWX

### SUIT Parameters

Expand All @@ -157,25 +157,34 @@ Component Slot | 5 | suit-parameter-component-slot | SUIT Manifest | N/M | RWX
Strict Order | 12 | suit-parameter-strict-order | SUIT Manifest | N/M | RWX
Soft Failure | 13 | suit-parameter-soft-failure | SUIT Manifest | N/M | RWX
Image Size | 14 | suit-parameter-image-size | SUIT Manifest | N/M | RWX
Fetch Arguments | 16? | suit-parameter-fetch-arguments | SUIT Manifest | N/M | RWX
Content | 18 | suit-parameter-content | SUIT Manifest | N/M | RWX
Encryption Info (AES-KW) | 19 | suit-parameter-encryption-info | SUIT Encrypted Payload | N/M | RWX
Encryption Info (ECDH) | 19 | suit-parameter-encryption-info | SUIT Encrypted Payload | N/M | RWX
Encryption Info (HPKE) | 19 | suit-parameter-encryption-info | SUIT Encrypted Payload | N/M | RW-
CEK Verification | 20 | suit-parameter-cek-verification | SUIT Encrypted Payload | N/M | ---
URI | 21 | suit-parameter-uri | SUIT Manifest | N/M | RWX
Source Component | 22 | suit-parameter-source-component | SUIT Manifest | N/M | RWX
Invoke Args | 23 | suit-parameter-invoke-args | SUIT Manifest | N/M | RWX
Device ID | 24 | suit-parameter-device-identifier | SUIT Manifest | N/M | RWX
Minimum Battery | 26 | suit-parameter-minimum-battery | SUIT Update Management | N/M | RWX
Update Priority | 27 | suit-parameter-update-priority | SUIT Update Management | N/M | RWX
Version | 28 | suit-parameter-version | SUIT Update Management | N/M | RWX
Version | 28 | suit-parameter-version | SUIT Update Management | N/M | ---
Wait Info | 29 | suit-parameter-wait-info | SUIT Update Management | N/M | RWX
Fetch Arguments | 30? | suit-parameter-fetch-arguments | SUIT Manifest | N/M | RWX
Component Metadata | 30 | suit-parameter-component-metadata | SUIT Update Management | N/M | ---

### SUIT Text

NOTE: libcsuit ignores this while processing a SUIT Manifest

Name | Label | CDDL Structure | IN | IS | Supported?
---|---|---|---|---|---
Manifest Description | 1 | suit-text-manifest-description | SUIT Manifest | OPTIONAL | RWX
Update Description | 2 | suit-text-update-description | SUIT Manifest | OPTIONAL | RWX
Manifest JSON Source | 3 | suit-text-manifest-json-source | SUIT Manifest | OPTIONAL | RWX
Manifest YAML Source | 4 | suit-text-manifest-yaml-source | SUIT Manifest | OPTIONAL | RWX

### SUIT Text Component

Name | Label | CDDL Structure | IN | IS | Supported?
---|---|---|---|---|---
Vendor Name | 1 | suit-text-vendor-name | SUIT Manifest | OPTIONAL | RWX
Expand Down
3 changes: 2 additions & 1 deletion inc/csuit/suit_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -307,19 +307,20 @@ typedef enum suit_parameter_key {
SUIT_PARAMETER_STRICT_ORDER = 12,
SUIT_PARAMETER_SOFT_FAILURE = 13,
SUIT_PARAMETER_IMAGE_SIZE = 14,
SUIT_PARAMETER_FETCH_ARGS = 16, /* XXX */
SUIT_PARAMETER_CONTENT = 18,
SUIT_PARAMETER_URI = 21,
SUIT_PARAMETER_SOURCE_COMPONENT = 22,
SUIT_PARAMETER_INVOKE_ARGS = 23,
SUIT_PARAMETER_DEVICE_IDENTIFIER = 24,
SUIT_PARAMETER_FETCH_ARGS = 30, /* XXX */

/* draft-ietf-suit-update-management */
SUIT_PARAMETER_USE_BEFORE = 4,
SUIT_PARAMETER_MINIMUM_BATTERY = 26,
SUIT_PARAMETER_UPDATE_PRIORITY = 27,
SUIT_PARAMETER_VERSION = 28,
SUIT_PARAMETER_WAIT_INFO = 29,
SUIT_PARAMETER_COMPONENT_METADATA = 30, /* XXX */

/* draft-ietf-suit-firmware-encryption */
SUIT_PARAMETER_ENCRYPTION_INFO = 19,
Expand Down
23 changes: 16 additions & 7 deletions misc/TABLES_MANIFEST_SUPPORTED.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Authentication Wrapper | 2 | suit-authentication-wrapper | SUIT Manifest | N/M |
Manifest | 3 | suit-manifest | SUIT Manifest | N/M | RWX
CoSWID (s) | 14 | suit-coswid | SUIT Update Management | RECOMMENDED | RWX
Payload Fetch (s) | 16 | suit-payload-fetch | SUIT Manifest | OPTIONAL | RWX
Payload Installation (s) | 17 | suit-install | SUIT Manifest | OPTIONAL | RWX
Payload Installation (s) | 20 | suit-install | SUIT Manifest | OPTIONAL | RWX
Text Description (s) | 23 | suit-text | SUIT Manifest | OPTIONAL | RWX
SUIT MUD (s) | ? | suit-mud | SUIT MUD | OPTIONAL | ---

Expand All @@ -25,7 +25,7 @@ Image Invocation | 9 | suit-invoke | SUIT Manifest | OPTIONAL | RWX
CoSWID | 14 | suit-coswid | SUIT Update Management | RECOMMENDED | RWX
Dependency Resolution | 15 | suit-dependency-resolution | SUIT Multiple Trust Domains | N/M | RWX
Payload Fetch | 16 | suit-payload-fetch | SUIT Manifest | OPTIONAL | RWX
Payload Installation | 17 | suit-install | SUIT Manifest | OPTIONAL | RWX
Payload Installation | 20 | suit-install | SUIT Manifest | OPTIONAL | RWX
Text Description | 23 | suit-text | SUIT Manifest | OPTIONAL | RWX
Uninstall | 24 | suit-uninstall | SUIT Multiple Trust Domains | N/M | RWX
SUIT MUD | ? | suit-mud | SUIT MUD | OPTIONAL | ---
Expand Down Expand Up @@ -74,8 +74,8 @@ Wait | 29 | suit-directive-wait | SUIT Update Management | N/M | RWX
Swap | 31 | suit-directive-swap | SUIT Manifest | N/M | RWX
Run Sequence | 32 | suit-directive-run-sequence | SUIT Manifest | OPTIONAL | RWX
Unlink | 33 | suit-directive-unlink | SUIT Multiple Trust Domains | N/M | RWX
Override Multiple | 34? | suit-directive-override-multiple | SUIT Update Management | N/M | RWX
Copy Params | 35? | suit-directive-copy-params | SUIT Update Management | N/M | RWX
Override Multiple | 34 | suit-directive-override-multiple | SUIT Update Management | N/M | RWX
Copy Params | 35 | suit-directive-copy-params | SUIT Update Management | N/M | RWX

### SUIT Parameters

Expand All @@ -89,25 +89,34 @@ Component Slot | 5 | suit-parameter-component-slot | SUIT Manifest | N/M | RWX
Strict Order | 12 | suit-parameter-strict-order | SUIT Manifest | N/M | RWX
Soft Failure | 13 | suit-parameter-soft-failure | SUIT Manifest | N/M | RWX
Image Size | 14 | suit-parameter-image-size | SUIT Manifest | N/M | RWX
Fetch Arguments | 16? | suit-parameter-fetch-arguments | SUIT Manifest | N/M | RWX
Content | 18 | suit-parameter-content | SUIT Manifest | N/M | RWX
Encryption Info (AES-KW) | 19 | suit-parameter-encryption-info | SUIT Encrypted Payload | N/M | RWX
Encryption Info (ECDH) | 19 | suit-parameter-encryption-info | SUIT Encrypted Payload | N/M | RWX
Encryption Info (HPKE) | 19 | suit-parameter-encryption-info | SUIT Encrypted Payload | N/M | RW-
CEK Verification | 20 | suit-parameter-cek-verification | SUIT Encrypted Payload | N/M | ---
URI | 21 | suit-parameter-uri | SUIT Manifest | N/M | RWX
Source Component | 22 | suit-parameter-source-component | SUIT Manifest | N/M | RWX
Invoke Args | 23 | suit-parameter-invoke-args | SUIT Manifest | N/M | RWX
Device ID | 24 | suit-parameter-device-identifier | SUIT Manifest | N/M | RWX
Minimum Battery | 26 | suit-parameter-minimum-battery | SUIT Update Management | N/M | RWX
Update Priority | 27 | suit-parameter-update-priority | SUIT Update Management | N/M | RWX
Version | 28 | suit-parameter-version | SUIT Update Management | N/M | RWX
Version | 28 | suit-parameter-version | SUIT Update Management | N/M | ---
Wait Info | 29 | suit-parameter-wait-info | SUIT Update Management | N/M | RWX
Fetch Arguments | 30? | suit-parameter-fetch-arguments | SUIT Manifest | N/M | RWX
Component Metadata | 30 | suit-parameter-component-metadata | SUIT Update Management | N/M | ---

### SUIT Text

NOTE: libcsuit ignores this while processing a SUIT Manifest

Name | Label | CDDL Structure | IN | IS | Supported?
---|---|---|---|---|---
Manifest Description | 1 | suit-text-manifest-description | SUIT Manifest | OPTIONAL | RWX
Update Description | 2 | suit-text-update-description | SUIT Manifest | OPTIONAL | RWX
Manifest JSON Source | 3 | suit-text-manifest-json-source | SUIT Manifest | OPTIONAL | RWX
Manifest YAML Source | 4 | suit-text-manifest-yaml-source | SUIT Manifest | OPTIONAL | RWX

### SUIT Text Component

Name | Label | CDDL Structure | IN | IS | Supported?
---|---|---|---|---|---
Vendor Name | 1 | suit-text-vendor-name | SUIT Manifest | OPTIONAL | RWX
Expand Down

0 comments on commit 1199456

Please sign in to comment.