diff --git a/.circleci/config.yml b/.circleci/config.yml index bd1e77cb..424f6b05 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,6 +7,11 @@ jobs: working_directory: ~/draft steps: + - run: + name: "Get signing tools" + command: | + sudo apt-get update && sudo apt-get install -y gettext-base openssl + - run: name: "Print Configuration" command: | diff --git a/.gitignore b/.gitignore index 2896fc28..9768570c 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ draft-*.txt cddl/concise-swid-tag.cddl cddl/*-autogen.cddl error.txt +cddl/examples/{corim-4.sig,corim-4.diag,sig-structure.diag,testkey.pem,testcert.pem} diff --git a/cddl/Makefile b/cddl/Makefile index 86bd75c8..ca702ba3 100644 --- a/cddl/Makefile +++ b/cddl/Makefile @@ -43,22 +43,22 @@ CLEANFILES += $(3:.diag=.pretty) endef # cddl_check_template # Commented since CI doesn't have openssl -#examples/sig-structure.diag: examples/sig-structure.diag.tmpl examples/payload-corim-4.diag examples/protected-header-map.diag -# payload="$$(cat examples/payload-corim-4.diag)" \ -# protected="$$(cat examples/protected-header-map.diag)" \ -# envsubst < examples/sig-structure.diag.tmpl > examples/sig-structure.diag - -#examples/testkey.pem: -# openssl ecparam -name secp384r1 -genkey -noout -out examples/testkey.pem - -#examples/corim-4.sig: examples/sig-structure.cbor examples/testkey.pem -# openssl dgst -sha384 -sign examples/testkey.pem -out examples/corim-4.sig examples/sig-structure.cbor - -#examples/corim-4.diag: examples/corim-4.sig examples/corim-4.diag.tmpl examples/payload-corim-4.diag examples/protected-header-map.diag -# payload="$$(cat examples/payload-corim-4.diag)" \ -# protected="$$(cat examples/protected-header-map.diag)" \ -# signature="h'$$(cat examples/corim-4.sig | xxd -p -c 128)'" \ -# envsubst < examples/corim-4.diag.tmpl > examples/corim-4.diag +examples/sig-structure.diag: examples/sig-structure.diag.tmpl examples/payload-corim-4.diag examples/protected-header-map.diag + payload="$$(cat examples/payload-corim-4.diag)" \ + protected="$$(cat examples/protected-header-map.diag)" \ + envsubst < examples/sig-structure.diag.tmpl > examples/sig-structure.diag + +examples/testkey.pem: + openssl ecparam -name secp384r1 -genkey -noout -out examples/testkey.pem + +examples/corim-4.sig: examples/sig-structure.cbor examples/testkey.pem + openssl dgst -sha384 -sign examples/testkey.pem -out examples/corim-4.sig examples/sig-structure.cbor + +examples/corim-4.diag: examples/corim-4.sig examples/corim-4.diag.tmpl examples/payload-corim-4.diag examples/protected-header-map.diag + payload="$$(cat examples/payload-corim-4.diag)" \ + protected="$$(cat examples/protected-header-map.diag)" \ + signature="h'$$(cat examples/corim-4.sig | xxd -p -c 128)'" \ + envsubst < examples/corim-4.diag.tmpl > examples/corim-4.diag include corim-frags.mk diff --git a/cddl/examples/corim-4.diag b/cddl/examples/corim-4.diag deleted file mode 100644 index 068a898c..00000000 --- a/cddl/examples/corim-4.diag +++ /dev/null @@ -1,60 +0,0 @@ -/ signed-corim / 18([ - / protected / << / header_map / { - / alg: / 1 : -35, - / content-type: / 3 : "application/rim+cbor", - / corim-meta: / 8 : << / corim-meta / { - / signer: / 0 : / corim-signer-map / { - / signer: / 0 : "ACME Ltd." - } - } >>, - / kid: / 4 : h'f8ccd2b49fdba32cd94498030fdc8e5010358919' -} >>, - / unprotected-corim-header-map / {}, - / payload / << 501(/ corim-map / { - / corim.id / 0 : h'284e6c3e5d9f4f6b851f5a4247f243a7', - / corim.tags / 1 : [ - / concise-mid-tag / 506( << - / concise-mid-tag / { - / comid.tag-identity / 1 : { - / comid.tag-id / 0 : h'3f06af63a93c11e4979700505690773f' - }, - / comid.entity / 2 : [ { - / comid.entity-name / 0 : "ACME Inc.", - / comid.reg-id / 1 : 32("https://acme.example"), - / comid.role / 2 : [ 0 ] / tag-creator / - } ], - / comid.triples / 4 : { - / comid.reference-triples / 0 : [ [ - / environment-map / { - / comid.class / 0 : { - / comid.class-id / 0 : - / tagged-uuid-type / 37( - h'67b28b6c34cc40a19117ab5b05911e37' - ), - / comid.vendor / 1 : "ACME Inc.", - / comid.model / 2 : "ACME RoadRunner", - / comid.layer / 3 : 1 - } - }, - [ - / measurement-map / { - / comid.mval / 1 : { - / comid.ver / 0 : { - / comid.version / 0 : "1.0.0", - / comid.version-scheme / 1 : 16384 / semver / - }, - / comid.digests / 2 : [ [ - / hash-alg-id / 1, / sha256 / - / hash-value / h'44aa336af4cb14a879432e53dd6571c7fa9bccafb75f488259262d6ea3a4d91b' - ] ] - } - } - ] - ] ] - } - } - >> ) - ] - }) >>, - / signature / h'30660231008520f6f6980ee6e702602450fba17ee151c479dc85cc8e55ecc31afe28eb4c50d8fd98230eef1bfc9d631a23a0bc76850231009df2d8656978d590aabefac29ebeedea18adc9de837ddf59b5d4348bd6ab15cef526de0b20c32db6b9fd8b7b49cd5b20' -])