diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index e4750b49..d207709b 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -25,7 +25,7 @@ jobs: - name: Install golangci-lint run: | go version - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.48.0 + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.51.1 - name: Install Protoc uses: arduino/setup-protoc@v1 with: diff --git a/.gitignore b/.gitignore index bf033283..e0e86a1b 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,5 @@ tags .ipynb_checkpoints +# generated by build-test-vector scripts +scheme/**/*Comid*.cbor diff --git a/end-to-end/input/cca-endorsements.cbor b/end-to-end/input/cca-endorsements.cbor index 31f7bd75..014fc83d 100644 Binary files a/end-to-end/input/cca-endorsements.cbor and b/end-to-end/input/cca-endorsements.cbor differ diff --git a/end-to-end/input/corim-src/build-endorsements.sh b/end-to-end/input/corim-src/build-endorsements.sh new file mode 100755 index 00000000..4298df17 --- /dev/null +++ b/end-to-end/input/corim-src/build-endorsements.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -e + +TEMP_DIR=/tmp/veraison-end-to-end +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +mkdir -p $TEMP_DIR + +for scheme in psa cca; do + cocli comid create --template ${SCRIPT_DIR}/comid-${scheme}-ta.json \ + --template ${SCRIPT_DIR}/comid-${scheme}-refval.json \ + --output-dir $TEMP_DIR + cocli corim create --template ${SCRIPT_DIR}/corim-${scheme}.json \ + --comid ${TEMP_DIR}/comid-${scheme}-refval.cbor \ + --comid ${TEMP_DIR}/comid-${scheme}-ta.cbor \ + --output ${SCRIPT_DIR}/../${scheme}-endorsements.cbor +done + diff --git a/end-to-end/input/corim-src/comid-cca-refval.json b/end-to-end/input/corim-src/comid-cca-refval.json new file mode 100644 index 00000000..d3209dce --- /dev/null +++ b/end-to-end/input/corim-src/comid-cca-refval.json @@ -0,0 +1,109 @@ +{ + "lang": "en-GB", + "tag-identity": { + "id": "43BBE37F-2E61-4B33-AED3-53CFF1428B16", + "version": 0 + }, + "entities": [ + { + "name": "ACME Ltd.", + "regid": "https://acme.example", + "roles": [ + "tagCreator", + "creator", + "maintainer" + ] + } + ], + "triples": { + "reference-values": [ + { + "environment": { + "class": { + "id": { + "type": "psa.impl-id", + "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + }, + "vendor": "ACME", + "model": "RoadRunner" + } + }, + "measurements": [ + { + "key": { + "type": "psa.refval-id", + "value": { + "label": "BL", + "version": "3.4.2", + "signer-id": "BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=" + } + }, + "value": { + "digests": [ + "sha-256;BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=" + ] + } + }, + { + "key": { + "type": "psa.refval-id", + "value": { + "label": "M1", + "version": "1.2.0", + "signer-id": "BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=" + } + }, + "value": { + "digests": [ + "sha-256;CwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=" + ] + } + }, + { + "key": { + "type": "psa.refval-id", + "value": { + "label": "M2", + "version": "1.2.3", + "signer-id": "BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=" + } + }, + "value": { + "digests": [ + "sha-256;DwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=" + ] + } + }, + { + "key": { + "type": "psa.refval-id", + "value": { + "label": "M3", + "version": "1.0.0", + "signer-id": "BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=" + } + }, + "value": { + "digests": [ + "sha-256;EwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=" + ] + } + }, + { + "key": { + "type": "cca.platform-config-id", + "value": "cfg v1.0.0" + }, + "value": { + "raw-value": { + "type": "bytes", + "value": "cmF3dmFsdWUKcmF3dmFsdWUK" + } + } + } + ] + } + ] + } +} + diff --git a/end-to-end/input/corim-src/comid-cca-ta.json b/end-to-end/input/corim-src/comid-cca-ta.json new file mode 100644 index 00000000..12fb01df --- /dev/null +++ b/end-to-end/input/corim-src/comid-cca-ta.json @@ -0,0 +1,44 @@ +{ + "lang": "en-GB", + "tag-identity": { + "id": "366D0A0A-5988-45ED-8488-2F2A544F6242", + "version": 0 + }, + "entities": [ + { + "name": "ACME Ltd.", + "regid": "https://acme.example", + "roles": [ + "tagCreator", + "creator", + "maintainer" + ] + } + ], + "triples": { + "attester-verification-keys": [ + { + "environment": { + "class": { + "id": { + "type": "psa.impl-id", + "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + }, + "vendor": "ACME", + "model": "RoadRunner" + }, + "instance": { + "type": "ueid", + "value": "AQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC" + } + }, + "verification-keys": [ + { + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMKBCTNIcKUSDii11ySs3526iDZ8A\niTo7Tu6KPAqv7D7gS2XpJFbZiItSs3m9+9Ue6GnvHw/GW2ZZaVtszggXIw==\n-----END PUBLIC KEY-----" + } + ] + } + ] + } +} diff --git a/end-to-end/input/corim-src/comid-psa-refval.json b/end-to-end/input/corim-src/comid-psa-refval.json new file mode 100644 index 00000000..b070ef67 --- /dev/null +++ b/end-to-end/input/corim-src/comid-psa-refval.json @@ -0,0 +1,81 @@ +{ + "lang": "en-GB", + "tag-identity": { + "id": "43BBE37F-2E61-4B33-AED3-53CFF1428B16", + "version": 0 + }, + "entities": [ + { + "name": "ACME Ltd.", + "regid": "https://acme.example", + "roles": [ + "tagCreator", + "creator", + "maintainer" + ] + } + ], + "triples": { + "reference-values": [ + { + "environment": { + "class": { + "id": { + "type": "psa.impl-id", + "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" + }, + "vendor": "ACME", + "model": "RoadRunner" + } + }, + "measurements": [ + { + "key": { + "type": "psa.refval-id", + "value": { + "label": "BL", + "version": "2.1.0", + "signer-id": "rLsRx+TaIXIFUjzkzhokWuGiOa48a/2eeHH35di66Gs=" + } + }, + "value": { + "digests": [ + "sha-256;h0KPxSKAPTEGXnvOPPA/5HUJZjHl4Hu9eg/eYMTPJcc=" + ] + } + }, + { + "key": { + "type": "psa.refval-id", + "value": { + "label": "PRoT", + "version": "1.3.5", + "signer-id": "rLsRx+TaIXIFUjzkzhokWuGiOa48a/2eeHH35di66Gs=" + } + }, + "value": { + "digests": [ + "sha-256;AmOCmYm2/ZVPcrqvL8ZLwuLwHWktTecphuqAj26ZgT8=" + ] + } + }, + { + "key": { + "type": "psa.refval-id", + "value": { + "label": "ARoT", + "version": "0.1.4", + "signer-id": "rLsRx+TaIXIFUjzkzhokWuGiOa48a/2eeHH35di66Gs=" + } + }, + "value": { + "digests": [ + "sha-256;o6XnFfDMV0pzw/m+u2vCTzL/1bZ7OHJEwskJ2neaFHg=" + ] + } + } + ] + } + ] + } +} diff --git a/end-to-end/input/corim-src/comid-psa-ta.json b/end-to-end/input/corim-src/comid-psa-ta.json new file mode 100644 index 00000000..45c86145 --- /dev/null +++ b/end-to-end/input/corim-src/comid-psa-ta.json @@ -0,0 +1,44 @@ +{ + "lang": "en-GB", + "tag-identity": { + "id": "366D0A0A-5988-45ED-8488-2F2A544F6242", + "version": 0 + }, + "entities": [ + { + "name": "ACME Ltd.", + "regid": "https://acme.example", + "roles": [ + "tagCreator", + "creator", + "maintainer" + ] + } + ], + "triples": { + "attester-verification-keys": [ + { + "environment": { + "class": { + "id": { + "type": "psa.impl-id", + "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" + }, + "vendor": "ACME", + "model": "RoadRunner" + }, + "instance": { + "type": "ueid", + "value": "Ac7rrnuJJ6MiflMDz14PH3s0u1Qq1yUKwD+83jbsLxUI" + } + }, + "verification-keys": [ + { + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMKBCTNIcKUSDii11ySs3526iDZ8A\niTo7Tu6KPAqv7D7gS2XpJFbZiItSs3m9+9Ue6GnvHw/GW2ZZaVtszggXIw==\n-----END PUBLIC KEY-----" + } + ] + } + ] + } +} diff --git a/end-to-end/input/corim-src/corim-cca.json b/end-to-end/input/corim-src/corim-cca.json new file mode 100644 index 00000000..ba2ce068 --- /dev/null +++ b/end-to-end/input/corim-src/corim-cca.json @@ -0,0 +1,25 @@ +{ + "corim-id": "5c57e8f4-46cd-421b-91c9-08cf93e13cfc", + "dependent-rims": [ + { + "href": "https://parent.example/rims/ccb3aa85-61b4-40f1-848e-02ad6e8a254b", + "thumbprint": "sha-256:5Fty9cDAtXLbTY06t+l/No/3TmI0eoJN7LZ6hOUiTXU=" + } + ], + "profiles": [ + "http://arm.com/cca/ssd/1" + ], + "validity": { + "not-before": "2021-12-31T00:00:00Z", + "not-after": "2025-12-31T00:00:00Z" + }, + "entities": [ + { + "name": "ACME Ltd.", + "regid": "acme.example", + "roles": [ + "manifestCreator" + ] + } + ] +} \ No newline at end of file diff --git a/end-to-end/input/corim-src/corim-psa.json b/end-to-end/input/corim-src/corim-psa.json new file mode 100644 index 00000000..f0116feb --- /dev/null +++ b/end-to-end/input/corim-src/corim-psa.json @@ -0,0 +1,6 @@ +{ + "corim-id": "5c57e8f4-46cd-421b-91c9-08cf93e13cfc", + "profiles": [ + "http://arm.com/psa/iot/1" + ] +} diff --git a/end-to-end/input/psa-endorsements.cbor b/end-to-end/input/psa-endorsements.cbor index 23fdb564..f94701aa 100644 Binary files a/end-to-end/input/psa-endorsements.cbor and b/end-to-end/input/psa-endorsements.cbor differ diff --git a/go.mod b/go.mod index 2738be6e..40fdaa59 100644 --- a/go.mod +++ b/go.mod @@ -30,29 +30,41 @@ require ( github.com/tbaehler/gin-keycloak v1.5.0 github.com/veraison/ccatoken v1.1.0 github.com/veraison/cmw v0.1.0 - github.com/veraison/corim v1.1.2-0.20230904093201-6df0917f7caf + github.com/veraison/corim v1.1.2-0.20230912171018-eeb7bd486d3c github.com/veraison/dice v0.0.1 github.com/veraison/ear v1.1.0 github.com/veraison/eat v0.0.0-20220117140849-ddaf59d69f53 - github.com/veraison/parsec v0.1.0 + github.com/veraison/parsec v0.1.1-0.20230915122508-f31e6c9be40e github.com/veraison/psatoken v1.2.0 go.uber.org/zap v1.23.0 golang.org/x/text v0.12.0 google.golang.org/grpc v1.53.0 - google.golang.org/protobuf v1.30.0 + google.golang.org/protobuf v1.31.0 gopkg.in/square/go-jose.v2 v2.6.0 ) require ( - github.com/OneOfOne/xxhash v1.2.8 // indirect - github.com/agnivade/levenshtein v1.0.1 // indirect github.com/bytedance/sonic v1.9.1 // indirect github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect + github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/golang/glog v1.0.0 // indirect + github.com/inconshreveable/mousetrap v1.0.1 // indirect + github.com/klauspost/cpuid/v2 v2.2.4 // indirect + github.com/patrickmn/go-cache v2.1.0+incompatible // indirect + github.com/segmentio/asm v1.2.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + golang.org/x/arch v0.3.0 // indirect + golang.org/x/oauth2 v0.11.0 // indirect + google.golang.org/appengine v1.6.7 // indirect +) + +require ( + github.com/OneOfOne/xxhash v1.2.8 // indirect + github.com/agnivade/levenshtein v1.0.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/fsnotify/fsnotify v1.5.4 // indirect github.com/fxamacker/cbor/v2 v2.4.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/ghodss/yaml v1.0.0 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-playground/locales v0.14.1 // indirect @@ -60,13 +72,10 @@ require ( github.com/go-playground/validator/v10 v10.14.0 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/goccy/go-json v0.10.2 // indirect - github.com/golang/glog v1.0.0 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb // indirect github.com/huandu/xstrings v1.3.3 // indirect - github.com/inconshreveable/mousetrap v1.0.1 // indirect - github.com/klauspost/cpuid/v2 v2.2.4 // indirect github.com/leodido/go-urn v1.2.4 // indirect github.com/lestrrat-go/blackmagic v1.0.1 // indirect github.com/lestrrat-go/httpcc v1.0.1 // indirect @@ -80,39 +89,31 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/oklog/run v1.0.0 // indirect - github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml/v2 v2.0.8 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect - github.com/segmentio/asm v1.2.0 // indirect github.com/spf13/cast v1.5.0 // indirect github.com/subosito/gotenv v1.4.1 // indirect - github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.11 // indirect github.com/vektah/gqlparser/v2 v2.4.6 // indirect + github.com/veraison/go-cose v1.1.1-0.20230825153510-da0f9a62ade7 + github.com/veraison/swid v1.1.1-0.20230911094910-8ffdd07a22ca github.com/x448/float16 v0.8.4 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/yashtewari/glob-intersection v0.1.0 // indirect - golang.org/x/arch v0.3.0 // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/oauth2 v0.4.0 // indirect + go.uber.org/atomic v1.10.0 // indirect + go.uber.org/multierr v1.8.0 // indirect + golang.org/x/crypto v0.12.0 + golang.org/x/net v0.14.0 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.11.0 // indirect - google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) -require ( - github.com/spf13/pflag v1.0.5 - github.com/veraison/go-cose v1.1.1-0.20230623043903-afdd177c3434 - github.com/veraison/swid v1.1.0 - go.uber.org/atomic v1.10.0 // indirect - go.uber.org/multierr v1.8.0 // indirect - golang.org/x/crypto v0.12.0 -) +require github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index 998b2ee8..ccfeb76e 100644 --- a/go.sum +++ b/go.sum @@ -22,11 +22,6 @@ cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPT cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= -cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= -cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= -cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -36,7 +31,6 @@ cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM7 cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/firestore v1.6.0/go.mod h1:afJwI0vaXwAG54kI7A//lP/lSPDkQORQuMkv56TxEPU= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -123,7 +117,6 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= @@ -140,7 +133,6 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= @@ -390,7 +382,6 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= @@ -405,7 +396,6 @@ github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= @@ -535,8 +525,9 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -573,7 +564,6 @@ github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -587,9 +577,6 @@ github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -599,7 +586,6 @@ github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= @@ -623,26 +609,21 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-hclog v1.2.0 h1:La19f8d7WIlm4ogzNHB0JGqs5AUDAZ2UfCY4sJXcJdM= github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.4.4 h1:NVdrSdFRt3SkZtNckJ6tog7gbpRrcbOjQi/rgF7JYWQ= github.com/hashicorp/go-plugin v1.4.4/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -654,11 +635,8 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb h1:b5rjCoWHc7eqmAS4/qyk21ZsHyb6Mxv/jykxvNTkU4M= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -749,7 +727,6 @@ github.com/lestrrat-go/option v1.0.1/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmt github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -760,7 +737,6 @@ github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJ github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= @@ -768,7 +744,6 @@ github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= @@ -786,14 +761,12 @@ github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182aff github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.25/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= -github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.43 h1:JKfpVSCB84vrAmHzyrsxB5NAr5kLoMXZArPSw7Qlgyg= github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= @@ -802,8 +775,6 @@ github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS4 github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= @@ -905,7 +876,6 @@ github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTK github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= @@ -921,12 +891,10 @@ github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -984,7 +952,6 @@ github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= -github.com/sagikazarmark/crypt v0.1.0/go.mod h1:B/mN0msZuINBtQ1zZLEQcegFJJf9vnYIR88KRMEuODE= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= @@ -1015,12 +982,9 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw= github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= @@ -1028,7 +992,6 @@ github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3 github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= @@ -1045,8 +1008,6 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= -github.com/spf13/viper v1.9.0/go.mod h1:+i6ajR7OX2XaiBkrcZJFK21htRk7eDeLg7+O6bhUPP4= github.com/spf13/viper v1.13.0 h1:BWSJ/M+f+3nmdz9bxB+bWX28kkALN2ok11D0rSo8EJU= github.com/spf13/viper v1.13.0/go.mod h1:Icm2xNL3/8uyh/wFuB1jI7TiTNKp8632Nwegu+zgdYw= github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= @@ -1101,13 +1062,12 @@ github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtX github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/vektah/gqlparser/v2 v2.4.6 h1:Yjzp66g6oVq93Jihbi0qhGnf/6zIWjcm8H6gA27zstE= github.com/vektah/gqlparser/v2 v2.4.6/go.mod h1:flJWIR04IMQPGz+BXLrORkrARBxv/rtyIAFvd/MceW0= -github.com/veraison/apiclient v0.0.2/go.mod h1:H8YDx1ixM24GYP/aLbhq+HJsej0lVUqFCRIL5Uu4B0o= github.com/veraison/ccatoken v1.1.0 h1:U0Z5fOQRsdz3ksvvxVzTITczo+kfRxIlkWahJNP6Irs= github.com/veraison/ccatoken v1.1.0/go.mod h1:qh/KBwsrhPyGJqttlh8PU56wt1rPkUCX9A3ZAA/53Nc= github.com/veraison/cmw v0.1.0 h1:vD6tBlGPROCW/HlDcG1jh+XUJi5ihrjXatKZBjrv8mU= github.com/veraison/cmw v0.1.0/go.mod h1:WoBrlgByc6C1FeHhdze1/bQx1kv5d1sWKO5ezEf4Hs4= -github.com/veraison/corim v1.1.2-0.20230904093201-6df0917f7caf h1:RhPiC0Y/1G3yHGQjDafTciPe7ClynuO2VmXYAkN5TTI= -github.com/veraison/corim v1.1.2-0.20230904093201-6df0917f7caf/go.mod h1:PLvHMHlOYjO3VvSFxSDTOHJl1iIo5HRQS8EWJMgsfLg= +github.com/veraison/corim v1.1.2-0.20230912171018-eeb7bd486d3c h1:do1Yj0d4uq+Sd4PusgE8pfLfSKejJfaWukyjYTi8Ro0= +github.com/veraison/corim v1.1.2-0.20230912171018-eeb7bd486d3c/go.mod h1:Vn9+tCyN2ljpQxYvM6rwu3hNqdVbWrdQ9hqMa1Jfxb0= github.com/veraison/dice v0.0.1 h1:dOm7ByDN/r4WlDsGkEUXzdPMXgTvAPTAksQ8+BwBrD4= github.com/veraison/dice v0.0.1/go.mod h1:QPMLc5LVMj08VZ+HNMYk4XxWoVYGAUBVm8Rd5V1hzxs= github.com/veraison/ear v1.1.0 h1:vndGaFiG/qqcoIXyTteJ8D9Tf1aGzhds8ufAaUfArgM= @@ -1116,14 +1076,14 @@ github.com/veraison/eat v0.0.0-20210331113810-3da8a4dd42ff/go.mod h1:+kxt8iuFiVv github.com/veraison/eat v0.0.0-20220117140849-ddaf59d69f53 h1:5gnX2TrGd/Xz8DOp2OaLtg/jLoIubSUTrgz6iZ58pJ4= github.com/veraison/eat v0.0.0-20220117140849-ddaf59d69f53/go.mod h1:+kxt8iuFiVvKRs2VQ1Ho7bbAScXAB/kHFFuP5Biw19I= github.com/veraison/go-cose v1.0.0-rc.1/go.mod h1:7ziE85vSq4ScFTg6wyoMXjucIGOf4JkFEZi/an96Ct4= -github.com/veraison/go-cose v1.1.1-0.20230623043903-afdd177c3434 h1:0f8c2TttCjCvVGfHhbv2OhE9BK6HESa/t4QjajfE3/I= -github.com/veraison/go-cose v1.1.1-0.20230623043903-afdd177c3434/go.mod h1:/Bcd44VnE3YVGO+LY3wvyvjBniAVjlX4vaUZ8gNIfE0= -github.com/veraison/parsec v0.1.0 h1:522DLNUeWFtO+nMRglKs/aevzw9T3Om51G9FzU5wZWU= -github.com/veraison/parsec v0.1.0/go.mod h1:Pk/rDokqUqwJ9ZEi49OrxY1yAmvicviWcqK+wxhKusU= +github.com/veraison/go-cose v1.1.1-0.20230825153510-da0f9a62ade7 h1:KcKzBthSrSZIUEWBjVvkuk/DE3PyYFbXZxhx5byGFtc= +github.com/veraison/go-cose v1.1.1-0.20230825153510-da0f9a62ade7/go.mod h1:t6V8WJzHm1PD5HNsuDjW3KLv577uWb6UTzbZGvdQHD8= +github.com/veraison/parsec v0.1.1-0.20230915122508-f31e6c9be40e h1:6flWRGWeW9X2GOtegx2MqwRzO4z2DIrk3nm5FH7sGyM= +github.com/veraison/parsec v0.1.1-0.20230915122508-f31e6c9be40e/go.mod h1:IXiVM4dsJNsB2PB1NkK5AE0gUvOzsxLgOpuPo9KHs0M= github.com/veraison/psatoken v1.2.0 h1:PeHy6YUbhFE9Z9xaQBoAMpMWUEqSHrF2JgfcwMTmFIA= github.com/veraison/psatoken v1.2.0/go.mod h1:2tHLoYMOIS4V4mO8MJT4VstRtpO50FLmhoOR35FyIr4= -github.com/veraison/swid v1.1.0 h1:jEf/jobG6j7r9W9HSj2jDi1IGGs7aMKyDgfGEMxQ6is= -github.com/veraison/swid v1.1.0/go.mod h1:d5jt76uMNbTfQ+f2qU4Lt8RvWOTsv6PFgstIM1QdMH0= +github.com/veraison/swid v1.1.1-0.20230911094910-8ffdd07a22ca h1:osmCKwWO/xM68Kz+rIXio1DNzEY2NdJOpGpoy5r8NlE= +github.com/veraison/swid v1.1.1-0.20230911094910-8ffdd07a22ca/go.mod h1:d5jt76uMNbTfQ+f2qU4Lt8RvWOTsv6PFgstIM1QdMH0= github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= @@ -1237,7 +1197,6 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -1346,7 +1305,6 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -1358,8 +1316,9 @@ golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= +golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1371,15 +1330,12 @@ golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M= -golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.11.0 h1:vPL4xzxBM4niKCW6g9whtaWVXTJf1U5e4aZxxFx/gbU= +golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1489,16 +1445,13 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210629170331-7dc0b73dc9fb/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1514,7 +1467,6 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1536,7 +1488,6 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= @@ -1614,7 +1565,6 @@ golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= @@ -1646,13 +1596,6 @@ google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34q google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= -google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= -google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= -google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= -google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= -google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1710,18 +1653,7 @@ google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= -google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= @@ -1752,10 +1684,7 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= @@ -1763,7 +1692,6 @@ google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1778,8 +1706,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1795,8 +1723,6 @@ gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMy gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= diff --git a/integration-tests/data/endorsements/comid-cca-ta.json b/integration-tests/data/endorsements/comid-cca-ta.json index 3e479ac7..2fcb29fd 100644 --- a/integration-tests/data/endorsements/comid-cca-ta.json +++ b/integration-tests/data/endorsements/comid-cca-ta.json @@ -34,10 +34,11 @@ }, "verification-keys": [ { - "key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMKBCTNIcKUSDii11ySs3526iDZ8A\niTo7Tu6KPAqv7D7gS2XpJFbZiItSs3m9+9Ue6GnvHw/GW2ZZaVtszggXIw==\n-----END PUBLIC KEY-----" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMKBCTNIcKUSDii11ySs3526iDZ8A\niTo7Tu6KPAqv7D7gS2XpJFbZiItSs3m9+9Ue6GnvHw/GW2ZZaVtszggXIw==\n-----END PUBLIC KEY-----" } ] } ] } -} \ No newline at end of file +} diff --git a/integration-tests/data/endorsements/comid-enacttrust-badta.json b/integration-tests/data/endorsements/comid-enacttrust-badta.json deleted file mode 100644 index 717e6afd..00000000 --- a/integration-tests/data/endorsements/comid-enacttrust-badta.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "tag-identity": { - "id": "00000000-0000-0000-0000-000000000000" - }, - "entities": [ - { - "name": "EnactTrust", - "regid": "https://enacttrust.com", - "roles": [ - "tagCreator", - "creator", - "maintainer" - ] - } - ], - "triples": { - "attester-verification-keys": [ - { - "environment": { - "instance": { - "type": "uuid", - "value": "7df7714e-aa04-4638-bcbf-434b1dd720f1" - } - }, - "verification-keys": [ - { - "key": "@@@@" - } - ] - } - ] - } -} diff --git a/integration-tests/data/endorsements/comid-enacttrust-refval.json b/integration-tests/data/endorsements/comid-enacttrust-refval.json index bb37b1b9..3b4c4ae6 100644 --- a/integration-tests/data/endorsements/comid-enacttrust-refval.json +++ b/integration-tests/data/endorsements/comid-enacttrust-refval.json @@ -26,7 +26,7 @@ { "value": { "digests": [ - "sha-256:h0KPxSKAPTEGXnvOPPA/5HUJZjHl4Hu9eg/eYMTPJcc=" + "sha-256;h0KPxSKAPTEGXnvOPPA/5HUJZjHl4Hu9eg/eYMTPJcc=" ] } } diff --git a/integration-tests/data/endorsements/comid-enacttrust-ta.json b/integration-tests/data/endorsements/comid-enacttrust-ta.json index f865a38e..5a537dc6 100644 --- a/integration-tests/data/endorsements/comid-enacttrust-ta.json +++ b/integration-tests/data/endorsements/comid-enacttrust-ta.json @@ -24,7 +24,8 @@ }, "verification-keys": [ { - "key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEkLfat6Jif+izCEg/KBxcN6kF5seJqX1nEiDHtChzV3vJHIgqw4CrTunRP+liAiD3Rg9rLmmVbyUjPKXlwBdHxA==\n-----END PUBLIC KEY-----" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEkLfat6Jif+izCEg/KBxcN6kF5seJqX1nEiDHtChzV3vJHIgqw4CrTunRP+liAiD3Rg9rLmmVbyUjPKXlwBdHxA==\n-----END PUBLIC KEY-----" } ] } diff --git a/integration-tests/data/endorsements/comid-psa-ta.json b/integration-tests/data/endorsements/comid-psa-ta.json index 82e6826c..51e68f1b 100644 --- a/integration-tests/data/endorsements/comid-psa-ta.json +++ b/integration-tests/data/endorsements/comid-psa-ta.json @@ -34,7 +34,8 @@ }, "verification-keys": [ { - "key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMKBCTNIcKUSDii11ySs3526iDZ8A\niTo7Tu6KPAqv7D7gS2XpJFbZiItSs3m9+9Ue6GnvHw/GW2ZZaVtszggXIw==\n-----END PUBLIC KEY-----" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMKBCTNIcKUSDii11ySs3526iDZ8A\niTo7Tu6KPAqv7D7gS2XpJFbZiItSs3m9+9Ue6GnvHw/GW2ZZaVtszggXIw==\n-----END PUBLIC KEY-----" } ] }, @@ -55,7 +56,8 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Vwqe7hy3O8Ypa+BUETLUjBNU3rEXVUyt9XHR7HJWLG7XTKQd9i1kVRXeBPDLFnfYru1/euxRnJM7H9UoFDLdA==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Vwqe7hy3O8Ypa+BUETLUjBNU3rEXVUyt9XHR7HJWLG7XTKQd9i1kVRXeBPDLFnfYru1/euxRnJM7H9UoFDLdA==\n-----END PUBLIC KEY-----" } ] } diff --git a/integration-tests/data/endorsements/corim-enacttrust-badta.cbor b/integration-tests/data/endorsements/corim-enacttrust-badta.cbor new file mode 100644 index 00000000..91b0f5a2 Binary files /dev/null and b/integration-tests/data/endorsements/corim-enacttrust-badta.cbor differ diff --git a/integration-tests/tests/test_enacttrust_badkey.tavern.yaml b/integration-tests/tests/test_enacttrust_badkey.tavern.yaml index 5372e1cf..d2c71946 100644 --- a/integration-tests/tests/test_enacttrust_badkey.tavern.yaml +++ b/integration-tests/tests/test_enacttrust_badkey.tavern.yaml @@ -29,11 +29,9 @@ stages: headers: content-type: '{endorsements-content-type}' # set via hook authorization: '{authorization}' # set via hook - file_body: __generated__/endorsements/corim-{scheme}-{endorsements}.cbor + file_body: data/endorsements/corim-{scheme}-badta.cbor response: status_code: 200 json: status: failed - failure-reason: 'submit endorsement returned error: submit endorsements failed: RPC server returned error: plugin "unsigned-corim (TPM EnactTrust profile)" returned error: bad key in CoMID at index 0: could not parse ak-pub: could not extract trust anchor PEM block' - # NOTE: the commented version below is for builtin plugins. - #failure-reason: 'submit endorsement returned error: submit endorsements failed: bad key in CoMID at index 0: could not parse ak-pub: could not extract trust anchor PEM block' + failure-reason: 'submit endorsement returned error: submit endorsements failed: RPC server returned error: plugin "unsigned-corim (TPM EnactTrust profile)" returned error: decoding failed for CoMID at index 0: cbor: cannot unmarshal map into Go struct field comid.Comid.4 of type comid.ICryptoKeyValue' diff --git a/integration-tests/utils/hooks.py b/integration-tests/utils/hooks.py index 0bee37e2..da410e82 100644 --- a/integration-tests/utils/hooks.py +++ b/integration-tests/utils/hooks.py @@ -36,10 +36,10 @@ def setup_enacttrust_badnode(test, variables): generate_endorsements(test) generate_evidence_from_test(test) + def setup_enacttrust_badkey(test, variables): _set_authorization(test, variables, 'provisioner') _set_content_types(test, variables) - generate_endorsements(test) def setup_policy_management(test, variables): diff --git a/mk/test.mk b/mk/test.mk index 7cf4954f..d928c98a 100644 --- a/mk/test.mk +++ b/mk/test.mk @@ -50,7 +50,6 @@ check-mockgen: realtest: _mocks ; go test $(TEST_ARGS) $(GOPKG) .PHONY: realtest -COPYRIGHT_FLAGS := ifdef CI_PIPELINE COPYRIGHT_FLAGS += --no-year-check endif diff --git a/scheme/common/arm/extractor.go b/scheme/common/arm/extractor.go index c3904d7a..a040c7cf 100644 --- a/scheme/common/arm/extractor.go +++ b/scheme/common/arm/extractor.go @@ -123,8 +123,10 @@ func (o Extractor) TaExtractor(avk comid.AttestVerifKey) (*handler.Endorsement, return nil, errors.New("expecting exactly one IAK public key") } - iakPub := avk.VerifKeys[0].Key - // TODO(tho) check that format of IAK pub is as expected + iakPub := avk.VerifKeys[0] + if _, ok := iakPub.Value.(*comid.TaggedPKIXBase64Key); !ok { + return nil, fmt.Errorf("IAK does not appear to be a PEM key (%T)", iakPub.Value) + } taAttrs, err := makeTaAttrs(instanceAttrs, classAttrs, iakPub, o.Scheme) if err != nil { @@ -144,13 +146,13 @@ func (o Extractor) TaExtractor(avk comid.AttestVerifKey) (*handler.Endorsement, func makeTaAttrs( i InstanceAttributes, c ClassAttributes, - key string, + key *comid.CryptoKey, scheme string, ) (json.RawMessage, error) { taID := map[string]interface{}{ scheme + ".impl-id": c.ImplID, scheme + ".inst-id": []byte(i.InstID), - scheme + ".iak-pub": key, + scheme + ".iak-pub": key.String(), } if c.Vendor != "" { diff --git a/scheme/parsec-tpm/Makefile b/scheme/parsec-tpm/Makefile index 5f7f5984..7aebf6d8 100644 --- a/scheme/parsec-tpm/Makefile +++ b/scheme/parsec-tpm/Makefile @@ -8,6 +8,9 @@ SRCS := $(wildcard *.go) SUBDIR += plugin +# auto-generated +COPYRIGHT_FLAGS += --ignore */corim_test_vectors.go + include ../../mk/common.mk include ../../mk/lint.mk include ../../mk/pkg.mk diff --git a/scheme/parsec-tpm/corim_extractor.go b/scheme/parsec-tpm/corim_extractor.go index b7b72d92..f82cf65f 100644 --- a/scheme/parsec-tpm/corim_extractor.go +++ b/scheme/parsec-tpm/corim_extractor.go @@ -74,7 +74,10 @@ func (o CorimExtractor) TaExtractor( } // Key can't be empty/nil -- the corim decoder is validating this - akPub := avk.VerifKeys[0].Key + akPub := avk.VerifKeys[0] + if _, ok := akPub.Value.(*comid.TaggedPKIXBase64Key); !ok { + return nil, fmt.Errorf("ak-pub does not appear to be a PEM key (%T)", akPub.Value) + } taAttrs, err := makeTaAttrs(id, akPub) if err != nil { @@ -105,7 +108,7 @@ func makeRefValAttrs(class string, pcr uint64, digest swid.HashEntry) (json.RawM return data, nil } -func makeTaAttrs(id ID, key string) (json.RawMessage, error) { +func makeTaAttrs(id ID, key *comid.CryptoKey) (json.RawMessage, error) { if id.instance == nil { return nil, errors.New("instance not found in ID") } @@ -113,7 +116,7 @@ func makeTaAttrs(id ID, key string) (json.RawMessage, error) { attrs := map[string]interface{}{ "parsec-tpm.class-id": id.class, "parsec-tpm.instance-id": []byte(*id.instance), - "parsec-tpm.ak-pub": key, + "parsec-tpm.ak-pub": key.String(), } data, err := json.Marshal(attrs) diff --git a/scheme/parsec-tpm/corim_test_vectors.go b/scheme/parsec-tpm/corim_test_vectors.go index 30f27009..f36ab2e3 100644 --- a/scheme/parsec-tpm/corim_test_vectors.go +++ b/scheme/parsec-tpm/corim_test_vectors.go @@ -1,125 +1,136 @@ -// Copyright 2023 Contributors to the Veraison project. -// SPDX-License-Identifier: Apache-2.0 package parsec_tpm // automatically generated from: // ComidParsecTpmKeyGood.json and corimMini.json var unsignedCorimComidParsecTpmKeyGood = ` -a30050b3ec060e2a5b4bc28f711dab08ce5be90181590112d901faa301a1 +a30050b3ec060e2a5b4bc28f711dab08ce5be90181590147d901faa301a1 0050eee06f93e9824dbc9585620a816c2e590281a3006650617273656301 d820782168747470733a2f2f6769746875622e636f6d2f706172616c6c61 787365636f6e64028300010204a1028182a200a100d82550cd1f0e5526f9 460db9d8f7fde171787c01d9022658210100000000000000000000000000 -0000000000000000000000000000000000000081a100787c4d466b774577 -59484b6f5a497a6a3043415159494b6f5a497a6a30444151634451674145 -544b5246455f527753586f6f493844646174504f59675f75694b6d325872 -74545f75454d457671515a72774a484863667730633357567a476f714c33 -595f5136786b48466664555671533257576b50644b4f303375773d3d0381 -782c7461673a6769746875622e636f6d2f706172616c6c61787365636f6e -642c323032332d30332d30333a74706d +0000000000000000000000000000000000000081d9022a78b02d2d2d2d2d +424547494e205055424c4943204b45592d2d2d2d2d0a4d466b7745775948 +4b6f5a497a6a3043415159494b6f5a497a6a30444151634451674145544b +5246452f527753586f6f493844646174504f59672f75694b6d3258727454 +2f75454d457671515a72774a484863667730633357567a476f714c33592f +5136786b48466664555671533257576b50644b4f303375773d3d0a2d2d2d +2d2d454e44205055424c4943204b45592d2d2d2d2d0381782c7461673a67 +69746875622e636f6d2f706172616c6c61787365636f6e642c323032332d +30332d30333a74706d ` // automatically generated from: // ComidParsecTpmKeyNoClass.json and corimMini.json var unsignedCorimComidParsecTpmKeyNoClass = ` -a30050b3ec060e2a5b4bc28f711dab08ce5be9018158fcd901faa301a100 -50eee06f93e9824dbc9585620a816c2e590281a3006650617273656301d8 -20782168747470733a2f2f6769746875622e636f6d2f706172616c6c6178 -7365636f6e64028300010204a1028182a101d90226582101000000000000 -000000000000000000000000000000000000000000000000000081a10078 -7c4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a304441 -51634451674145544b5246455f527753586f6f493844646174504f59675f -75694b6d32587274545f75454d457671515a72774a484863667730633357 -567a476f714c33595f5136786b48466664555671533257576b50644b4f30 -3375773d3d0381782c7461673a6769746875622e636f6d2f706172616c6c -61787365636f6e642c323032332d30332d30333a74706d +a30050b3ec060e2a5b4bc28f711dab08ce5be90181590131d901faa301a1 +0050eee06f93e9824dbc9585620a816c2e590281a3006650617273656301 +d820782168747470733a2f2f6769746875622e636f6d2f706172616c6c61 +787365636f6e64028300010204a1028182a101d902265821010000000000 +00000000000000000000000000000000000000000000000000000081d902 +2a78b02d2d2d2d2d424547494e205055424c4943204b45592d2d2d2d2d0a +4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a30444151 +634451674145544b5246452f527753586f6f493844646174504f59672f75 +694b6d32587274542f75454d457671515a72774a48486366773063335756 +7a476f714c33592f5136786b48466664555671533257576b50644b4f3033 +75773d3d0a2d2d2d2d2d454e44205055424c4943204b45592d2d2d2d2d03 +81782c7461673a6769746875622e636f6d2f706172616c6c61787365636f +6e642c323032332d30332d30333a74706d ` // automatically generated from: // ComidParsecTpmKeyNoClassId.json and corimMini.json var unsignedCorimComidParsecTpmKeyNoClassId = ` -a30050b3ec060e2a5b4bc28f711dab08ce5be90181590109d901faa301a1 +a30050b3ec060e2a5b4bc28f711dab08ce5be9018159013ed901faa301a1 0050eee06f93e9824dbc9585620a816c2e590281a3006650617273656301 d820782168747470733a2f2f6769746875622e636f6d2f706172616c6c61 787365636f6e64028300010204a1028182a200a1016941434d4520496e63 2e01d9022658210100000000000000000000000000000000000000000000 -0000000000000000000081a100787c4d466b77457759484b6f5a497a6a30 -43415159494b6f5a497a6a30444151634451674145544b5246455f527753 -586f6f493844646174504f59675f75694b6d32587274545f75454d457671 -515a72774a484863667730633357567a476f714c33595f5136786b484666 -64555671533257576b50644b4f303375773d3d0381782c7461673a676974 -6875622e636f6d2f706172616c6c61787365636f6e642c323032332d3033 -2d30333a74706d +0000000000000000000081d9022a78b02d2d2d2d2d424547494e20505542 +4c4943204b45592d2d2d2d2d0a4d466b77457759484b6f5a497a6a304341 +5159494b6f5a497a6a30444151634451674145544b5246452f527753586f +6f493844646174504f59672f75694b6d32587274542f75454d457671515a +72774a484863667730633357567a476f714c33592f5136786b4846666455 +5671533257576b50644b4f303375773d3d0a2d2d2d2d2d454e4420505542 +4c4943204b45592d2d2d2d2d0381782c7461673a6769746875622e636f6d +2f706172616c6c61787365636f6e642c323032332d30332d30333a74706d ` // automatically generated from: // ComidParsecTpmKeyNoInstance.json and corimMini.json var unsignedCorimComidParsecTpmKeyNoInstance = ` -a30050b3ec060e2a5b4bc28f711dab08ce5be9018158ebd901faa301a100 -50eee06f93e9824dbc9585620a816c2e590281a3006650617273656301d8 -20782168747470733a2f2f6769746875622e636f6d2f706172616c6c6178 -7365636f6e64028300010204a1028182a100a100d82550cd1f0e5526f946 -0db9d8f7fde171787c81a100787c4d466b77457759484b6f5a497a6a3043 -415159494b6f5a497a6a30444151634451674145544b5246455f52775358 -6f6f493844646174504f59675f75694b6d32587274545f75454d45767151 -5a72774a484863667730633357567a476f714c33595f5136786b48466664 -555671533257576b50644b4f303375773d3d0381782c7461673a67697468 -75622e636f6d2f706172616c6c61787365636f6e642c323032332d30332d -30333a74706d +a30050b3ec060e2a5b4bc28f711dab08ce5be90181590120d901faa301a1 +0050eee06f93e9824dbc9585620a816c2e590281a3006650617273656301 +d820782168747470733a2f2f6769746875622e636f6d2f706172616c6c61 +787365636f6e64028300010204a1028182a100a100d82550cd1f0e5526f9 +460db9d8f7fde171787c81d9022a78b02d2d2d2d2d424547494e20505542 +4c4943204b45592d2d2d2d2d0a4d466b77457759484b6f5a497a6a304341 +5159494b6f5a497a6a30444151634451674145544b5246452f527753586f +6f493844646174504f59672f75694b6d32587274542f75454d457671515a +72774a484863667730633357567a476f714c33592f5136786b4846666455 +5671533257576b50644b4f303375773d3d0a2d2d2d2d2d454e4420505542 +4c4943204b45592d2d2d2d2d0381782c7461673a6769746875622e636f6d +2f706172616c6c61787365636f6e642c323032332d30332d30333a74706d ` // automatically generated from: // ComidParsecTpmKeyUnknownClassIdType.json and corimMini.json var unsignedCorimComidParsecTpmKeyUnknownClassIdType = ` -a30050b3ec060e2a5b4bc28f711dab08ce5be90181590105d901faa301a1 +a30050b3ec060e2a5b4bc28f711dab08ce5be9018159013ad901faa301a1 0050eee06f93e9824dbc9585620a816c2e590281a3006650617273656301 d820782168747470733a2f2f6769746875622e636f6d2f706172616c6c61 787365636f6e64028300010204a1028182a200a100d86f432a030401d902 265821010000000000000000000000000000000000000000000000000000 -00000000000081a100787c4d466b77457759484b6f5a497a6a3043415159 -494b6f5a497a6a30444151634451674145544b5246455f527753586f6f49 -3844646174504f59675f75694b6d32587274545f75454d457671515a7277 -4a484863667730633357567a476f714c33595f5136786b48466664555671 -533257576b50644b4f303375773d3d0381782c7461673a6769746875622e -636f6d2f706172616c6c61787365636f6e642c323032332d30332d30333a -74706d +00000000000081d9022a78b02d2d2d2d2d424547494e205055424c494320 +4b45592d2d2d2d2d0a4d466b77457759484b6f5a497a6a3043415159494b +6f5a497a6a30444151634451674145544b5246452f527753586f6f493844 +646174504f59672f75694b6d32587274542f75454d457671515a72774a48 +4863667730633357567a476f714c33592f5136786b484666645556715332 +57576b50644b4f303375773d3d0a2d2d2d2d2d454e44205055424c494320 +4b45592d2d2d2d2d0381782c7461673a6769746875622e636f6d2f706172 +616c6c61787365636f6e642c323032332d30332d30333a74706d ` // automatically generated from: // ComidParsecTpmKeyUnknownInstanceType.json and corimMini.json var unsignedCorimComidParsecTpmKeyUnknownInstanceType = ` -a30050b3ec060e2a5b4bc28f711dab08ce5be9018158ffd901faa301a100 -50eee06f93e9824dbc9585620a816c2e590281a3006650617273656301d8 -20782168747470733a2f2f6769746875622e636f6d2f706172616c6c6178 -7365636f6e64028300010204a1028182a200a100d82550cd1f0e5526f946 -0db9d8f7fde171787c01d82550764431270d1043d09d76d2ff094d0faf81 -a100787c4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a -30444151634451674145544b5246455f527753586f6f493844646174504f -59675f75694b6d32587274545f75454d457671515a72774a484863667730 -633357567a476f714c33595f5136786b48466664555671533257576b5064 -4b4f303375773d3d0381782c7461673a6769746875622e636f6d2f706172 -616c6c61787365636f6e642c323032332d30332d30333a74706d +a30050b3ec060e2a5b4bc28f711dab08ce5be90181590134d901faa301a1 +0050eee06f93e9824dbc9585620a816c2e590281a3006650617273656301 +d820782168747470733a2f2f6769746875622e636f6d2f706172616c6c61 +787365636f6e64028300010204a1028182a200a100d82550cd1f0e5526f9 +460db9d8f7fde171787c01d82550764431270d1043d09d76d2ff094d0faf +81d9022a78b02d2d2d2d2d424547494e205055424c4943204b45592d2d2d +2d2d0a4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a30 +444151634451674145544b5246452f527753586f6f493844646174504f59 +672f75694b6d32587274542f75454d457671515a72774a48486366773063 +3357567a476f714c33592f5136786b48466664555671533257576b50644b +4f303375773d3d0a2d2d2d2d2d454e44205055424c4943204b45592d2d2d +2d2d0381782c7461673a6769746875622e636f6d2f706172616c6c617873 +65636f6e642c323032332d30332d30333a74706d ` // automatically generated from: // ComidParsecTpmKeyManyKeys.json and corimMini.json var unsignedCorimComidParsecTpmKeyManyKeys = ` -a30050b3ec060e2a5b4bc28f711dab08ce5be90181590192d901faa301a1 +a30050b3ec060e2a5b4bc28f711dab08ce5be901815901fcd901faa301a1 0050eee06f93e9824dbc9585620a816c2e590281a3006650617273656301 d820782168747470733a2f2f6769746875622e636f6d2f706172616c6c61 787365636f6e64028300010204a1028182a200a100d82550cd1f0e5526f9 460db9d8f7fde171787c01d9022658210100000000000000000000000000 -0000000000000000000000000000000000000082a100787c4d466b774577 -59484b6f5a497a6a3043415159494b6f5a497a6a30444151634451674145 -544b5246455f527753586f6f493844646174504f59675f75694b6d325872 -74545f75454d457671515a72774a484863667730633357567a476f714c33 -595f5136786b48466664555671533257576b50644b4f303375773d3da100 -787c4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a3044 -4151634451674145544b5246455f527753586f6f493844646174504f5967 -5f75694b6d32587274545f75454d457671515a72774a4848636677306333 -57567a476f714c33595f5136786b48466664555671533257576b50644b4f -303375773d3d0381782c7461673a6769746875622e636f6d2f706172616c -6c61787365636f6e642c323032332d30332d30333a74706d +0000000000000000000000000000000000000082d9022a78b02d2d2d2d2d +424547494e205055424c4943204b45592d2d2d2d2d0a4d466b7745775948 +4b6f5a497a6a3043415159494b6f5a497a6a30444151634451674145544b +5246452f527753586f6f493844646174504f59672f75694b6d3258727454 +2f75454d457671515a72774a484863667730633357567a476f714c33592f +5136786b48466664555671533257576b50644b4f303375773d3d0a2d2d2d +2d2d454e44205055424c4943204b45592d2d2d2d2dd9022a78b02d2d2d2d +2d424547494e205055424c4943204b45592d2d2d2d2d0a4d466b77457759 +484b6f5a497a6a3043415159494b6f5a497a6a3044415163445167414554 +4b5246452f527753586f6f493844646174504f59672f75694b6d32587274 +542f75454d457671515a72774a484863667730633357567a476f714c3359 +2f5136786b48466664555671533257576b50644b4f303375773d3d0a2d2d +2d2d2d454e44205055424c4943204b45592d2d2d2d2d0381782c7461673a +6769746875622e636f6d2f706172616c6c61787365636f6e642c32303233 +2d30332d30333a74706d ` // automatically generated from: diff --git a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyGood.json b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyGood.json index 54e094c2..61375113 100644 --- a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyGood.json +++ b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyGood.json @@ -30,10 +30,11 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE_RwSXooI8DdatPOYg_uiKm2XrtT_uEMEvqQZrwJHHcfw0c3WVzGoqL3Y_Q6xkHFfdUVqS2WWkPdKO03uw==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE/RwSXooI8DdatPOYg/uiKm2XrtT/uEMEvqQZrwJHHcfw0c3WVzGoqL3Y/Q6xkHFfdUVqS2WWkPdKO03uw==\n-----END PUBLIC KEY-----" } ] } ] } -} \ No newline at end of file +} diff --git a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyManyKeys.json b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyManyKeys.json index 5fc0b581..583b9e4f 100644 --- a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyManyKeys.json +++ b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyManyKeys.json @@ -30,13 +30,15 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE_RwSXooI8DdatPOYg_uiKm2XrtT_uEMEvqQZrwJHHcfw0c3WVzGoqL3Y_Q6xkHFfdUVqS2WWkPdKO03uw==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE/RwSXooI8DdatPOYg/uiKm2XrtT/uEMEvqQZrwJHHcfw0c3WVzGoqL3Y/Q6xkHFfdUVqS2WWkPdKO03uw==\n-----END PUBLIC KEY-----" }, { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE_RwSXooI8DdatPOYg_uiKm2XrtT_uEMEvqQZrwJHHcfw0c3WVzGoqL3Y_Q6xkHFfdUVqS2WWkPdKO03uw==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE/RwSXooI8DdatPOYg/uiKm2XrtT/uEMEvqQZrwJHHcfw0c3WVzGoqL3Y/Q6xkHFfdUVqS2WWkPdKO03uw==\n-----END PUBLIC KEY-----" } ] } ] } -} \ No newline at end of file +} diff --git a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyNoClass.json b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyNoClass.json index d9bc99f3..923ce928 100644 --- a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyNoClass.json +++ b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyNoClass.json @@ -24,10 +24,11 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE_RwSXooI8DdatPOYg_uiKm2XrtT_uEMEvqQZrwJHHcfw0c3WVzGoqL3Y_Q6xkHFfdUVqS2WWkPdKO03uw==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE/RwSXooI8DdatPOYg/uiKm2XrtT/uEMEvqQZrwJHHcfw0c3WVzGoqL3Y/Q6xkHFfdUVqS2WWkPdKO03uw==\n-----END PUBLIC KEY-----" } ] } ] } -} \ No newline at end of file +} diff --git a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyNoClassId.json b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyNoClassId.json index d243ffde..6d293943 100644 --- a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyNoClassId.json +++ b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyNoClassId.json @@ -27,10 +27,11 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE_RwSXooI8DdatPOYg_uiKm2XrtT_uEMEvqQZrwJHHcfw0c3WVzGoqL3Y_Q6xkHFfdUVqS2WWkPdKO03uw==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE/RwSXooI8DdatPOYg/uiKm2XrtT/uEMEvqQZrwJHHcfw0c3WVzGoqL3Y/Q6xkHFfdUVqS2WWkPdKO03uw==\n-----END PUBLIC KEY-----" } ] } ] } -} \ No newline at end of file +} diff --git a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyNoInstance.json b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyNoInstance.json index 226c9959..8bb69bf0 100644 --- a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyNoInstance.json +++ b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyNoInstance.json @@ -26,10 +26,11 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE_RwSXooI8DdatPOYg_uiKm2XrtT_uEMEvqQZrwJHHcfw0c3WVzGoqL3Y_Q6xkHFfdUVqS2WWkPdKO03uw==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE/RwSXooI8DdatPOYg/uiKm2XrtT/uEMEvqQZrwJHHcfw0c3WVzGoqL3Y/Q6xkHFfdUVqS2WWkPdKO03uw==\n-----END PUBLIC KEY-----" } ] } ] } -} \ No newline at end of file +} diff --git a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyUnknownClassIdType.json b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyUnknownClassIdType.json index 00034ae2..0e2c26ec 100644 --- a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyUnknownClassIdType.json +++ b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyUnknownClassIdType.json @@ -30,10 +30,11 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE_RwSXooI8DdatPOYg_uiKm2XrtT_uEMEvqQZrwJHHcfw0c3WVzGoqL3Y_Q6xkHFfdUVqS2WWkPdKO03uw==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE/RwSXooI8DdatPOYg/uiKm2XrtT/uEMEvqQZrwJHHcfw0c3WVzGoqL3Y/Q6xkHFfdUVqS2WWkPdKO03uw==\n-----END PUBLIC KEY-----" } ] } ] } -} \ No newline at end of file +} diff --git a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyUnknownInstanceType.json b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyUnknownInstanceType.json index a39fe011..33e974e6 100644 --- a/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyUnknownInstanceType.json +++ b/scheme/parsec-tpm/test/corim/ComidParsecTpmKeyUnknownInstanceType.json @@ -30,10 +30,11 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE_RwSXooI8DdatPOYg_uiKm2XrtT_uEMEvqQZrwJHHcfw0c3WVzGoqL3Y_Q6xkHFfdUVqS2WWkPdKO03uw==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETKRFE/RwSXooI8DdatPOYg/uiKm2XrtT/uEMEvqQZrwJHHcfw0c3WVzGoqL3Y/Q6xkHFfdUVqS2WWkPdKO03uw==\n-----END PUBLIC KEY-----" } ] } ] } -} \ No newline at end of file +} diff --git a/scheme/parsec-tpm/test/corim/ComidParsecTpmPcrsGood.json b/scheme/parsec-tpm/test/corim/ComidParsecTpmPcrsGood.json index 531ca21a..9ea67cc5 100644 --- a/scheme/parsec-tpm/test/corim/ComidParsecTpmPcrsGood.json +++ b/scheme/parsec-tpm/test/corim/ComidParsecTpmPcrsGood.json @@ -32,8 +32,8 @@ }, "value": { "digests": [ - "sha-256:h0KPxSKAPTEGXnvOPPA/5HUJZjHl4Hu9eg/eYMTPJcc=", - "sha-384:QoS1aUymwNLPR4mguVrIAlyBjeUjBDZL580pgbLS7caFsyInfsJYGZYkE9jJssH1" + "sha-256;h0KPxSKAPTEGXnvOPPA/5HUJZjHl4Hu9eg/eYMTPJcc=", + "sha-384;QoS1aUymwNLPR4mguVrIAlyBjeUjBDZL580pgbLS7caFsyInfsJYGZYkE9jJssH1" ] } }, @@ -44,8 +44,8 @@ }, "value": { "digests": [ - "sha-256:rqg3uI4yCrzUdvWDmVLV4aYSwOSiJcuSBdIAcebDd0U=", - "sha-384:IQe752H8pS2VE2oTVNt6TdV7Gya+DT2nHZ6yOYazS6YVq/ZRTPNeWp6lWgMtBop4" + "sha-256;rqg3uI4yCrzUdvWDmVLV4aYSwOSiJcuSBdIAcebDd0U=", + "sha-384;IQe752H8pS2VE2oTVNt6TdV7Gya+DT2nHZ6yOYazS6YVq/ZRTPNeWp6lWgMtBop4" ] } } @@ -53,4 +53,4 @@ } ] } -} \ No newline at end of file +} diff --git a/scheme/psa-iot/Makefile b/scheme/psa-iot/Makefile index bb8a54e5..1551e931 100644 --- a/scheme/psa-iot/Makefile +++ b/scheme/psa-iot/Makefile @@ -7,6 +7,9 @@ SRCS := $(wildcard *.go) SUBDIR += plugin +# auto-generated +COPYRIGHT_FLAGS += --ignore */test_vectors.go + include ../../mk/common.mk include ../../mk/lint.mk include ../../mk/pkg.mk diff --git a/scheme/psa-iot/test/ComidCcaRefValFour.json b/scheme/psa-iot/test/ComidCcaRefValFour.json index 0b6bd990..4df1a59a 100644 --- a/scheme/psa-iot/test/ComidCcaRefValFour.json +++ b/scheme/psa-iot/test/ComidCcaRefValFour.json @@ -21,7 +21,7 @@ "environment": { "class": { "id": { - "type": "PSA_IOT.impl-id", + "type": "psa.impl-id", "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" }, "vendor": "ACME", @@ -31,7 +31,7 @@ "measurements": [ { "key": { - "type": "PSA_IOT.refval-id", + "type": "psa.refval-id", "value": { "label": "BL", "version": "2.1.0", @@ -46,7 +46,7 @@ }, { "key": { - "type": "PSA_IOT.refval-id", + "type": "psa.refval-id", "value": { "label": "PRoT", "version": "1.3.5", @@ -61,7 +61,7 @@ }, { "key": { - "type": "PSA_IOT.refval-id", + "type": "psa.refval-id", "value": { "label": "ARoT", "version": "0.1.4", diff --git a/scheme/psa-iot/test/ComidCcaRefValOne.json b/scheme/psa-iot/test/ComidCcaRefValOne.json index 49485670..1c4077c7 100644 --- a/scheme/psa-iot/test/ComidCcaRefValOne.json +++ b/scheme/psa-iot/test/ComidCcaRefValOne.json @@ -22,7 +22,7 @@ "environment": { "class": { "id": { - "type": "PSA_IOT.impl-id", + "type": "psa.impl-id", "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" }, "vendor": "ACME", diff --git a/scheme/psa-iot/test/ComidPsaIakPubNoImplID.json b/scheme/psa-iot/test/ComidPsaIakPubNoImplID.json index ec57fc4a..dc6b555a 100644 --- a/scheme/psa-iot/test/ComidPsaIakPubNoImplID.json +++ b/scheme/psa-iot/test/ComidPsaIakPubNoImplID.json @@ -35,7 +35,8 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFn0taoAwR3PmrKkYLtAsD9o05KSM6mbgfNCgpuL0g6VpTHkZl73wk5BDxoV7n+Oeee0iIqkW3HMZT3ETiniJdg==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFn0taoAwR3PmrKkYLtAsD9o05KSM6mbgfNCgpuL0g6VpTHkZl73wk5BDxoV7n+Oeee0iIqkW3HMZT3ETiniJdg==\n-----END PUBLIC KEY-----" } ] } diff --git a/scheme/psa-iot/test/ComidPsaIakPubNoUeID.json b/scheme/psa-iot/test/ComidPsaIakPubNoUeID.json index f116fc19..8094a8a2 100644 --- a/scheme/psa-iot/test/ComidPsaIakPubNoUeID.json +++ b/scheme/psa-iot/test/ComidPsaIakPubNoUeID.json @@ -21,7 +21,7 @@ "environment": { "class": { "id": { - "type": "PSA_IOT.impl-id", + "type": "psa.impl-id", "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" }, "vendor": "ACME", @@ -30,7 +30,8 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFn0taoAwR3PmrKkYLtAsD9o05KSM6mbgfNCgpuL0g6VpTHkZl73wk5BDxoV7n+Oeee0iIqkW3HMZT3ETiniJdg==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFn0taoAwR3PmrKkYLtAsD9o05KSM6mbgfNCgpuL0g6VpTHkZl73wk5BDxoV7n+Oeee0iIqkW3HMZT3ETiniJdg==\n-----END PUBLIC KEY-----" } ] } diff --git a/scheme/psa-iot/test/ComidPsaIakPubOne.json b/scheme/psa-iot/test/ComidPsaIakPubOne.json index 41cf92b6..43f4ceeb 100644 --- a/scheme/psa-iot/test/ComidPsaIakPubOne.json +++ b/scheme/psa-iot/test/ComidPsaIakPubOne.json @@ -21,7 +21,7 @@ "environment": { "class": { "id": { - "type": "PSA_IOT.impl-id", + "type": "psa.impl-id", "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" }, "vendor": "ACME", @@ -34,7 +34,8 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFn0taoAwR3PmrKkYLtAsD9o05KSM6mbgfNCgpuL0g6VpTHkZl73wk5BDxoV7n+Oeee0iIqkW3HMZT3ETiniJdg==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFn0taoAwR3PmrKkYLtAsD9o05KSM6mbgfNCgpuL0g6VpTHkZl73wk5BDxoV7n+Oeee0iIqkW3HMZT3ETiniJdg==\n-----END PUBLIC KEY-----" } ] } diff --git a/scheme/psa-iot/test/ComidPsaIakPubTwo.json b/scheme/psa-iot/test/ComidPsaIakPubTwo.json index 4f6cbbfc..47ef11d3 100644 --- a/scheme/psa-iot/test/ComidPsaIakPubTwo.json +++ b/scheme/psa-iot/test/ComidPsaIakPubTwo.json @@ -21,7 +21,7 @@ "environment": { "class": { "id": { - "type": "PSA_IOT.impl-id", + "type": "psa.impl-id", "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" }, "vendor": "ACME", @@ -34,7 +34,8 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFn0taoAwR3PmrKkYLtAsD9o05KSM6mbgfNCgpuL0g6VpTHkZl73wk5BDxoV7n+Oeee0iIqkW3HMZT3ETiniJdg==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFn0taoAwR3PmrKkYLtAsD9o05KSM6mbgfNCgpuL0g6VpTHkZl73wk5BDxoV7n+Oeee0iIqkW3HMZT3ETiniJdg==\n-----END PUBLIC KEY-----" } ] }, @@ -42,7 +43,7 @@ "environment": { "class": { "id": { - "type": "PSA_IOT.impl-id", + "type": "psa.impl-id", "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" }, "vendor": "ACME", @@ -55,7 +56,8 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Vwqe7hy3O8Ypa+BUETLUjBNU3rEXVUyt9XHR7HJWLG7XTKQd9i1kVRXeBPDLFnfYru1/euxRnJM7H9UoFDLdA==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Vwqe7hy3O8Ypa+BUETLUjBNU3rEXVUyt9XHR7HJWLG7XTKQd9i1kVRXeBPDLFnfYru1/euxRnJM7H9UoFDLdA==\n-----END PUBLIC KEY-----" } ] } diff --git a/scheme/psa-iot/test/ComidPsaMultIak.json b/scheme/psa-iot/test/ComidPsaMultIak.json index 940caec0..fe87dc18 100644 --- a/scheme/psa-iot/test/ComidPsaMultIak.json +++ b/scheme/psa-iot/test/ComidPsaMultIak.json @@ -21,7 +21,7 @@ "environment": { "class": { "id": { - "type": "PSA_IOT.impl-id", + "type": "psa.impl-id", "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" }, "vendor": "ACME", @@ -34,10 +34,12 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFn0taoAwR3PmrKkYLtAsD9o05KSM6mbgfNCgpuL0g6VpTHkZl73wk5BDxoV7n+Oeee0iIqkW3HMZT3ETiniJdg==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFn0taoAwR3PmrKkYLtAsD9o05KSM6mbgfNCgpuL0g6VpTHkZl73wk5BDxoV7n+Oeee0iIqkW3HMZT3ETiniJdg==\n-----END PUBLIC KEY-----" }, { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFn0taoAwR3PnrKkYLtAsD9o05KSM6mbgfNCgpuL0g6VpTHkZl73wk5BDxoV7n+Oeee0iIqkW3HMZT3ETiniJdg==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFn0taoAwR3PmrKkYLtAsD9o05KSM6mbgfNCgpuL0g6VpTHkZl73wk5BDxoV7n+Oeee0iIqkW3HMZT3ETiniJdg==\n-----END PUBLIC KEY-----" } ] } diff --git a/scheme/psa-iot/test/ComidPsaRefValMultDigest.json b/scheme/psa-iot/test/ComidPsaRefValMultDigest.json index e295d447..65921af9 100644 --- a/scheme/psa-iot/test/ComidPsaRefValMultDigest.json +++ b/scheme/psa-iot/test/ComidPsaRefValMultDigest.json @@ -21,7 +21,7 @@ "environment": { "class": { "id": { - "type": "PSA_IOT.impl-id", + "type": "psa.impl-id", "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" }, "vendor": "ACME", @@ -31,7 +31,7 @@ "measurements": [ { "key": { - "type": "PSA_IOT.refval-id", + "type": "psa.refval-id", "value": { "label": "BL", "version": "2.1.0", diff --git a/scheme/psa-iot/test/ComidPsaRefValNoImplID.json b/scheme/psa-iot/test/ComidPsaRefValNoImplID.json index c49230a9..183c77aa 100644 --- a/scheme/psa-iot/test/ComidPsaRefValNoImplID.json +++ b/scheme/psa-iot/test/ComidPsaRefValNoImplID.json @@ -32,7 +32,7 @@ "measurements": [ { "key": { - "type": "PSA_IOT.refval-id", + "type": "psa.refval-id", "value": { "label": "BL", "version": "2.1.0", diff --git a/scheme/psa-iot/test/ComidPsaRefValNoMkey.json b/scheme/psa-iot/test/ComidPsaRefValNoMkey.json index 095ccc83..4335231c 100644 --- a/scheme/psa-iot/test/ComidPsaRefValNoMkey.json +++ b/scheme/psa-iot/test/ComidPsaRefValNoMkey.json @@ -21,7 +21,7 @@ "environment": { "class": { "id": { - "type": "PSA_IOT.impl-id", + "type": "psa.impl-id", "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" }, "vendor": "ACME", diff --git a/scheme/psa-iot/test/ComidPsaRefValOne.json b/scheme/psa-iot/test/ComidPsaRefValOne.json index b60e9985..26536dd5 100644 --- a/scheme/psa-iot/test/ComidPsaRefValOne.json +++ b/scheme/psa-iot/test/ComidPsaRefValOne.json @@ -21,7 +21,7 @@ "environment": { "class": { "id": { - "type": "PSA_IOT.impl-id", + "type": "psa.impl-id", "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" }, "vendor": "ACME", @@ -31,7 +31,7 @@ "measurements": [ { "key": { - "type": "PSA_IOT.refval-id", + "type": "psa.refval-id", "value": { "label": "BL", "version": "2.1.0", diff --git a/scheme/psa-iot/test/ComidPsaRefValOnlyMandIDAttr.json b/scheme/psa-iot/test/ComidPsaRefValOnlyMandIDAttr.json index 3eb45ceb..7e397360 100644 --- a/scheme/psa-iot/test/ComidPsaRefValOnlyMandIDAttr.json +++ b/scheme/psa-iot/test/ComidPsaRefValOnlyMandIDAttr.json @@ -21,7 +21,7 @@ "environment": { "class": { "id": { - "type": "PSA_IOT.impl-id", + "type": "psa.impl-id", "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" }, "vendor": "ACME", @@ -31,7 +31,7 @@ "measurements": [ { "key": { - "type": "PSA_IOT.refval-id", + "type": "psa.refval-id", "value": { "signer-id": "rLsRx+TaIXIFUjzkzhokWuGiOa48a/2eeHH35di66Gs=" } diff --git a/scheme/psa-iot/test/ComidPsaRefValThree.json b/scheme/psa-iot/test/ComidPsaRefValThree.json index f10a9576..8fd66fbc 100644 --- a/scheme/psa-iot/test/ComidPsaRefValThree.json +++ b/scheme/psa-iot/test/ComidPsaRefValThree.json @@ -21,7 +21,7 @@ "environment": { "class": { "id": { - "type": "PSA_IOT.impl-id", + "type": "psa.impl-id", "value": "YWNtZS1pbXBsZW1lbnRhdGlvbi1pZC0wMDAwMDAwMDE=" }, "vendor": "ACME", @@ -31,7 +31,7 @@ "measurements": [ { "key": { - "type": "PSA_IOT.refval-id", + "type": "psa.refval-id", "value": { "label": "BL", "version": "2.1.0", @@ -46,7 +46,7 @@ }, { "key": { - "type": "PSA_IOT.refval-id", + "type": "psa.refval-id", "value": { "label": "PRoT", "version": "1.3.5", @@ -61,7 +61,7 @@ }, { "key": { - "type": "PSA_IOT.refval-id", + "type": "psa.refval-id", "value": { "label": "ARoT", "version": "0.1.4", diff --git a/scheme/psa-iot/test/build-test-vectors.sh b/scheme/psa-iot/test/build-test-vectors.sh index 5423c9e3..fc235603 100755 --- a/scheme/psa-iot/test/build-test-vectors.sh +++ b/scheme/psa-iot/test/build-test-vectors.sh @@ -17,6 +17,7 @@ generate_go_test_vector () { cocli corim create -m $1.cbor -t $2 -o corim$1.cbor echo "// automatically generated from:" >> $4 echo "// $1.json and $2" >> $4 + echo "// nolint:unused" >> $4 echo "var $3$1 = "'`' >> $4 cat corim$1.cbor | xxd -p >> $4 echo '`' >> $4 diff --git a/scheme/psa-iot/test/endorsements.json b/scheme/psa-iot/test/endorsements.json index 459eaebb..b083a33a 100644 --- a/scheme/psa-iot/test/endorsements.json +++ b/scheme/psa-iot/test/endorsements.json @@ -4,7 +4,7 @@ "attributes":{ "PSA_IOT.hw-model":"RoadRunner", "PSA_IOT.hw-vendor":"ACME", - "PSA_IOT.impl-id":"76543210fedcba9817161514131211101f1e1d1c1b1a1918", + "psa.impl-id":"76543210fedcba9817161514131211101f1e1d1c1b1a1918", "PSA_IOT.measurement-desc":"sha-256", "PSA_IOT.measurement-type":"BL", "PSA_IOT.measurement-value":"BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=", diff --git a/scheme/psa-iot/test/mult-endorsements.json b/scheme/psa-iot/test/mult-endorsements.json old mode 100755 new mode 100644 index 10240a77..ebb7954f --- a/scheme/psa-iot/test/mult-endorsements.json +++ b/scheme/psa-iot/test/mult-endorsements.json @@ -1,5 +1,5 @@ [ - "{\n\"scheme\":\"PSA_IOT\",\n\"type\":\"REFERENCE_VALUE\",\n\"attributes\":{\n \"PSA_IOT.hw-model\":\"RoadRunner\",\n \"PSA_IOT.hw-vendor\":\"ACME\",\n \"PSA_IOT.impl-id\":\"76543210fedcba9817161514131211101f1e1d1c1b1a1918\",\n \"PSA_IOT.measurement-desc\":\"sha-256\",\n \"PSA_IOT.measurement-type\":\"BL\",\n \"PSA_IOT.measurement-value\":\"BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=\",\n \"PSA_IOT.signer-id\":\"BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=\",\n \"PSA_IOT.version\":\"3.4.2\"\n }\n }", - "\n{\n \"scheme\":\"PSA_IOT\",\n \"type\":\"REFERENCE_VALUE\",\n \"attributes\":{\n \"PSA_IOT.hw-model\":\"RoadRunner\",\n \"PSA_IOT.hw-vendor\":\"ACME\",\n \"PSA_IOT.impl-id\":\"76543210fedcba9817161514131211101f1e1d1c1b1a1918\",\n \"PSA_IOT.measurement-desc\":\"sha-256\",\n \"PSA_IOT.measurement-type\":\"M1\",\n \"PSA_IOT.measurement-value\":\"CwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=\",\n \"PSA_IOT.signer-id\":\"BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=\",\n \"PSA_IOT.version\":\"1.2.0\"}\n }\n ", - "\n {\n \"scheme\":\"PSA_IOT\",\n \"type\":\"REFERENCE_VALUE\",\n \"attributes\":{\n \"PSA_IOT.hw-model\":\"RoadRunner\",\n \"PSA_IOT.hw-vendor\":\"ACME\",\n \"PSA_IOT.impl-id\":\"76543210fedcba9817161514131211101f1e1d1c1b1a1918\",\n \"PSA_IOT.measurement-desc\":\"sha-256\",\n \"PSA_IOT.measurement-type\":\"M2\",\n \"PSA_IOT.measurement-value\":\"DwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=\",\n \"PSA_IOT.signer-id\":\"BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=\",\n \"PSA_IOT.version\":\"1.2.3\"}\n }\n " + "{\n\"scheme\":\"PSA_IOT\",\n\"type\":\"REFERENCE_VALUE\",\n\"attributes\":{\n \"PSA_IOT.hw-model\":\"RoadRunner\",\n \"PSA_IOT.hw-vendor\":\"ACME\",\n \"psa.impl-id\":\"76543210fedcba9817161514131211101f1e1d1c1b1a1918\",\n \"PSA_IOT.measurement-desc\":\"sha-256\",\n \"PSA_IOT.measurement-type\":\"BL\",\n \"PSA_IOT.measurement-value\":\"BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=\",\n \"PSA_IOT.signer-id\":\"BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=\",\n \"PSA_IOT.version\":\"3.4.2\"\n }\n }", + "\n{\n \"scheme\":\"PSA_IOT\",\n \"type\":\"REFERENCE_VALUE\",\n \"attributes\":{\n \"PSA_IOT.hw-model\":\"RoadRunner\",\n \"PSA_IOT.hw-vendor\":\"ACME\",\n \"psa.impl-id\":\"76543210fedcba9817161514131211101f1e1d1c1b1a1918\",\n \"PSA_IOT.measurement-desc\":\"sha-256\",\n \"PSA_IOT.measurement-type\":\"M1\",\n \"PSA_IOT.measurement-value\":\"CwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=\",\n \"PSA_IOT.signer-id\":\"BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=\",\n \"PSA_IOT.version\":\"1.2.0\"}\n }\n ", + "\n {\n \"scheme\":\"PSA_IOT\",\n \"type\":\"REFERENCE_VALUE\",\n \"attributes\":{\n \"PSA_IOT.hw-model\":\"RoadRunner\",\n \"PSA_IOT.hw-vendor\":\"ACME\",\n \"psa.impl-id\":\"76543210fedcba9817161514131211101f1e1d1c1b1a1918\",\n \"PSA_IOT.measurement-desc\":\"sha-256\",\n \"PSA_IOT.measurement-type\":\"M2\",\n \"PSA_IOT.measurement-value\":\"DwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=\",\n \"PSA_IOT.signer-id\":\"BwYFBAMCAQAPDg0MCwoJCBcWFRQTEhEQHx4dHBsaGRg=\",\n \"PSA_IOT.version\":\"1.2.3\"}\n }\n " ] \ No newline at end of file diff --git a/scheme/psa-iot/test/ta-bad-key-header.json b/scheme/psa-iot/test/ta-bad-key-header.json index 947c608a..925ee6e6 100644 --- a/scheme/psa-iot/test/ta-bad-key-header.json +++ b/scheme/psa-iot/test/ta-bad-key-header.json @@ -5,7 +5,7 @@ "attributes":{ "PSA_IOT.hw-model":"RoadRunner", "PSA_IOT.hw-vendor":"ACME", - "PSA_IOT.impl-id":"76543210fedcba9817161514131211101f1e1d1c1b1a1918", + "psa.impl-id":"76543210fedcba9817161514131211101f1e1d1c1b1a1918", "PSA_IOT.iak-pub":"-----BEGIN -----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEIShnxS4rlQiwpCCpBWDzlNLfqiG911FP\n8akBr+fh94uxHU5m+Kijivp2r2oxxN6MhM4tr8mWQli1P61xh3T0ViDREbF26DGO\nEYfbAjWjGNN7pZf+6A4OTHYqEryz6m7U\n-----END PUBLIC KEY-----", "PSA_IOT.inst-id":"Ac7rrnuJJ6MiflMDz14PH3s0u1Qq1yUKwD+83jbsLxUI" } diff --git a/scheme/psa-iot/test/ta-bad-key-private-key.json b/scheme/psa-iot/test/ta-bad-key-private-key.json index 2dd34c42..74ed42e3 100644 --- a/scheme/psa-iot/test/ta-bad-key-private-key.json +++ b/scheme/psa-iot/test/ta-bad-key-private-key.json @@ -5,7 +5,7 @@ "attributes":{ "PSA_IOT.hw-model":"RoadRunner", "PSA_IOT.hw-vendor":"ACME", - "PSA_IOT.impl-id":"76543210fedcba9817161514131211101f1e1d1c1b1a1918", + "psa.impl-id":"76543210fedcba9817161514131211101f1e1d1c1b1a1918", "PSA_IOT.iak-pub":"-----BEGIN PRIVATE KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEIShnxS4rlQiwpCCpBWDzlNLfqiG911FP\n8akBr+fh94uxHU5m+Kijivp2r2oxxN6MhM4tr8mWQli1P61xh3T0ViDREbF26DGO\nEYfbAjWjGNN7pZf+6A4OTHYqEryz6m7U\n-----END PRIVATE KEY-----", "PSA_IOT.inst-id":"Ac7rrnuJJ6MiflMDz14PH3s0u1Qq1yUKwD+83jbsLxUI" } diff --git a/scheme/psa-iot/test/ta-bad-key.json b/scheme/psa-iot/test/ta-bad-key.json index 2f2c93b4..094cb4cc 100644 --- a/scheme/psa-iot/test/ta-bad-key.json +++ b/scheme/psa-iot/test/ta-bad-key.json @@ -5,7 +5,7 @@ "attributes":{ "PSA_IOT.hw-model":"RoadRunner", "PSA_IOT.hw-vendor":"ACME", - "PSA_IOT.impl-id":"76543210fedcba9817161514131211101f1e1d1c1b1a1918", + "psa.impl-id":"76543210fedcba9817161514131211101f1e1d1c1b1a1918", "PSA_IOT.iak-pub":"-----BEGIN PUBLIC KEY-----\nMIGkAgEBBDCKwJDJlYafYawTWPArAhomq26zhiA6xzXXzphVU4uR90xEsNWAJD77eZopPcuqCJmgBwYFK4EEACKhZANiAAQhKGfFLiuVCLCkIKkFYPOU0t+qIb3XUU/xqQGv5+H3i7EdTmb4qKOK+navajHE3oyEzi2vyZZCWLU/rXGHdPRWINERsXboMY4Rh9sCNaMY03ull/7oDg5MdioSvLPqbtQ=\n-----END PUBLIC KEY-----", "PSA_IOT.inst-id":"Ac7rrnuJJ6MiflMDz14PH3s0u1Qq1yUKwD+83jbsLxUI" } diff --git a/scheme/psa-iot/test/ta-endorsements.json b/scheme/psa-iot/test/ta-endorsements.json index 1f10799d..942233aa 100644 --- a/scheme/psa-iot/test/ta-endorsements.json +++ b/scheme/psa-iot/test/ta-endorsements.json @@ -5,7 +5,7 @@ "attributes":{ "PSA_IOT.hw-model":"RoadRunner", "PSA_IOT.hw-vendor":"ACME", - "PSA_IOT.impl-id":"76543210fedcba9817161514131211101f1e1d1c1b1a1918", + "psa.impl-id":"76543210fedcba9817161514131211101f1e1d1c1b1a1918", "PSA_IOT.iak-pub":"-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETl4iCZ47zrRbRG0TVf0dw7VFlHtv\n18HInYhnmMNybo+A1wuECyVqrDSmLt4QQzZPBECV8ANHS5HgGCCSr7E/Lg==\n-----END PUBLIC KEY-----", "PSA_IOT.inst-id":"Ac7rrnuJJ6MiflMDz14PH3s0u1Qq1yUKwD+83jbsLxUI" } diff --git a/scheme/psa-iot/test/ta-integ-endorsements.json b/scheme/psa-iot/test/ta-integ-endorsements.json index e558d747..40b53442 100644 --- a/scheme/psa-iot/test/ta-integ-endorsements.json +++ b/scheme/psa-iot/test/ta-integ-endorsements.json @@ -4,7 +4,7 @@ "attributes":{ "PSA_IOT.hw-model":"RoadRunner", "PSA_IOT.hw-vendor":"ACME", - "PSA_IOT.impl-id":"76543210fedcba9817161514131211101f1e1d1c1b1a1918", + "psa.impl-id":"76543210fedcba9817161514131211101f1e1d1c1b1a1918", "PSA_IOT.iak-pub":"-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEMKBCTNIcKUSDii11ySs3526iDZ8A\niTo7Tu6KPAqv7D7gS2XpJFbZiItSs3m9+9Ue6GnvHw/GW2ZZaVtszggXIw==\n-----END PUBLIC KEY-----", "PSA_IOT.inst-id":"Ac7rrnuJJ6MiflMDz14PH3s0u1Qq1yUKwD+83jbsLxUI" } diff --git a/scheme/psa-iot/test_vectors.go b/scheme/psa-iot/test_vectors.go index 9c92b434..fc8f4a7e 100644 --- a/scheme/psa-iot/test_vectors.go +++ b/scheme/psa-iot/test_vectors.go @@ -1,51 +1,58 @@ -// Copyright 2022-2023 Contributors to the Veraison project. -// SPDX-License-Identifier: Apache-2.0 package psa_iot // automatically generated from: // ComidPsaIakPubOne.json and corimMini.json +// nolint:unused var unsignedCorimComidPsaIakPubOne = ` -a300505c57e8f446cd421b91c908cf93e13cfc0181590132d901faa40065 +a300505c57e8f446cd421b91c908cf93e13cfc0181590167d901faa40065 656e2d474201a10050366d0a0a598845ed84882f2a544f62420281a30069 41434d45204c74642e01d8207468747470733a2f2f61636d652e6578616d 706c65028300010204a1028182a200a300d90258582061636d652d696d70 6c656d656e746174696f6e2d69642d303030303030303031016441434d45 026a526f616452756e6e657201d90226582101ceebae7b8927a3227e5303 -cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f150881a100787c4d466b77 -457759484b6f5a497a6a3043415159494b6f5a497a6a3044415163445167 -4145466e3074616f41775233506d724b6b594c74417344396f30354b534d -366d6267664e436770754c306736567054486b5a6c3733776b354244786f -56376e2b4f656565306949716b5733484d5a54334554696e694a64673d3d -03817818687474703a2f2f61726d2e636f6d2f7073612f696f742f31 +cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f150881d9022a78b02d2d2d +2d2d424547494e205055424c4943204b45592d2d2d2d2d0a4d466b774577 +59484b6f5a497a6a3043415159494b6f5a497a6a30444151634451674145 +466e3074616f41775233506d724b6b594c74417344396f30354b534d366d +6267664e436770754c306736567054486b5a6c3733776b354244786f5637 +6e2b4f656565306949716b5733484d5a54334554696e694a64673d3d0a2d +2d2d2d2d454e44205055424c4943204b45592d2d2d2d2d03817818687474 +703a2f2f61726d2e636f6d2f7073612f696f742f31 ` // automatically generated from: // ComidPsaIakPubTwo.json and corimMini.json +// nolint:unused var unsignedCorimComidPsaIakPubTwo = ` -a300505c57e8f446cd421b91c908cf93e13cfc0181590216d901faa40065 +a300505c57e8f446cd421b91c908cf93e13cfc0181590280d901faa40065 656e2d474201a10050366d0a0a598845ed84882f2a544f62420281a30069 41434d45204c74642e01d8207468747470733a2f2f61636d652e6578616d 706c65028300010204a1028282a200a300d90258582061636d652d696d70 6c656d656e746174696f6e2d69642d303030303030303031016441434d45 026a526f616452756e6e657201d90226582101ceebae7b8927a3227e5303 -cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f150881a100787c4d466b77 -457759484b6f5a497a6a3043415159494b6f5a497a6a3044415163445167 -4145466e3074616f41775233506d724b6b594c74417344396f30354b534d -366d6267664e436770754c306736567054486b5a6c3733776b354244786f -56376e2b4f656565306949716b5733484d5a54334554696e694a64673d3d -82a200a300d90258582061636d652d696d706c656d656e746174696f6e2d -69642d303030303030303031016441434d45026a526f616452756e6e6572 -01d902265821014ca3e4f50bf248c39787020d68ffd05c88767751bf2645 -ca923f57a98becd29681a100787c4d466b77457759484b6f5a497a6a3043 -415159494b6f5a497a6a304441516344516741453656777165376879334f -385970612b425545544c556a424e5533724558565579743958485237484a -574c473758544b51643969316b565258654250444c466e66597275312f65 -7578526e4a4d374839556f46444c64413d3d03817818687474703a2f2f61 -726d2e636f6d2f7073612f696f742f31 +cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f150881d9022a78b02d2d2d +2d2d424547494e205055424c4943204b45592d2d2d2d2d0a4d466b774577 +59484b6f5a497a6a3043415159494b6f5a497a6a30444151634451674145 +466e3074616f41775233506d724b6b594c74417344396f30354b534d366d +6267664e436770754c306736567054486b5a6c3733776b354244786f5637 +6e2b4f656565306949716b5733484d5a54334554696e694a64673d3d0a2d +2d2d2d2d454e44205055424c4943204b45592d2d2d2d2d82a200a300d902 +58582061636d652d696d706c656d656e746174696f6e2d69642d30303030 +3030303031016441434d45026a526f616452756e6e657201d90226582101 +4ca3e4f50bf248c39787020d68ffd05c88767751bf2645ca923f57a98bec +d29681d9022a78b02d2d2d2d2d424547494e205055424c4943204b45592d +2d2d2d2d0a4d466b77457759484b6f5a497a6a3043415159494b6f5a497a +6a304441516344516741453656777165376879334f385970612b42554554 +4c556a424e5533724558565579743958485237484a574c473758544b5164 +3969316b565258654250444c466e66597275312f657578526e4a4d374839 +556f46444c64413d3d0a2d2d2d2d2d454e44205055424c4943204b45592d +2d2d2d2d03817818687474703a2f2f61726d2e636f6d2f7073612f696f74 +2f31 ` // automatically generated from: // ComidPsaRefValOne.json and corimMini.json +// nolint:unused var unsignedCorimComidPsaRefValOne = ` a300505c57e8f446cd421b91c908cf93e13cfc018158e7d901faa4006565 6e2d474201a1005043bbe37f2e614b33aed353cff1428b160281a3006941 @@ -61,6 +68,7 @@ d8bae86b01a102818201582087428fc522803d31065e7bce3cf03fe47509 // automatically generated from: // ComidPsaRefValThree.json and corimMini.json +// nolint:unused var unsignedCorimComidPsaRefValThree = ` a300505c57e8f446cd421b91c908cf93e13cfc01815901a3d901faa40065 656e2d474201a1005043bbe37f2e614b33aed353cff1428b160281a30069 @@ -82,28 +90,33 @@ c3f9bebb6bc24f32ffd5b67b387244c2c909da779a147803817818687474 // automatically generated from: // ComidPsaMultIak.json and corimMini.json +// nolint:unused var unsignedCorimComidPsaMultIak = ` -a300505c57e8f446cd421b91c908cf93e13cfc01815901b2d901faa40065 +a300505c57e8f446cd421b91c908cf93e13cfc018159021cd901faa40065 656e2d474201a10050366d0a0a598845ed84882f2a544f62420281a30069 41434d45204c74642e01d8207468747470733a2f2f61636d652e6578616d 706c65028300010204a1028182a200a300d90258582061636d652d696d70 6c656d656e746174696f6e2d69642d303030303030303031016441434d45 026a526f616452756e6e657201d90226582101ceebae7b8927a3227e5303 -cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f150882a100787c4d466b77 -457759484b6f5a497a6a3043415159494b6f5a497a6a3044415163445167 -4145466e3074616f41775233506d724b6b594c74417344396f30354b534d -366d6267664e436770754c306736567054486b5a6c3733776b354244786f -56376e2b4f656565306949716b5733484d5a54334554696e694a64673d3d -a100787c4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a -30444151634451674145466e3074616f41775233506e724b6b594c744173 -44396f30354b534d366d6267664e436770754c306736567054486b5a6c37 -33776b354244786f56376e2b4f656565306949716b5733484d5a54334554 -696e694a64673d3d03817818687474703a2f2f61726d2e636f6d2f707361 -2f696f742f31 +cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f150882d9022a78b02d2d2d +2d2d424547494e205055424c4943204b45592d2d2d2d2d0a4d466b774577 +59484b6f5a497a6a3043415159494b6f5a497a6a30444151634451674145 +466e3074616f41775233506d724b6b594c74417344396f30354b534d366d +6267664e436770754c306736567054486b5a6c3733776b354244786f5637 +6e2b4f656565306949716b5733484d5a54334554696e694a64673d3d0a2d +2d2d2d2d454e44205055424c4943204b45592d2d2d2d2dd9022a78b02d2d +2d2d2d424547494e205055424c4943204b45592d2d2d2d2d0a4d466b7745 +7759484b6f5a497a6a3043415159494b6f5a497a6a304441516344516741 +45466e3074616f41775233506d724b6b594c74417344396f30354b534d36 +6d6267664e436770754c306736567054486b5a6c3733776b354244786f56 +376e2b4f656565306949716b5733484d5a54334554696e694a64673d3d0a +2d2d2d2d2d454e44205055424c4943204b45592d2d2d2d2d038178186874 +74703a2f2f61726d2e636f6d2f7073612f696f742f31 ` // automatically generated from: // ComidPsaRefValMultDigest.json and corimMini.json +// nolint:unused var unsignedCorimComidPsaRefValMultDigest = ` a300505c57e8f446cd421b91c908cf93e13cfc018159010bd901faa40065 656e2d474201a1005043bbe37f2e614b33aed353cff1428b160281a30069 @@ -120,6 +133,7 @@ ce3cf03fe475096231e5e07bbd7a0fde60c4cf25c703817818687474703a // automatically generated from: // ComidPsaRefValOnlyMandIDAttr.json and corimMini.json +// nolint:unused var unsignedCorimComidPsaRefValOnlyMandIDAttr = ` a300505c57e8f446cd421b91c908cf93e13cfc018158dcd901faa4006565 6e2d474201a1005043bbe37f2e614b33aed353cff1428b160281a3006941 @@ -135,6 +149,7 @@ cf25c703817818687474703a2f2f61726d2e636f6d2f7073612f696f742f // automatically generated from: // ComidPsaRefValNoMkey.json and corimMini.json +// nolint:unused var unsignedCorimComidPsaRefValNoMkey = ` a300505c57e8f446cd421b91c908cf93e13cfc018158bbd901faa4006565 6e2d474201a1005043bbe37f2e614b33aed353cff1428b160281a3006941 @@ -148,6 +163,7 @@ f4cb14a879432e53dd6571c7fa9bccafb75f488259262d6ea3a4d91b030a // automatically generated from: // ComidPsaRefValNoImplID.json and corimMini.json +// nolint:unused var unsignedCorimComidPsaRefValNoImplID = ` a300505c57e8f446cd421b91c908cf93e13cfc018158ccd901faa4006565 6e2d474201a1005043bbe37f2e614b33aed353cff1428b160281a3006941 @@ -162,33 +178,132 @@ e475096631e5e07bbd7a0fde60c4cf25c703817818687474703a2f2f6172 // automatically generated from: // ComidPsaIakPubNoUeID.json and corimMini.json +// nolint:unused var unsignedCorimComidPsaIakPubNoUeID = ` -a300505c57e8f446cd421b91c908cf93e13cfc018159010bd901faa40065 +a300505c57e8f446cd421b91c908cf93e13cfc0181590140d901faa40065 656e2d474201a10050366d0a0a598845ed84882f2a544f62420281a30069 41434d45204c74642e01d8207468747470733a2f2f61636d652e6578616d 706c65028300010204a1028182a100a300d90258582061636d652d696d70 6c656d656e746174696f6e2d69642d303030303030303031016441434d45 -026a526f616452756e6e657281a100787c4d466b77457759484b6f5a497a -6a3043415159494b6f5a497a6a30444151634451674145466e3074616f41 -775233506d724b6b594c74417344396f30354b534d366d6267664e436770 -754c306736567054486b5a6c3733776b354244786f56376e2b4f65656530 -6949716b5733484d5a54334554696e694a64673d3d03817818687474703a -2f2f61726d2e636f6d2f7073612f696f742f31 +026a526f616452756e6e657281d9022a78b02d2d2d2d2d424547494e2050 +55424c4943204b45592d2d2d2d2d0a4d466b77457759484b6f5a497a6a30 +43415159494b6f5a497a6a30444151634451674145466e3074616f417752 +33506d724b6b594c74417344396f30354b534d366d6267664e436770754c +306736567054486b5a6c3733776b354244786f56376e2b4f656565306949 +716b5733484d5a54334554696e694a64673d3d0a2d2d2d2d2d454e442050 +55424c4943204b45592d2d2d2d2d03817818687474703a2f2f61726d2e63 +6f6d2f7073612f696f742f31 ` // automatically generated from: // ComidPsaIakPubNoImplID.json and corimMini.json +// nolint:unused var unsignedCorimComidPsaIakPubNoImplID = ` -a300505c57e8f446cd421b91c908cf93e13cfc0181590117d901faa40065 +a300505c57e8f446cd421b91c908cf93e13cfc018159014cd901faa40065 656e2d474201a10050366d0a0a598845ed84882f2a544f62420281a30069 41434d45204c74642e01d8207468747470733a2f2f61636d652e6578616d 706c65028300010204a1028182a200a400d82550dd6661f009284401966b 589ea74e32720263464d430300040001d90226582101ceebae7b8927a322 -7e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f150881a100787c4d -466b77457759484b6f5a497a6a3043415159494b6f5a497a6a3044415163 -4451674145466e3074616f41775233506d724b6b594c74417344396f3035 -4b534d366d6267664e436770754c306736567054486b5a6c3733776b3542 -44786f56376e2b4f656565306949716b5733484d5a54334554696e694a64 -673d3d03817818687474703a2f2f61726d2e636f6d2f7073612f696f742f -31 +7e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f150881d9022a78b0 +2d2d2d2d2d424547494e205055424c4943204b45592d2d2d2d2d0a4d466b +77457759484b6f5a497a6a3043415159494b6f5a497a6a30444151634451 +674145466e3074616f41775233506d724b6b594c74417344396f30354b53 +4d366d6267664e436770754c306736567054486b5a6c3733776b35424478 +6f56376e2b4f656565306949716b5733484d5a54334554696e694a64673d +3d0a2d2d2d2d2d454e44205055424c4943204b45592d2d2d2d2d03817818 +687474703a2f2f61726d2e636f6d2f7073612f696f742f31 +` + +// automatically generated from: +// ComidCcaRefValOne.json and corimCca.json +// nolint:unused +var unsignedCorimComidCcaRefValOne = ` +a600505c57e8f446cd421b91c908cf93e13cfc018158b3d901faa4006565 +6e2d474201a1005043bbe37f2e614b33aed353cff1428b160281a3006941 +434d45204c74642e01d8207468747470733a2f2f61636d652e6578616d70 +6c65028300010204a1008182a100a300d90258582061636d652d696d706c +656d656e746174696f6e2d69642d303030303030303031016441434d4502 +6a526f616452756e6e657281a200d9025a69616e792d6c6162656c01a104 +d902305272617776616c75650a72617776616c75650a0281a200d8207840 +68747470733a2f2f706172656e742e6578616d706c652f72696d732f6363 +6233616138352d363162342d343066312d383438652d3032616436653861 +323534620182015820e45b72f5c0c0b572db4d8d3ab7e97f368ff74e6234 +7a824decb67a84e5224d7503817818687474703a2f2f61726d2e636f6d2f +6363612f7373642f3104a200c11a61ce480001c11a695467800581a30069 +41434d45204c74642e01d8206c61636d652e6578616d706c65028101 +` + +// automatically generated from: +// ComidCcaRefValFour.json and corimCca.json +// nolint:unused +var unsignedCorimComidCcaRefValFour = ` +a600505c57e8f446cd421b91c908cf93e13cfc01815901cbd901faa40065 +656e2d474201a1005043bbe37f2e614b33aed353cff1428b160281a30069 +41434d45204c74642e01d8207468747470733a2f2f61636d652e6578616d +706c65028300010204a1008182a100a300d90258582061636d652d696d70 +6c656d656e746174696f6e2d69642d303030303030303031016441434d45 +026a526f616452756e6e657284a200d90259a30162424c0465322e312e30 +055820acbb11c7e4da217205523ce4ce1a245ae1a239ae3c6bfd9e7871f7 +e5d8bae86b01a102818201582087428fc522803d31065e7bce3cf03fe475 +096631e5e07bbd7a0fde60c4cf25c7a200d90259a3016450526f54046531 +2e332e35055820acbb11c7e4da217205523ce4ce1a245ae1a239ae3c6bfd +9e7871f7e5d8bae86b01a10281820158200263829989b6fd954f72baaf2f +c64bc2e2f01d692d4de72986ea808f6e99813fa200d90259a3016441526f +540465302e312e34055820acbb11c7e4da217205523ce4ce1a245ae1a239 +ae3c6bfd9e7871f7e5d8bae86b01a1028182015820a3a5e715f0cc574a73 +c3f9bebb6bc24f32ffd5b67b387244c2c909da779a1478a200d9025a6961 +6e792d76616c756501a104d902305272617776616c75650a72617776616c +75650a0281a200d820784068747470733a2f2f706172656e742e6578616d +706c652f72696d732f63636233616138352d363162342d343066312d3834 +38652d3032616436653861323534620182015820e45b72f5c0c0b572db4d +8d3ab7e97f368ff74e62347a824decb67a84e5224d750381781868747470 +3a2f2f61726d2e636f6d2f6363612f7373642f3104a200c11a61ce480001 +c11a695467800581a3006941434d45204c74642e01d8206c61636d652e65 +78616d706c65028101 +` + +// automatically generated from: +// ComidCcaRefValOne.json and corimCcaNoProfile.json +// nolint:unused +var unsignedCorimNoProfileComidCcaRefValOne = ` +a500505c57e8f446cd421b91c908cf93e13cfc018158b3d901faa4006565 +6e2d474201a1005043bbe37f2e614b33aed353cff1428b160281a3006941 +434d45204c74642e01d8207468747470733a2f2f61636d652e6578616d70 +6c65028300010204a1008182a100a300d90258582061636d652d696d706c +656d656e746174696f6e2d69642d303030303030303031016441434d4502 +6a526f616452756e6e657281a200d9025a69616e792d6c6162656c01a104 +d902305272617776616c75650a72617776616c75650a0281a200d8207840 +68747470733a2f2f706172656e742e6578616d706c652f72696d732f6363 +6233616138352d363162342d343066312d383438652d3032616436653861 +323534620182015820e45b72f5c0c0b572db4d8d3ab7e97f368ff74e6234 +7a824decb67a84e5224d7504a200c11a61ce480001c11a695467800581a3 +006941434d45204c74642e01d8206c61636d652e6578616d706c65028101 +` + +// automatically generated from: +// ComidCcaRefValFour.json and corimCcaNoProfile.json +// nolint:unused +var unsignedCorimNoProfileComidCcaRefValFour = ` +a500505c57e8f446cd421b91c908cf93e13cfc01815901cbd901faa40065 +656e2d474201a1005043bbe37f2e614b33aed353cff1428b160281a30069 +41434d45204c74642e01d8207468747470733a2f2f61636d652e6578616d +706c65028300010204a1008182a100a300d90258582061636d652d696d70 +6c656d656e746174696f6e2d69642d303030303030303031016441434d45 +026a526f616452756e6e657284a200d90259a30162424c0465322e312e30 +055820acbb11c7e4da217205523ce4ce1a245ae1a239ae3c6bfd9e7871f7 +e5d8bae86b01a102818201582087428fc522803d31065e7bce3cf03fe475 +096631e5e07bbd7a0fde60c4cf25c7a200d90259a3016450526f54046531 +2e332e35055820acbb11c7e4da217205523ce4ce1a245ae1a239ae3c6bfd +9e7871f7e5d8bae86b01a10281820158200263829989b6fd954f72baaf2f +c64bc2e2f01d692d4de72986ea808f6e99813fa200d90259a3016441526f +540465302e312e34055820acbb11c7e4da217205523ce4ce1a245ae1a239 +ae3c6bfd9e7871f7e5d8bae86b01a1028182015820a3a5e715f0cc574a73 +c3f9bebb6bc24f32ffd5b67b387244c2c909da779a1478a200d9025a6961 +6e792d76616c756501a104d902305272617776616c75650a72617776616c +75650a0281a200d820784068747470733a2f2f706172656e742e6578616d +706c652f72696d732f63636233616138352d363162342d343066312d3834 +38652d3032616436653861323534620182015820e45b72f5c0c0b572db4d +8d3ab7e97f368ff74e62347a824decb67a84e5224d7504a200c11a61ce48 +0001c11a695467800581a3006941434d45204c74642e01d8206c61636d65 +2e6578616d706c65028101 ` diff --git a/scheme/tpm-enacttrust/Makefile b/scheme/tpm-enacttrust/Makefile index 847784b1..e7a90c19 100644 --- a/scheme/tpm-enacttrust/Makefile +++ b/scheme/tpm-enacttrust/Makefile @@ -7,6 +7,9 @@ SRCS := $(wildcard *.go) SUBDIR += plugin +# auto-generated +COPYRIGHT_FLAGS += --ignore */test_vectors.go + include ../../mk/common.mk include ../../mk/lint.mk include ../../mk/pkg.mk diff --git a/scheme/tpm-enacttrust/extractor.go b/scheme/tpm-enacttrust/extractor.go index 258f7679..e3b059ed 100644 --- a/scheme/tpm-enacttrust/extractor.go +++ b/scheme/tpm-enacttrust/extractor.go @@ -9,7 +9,6 @@ import ( "github.com/veraison/corim/comid" "github.com/veraison/services/handler" - "github.com/veraison/services/scheme/common" ) type Extractor struct { @@ -87,10 +86,14 @@ func (o Extractor) TaExtractor(avk comid.AttestVerifKey) (*handler.Endorsement, return nil, errors.New("expecting exactly one AK public key") } - akPub := avk.VerifKeys[0].Key + akPub := avk.VerifKeys[0] - if err := checkKey(akPub); err != nil { - return nil, err + if _, ok := akPub.Value.(*comid.TaggedPKIXBase64Key); !ok { + return nil, fmt.Errorf("ak-pub does not appear to be a PEM key (%T)", akPub.Value) + } + + if err := akPub.Valid(); err != nil { + return nil, fmt.Errorf("could not parse ak-pub: %v", err) } taAttrs, err := makeTaAttrs(instanceAttrs, akPub) @@ -107,10 +110,10 @@ func (o Extractor) TaExtractor(avk comid.AttestVerifKey) (*handler.Endorsement, return ta, nil } -func makeTaAttrs(i InstanceAttributes, key string) (json.RawMessage, error) { +func makeTaAttrs(i InstanceAttributes, key *comid.CryptoKey) (json.RawMessage, error) { attrs := map[string]interface{}{ "enacttrust-tpm.node-id": i.NodeID, - "enacttrust.ak-pub": key, + "enacttrust.ak-pub": key.String(), } msg, err := json.Marshal(attrs) @@ -119,12 +122,3 @@ func makeTaAttrs(i InstanceAttributes, key string) (json.RawMessage, error) { } return msg, nil } - -func checkKey(inKey string) error { - _, err := common.DecodePemSubjectPubKeyInfo([]byte(inKey)) - if err != nil { - return fmt.Errorf("could not parse ak-pub: %v", err) - } - - return nil -} diff --git a/scheme/tpm-enacttrust/test/ComidTpmEnactTrustAKBadInst.json b/scheme/tpm-enacttrust/test/ComidTpmEnactTrustAKBadInst.json index 332bb0fe..2e692f8b 100644 --- a/scheme/tpm-enacttrust/test/ComidTpmEnactTrustAKBadInst.json +++ b/scheme/tpm-enacttrust/test/ComidTpmEnactTrustAKBadInst.json @@ -24,7 +24,8 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Vwqe7hy3O8Ypa+BUETLUjBNU3rEXVUyt9XHR7HJWLG7XTKQd9i1kVRXeBPDLFnfYru1/euxRnJM7H9UoFDLdA==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Vwqe7hy3O8Ypa+BUETLUjBNU3rEXVUyt9XHR7HJWLG7XTKQd9i1kVRXeBPDLFnfYru1/euxRnJM7H9UoFDLdA==\n-----END PUBLIC KEY-----" } ] } diff --git a/scheme/tpm-enacttrust/test/ComidTpmEnactTrustAKMult.json b/scheme/tpm-enacttrust/test/ComidTpmEnactTrustAKMult.json index 16a4d4b1..b44ef409 100644 --- a/scheme/tpm-enacttrust/test/ComidTpmEnactTrustAKMult.json +++ b/scheme/tpm-enacttrust/test/ComidTpmEnactTrustAKMult.json @@ -24,12 +24,13 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Vwqe7hy3O8Ypa+BUETLUjBNU3rEXVUyt9XHR7HJWLG7XTKQd9i1kVRXeBPDLFnfYru1/euxRnJM7H9UoFDLdA==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Vwqe7hy3O8Ypa+BUETLUjBNU3rEXVUyt9XHR7HJWLG7XTKQd9i1kVRXeBPDLFnfYru1/euxRnJM7H9UoFDLdA==\n-----END PUBLIC KEY-----" }, { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Vwqe7hy3O8Ypa+BUETLUjBNU3rEXVUxt9XHR7HJWLG7XTKQd9i1kVRXeBPDLFnfYru1/euxRnJM7H9UoFDLdA==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Vwqe7hy3O8Ypa+BUETLUjBNU3rEXVUyt9XHR7HJWLG7XTKQd9i1kVRXeBPDLFnfYru1/euxRnJM7H9UoFDLdA==\n-----END PUBLIC KEY-----" } - ] } ] diff --git a/scheme/tpm-enacttrust/test/ComidTpmEnactTrustAKOne.json b/scheme/tpm-enacttrust/test/ComidTpmEnactTrustAKOne.json index 05c65760..cb0104eb 100644 --- a/scheme/tpm-enacttrust/test/ComidTpmEnactTrustAKOne.json +++ b/scheme/tpm-enacttrust/test/ComidTpmEnactTrustAKOne.json @@ -24,7 +24,8 @@ }, "verification-keys": [ { - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Vwqe7hy3O8Ypa+BUETLUjBNU3rEXVUyt9XHR7HJWLG7XTKQd9i1kVRXeBPDLFnfYru1/euxRnJM7H9UoFDLdA==" + "type": "pkix-base64-key", + "value": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6Vwqe7hy3O8Ypa+BUETLUjBNU3rEXVUyt9XHR7HJWLG7XTKQd9i1kVRXeBPDLFnfYru1/euxRnJM7H9UoFDLdA==\n-----END PUBLIC KEY-----" } ] } diff --git a/scheme/tpm-enacttrust/test/ComidTpmEnactTrustBadInst.json b/scheme/tpm-enacttrust/test/ComidTpmEnactTrustBadInst.json index 27c18b2a..29ea4d1e 100644 --- a/scheme/tpm-enacttrust/test/ComidTpmEnactTrustBadInst.json +++ b/scheme/tpm-enacttrust/test/ComidTpmEnactTrustBadInst.json @@ -26,7 +26,7 @@ { "value": { "digests": [ - "sha-256:h0KPxSKAPTEGXnvOPPA/5HUJZjHl4Hu9eg/eYMTPJcc=" + "sha-256;h0KPxSKAPTEGXnvOPPA/5HUJZjHl4Hu9eg/eYMTPJcc=" ] } } diff --git a/scheme/tpm-enacttrust/test/build-test-vectors.sh b/scheme/tpm-enacttrust/test/build-test-vectors.sh index 7ae38539..c63efc34 100755 --- a/scheme/tpm-enacttrust/test/build-test-vectors.sh +++ b/scheme/tpm-enacttrust/test/build-test-vectors.sh @@ -20,7 +20,7 @@ COMID_TEMPLATES="${COMID_TEMPLATES} ComidTpmEnactTrustAKBadInst" TV_DOT_GO=${TV_DOT_GO?must be set in the environment.} -printf "package main\n\n" > ${TV_DOT_GO} +printf "package tpm_enacttrust\n\n" > ${TV_DOT_GO} for t in ${COMID_TEMPLATES} do diff --git a/scheme/tpm-enacttrust/test_vectors.go b/scheme/tpm-enacttrust/test_vectors.go index 5cbae7f4..b341b34c 100644 --- a/scheme/tpm-enacttrust/test_vectors.go +++ b/scheme/tpm-enacttrust/test_vectors.go @@ -1,39 +1,19 @@ -// Copyright 2022-2023 Contributors to the Veraison project. -// SPDX-License-Identifier: Apache-2.0 package tpm_enacttrust +// automatically generated from ComidTpmEnactTrustAKOne.json var unsignedCorimComidTpmEnactTrustAKOne = ` -a300505c57e8f446cd421b91c908cf93 -e13cfc0182590115d901faa301a10050 -00000000000000000000000000000000 -0281a3006a456e616374547275737401 -d8207668747470733a2f2f656e616374 -74727573742e636f6d028300010204a1 -028182a101d825507df7714eaa044638 -bcbf434b1dd720f181a10078b02d2d2d -2d2d424547494e205055424c4943204b -45592d2d2d2d2d0a4d466b7745775948 -4b6f5a497a6a3043415159494b6f5a49 -7a6a304441516344516741456b4c6661 -74364a69662b697a4345672f4b427863 -4e366b463573654a7158316e45694448 -7443687a5633764a4849677177344372 -54756e52502b6c694169443352673972 -4c6d6d566279556a504b586c77426448 -78413d3d0a2d2d2d2d2d454e44205055 -424c4943204b45592d2d2d2d2d588ad9 -01faa301a10050000000000000000000 -000000000000000281a3006a456e6163 -74547275737401d8207668747470733a -2f2f656e61637474727573742e636f6d -028300010204a1008182a101d825507d -f7714eaa044638bcbf434b1dd720f181 -a101a102818201582087428fc522803d -31065e7bce3cf03fe475096631e5e07b -bd7a0fde60c4cf25c703817824687474 -703a2f2f656e61637474727573742e63 -6f6d2f7665726169736f6e2f312e302e -30 +a30050111111111111111111111111111111110181590116d901faa301a1 +0050000000000000000000000000000000000281a3006a456e6163745472 +75737401d8207668747470733a2f2f656e61637474727573742e636f6d02 +8300010204a1028182a101d82550ffffffffffffffffffffffffffffffff +81d9022a78b02d2d2d2d2d424547494e205055424c4943204b45592d2d2d +2d2d0a4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a30 +4441516344516741453656777165376879334f385970612b425545544c55 +6a424e5533724558565579743958485237484a574c473758544b51643969 +316b565258654250444c466e66597275312f657578526e4a4d374839556f +46444c64413d3d0a2d2d2d2d2d454e44205055424c4943204b45592d2d2d +2d2d0381782568747470733a2f2f656e61637474727573742e636f6d2f76 +65726169736f6e2f312e302e30 ` // automatically generated from ComidTpmEnactTrustGoldenOne.json @@ -49,20 +29,24 @@ e07bbd7a0fde60c4cf25c70381782568747470733a2f2f656e6163747472 // automatically generated from ComidTpmEnactTrustAKMult.json var unsignedCorimComidTpmEnactTrustAKMult = ` -a30050111111111111111111111111111111110181590161d901faa301a1 +a300501111111111111111111111111111111101815901cbd901faa301a1 0050000000000000000000000000000000000281a3006a456e6163745472 75737401d8207668747470733a2f2f656e61637474727573742e636f6d02 8300010204a1028182a101d82550ffffffffffffffffffffffffffffffff -82a100787c4d466b77457759484b6f5a497a6a3043415159494b6f5a497a -6a304441516344516741453656777165376879334f385970612b42554554 -4c556a424e5533724558565579743958485237484a574c473758544b5164 -3969316b565258654250444c466e66597275312f657578526e4a4d374839 -556f46444c64413d3da100787c4d466b77457759484b6f5a497a6a304341 -5159494b6f5a497a6a304441516344516741453656777165376879334f38 -5970612b425545544c556a424e5533724558565578743958485237484a57 -4c473758544b51643969316b565258654250444c466e66597275312f6575 -78526e4a4d374839556f46444c64413d3d0381782568747470733a2f2f65 -6e61637474727573742e636f6d2f7665726169736f6e2f312e302e30 +82d9022a78b02d2d2d2d2d424547494e205055424c4943204b45592d2d2d +2d2d0a4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a30 +4441516344516741453656777165376879334f385970612b425545544c55 +6a424e5533724558565579743958485237484a574c473758544b51643969 +316b565258654250444c466e66597275312f657578526e4a4d374839556f +46444c64413d3d0a2d2d2d2d2d454e44205055424c4943204b45592d2d2d +2d2dd9022a78b02d2d2d2d2d424547494e205055424c4943204b45592d2d +2d2d2d0a4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a +304441516344516741453656777165376879334f385970612b425545544c +556a424e5533724558565579743958485237484a574c473758544b516439 +69316b565258654250444c466e66597275312f657578526e4a4d37483955 +6f46444c64413d3d0a2d2d2d2d2d454e44205055424c4943204b45592d2d +2d2d2d0381782568747470733a2f2f656e61637474727573742e636f6d2f +7665726169736f6e2f312e302e30 ` // automatically generated from ComidTpmEnactTrustBadInst.json @@ -127,15 +111,17 @@ a101a2064600005e00530107502001486000002001000000000000006803 // automatically generated from ComidTpmEnactTrustAKBadInst.json var unsignedCorimComidTpmEnactTrustAKBadInst = ` -a3005011111111111111111111111111111111018158f4d901faa301a100 -50000000000000000000000000000000000281a3006a456e616374547275 -737401d8207668747470733a2f2f656e61637474727573742e636f6d0283 -00010204a1028182a101d90226582101ceebae7b8927a3227e5303cf5e0f -1f7b34bb542ad7250ac03fbcde36ec2f150881a100787c4d466b77457759 -484b6f5a497a6a3043415159494b6f5a497a6a3044415163445167414536 -56777165376879334f385970612b425545544c556a424e55337245585655 -79743958485237484a574c473758544b51643969316b565258654250444c -466e66597275312f657578526e4a4d374839556f46444c64413d3d038178 -2568747470733a2f2f656e61637474727573742e636f6d2f766572616973 -6f6e2f312e302e30 +a30050111111111111111111111111111111110181590129d901faa301a1 +0050000000000000000000000000000000000281a3006a456e6163745472 +75737401d8207668747470733a2f2f656e61637474727573742e636f6d02 +8300010204a1028182a101d90226582101ceebae7b8927a3227e5303cf5e +0f1f7b34bb542ad7250ac03fbcde36ec2f150881d9022a78b02d2d2d2d2d +424547494e205055424c4943204b45592d2d2d2d2d0a4d466b7745775948 +4b6f5a497a6a3043415159494b6f5a497a6a304441516344516741453656 +777165376879334f385970612b425545544c556a424e5533724558565579 +743958485237484a574c473758544b51643969316b565258654250444c46 +6e66597275312f657578526e4a4d374839556f46444c64413d3d0a2d2d2d +2d2d454e44205055424c4943204b45592d2d2d2d2d038178256874747073 +3a2f2f656e61637474727573742e636f6d2f7665726169736f6e2f312e30 +2e30 `