ietf-teep / teep-protocol

TEEP Protocol Specification
12 stars 9 forks source link

Hackathon 115: CDDL compilation warnings #278

Closed mingpeiwk closed 1 year ago

mingpeiwk commented 2 years ago

When using anweiss cddl tool (https://github.com/anweiss/cddl) to compile the current CDDL file, it reports the following errors:

$ cddl compile-cddl --cddl draft-ietf-teep-protocol.cddl error: parser errors ┌─ input:19:1 │ 19 │ $teep-type = uint .size 1 │ ^^^^^^^^^^^^ all plugs for type socket names must be augmentations using '/=' · 94 │ ? suit-reports => [ + SUIT_Report ], │ ^^^^^^^^^^^ missing definition for rule SUIT_Report 95 │ ? tc-list => [ + system-property-claims ], │ ^^^^^^^^^^^^^^^^^^^^^^ missing definition for rule system-property-claims · 105 │ component-id => SUIT_Component_Identifier, │ ^^^^^^^^^^^^^^^^^^^^^^^^^ missing definition for rule SUIT_Component_Identifier · 126 │ ? suit-reports => [ + SUIT_Report ], │ ^^^^^^^^^^^ missing definition for rule SUIT_Report · 140 │ ? suit-reports => [ + SUIT_Report ], │ ^^^^^^^^^^^ missing definition for rule SUIT_Report

Error: "incremental parsing error"

As reported earlier, the line 19 does appear to be not compliant with RFC8610 Section 3.9. The others should resolve when including the dependent suit cddl files, see cddl folder.

mingpeiwk commented 2 years ago

There is an error in cddl folder as follows.

make -C cddl validate cat ../draft-ietf-teep-protocol.cddl rfc-8152-cose.cddl draft-ietf-suit-manifest.cddl draft-ietf-suit-report.cddl workaround_dependency.cddl > check-draft-ietf-teep-protocol.cddl cddl check-draft-ietf-teep-protocol.cddl validate ../cbor/query_request.diag.bin || exit 1; cddl check-draft-ietf-teep-protocol.cddl validate ../cbor/query_response.diag.bin || exit 1; cddl check-draft-ietf-teep-protocol.cddl validate ../cbor/update.diag.bin || exit 1; cddl check-draft-ietf-teep-protocol.cddl validate ../cbor/teep_success.diag.bin || exit 1; cddl check-draft-ietf-teep-protocol.cddl validate ../cbor/teep_error.diag.bin || exit 1; /Library/Ruby/Gems/2.6.0/gems/cddl-0.9.1/lib/cddl.rb:1262:in `type_recall': Unknown type suit-reference nil [{}, {}, {}, {}, {}] (RuntimeError)

mingpeiwk commented 2 years ago

After fixing a line in draft-ietf-suite-manifest.cddl

$$SUIT_Parameters //= (suit-parameter-vendor-identifier => (RFC4122_UUID / cbor-pen))

which anweiss cddl compiler reports, the validation moved forward.

mingpeiwk commented 2 years ago

The current error lies in message validation:

CDDL validation failure (nil for [1, {20=>"\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF", 3=>[0]}, [[[18, -7]], [[18, -8]]], 3]):

mcd500 commented 2 years ago

@mingpeiwk @hannestschofenig @bremoran Three people worked independently without merging the knowledge togather. I will make the PR to resolve this issue.

(1) This is my cddl for the SUIT_Report how I was resolving it for the last IETF 114. https://github.com/ietf-teep/teep-protocol/issues/212 and the procedure to include the above cddl is written on the page 13 of the slide of IETF 114 hackathon. https://datatracker.ietf.org/meeting/114/materials/slides-114-teep-hackathon-report

(2) This is @kentakayama 's work. He added the line in the Makefile which generates cddl of SUIT_Report from md file at this line. https://github.com/ietf-teep/teep-protocol/blob/master/cddl/Makefile#L32

(3) @bremoran have added of adding cddl file of SUIT_Report in this PR. https://github.com/bremoran/suit-report/pull/1

Let me combine all three and make PRs.

mingpeiwk commented 2 years ago

@mcd500 sounds good, thanks.

mcd500 commented 2 years ago

@mingpeiwk @hannestschofenig @bremoran This is the status update of today's hackathon.

The PR with the main fixes went into the suit_report repository. https://github.com/suit-wg/suit-report/pull/3

What is left is to update the Makefile in teep-protocol to adopt the changes in suit_report.

I will make the PR of the Makefile in teep-protocol later.

mcd500 commented 2 years ago

Made the PR. https://github.com/ietf-teep/teep-protocol/pull/287

mcd500 commented 2 years ago

Made a PR for who uses recent ubuntu https://github.com/ietf-teep/teep-protocol/pull/292.

dthaler commented 1 year ago

Fixed in draft -12