| < draft-ietf-suit-manifest-10.txt | draft-ietf-suit-manifest-11.txt > | |||
|---|---|---|---|---|
| SUIT B. Moran | SUIT B. Moran | |||
| Internet-Draft H. Tschofenig | Internet-Draft H. Tschofenig | |||
| Intended status: Standards Track Arm Limited | Intended status: Standards Track Arm Limited | |||
| Expires: May 6, 2021 H. Birkholz | Expires: June 11, 2021 H. Birkholz | |||
| Fraunhofer SIT | Fraunhofer SIT | |||
| K. Zandberg | K. Zandberg | |||
| Inria | Inria | |||
| November 02, 2020 | December 08, 2020 | |||
| A Concise Binary Object Representation (CBOR)-based Serialization Format | A Concise Binary Object Representation (CBOR)-based Serialization Format | |||
| for the Software Updates for Internet of Things (SUIT) Manifest | for the Software Updates for Internet of Things (SUIT) Manifest | |||
| draft-ietf-suit-manifest-10 | draft-ietf-suit-manifest-11 | |||
| Abstract | Abstract | |||
| This specification describes the format of a manifest. A manifest is | This specification describes the format of a manifest. A manifest is | |||
| a bundle of metadata about code/data obtained by a recipient (chiefly | a bundle of metadata about code/data obtained by a recipient (chiefly | |||
| the firmware for an IoT device), where to find the that code/data, | the firmware for an IoT device), where to find the that code/data, | |||
| the devices to which it applies, and cryptographic information | the devices to which it applies, and cryptographic information | |||
| protecting the manifest. Software updates and Trusted Invocation | protecting the manifest. Software updates and Trusted Invocation | |||
| both tend to use sequences of common operations, so the manifest | both tend to use sequences of common operations, so the manifest | |||
| encodes those sequences of operations, rather than declaring the | encodes those sequences of operations, rather than declaring the | |||
| skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on May 6, 2021. | This Internet-Draft will expire on June 11, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 39 ¶ | skipping to change at page 2, line 39 ¶ | |||
| 5.4.2. Common . . . . . . . . . . . . . . . . . . . . . . . 14 | 5.4.2. Common . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 5.4.3. Command Sequences . . . . . . . . . . . . . . . . . . 14 | 5.4.3. Command Sequences . . . . . . . . . . . . . . . . . . 14 | |||
| 5.4.4. Integrity Check Values . . . . . . . . . . . . . . . 15 | 5.4.4. Integrity Check Values . . . . . . . . . . . . . . . 15 | |||
| 5.4.5. Human-Readable Text . . . . . . . . . . . . . . . . . 15 | 5.4.5. Human-Readable Text . . . . . . . . . . . . . . . . . 15 | |||
| 5.5. Severable Elements . . . . . . . . . . . . . . . . . . . 15 | 5.5. Severable Elements . . . . . . . . . . . . . . . . . . . 15 | |||
| 5.6. Integrated Dependencies and Payloads . . . . . . . . . . 16 | 5.6. Integrated Dependencies and Payloads . . . . . . . . . . 16 | |||
| 6. Manifest Processor Behavior . . . . . . . . . . . . . . . . . 16 | 6. Manifest Processor Behavior . . . . . . . . . . . . . . . . . 16 | |||
| 6.1. Manifest Processor Setup . . . . . . . . . . . . . . . . 16 | 6.1. Manifest Processor Setup . . . . . . . . . . . . . . . . 16 | |||
| 6.2. Required Checks . . . . . . . . . . . . . . . . . . . . . 17 | 6.2. Required Checks . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 6.2.1. Minimizing Signature Verifications . . . . . . . . . 19 | 6.2.1. Minimizing Signature Verifications . . . . . . . . . 19 | |||
| 6.3. Interpreter Fundamental Properties . . . . . . . . . . . 19 | 6.3. Interpreter Fundamental Properties . . . . . . . . . . . 20 | |||
| 6.4. Abstract Machine Description . . . . . . . . . . . . . . 20 | 6.4. Abstract Machine Description . . . . . . . . . . . . . . 20 | |||
| 6.5. Special Cases of Component Index and Dependency Index . . 22 | 6.5. Special Cases of Component Index and Dependency Index . . 23 | |||
| 6.6. Serialized Processing Interpreter . . . . . . . . . . . . 24 | 6.6. Serialized Processing Interpreter . . . . . . . . . . . . 24 | |||
| 6.7. Parallel Processing Interpreter . . . . . . . . . . . . . 24 | 6.7. Parallel Processing Interpreter . . . . . . . . . . . . . 25 | |||
| 6.8. Processing Dependencies . . . . . . . . . . . . . . . . . 25 | 6.8. Processing Dependencies . . . . . . . . . . . . . . . . . 25 | |||
| 6.9. Multiple Manifest Processors . . . . . . . . . . . . . . 25 | 6.9. Multiple Manifest Processors . . . . . . . . . . . . . . 26 | |||
| 7. Creating Manifests . . . . . . . . . . . . . . . . . . . . . 27 | 7. Creating Manifests . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 7.1. Compatibility Check Template . . . . . . . . . . . . . . 27 | 7.1. Compatibility Check Template . . . . . . . . . . . . . . 28 | |||
| 7.2. Trusted Invocation Template . . . . . . . . . . . . . . . 28 | 7.2. Trusted Invocation Template . . . . . . . . . . . . . . . 28 | |||
| 7.3. Component Download Template . . . . . . . . . . . . . . . 28 | 7.3. Component Download Template . . . . . . . . . . . . . . . 28 | |||
| 7.4. Install Template . . . . . . . . . . . . . . . . . . . . 29 | 7.4. Install Template . . . . . . . . . . . . . . . . . . . . 29 | |||
| 7.5. Install and Transform Template . . . . . . . . . . . . . 29 | 7.5. Install and Transform Template . . . . . . . . . . . . . 30 | |||
| 7.6. Integrated Payload Template . . . . . . . . . . . . . . . 30 | 7.6. Integrated Payload Template . . . . . . . . . . . . . . . 31 | |||
| 7.7. Load from Nonvolatile Storage Template . . . . . . . . . 31 | 7.7. Load from Nonvolatile Storage Template . . . . . . . . . 31 | |||
| 7.8. Load & Decompress from Nonvolatile Storage Template . . . 31 | 7.8. Load & Decompress from Nonvolatile Storage Template . . . 31 | |||
| 7.9. Dependency Template . . . . . . . . . . . . . . . . . . . 31 | 7.9. Dependency Template . . . . . . . . . . . . . . . . . . . 32 | |||
| 7.9.1. Composite Manifests . . . . . . . . . . . . . . . . . 32 | 7.9.1. Composite Manifests . . . . . . . . . . . . . . . . . 33 | |||
| 7.10. Encrypted Manifest Template . . . . . . . . . . . . . . . 32 | 7.10. Encrypted Manifest Template . . . . . . . . . . . . . . . 33 | |||
| 7.11. A/B Image Template . . . . . . . . . . . . . . . . . . . 33 | 7.11. A/B Image Template . . . . . . . . . . . . . . . . . . . 34 | |||
| 8. Metadata Structure . . . . . . . . . . . . . . . . . . . . . 35 | 8. Metadata Structure . . . . . . . . . . . . . . . . . . . . . 35 | |||
| 8.1. Encoding Considerations . . . . . . . . . . . . . . . . . 35 | 8.1. Encoding Considerations . . . . . . . . . . . . . . . . . 35 | |||
| 8.2. Envelope . . . . . . . . . . . . . . . . . . . . . . . . 35 | 8.2. Envelope . . . . . . . . . . . . . . . . . . . . . . . . 36 | |||
| 8.3. Delegation Chains . . . . . . . . . . . . . . . . . . . . 35 | 8.3. Delegation Chains . . . . . . . . . . . . . . . . . . . . 36 | |||
| 8.4. Authenticated Manifests . . . . . . . . . . . . . . . . . 36 | 8.4. Authenticated Manifests . . . . . . . . . . . . . . . . . 36 | |||
| 8.5. Encrypted Manifests . . . . . . . . . . . . . . . . . . . 36 | 8.5. Encrypted Manifests . . . . . . . . . . . . . . . . . . . 37 | |||
| 8.6. Manifest . . . . . . . . . . . . . . . . . . . . . . . . 36 | 8.6. Manifest . . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
| 8.6.1. suit-manifest-version . . . . . . . . . . . . . . . . 37 | 8.6.1. suit-manifest-version . . . . . . . . . . . . . . . . 38 | |||
| 8.6.2. suit-manifest-sequence-number . . . . . . . . . . . . 37 | 8.6.2. suit-manifest-sequence-number . . . . . . . . . . . . 38 | |||
| 8.6.3. suit-reference-uri . . . . . . . . . . . . . . . . . 38 | 8.6.3. suit-reference-uri . . . . . . . . . . . . . . . . . 38 | |||
| 8.6.4. suit-text . . . . . . . . . . . . . . . . . . . . . . 38 | 8.6.4. suit-text . . . . . . . . . . . . . . . . . . . . . . 38 | |||
| 8.7. text-version-required . . . . . . . . . . . . . . . . . . 40 | 8.7. text-version-required . . . . . . . . . . . . . . . . . . 40 | |||
| 8.7.1. suit-coswid . . . . . . . . . . . . . . . . . . . . . 40 | 8.7.1. suit-coswid . . . . . . . . . . . . . . . . . . . . . 40 | |||
| 8.7.2. suit-common . . . . . . . . . . . . . . . . . . . . . 40 | 8.7.2. suit-common . . . . . . . . . . . . . . . . . . . . . 40 | |||
| 8.7.3. SUIT_Command_Sequence . . . . . . . . . . . . . . . . 42 | 8.7.3. SUIT_Command_Sequence . . . . . . . . . . . . . . . . 42 | |||
| 8.7.4. Reporting Policy . . . . . . . . . . . . . . . . . . 44 | 8.7.4. Reporting Policy . . . . . . . . . . . . . . . . . . 44 | |||
| 8.7.5. SUIT_Parameters . . . . . . . . . . . . . . . . . . . 46 | 8.7.5. SUIT_Parameters . . . . . . . . . . . . . . . . . . . 46 | |||
| 8.7.6. SUIT_Condition . . . . . . . . . . . . . . . . . . . 56 | 8.7.6. SUIT_Condition . . . . . . . . . . . . . . . . . . . 56 | |||
| 8.7.7. SUIT_Directive . . . . . . . . . . . . . . . . . . . 60 | 8.7.7. SUIT_Directive . . . . . . . . . . . . . . . . . . . 60 | |||
| 8.7.8. Integrity Check Values . . . . . . . . . . . . . . . 67 | 8.7.8. Integrity Check Values . . . . . . . . . . . . . . . 67 | |||
| 8.8. Severable Elements . . . . . . . . . . . . . . . . . . . 67 | 8.8. Severable Elements . . . . . . . . . . . . . . . . . . . 67 | |||
| 9. Access Control Lists . . . . . . . . . . . . . . . . . . . . 68 | 9. Access Control Lists . . . . . . . . . . . . . . . . . . . . 68 | |||
| 10. SUIT Digest Container . . . . . . . . . . . . . . . . . . . . 68 | 10. SUIT Digest Container . . . . . . . . . . . . . . . . . . . . 69 | |||
| 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 69 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 69 | |||
| 11.1. SUIT Commands . . . . . . . . . . . . . . . . . . . . . 69 | 11.1. SUIT Commands . . . . . . . . . . . . . . . . . . . . . 69 | |||
| 11.2. SUIT Parameters . . . . . . . . . . . . . . . . . . . . 71 | 11.2. SUIT Parameters . . . . . . . . . . . . . . . . . . . . 71 | |||
| 11.3. SUIT Text Values . . . . . . . . . . . . . . . . . . . . 73 | 11.3. SUIT Text Values . . . . . . . . . . . . . . . . . . . . 73 | |||
| 11.4. SUIT Component Text Values . . . . . . . . . . . . . . . 73 | 11.4. SUIT Component Text Values . . . . . . . . . . . . . . . 73 | |||
| 11.5. SUIT Algorithm Identifiers . . . . . . . . . . . . . . . 73 | 11.5. SUIT Algorithm Identifiers . . . . . . . . . . . . . . . 73 | |||
| 11.5.1. SUIT Digest Algorithm Identifiers . . . . . . . . . 73 | 11.5.1. SUIT Digest Algorithm Identifiers . . . . . . . . . 73 | |||
| 11.5.2. SUIT Compression Algorithm Identifiers . . . . . . . 74 | 11.5.2. SUIT Compression Algorithm Identifiers . . . . . . . 74 | |||
| 11.5.3. Unpack Algorithms . . . . . . . . . . . . . . . . . 74 | 11.5.3. Unpack Algorithms . . . . . . . . . . . . . . . . . 74 | |||
| 12. Security Considerations . . . . . . . . . . . . . . . . . . . 75 | 12. Security Considerations . . . . . . . . . . . . . . . . . . . 75 | |||
| skipping to change at page 19, line 7 ¶ | skipping to change at page 19, line 7 ¶ | |||
| 2. At the end of each section in the dependent: The corresponding | 2. At the end of each section in the dependent: The corresponding | |||
| section in each dependency has been executed. | section in each dependency has been executed. | |||
| If the interpreter does not support dependencies and a manifest | If the interpreter does not support dependencies and a manifest | |||
| specifies a dependency, then the interpreter MUST reject the | specifies a dependency, then the interpreter MUST reject the | |||
| manifest. | manifest. | |||
| If a Recipient supports groups of interdependent components (a | If a Recipient supports groups of interdependent components (a | |||
| Component Set), then it SHOULD verify that all Components in the | Component Set), then it SHOULD verify that all Components in the | |||
| Component Set are specified by one update, where an update is | Component Set are specified by one update, that is: a single manifest | |||
| composed of all the TODO: Wording | and all its dependencies that together: | |||
| manifest and its dependencies. This manifest is called the Root | 1. have sufficient permissions imparted by their signatures | |||
| Manifest. | ||||
| 2. specify a digest and a payload for every Component in the | ||||
| Component Set. | ||||
| The single dependent manifest is sometimes called a Root Manifest. | ||||
| 6.2.1. Minimizing Signature Verifications | 6.2.1. Minimizing Signature Verifications | |||
| Signature verification can be energy and time expensive on a | Signature verification can be energy and time expensive on a | |||
| constrained device. MAC verification is typically unaffected by | constrained device. MAC verification is typically unaffected by | |||
| these concerns. A Recipient MAY choose to parse and execute only the | these concerns. A Recipient MAY choose to parse and execute only the | |||
| SUIT_Common section of the manifest prior to signature verification, | SUIT_Common section of the manifest prior to signature verification, | |||
| if all of the below apply: | if all of the below apply: | |||
| - The Authentication Block contains a COSE_Sign_Tagged or | - The Authentication Block contains a COSE_Sign_Tagged or | |||
| skipping to change at page 45, line 21 ¶ | skipping to change at page 45, line 21 ¶ | |||
| | | | | | | | | |||
| | suit-send-sysinfo-success | Add system information when the | | | suit-send-sysinfo-success | Add system information when the | | |||
| | | command succeeds | | | | command succeeds | | |||
| | | | | | | | | |||
| | suit-send-sysinfo-failure | Add system information when the | | | suit-send-sysinfo-failure | Add system information when the | | |||
| | | command fails | | | | command fails | | |||
| +-----------------------------+-------------------------------------+ | +-----------------------------+-------------------------------------+ | |||
| Any or all of these policies may be enabled at once. | Any or all of these policies may be enabled at once. | |||
| At the completion of each command, a recipient MAY forward that | At the completion of each command, a Manifest Processor MAY forward | |||
| command's reporting policy, the result of the command, the current | information about the command to a Reporting Engine, which is | |||
| set of parameters, and the system information consumed by the command | responsible for reporting boot or update status to a third party. | |||
| to a TODO | The Reporting Engine is entirely implementation-defined, the | |||
| reporting policy simply facilitates the Reporting Engine's interface | ||||
| to the SUIT Manifest Processor. | ||||
| several information elements are provided to an implementation | The information elements provided to the Reporting Engine are: | |||
| defined subsystem, the Reporting Engine: | ||||
| - The reporting policies | - The reporting policy | |||
| - The result of the command | - The result of the command | |||
| - The parameters consumed by the command | - The values of parameters consumed by the command | |||
| - The system information consumed by the command | - The system information consumed by the command | |||
| Together, these elements are called a Record. A group of Records is | ||||
| a Report. | ||||
| If the component index is set to True or an array when a command is | If the component index is set to True or an array when a command is | |||
| executed with a non-zero reporting policy, then the Reporting Engine | executed with a non-zero reporting policy, then the Reporting Engine | |||
| MUST receive one Record for each Component, in the order expressed in | MUST receive one Record for each Component, in the order expressed in | |||
| the Components list or the component index array, respectively. If | the Components list or the component index array. If the dependency | |||
| the dependency index is set to True or an array when a command is | index is set to True or an array when a command is executed with a | |||
| executed with a non-zero reporting policy, then the Reporting Engine | non-zero reporting policy, then the Reporting Engine MUST receive one | |||
| MUST receive one Record for each Dependency, in the order expressed | Record for each Dependency, in the order expressed in the | |||
| in the Dependencies list or the component index array, respectively. | Dependencies list or the component index array, respectively. | |||
| This specification does define a particular format of Records or | This specification does not define a particular format of Records or | |||
| Reports. This specification only defines hints to the Reporting | Reports. This specification only defines hints to the Reporting | |||
| Engine for which Records it should aggregate into the Report. The | Engine for which Records it should aggregate into the Report. The | |||
| Reporting Engine MAY choose to ignore these hints and apply its own | Reporting Engine MAY choose to ignore these hints and apply its own | |||
| policy instead. | policy instead. | |||
| When used in a Invocation Process, the report MAY form the basis of | When used in a Invocation Procedure, the report MAY form the basis of | |||
| an attestation report. When used in an Update Process, the report | an attestation report. When used in an Update Process, the report | |||
| MAY form the basis for one or more log entries. | MAY form the basis for one or more log entries. | |||
| 8.7.5. SUIT_Parameters | 8.7.5. SUIT_Parameters | |||
| Many conditions and directives require additional information. That | Many conditions and directives require additional information. That | |||
| information is contained within parameters that can be set in a | information is contained within parameters that can be set in a | |||
| consistent way. This allows reduction of manifest size and | consistent way. This allows reduction of manifest size and | |||
| replacement of parameters from one manifest to the next. | replacement of parameters from one manifest to the next. | |||
| skipping to change at page 62, line 28 ¶ | skipping to change at page 62, line 28 ¶ | |||
| components supported) | components supported) | |||
| 3. An array of unsigned integers (REQUIRED to implement in parser | 3. An array of unsigned integers (REQUIRED to implement in parser | |||
| ONLY IF 3 or more components supported) | ONLY IF 3 or more components supported) | |||
| If the following commands apply to ONE component, an unsigned integer | If the following commands apply to ONE component, an unsigned integer | |||
| index into the component list is used. If the following commands | index into the component list is used. If the following commands | |||
| apply to ALL components, then the boolean value "True" is used | apply to ALL components, then the boolean value "True" is used | |||
| instead of an index. If the following commands apply to more than | instead of an index. If the following commands apply to more than | |||
| one, but not all components, then an array of unsigned integer | one, but not all components, then an array of unsigned integer | |||
| indices into the component list is used. TODO: Component list | indices into the component list is used. See Section 6.5 for more | |||
| details. | ||||
| If the following commands apply to NO components, then the boolean | If the following commands apply to NO components, then the boolean | |||
| value "False" is used. When suit-directive-set-dependency-index is | value "False" is used. When suit-directive-set-dependency-index is | |||
| used, suit-directive-set-component-index = False is implied. When | used, suit-directive-set-component-index = False is implied. When | |||
| suit-directive-set-component-index is used, suit-directive-set- | suit-directive-set-component-index is used, suit-directive-set- | |||
| dependency-index = False is implied. | dependency-index = False is implied. | |||
| If component index is set to True when a command is invoked, then the | If component index is set to True when a command is invoked, then the | |||
| command applies to all components, in the order they appear in suit- | command applies to all components, in the order they appear in suit- | |||
| common-components. When the Manifest Processor invokes a command | common-components. When the Manifest Processor invokes a command | |||
| while the component index is set to True, it must execute the command | while the component index is set to True, it must execute the command | |||
| once for each possible component index, ensuring that the command | once for each possible component index, ensuring that the command | |||
| receives the parameters corresponding to that component index. | receives the parameters corresponding to that component index. | |||
| 8.7.7.2. suit-directive-set-dependency-index | 8.7.7.2. suit-directive-set-dependency-index | |||
| Set Dependency Index defines the manifest to which successive | Set Dependency Index defines the manifest to which successive | |||
| directives and conditions will apply. The supplied argument MUST be | directives and conditions will apply. The supplied argument MUST be | |||
| either a boolean or an unsigned integer index into the dependencies. | either a boolean or an unsigned integer index into the dependencies, | |||
| If the following directives apply to ALL dependencies, then the | or an array of unsigned integer indices into the list of | |||
| boolean value "True" is used instead of an index. If the following | dependencies. If the following directives apply to ALL dependencies, | |||
| directives apply to NO dependencies, then the boolean value "False" | then the boolean value "True" is used instead of an index. If the | |||
| is used. When suit-directive-set-component-index is used, suit- | following directives apply to NO dependencies, then the boolean value | |||
| directive-set-dependency-index = False is implied. When suit- | "False" is used. When suit-directive-set-component-index is used, | |||
| suit-directive-set-dependency-index = False is implied. When suit- | ||||
| directive-set-dependency-index is used, suit-directive-set-component- | directive-set-dependency-index is used, suit-directive-set-component- | |||
| index = False is implied. TODO: Component list|Dependency List | index = False is implied. | |||
| If dependency index is set to True when a command is invoked, then | If dependency index is set to True when a command is invoked, then | |||
| the command applies to all dependencies, in the order they appear in | the command applies to all dependencies, in the order they appear in | |||
| suit-common-components. When the Manifest Processor invokes a | suit-common-components. When the Manifest Processor invokes a | |||
| command while the dependency index is set to True, it must execute | command while the dependency index is set to True, the Manifest | |||
| the command once for each possible dependency index, ensuring that | Processor MUST execute the command once for each possible dependency | |||
| the command receives the parameters corresponding to that dependency | index, ensuring that the command receives the parameters | |||
| index. | corresponding to that dependency index. If the dependency index is | |||
| set to an array of unsigned integers, then the Manifest Processor | ||||
| MUST execute the command once for each listed dependency index, | ||||
| ensuring that the command receives the parameters corresponding to | ||||
| that dependency index. | ||||
| See Section 6.5 for more details. | ||||
| Typical operations that require suit-directive-set-dependency-index | Typical operations that require suit-directive-set-dependency-index | |||
| include setting a source URI or Encryption Information, invoking | include setting a source URI or Encryption Information, invoking | |||
| "Fetch," or invoking "Process Dependency" for an individual | "Fetch," or invoking "Process Dependency" for an individual | |||
| dependency. | dependency. | |||
| 8.7.7.3. suit-directive-try-each | 8.7.7.3. suit-directive-try-each | |||
| This command runs several SUIT_Command_Sequence instances, one after | This command runs several SUIT_Command_Sequence instances, one after | |||
| another, in a strict order. Use this command to implement a "try/ | another, in a strict order. Use this command to implement a "try/ | |||
| skipping to change at page 76, line 38 ¶ | skipping to change at page 76, line 38 ¶ | |||
| [ELF] Wikipedia, ., "Executable and Linkable Format (ELF)", | [ELF] Wikipedia, ., "Executable and Linkable Format (ELF)", | |||
| 2020, <https://en.wikipedia.org/wiki/ | 2020, <https://en.wikipedia.org/wiki/ | |||
| Executable_and_Linkable_Format>. | Executable_and_Linkable_Format>. | |||
| [HEX] Wikipedia, ., "Intel HEX", 2020, | [HEX] Wikipedia, ., "Intel HEX", 2020, | |||
| <https://en.wikipedia.org/wiki/Intel_HEX>. | <https://en.wikipedia.org/wiki/Intel_HEX>. | |||
| [I-D.ietf-cbor-tags-oid] | [I-D.ietf-cbor-tags-oid] | |||
| Bormann, C. and S. Leonard, "Concise Binary Object | Bormann, C. and S. Leonard, "Concise Binary Object | |||
| Representation (CBOR) Tags for Object Identifiers", draft- | Representation (CBOR) Tags for Object Identifiers", draft- | |||
| ietf-cbor-tags-oid-02 (work in progress), October 2020. | ietf-cbor-tags-oid-03 (work in progress), November 2020. | |||
| [I-D.ietf-sacm-coswid] | [I-D.ietf-sacm-coswid] | |||
| Birkholz, H., Fitzgerald-McKay, J., Schmidt, C., and D. | Birkholz, H., Fitzgerald-McKay, J., Schmidt, C., and D. | |||
| Waltermire, "Concise Software Identification Tags", draft- | Waltermire, "Concise Software Identification Tags", draft- | |||
| ietf-sacm-coswid-15 (work in progress), May 2020. | ietf-sacm-coswid-16 (work in progress), November 2020. | |||
| [I-D.ietf-suit-architecture] | [I-D.ietf-suit-architecture] | |||
| Moran, B., Tschofenig, H., Brown, D., and M. Meriac, "A | Moran, B., Tschofenig, H., Brown, D., and M. Meriac, "A | |||
| Firmware Update Architecture for Internet of Things", | Firmware Update Architecture for Internet of Things", | |||
| draft-ietf-suit-architecture-14 (work in progress), | draft-ietf-suit-architecture-14 (work in progress), | |||
| October 2020. | October 2020. | |||
| [I-D.ietf-suit-information-model] | [I-D.ietf-suit-information-model] | |||
| Moran, B., Tschofenig, H., and H. Birkholz, "An | Moran, B., Tschofenig, H., and H. Birkholz, "An | |||
| Information Model for Firmware Updates in IoT Devices", | Information Model for Firmware Updates in IoT Devices", | |||
| draft-ietf-suit-information-model-08 (work in progress), | draft-ietf-suit-information-model-08 (work in progress), | |||
| October 2020. | October 2020. | |||
| [I-D.ietf-teep-architecture] | [I-D.ietf-teep-architecture] | |||
| Pei, M., Tschofenig, H., Thaler, D., and D. Wheeler, | Pei, M., Tschofenig, H., Thaler, D., and D. Wheeler, | |||
| "Trusted Execution Environment Provisioning (TEEP) | "Trusted Execution Environment Provisioning (TEEP) | |||
| Architecture", draft-ietf-teep-architecture-12 (work in | Architecture", draft-ietf-teep-architecture-13 (work in | |||
| progress), July 2020. | progress), November 2020. | |||
| [I-D.kucherawy-rfc8478bis] | [I-D.kucherawy-rfc8478bis] | |||
| Collet, Y. and M. Kucherawy, "Zstandard Compression and | Collet, Y. and M. Kucherawy, "Zstandard Compression and | |||
| the application/zstd Media Type", draft-kucherawy- | the application/zstd Media Type", draft-kucherawy- | |||
| rfc8478bis-05 (work in progress), April 2020. | rfc8478bis-05 (work in progress), April 2020. | |||
| [RFC1950] Deutsch, P. and J-L. Gailly, "ZLIB Compressed Data Format | [RFC1950] Deutsch, P. and J-L. Gailly, "ZLIB Compressed Data Format | |||
| Specification version 3.3", RFC 1950, | Specification version 3.3", RFC 1950, | |||
| DOI 10.17487/RFC1950, May 1996, | DOI 10.17487/RFC1950, May 1996, | |||
| <https://www.rfc-editor.org/info/rfc1950>. | <https://www.rfc-editor.org/info/rfc1950>. | |||
| End of changes. 31 change blocks. | ||||
| 57 lines changed or deleted | 73 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||