Skip to content

Commit 2fdfbe3

Browse files
Merge pull request #37 from veraison/corim-07
fix!: correct tags encoding
2 parents 202d1b5 + ca20f16 commit 2fdfbe3

16 files changed

+42
-63
lines changed

.github/workflows/ci-go-cover.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ jobs:
2424
name: Coverage
2525
runs-on: ubuntu-latest
2626
steps:
27-
- uses: actions/setup-go@v2
27+
- uses: actions/setup-go@v3
2828
with:
29-
go-version: "1.22"
29+
go-version: "1.23"
3030
- name: Checkout code
3131
uses: actions/checkout@v2
3232
- name: Install mockgen

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
steps:
1515
- uses: actions/setup-go@v3
1616
with:
17-
go-version: "1.22"
17+
go-version: "1.23"
1818
- name: Checkout code
1919
uses: actions/checkout@v2
2020
with:

.github/workflows/linters.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,17 @@ jobs:
88
name: Lint
99
runs-on: ubuntu-latest
1010
steps:
11-
- uses: actions/setup-go@v2
11+
- uses: actions/setup-go@v3
1212
with:
13-
go-version: "1.22"
13+
go-version: "1.23"
1414
- name: Checkout code
1515
uses: actions/checkout@v2
1616
- name: Install golangci-lint
1717
run: |
1818
go version
19-
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.54.2
19+
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v2.1.6
2020
- name: Install mockgen
2121
run: |
2222
go install github.com/golang/mock/[email protected]
2323
- name: Run required linters in .golangci.yml plus hard-coded ones here
2424
run: make lint
25-
- name: Run optional linters (not required to pass)
26-
run: make lint-extra

cmd/corimDisplay.go

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package cmd
55

