| < draft-ietf-suit-manifest-12.txt | draft-ietf-suit-manifest-13.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: August 26, 2021 H. Birkholz | Expires: November 26, 2021 H. Birkholz | |||
| Fraunhofer SIT | Fraunhofer SIT | |||
| K. Zandberg | K. Zandberg | |||
| Inria | Inria | |||
| February 22, 2021 | May 25, 2021 | |||
| 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-12 | draft-ietf-suit-manifest-13 | |||
| 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 August 26, 2021. | This Internet-Draft will expire on November 26, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 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 3, line 27 ¶ | skipping to change at page 3, line 27 ¶ | |||
| 8.6.1. suit-manifest-version . . . . . . . . . . . . . . . . 38 | 8.6.1. suit-manifest-version . . . . . . . . . . . . . . . . 38 | |||
| 8.6.2. suit-manifest-sequence-number . . . . . . . . . . . . 38 | 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 . . . . . . . . . . . . . . . . . . . 57 | |||
| 8.7.7. SUIT_Directive . . . . . . . . . . . . . . . . . . . 60 | 8.7.7. SUIT_Directive . . . . . . . . . . . . . . . . . . . 61 | |||
| 8.7.8. suit-directive-garbage-collect . . . . . . . . . . . 67 | 8.7.8. suit-directive-garbage-collect . . . . . . . . . . . 68 | |||
| 8.7.9. Integrity Check Values . . . . . . . . . . . . . . . 68 | 8.7.9. Integrity Check Values . . . . . . . . . . . . . . . 69 | |||
| 8.8. Severable Elements . . . . . . . . . . . . . . . . . . . 68 | 8.8. Severable Elements . . . . . . . . . . . . . . . . . . . 69 | |||
| 9. Access Control Lists . . . . . . . . . . . . . . . . . . . . 69 | 9. Access Control Lists . . . . . . . . . . . . . . . . . . . . 70 | |||
| 10. SUIT Digest Container . . . . . . . . . . . . . . . . . . . . 69 | 10. SUIT Digest Container . . . . . . . . . . . . . . . . . . . . 70 | |||
| 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 69 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 70 | |||
| 11.1. SUIT Commands . . . . . . . . . . . . . . . . . . . . . 70 | 11.1. SUIT Commands . . . . . . . . . . . . . . . . . . . . . 71 | |||
| 11.2. SUIT Parameters . . . . . . . . . . . . . . . . . . . . 72 | 11.2. SUIT Parameters . . . . . . . . . . . . . . . . . . . . 73 | |||
| 11.3. SUIT Text Values . . . . . . . . . . . . . . . . . . . . 73 | 11.3. SUIT Text Values . . . . . . . . . . . . . . . . . . . . 74 | |||
| 11.4. SUIT Component Text Values . . . . . . . . . . . . . . . 73 | 11.4. SUIT Component Text Values . . . . . . . . . . . . . . . 74 | |||
| 11.5. SUIT Algorithm Identifiers . . . . . . . . . . . . . . . 73 | 11.5. SUIT Algorithm Identifiers . . . . . . . . . . . . . . . 74 | |||
| 11.5.1. SUIT Digest Algorithm Identifiers . . . . . . . . . 73 | 11.5.1. SUIT Digest Algorithm Identifiers . . . . . . . . . 74 | |||
| 11.5.2. SUIT Compression Algorithm Identifiers . . . . . . . 74 | 11.5.2. SUIT Compression Algorithm Identifiers . . . . . . . 75 | |||
| 11.5.3. Unpack Algorithms . . . . . . . . . . . . . . . . . 74 | 11.5.3. Unpack Algorithms . . . . . . . . . . . . . . . . . 75 | |||
| 12. Security Considerations . . . . . . . . . . . . . . . . . . . 75 | 12. Security Considerations . . . . . . . . . . . . . . . . . . . 76 | |||
| 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 75 | 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 76 | |||
| 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 75 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 76 | |||
| 14.1. Normative References . . . . . . . . . . . . . . . . . . 75 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 76 | |||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 76 | 14.2. Informative References . . . . . . . . . . . . . . . . . 77 | |||
| Appendix A. A. Full CDDL . . . . . . . . . . . . . . . . . . . . 78 | Appendix A. A. Full CDDL . . . . . . . . . . . . . . . . . . . . 79 | |||
| Appendix B. B. Examples . . . . . . . . . . . . . . . . . . . . 87 | Appendix B. B. Examples . . . . . . . . . . . . . . . . . . . . 88 | |||
| B.1. Example 0: Secure Boot . . . . . . . . . . . . . . . . . 88 | B.1. Example 0: Secure Boot . . . . . . . . . . . . . . . . . 89 | |||
| B.2. Example 1: Simultaneous Download and Installation of | B.2. Example 1: Simultaneous Download and Installation of | |||
| Payload . . . . . . . . . . . . . . . . . . . . . . . . . 90 | Payload . . . . . . . . . . . . . . . . . . . . . . . . . 91 | |||
| B.3. Example 2: Simultaneous Download, Installation, Secure | B.3. Example 2: Simultaneous Download, Installation, Secure | |||
| Boot, Severed Fields . . . . . . . . . . . . . . . . . . 92 | Boot, Severed Fields . . . . . . . . . . . . . . . . . . 93 | |||
| B.4. Example 3: A/B images . . . . . . . . . . . . . . . . . . 96 | B.4. Example 3: A/B images . . . . . . . . . . . . . . . . . . 96 | |||
| B.5. Example 4: Load and Decompress from External Storage . . 99 | B.5. Example 4: Load and Decompress from External Storage . . 99 | |||
| B.6. Example 5: Two Images . . . . . . . . . . . . . . . . . . 102 | B.6. Example 5: Two Images . . . . . . . . . . . . . . . . . . 102 | |||
| Appendix C. C. Design Rational . . . . . . . . . . . . . . . . . 105 | Appendix C. C. Design Rational . . . . . . . . . . . . . . . . . 105 | |||
| C.1. C.1 Design Rationale: Envelope . . . . . . . . . . . . . 106 | C.1. C.1 Design Rationale: Envelope . . . . . . . . . . . . . 106 | |||
| C.2. C.2 Byte String Wrappers . . . . . . . . . . . . . . . . 107 | C.2. C.2 Byte String Wrappers . . . . . . . . . . . . . . . . 107 | |||
| Appendix D. D. Implementation Conformance Matrix . . . . . . . . 107 | Appendix D. D. Implementation Conformance Matrix . . . . . . . . 107 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 111 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 111 | |||
| 1. Introduction | 1. Introduction | |||
| skipping to change at page 51, line 9 ¶ | skipping to change at page 51, line 9 ¶ | |||
| 8.7.5.9. suit-parameter-component-offset | 8.7.5.9. suit-parameter-component-offset | |||
| This parameter sets the offset in a component. Some components | This parameter sets the offset in a component. Some components | |||
| support multiple possible Slots (offsets into a storage area). This | support multiple possible Slots (offsets into a storage area). This | |||
| parameter describes the intended Slot to use, identified by its | parameter describes the intended Slot to use, identified by its | |||
| offset into the component's storage area. This offset MUST be | offset into the component's storage area. This offset MUST be | |||
| encoded as a positive integer. | encoded as a positive integer. | |||
| 8.7.5.10. suit-parameter-encryption-info | 8.7.5.10. suit-parameter-encryption-info | |||
| Encryption Info defines the mechanism that Fetch or Copy should use | Encryption Info defines the keys and algorithm information Fetch or | |||
| to decrypt the data they transfer. SUIT_Parameter_Encryption_Info is | Copy has to use to decrypt the confidentiality protected data. | |||
| encoded as a COSE_Encrypt_Tagged or a COSE_Encrypt0_Tagged, wrapped | SUIT_Parameter_Encryption_Info is encoded as a COSE_Encrypt_Tagged | |||
| in a bstr. | structure wrapped in a bstr. A separate document will profile the | |||
| COSE specification for use of manifest and firmware encrytion. | ||||
| 8.7.5.11. suit-parameter-compression-info | 8.7.5.11. suit-parameter-compression-info | |||
| SUIT_Compression_Info defines any information that is required for a | SUIT_Compression_Info defines any information that is required for a | |||
| Recipient to perform decompression operations. SUIT_Compression_Info | Recipient to perform decompression operations. SUIT_Compression_Info | |||
| is a map containing this data. The only element defined for the map | is a map containing this data. The only element defined for the map | |||
| in this specification is the suit-compression-algorithm. This | in this specification is the suit-compression-algorithm. This | |||
| document defines the following suit-compression-algorithm's: ZLIB | document defines the following suit-compression-algorithm's: ZLIB | |||
| [RFC1950], Brotli [RFC7932], and ZSTD [I-D.kucherawy-rfc8478bis]. | [RFC1950], Brotli [RFC7932], and ZSTD [I-D.kucherawy-rfc8478bis]. | |||
| skipping to change at page 76, line 36 ¶ | skipping to change at page 77, line 36 ¶ | |||
| <https://en.wikipedia.org/wiki/COFF>. | <https://en.wikipedia.org/wiki/COFF>. | |||
| [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., "Concise Binary Object Representation (CBOR) | |||
| Representation (CBOR) Tags for Object Identifiers", draft- | Tags for Object Identifiers", draft-ietf-cbor-tags-oid-06 | |||
| ietf-cbor-tags-oid-04 (work in progress), January 2021. | (work in progress), March 2021. | |||
| [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-16 (work in progress), November 2020. | ietf-sacm-coswid-17 (work in progress), February 2021. | |||
| [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-15 (work in progress), | draft-ietf-suit-architecture-16 (work in progress), | |||
| January 2021. | January 2021. | |||
| [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, "A Manifest | |||
| 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-11 (work in progress), | |||
| October 2020. | April 2021. | |||
| [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-13 (work in | Architecture", draft-ietf-teep-architecture-14 (work in | |||
| progress), November 2020. | progress), February 2021. | |||
| [I-D.kucherawy-rfc8478bis] | [I-D.kucherawy-rfc8478bis] | |||
| Collet, Y. and M. Kucherawy, "Zstandard Compression and | Collet, Y. and M. S. Kucherawy, "Zstandard Compression and | |||
| the application/zstd Media Type", draft-kucherawy- | the 'application/zstd' Media Type", draft-kucherawy- | |||
| rfc8478bis-06 (work in progress), December 2020. | rfc8478bis-06 (work in progress), December 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>. | |||
| [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for | [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for | |||
| Constrained-Node Networks", RFC 7228, | Constrained-Node Networks", RFC 7228, | |||
| DOI 10.17487/RFC7228, May 2014, | DOI 10.17487/RFC7228, May 2014, | |||
| skipping to change at page 78, line 19 ¶ | skipping to change at page 79, line 19 ¶ | |||
| definition. | definition. | |||
| SUIT_Envelope_Tagged = #6.48(SUIT_Envelope) | SUIT_Envelope_Tagged = #6.48(SUIT_Envelope) | |||
| SUIT_Envelope = { | SUIT_Envelope = { | |||
| ? suit-delegation => bstr .cbor SUIT_Delegation, | ? suit-delegation => bstr .cbor SUIT_Delegation, | |||
| suit-authentication-wrapper => bstr .cbor SUIT_Authentication, | suit-authentication-wrapper => bstr .cbor SUIT_Authentication, | |||
| suit-manifest => bstr .cbor SUIT_Manifest, | suit-manifest => bstr .cbor SUIT_Manifest, | |||
| SUIT_Severable_Manifest_Members, | SUIT_Severable_Manifest_Members, | |||
| * SUIT_Integrated_Payload, | * SUIT_Integrated_Payload, | |||
| * SUIT_Integrated_Dependency, | * SUIT_Integrated_Dependency, | |||
| * $$SUIT_Envelope_Extensions, | * $$SUIT_Envelope_Extensions | |||
| * (int => bstr) | ||||
| } | } | |||
| SUIT_Delegation = [ + [ + bstr .cbor CWT ] ] | SUIT_Delegation = [ + SUIT_Delegation_Chain ] | |||
| SUIT_Delegation_Chain = [ + bstr .cbor CWT ] | ||||
| CWT = SUIT_Authentication_Block | CWT = SUIT_Authentication_Block | |||
| SUIT_Authentication = [ | SUIT_Authentication = [ | |||
| bstr .cbor SUIT_Digest, | bstr .cbor SUIT_Digest, | |||
| * bstr .cbor SUIT_Authentication_Block | * bstr .cbor SUIT_Authentication_Block | |||
| ] | ] | |||
| SUIT_Digest = [ | SUIT_Digest = [ | |||
| suit-digest-algorithm-id : suit-digest-algorithm-ids, | suit-digest-algorithm-id : suit-digest-algorithm-ids, | |||
| skipping to change at page 79, line 4 ¶ | skipping to change at page 80, line 4 ¶ | |||
| suit-digest-algorithm-ids /= algorithm-id-sha512 | suit-digest-algorithm-ids /= algorithm-id-sha512 | |||
| suit-digest-algorithm-ids /= algorithm-id-sha3-224 | suit-digest-algorithm-ids /= algorithm-id-sha3-224 | |||
| suit-digest-algorithm-ids /= algorithm-id-sha3-256 | suit-digest-algorithm-ids /= algorithm-id-sha3-256 | |||
| suit-digest-algorithm-ids /= algorithm-id-sha3-384 | suit-digest-algorithm-ids /= algorithm-id-sha3-384 | |||
| suit-digest-algorithm-ids /= algorithm-id-sha3-512 | suit-digest-algorithm-ids /= algorithm-id-sha3-512 | |||
| SUIT_Authentication_Block /= COSE_Mac_Tagged | SUIT_Authentication_Block /= COSE_Mac_Tagged | |||
| SUIT_Authentication_Block /= COSE_Sign_Tagged | SUIT_Authentication_Block /= COSE_Sign_Tagged | |||
| SUIT_Authentication_Block /= COSE_Mac0_Tagged | SUIT_Authentication_Block /= COSE_Mac0_Tagged | |||
| SUIT_Authentication_Block /= COSE_Sign1_Tagged | SUIT_Authentication_Block /= COSE_Sign1_Tagged | |||
| COSE_Mac_Tagged = any | ||||
| COSE_Sign_Tagged = any | ||||
| COSE_Mac0_Tagged = any | ||||
| COSE_Sign1_Tagged = any | ||||
| COSE_Encrypt_Tagged = any | ||||
| COSE_Encrypt0_Tagged = any | ||||
| SUIT_Severable_Manifest_Members = ( | SUIT_Severable_Manifest_Members = ( | |||
| ? suit-dependency-resolution => bstr .cbor SUIT_Command_Sequence, | ? suit-dependency-resolution => bstr .cbor SUIT_Command_Sequence, | |||
| ? suit-payload-fetch => bstr .cbor SUIT_Command_Sequence, | ? suit-payload-fetch => bstr .cbor SUIT_Command_Sequence, | |||
| ? suit-install => bstr .cbor SUIT_Command_Sequence, | ? suit-install => bstr .cbor SUIT_Command_Sequence, | |||
| ? suit-text => bstr .cbor SUIT_Text_Map, | ? suit-text => bstr .cbor SUIT_Text_Map, | |||
| ? suit-coswid => bstr .cbor concise-software-identity, | ? suit-coswid => bstr ;.cbor concise-software-identity, | |||
| * $$SUIT_severable-members-extensions, | * $$SUIT_severable-members-extensions, | |||
| ) | ) | |||
| SUIT_Integrated_Payload = (suit-integrated-payload-key => bstr) | SUIT_Integrated_Payload = (suit-integrated-payload-key => bstr) | |||
| SUIT_Integrated_Dependency = ( | SUIT_Integrated_Dependency = ( | |||
| suit-integrated-payload-key => bstr .cbor SUIT_Envelope | suit-integrated-payload-key => bstr .cbor SUIT_Envelope | |||
| ) | ) | |||
| suit-integrated-payload-key = nint / uint .ge 24 | suit-integrated-payload-key = nint / uint .ge 24 | |||
| SUIT_Manifest_Tagged = #6.480(SUIT_Manifest) | SUIT_Manifest_Tagged = #6.480(SUIT_Manifest) | |||
| skipping to change at page 80, line 17 ¶ | skipping to change at page 81, line 10 ¶ | |||
| SUIT_Common = { | SUIT_Common = { | |||
| ? suit-dependencies => SUIT_Dependencies, | ? suit-dependencies => SUIT_Dependencies, | |||
| ? suit-components => SUIT_Components, | ? suit-components => SUIT_Components, | |||
| ? suit-common-sequence => bstr .cbor SUIT_Common_Sequence, | ? suit-common-sequence => bstr .cbor SUIT_Common_Sequence, | |||
| * $$SUIT_Common-extensions, | * $$SUIT_Common-extensions, | |||
| } | } | |||
| SUIT_Dependencies = [ + SUIT_Dependency ] | SUIT_Dependencies = [ + SUIT_Dependency ] | |||
| SUIT_Components = [ + SUIT_Component_Identifier ] | SUIT_Components = [ + SUIT_Component_Identifier ] | |||
| concise-software-identity = any | ;concise-software-identity = any | |||
| SUIT_Dependency = { | SUIT_Dependency = { | |||
| suit-dependency-digest => SUIT_Digest, | suit-dependency-digest => SUIT_Digest, | |||
| ? suit-dependency-prefix => SUIT_Component_Identifier, | ? suit-dependency-prefix => SUIT_Component_Identifier, | |||
| * $$SUIT_Dependency-extensions, | * $$SUIT_Dependency-extensions, | |||
| } | } | |||
| SUIT_Component_Identifier = [* bstr] | SUIT_Component_Identifier = [* bstr] | |||
| SUIT_Common_Sequence = [ | SUIT_Common_Sequence = [ | |||
| End of changes. 20 change blocks. | ||||
| 58 lines changed or deleted | 53 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/ | ||||