66
import (
7-
"bytes"
87
"encoding/json"
98
"errors"
109
"fmt"
@@ -134,31 +133,23 @@ func display(corimFile string, showTags bool) error {
134133
// displayTags processes and displays embedded tags within a CoRIM.
135134
func displayTags(tags []corim.Tag) {
136135
for i, t := range tags {
137-
if len(t) < 4 {
138-
fmt.Printf(">> skipping malformed tag at index %d\n", i)
139-
continue
140-
}
141-
142-
// Split tag identifier from data
143-
cborTag, cborData := t[:3], t[3:]
144-
145136
hdr := fmt.Sprintf(">> [ %d ]", i)
146137

147-
switch {
148-
case bytes.Equal(cborTag, corim.ComidTag):
149-
if err := printComid(cborData, hdr); err != nil {
138+
switch t.Number {
139+
case corim.ComidTag:
140+
if err := printComid(t.Content, hdr); err != nil {
150141
fmt.Printf(">> skipping malformed CoMID tag at index %d: %v\n", i, err)
151142
}
152-
case bytes.Equal(cborTag, corim.CoswidTag):
153-
if err := printCoswid(cborData, hdr); err != nil {
143+
case corim.CoswidTag:
144+
if err := printCoswid(t.Content, hdr); err != nil {
154145
fmt.Printf(">> skipping malformed CoSWID tag at index %d: %v\n", i, err)
155146
}
156-
case bytes.Equal(cborTag, cots.CotsTag):
157-
if err := printCots(cborData, hdr); err != nil {
147+
case cots.CotsTag:
148+
if err := printCots(t.Content, hdr); err != nil {
158149
fmt.Printf(">> skipping malformed CoTS tag at index %d: %v\n", i, err)
159150
}
160151
default:
161-
fmt.Printf(">> unmatched CBOR tag: %x\n", cborTag)
152+
fmt.Printf(">> unmatched CBOR tag: %d\n", t.Number)
162153
}
163154
}
164155
}

cmd/corimExtract.go

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package cmd
55

66
import (
7-
"bytes"
87
"errors"
98
"fmt"
109
"path/filepath"
@@ -89,36 +88,28 @@ func extract(signedCorimFile string, outputDir *string) error {
8988
outputFile string
9089
)
9190

92-
// need at least 3 bytes for the tag and 1 for the smallest bstr
93-
if len(e) < 3+1 {
94-
fmt.Printf(">> skipping malformed tag at index %d\n", i)
95-
continue
96-
}
97-
9891
// split tag from data
99-
cborTag, cborData := e[:3], e[3:]
100-
101-
switch {
102-
case bytes.Equal(cborTag, corim.ComidTag):
92+
switch e.Number {
93+
case corim.ComidTag:
10394
outputFile = filepath.Join(baseDir, fmt.Sprintf("%06d-comid.cbor", i))
10495

105-
if err = afero.WriteFile(fs, outputFile, cborData, 0644); err != nil {
96+
if err = afero.WriteFile(fs, outputFile, e.Content, 0644); err != nil {
10697
fmt.Printf(">> error saving CoMID tag at index %d: %v\n", i, err)
10798
}
108-
case bytes.Equal(cborTag, corim.CoswidTag):
99+
case corim.CoswidTag:
109100
outputFile = filepath.Join(baseDir, fmt.Sprintf("%06d-coswid.cbor", i))
110101

111-
if err = afero.WriteFile(fs, outputFile, cborData, 0644); err != nil {
102+
if err = afero.WriteFile(fs, outputFile, e.Content, 0644); err != nil {
112103
fmt.Printf(">> error saving CoSWID tag at index %d: %v\n", i, err)
113104
}
114-
case bytes.Equal(cborTag, cots.CotsTag):
105+
case cots.CotsTag:
115106
outputFile = filepath.Join(baseDir, fmt.Sprintf("%06d-cots.cbor", i))
116107

117-
if err = afero.WriteFile(fs, outputFile, cborData, 0644); err != nil {
108+
if err = afero.WriteFile(fs, outputFile, e.Content, 0644); err != nil {
118109
fmt.Printf(">> error saving CoTS tag at index %d: %v\n", i, err)
119110
}
120111
default:
121-
fmt.Printf(">> unmatched CBOR tag: %x\n", cborTag)
112+
fmt.Printf(">> unmatched CBOR tag: %x\n", e.Content)
122113
}
123114
}
124115

cmd/testcases/psa-refval.cbor

0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

cmd/testcases/src/signed-corim-valid-with-cots.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@ value:
44
0: !!binary |-
55
XFfo9EbNQhuRyQjPk+E8/A==
66
1:
7-
- !!binary |-
8-
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
7+
- tag: 507
8+
value:
9+
!!binary |-
10+
ogKBoQGhAKEA2G9EKgMEBQahAISCAVkC3NkB9aKCAtUwggLRMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzdH+ZM8sBM2TmG2ldtztzfHJLt/SaCzY5Rz8BAm1ww1qdC6QDtc9uPP4aMulFv02TEzz0f/d18B7BtepkhcvFwQUioTP+YCVo7w21u6lGNaXjZvXH2AwggJcMFwxCzAJBgNVBAYMAlVTMR8wHQYDVQQKDBZTbm9iYmlzaCBBcHBhcmVsLCBJbmMuMSwwKgYDVQQDDCNTbm9iYmlzaCBBcHBhcmVsLCBJbmMuIFRydXN0IEFuY2hvcqCCAfowggGfoAMCAQICFBAbk0RlwBBFRB4buMWnwJ6pvqmIMAoGCCqGSM49BAMCMFwxCzAJBgNVBAYMAlVTMR8wHQYDVQQKDBZTbm9iYmlzaCBBcHBhcmVsLCBJbmMuMSwwKgYDVQQDDCNTbm9iYmlzaCBBcHBhcmVsLCBJbmMuIFRydXN0IEFuY2hvcjAeFw0yMjA1MTkxNTEzMDhaFw0zMjA1MTYxNTEzMDhaMFwxCzAJBgNVBAYMAlVTMR8wHQYDVQQKDBZTbm9iYmlzaCBBcHBhcmVsLCBJbmMuMSwwKgYDVQQDDCNTbm9iYmlzaCBBcHBhcmVsLCBJbmMuIFRydXN0IEFuY2hvcjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABM3R/mTPLATNk5htpXbc7c3xyS7f0mgs2OUc/AQJtcMNanQukA7XPbjz+GjLpRb9NkxM89H/3dfAewbXqZIXLxejPzA9MB0GA1UdDgQWBBSKhM/5gJWjvDbW7qUY1peNm9cfYDALBgNVHQ8EBAMCAoQwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNJADBGAiEAtnH+N39zz5Qjuv3cb+NH7SIMcU6Chxe9lMxDb+/suMoCIQCBrQv6+khmhTGj+8w9hJaAbiF07clrvB8JfmBnV0WPd4IBWQK92QH1ooICtjCCArIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASXz21w12owQAx58euratYWiHEkhxDU9MEgetrvAtGYZxNnkfLCsp9vLcw8ISXC8tL97k9ZCUtnr0MzLw37XKRABBT22tHlEou/DenpU0Ozccb3/+fibjCCAj0wUjELMAkGA1UEBgwCVVMxGjAYBgNVBAoMEVplc3R5IEhhbmRzLCBJbmMuMScwJQYDVQQDDB5aZXN0eSBIYW5kcywgSW5jLiBUcnVzdCBBbmNob3KgggHlMIIBi6ADAgECAhQL3EqgUXlQPljyddVSRnNHvK+1MzAKBggqhkjOPQQDAjBSMQswCQYDVQQGDAJVUzEaMBgGA1UECgwRWmVzdHkgSGFuZHMsIEluYy4xJzAlBgNVBAMMHlplc3R5IEhhbmRzLCBJbmMuIFRydXN0IEFuY2hvcjAeFw0yMjA1MTkxNTEzMDdaFw0zMjA1MTYxNTEzMDdaMFIxCzAJBgNVBAYMAlVTMRowGAYDVQQKDBFaZXN0eSBIYW5kcywgSW5jLjEnMCUGA1UEAwweWmVzdHkgSGFuZHMsIEluYy4gVHJ1c3QgQW5jaG9yMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEl89tcNdqMEAMefHrq2rWFohxJIcQ1PTBIHra7wLRmGcTZ5HywrKfby3MPCElwvLS/e5PWQlLZ69DMy8N+1ykQKM/MD0wHQYDVR0OBBYEFPba0eUSi78N6elTQ7Nxxvf/5+JuMAsGA1UdDwQEAwIChDAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMCA0gAMEUCIB2li+f6RCxs2EnvNWciSpIDwiUViWayGv1A8xks80eYAiEAmCez4KGrolFKOZT6bvqf1sYQuJBfvtk/y1JQdUvoqliCAVkCgdkB9aKCAnowggJ2MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE41GqEDkkB6S9A3ygvBFU0OcB8GdPOcssT5IQaSzrvuwdJ5d9xWFldR4OI3v9+xU26ZqIRZFClmHfNc/AvytQzAQUAVxFyaywRipxXdcQoHjAFUnxAT8wggIBMD4xCzAJBgNVBAYMAlVTMRAwDgYDVQQKDAdFeGFtcGxlMR0wGwYDVQQDDBRFeGFtcGxlIFRydXN0IEFuY2hvcqCCAb0wggFkoAMCAQICFQDQnZC/PVJcx3PVIu131Z4iu6RbiDAKBggqhkjOPQQDAjA+MQswCQYDVQQGDAJVUzEQMA4GA1UECgwHRXhhbXBsZTEdMBsGA1UEAwwURXhhbXBsZSBUcnVzdCBBbmNob3IwHhcNMjIwNTE5MTUxMzA3WhcNMzIwNTE2MTUxMzA3WjA+MQswCQYDVQQGDAJVUzEQMA4GA1UECgwHRXhhbXBsZTEdMBsGA1UEAwwURXhhbXBsZSBUcnVzdCBBbmNob3IwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATjUaoQOSQHpL0DfKC8EVTQ5wHwZ085yyxPkhBpLOu+7B0nl33FYWV1Hg4je/37FTbpmohFkUKWYd81z8C/K1DMoz8wPTAdBgNVHQ4EFgQUAVxFyaywRipxXdcQoHjAFUnxAT8wCwYDVR0PBAQDAgKEMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwIDRwAwRAIgCwYnQAbH6cxtJUy/RIfW+gFG6p8xfpKBGW4L6ab77fUCIFaBPm4RDdI+sEj83j4y6xHQ/jxIMoxyea2wNdUj6v9TggJYWzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABK2KDAHantoCU9wrwnIn2cchPfjfE+icuc23qOS2LZzoqZotcFwPf4DbZcAG0QkUIrR/xhHL1Ghpcz2cSDiE1f4=

0 commit comments

Comments
 (0)