Skip to content

Commit 57a35c0

Browse files
chore: update cmw v0.1.0 -> v0.2.0
Signed-off-by: Thomas Fossati <[email protected]>
1 parent ab8774e commit 57a35c0

File tree

3 files changed

+33
-41
lines changed

3 files changed

+33
-41
lines changed

go.mod

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
module github.com/veraison/apiclient
22

3-
go 1.19
3+
go 1.23.0
44

55
require (
66
github.com/google/uuid v1.3.0
77
github.com/mitchellh/mapstructure v1.5.0
88
github.com/moogar0880/problems v0.1.1
9-
github.com/stretchr/testify v1.8.2
10-
github.com/veraison/cmw v0.1.0
9+
github.com/stretchr/testify v1.9.0
10+
github.com/veraison/cmw v0.2.0
11+
golang.org/x/oauth2 v0.11.0
1112
)
1213

1314
require (
1415
github.com/davecgh/go-spew v1.1.1 // indirect
15-
github.com/fxamacker/cbor/v2 v2.4.0 // indirect
16+
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
1617
github.com/golang/protobuf v1.5.3 // indirect
1718
github.com/pmezard/go-difflib v1.0.0 // indirect
1819
github.com/x448/float16 v0.8.4 // indirect
1920
golang.org/x/net v0.14.0 // indirect
20-
golang.org/x/oauth2 v0.11.0 // indirect
2121
google.golang.org/appengine v1.6.7 // indirect
2222
google.golang.org/protobuf v1.31.0 // indirect
2323
gopkg.in/yaml.v3 v3.0.1 // indirect

go.sum

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
21
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
32
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
4-
github.com/fxamacker/cbor/v2 v2.4.0 h1:ri0ArlOR+5XunOP8CRUowT0pSJOwhW098ZCUyskZD88=
5-
github.com/fxamacker/cbor/v2 v2.4.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo=
3+
github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
4+
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
65
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
76
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
87
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
98
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
109
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
10+
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
11+
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1112
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
1213
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
1314
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
@@ -16,15 +17,10 @@ github.com/moogar0880/problems v0.1.1 h1:bktLhq8NDG/czU2ZziYNigBFksx13RaYe5AVdNm
1617
github.com/moogar0880/problems v0.1.1/go.mod h1:5Dxrk2sD7BfBAgnOzQ1yaTiuCYdGPUh49L8Vhfky62c=
1718
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
1819
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
19-
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
20-
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
21-
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
22-
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
23-
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
24-
github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
25-
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
26-
github.com/veraison/cmw v0.1.0 h1:vD6tBlGPROCW/HlDcG1jh+XUJi5ihrjXatKZBjrv8mU=
27-
github.com/veraison/cmw v0.1.0/go.mod h1:WoBrlgByc6C1FeHhdze1/bQx1kv5d1sWKO5ezEf4Hs4=
20+
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
21+
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
22+
github.com/veraison/cmw v0.2.0 h1:BWEvwZnD4nn5osq6XwQpTRcGxwV+Su4t6ytdAbVXAJY=
23+
github.com/veraison/cmw v0.2.0/go.mod h1:OiYKk1t6/Fmmg30ZpSMzi4nKr5kt3374sNTkgxC5BDs=
2824
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
2925
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
3026
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -46,6 +42,5 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs
4642
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
4743
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
4844
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
49-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
5045
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
5146
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

verification/challengeresponse.go

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,6 @@ const (
2626
WrapJSON
2727
)
2828

29-
type cmwInfo struct {
30-
mt string
31-
s cmw.Serialization
32-
}
33-
34-
var cmwInfoMap = map[CmwWrap]cmwInfo{
35-
WrapCBOR: {mt: "application/vnd.veraison.cmw+cbor", s: cmw.CBORArray},
36-
WrapJSON: {mt: "application/vnd.veraison.cmw+json", s: cmw.JSONArray},
37-
}
38-
3929
// ChallengeResponseConfig holds the configuration for one or more
4030
// challenge-response exchanges
4131
type ChallengeResponseConfig struct {
@@ -176,7 +166,7 @@ func (cfg *ChallengeResponseConfig) Run() ([]byte, error) {
176166
}
177167

178168
if cfg.Wrap != NoWrap {
179-
evidence, mediaType, err = cfg.wrapEvInCMW(evidence, mediaType)
169+
evidence, mediaType, err = cfg.wrapEvidenceInCMW(evidence, mediaType)
180170
if err != nil {
181171
return nil, err
182172
}
@@ -185,21 +175,28 @@ func (cfg *ChallengeResponseConfig) Run() ([]byte, error) {
185175
return cfg.ChallengeResponse(evidence, mediaType, sessionURI)
186176
}
187177

188-
func (cfg ChallengeResponseConfig) wrapEvInCMW(evidence []byte, mt string) ([]byte, string, error) {
189-
c := &cmw.CMW{}
190-
c.SetMediaType(mt)
191-
c.SetValue(evidence)
192-
c.SetIndicators(cmw.Evidence)
193-
cmi, ok := cmwInfoMap[cfg.Wrap]
194-
if !ok {
195-
return nil, "", fmt.Errorf("unable to get cmw info for Wrap: %d", cfg.Wrap)
178+
func (cfg ChallengeResponseConfig) wrapEvidenceInCMW(evidence []byte, mt string) ([]byte, string, error) {
179+
c, err := cmw.NewMonad(mt, evidence, cmw.Evidence)
180+
if err != nil {
181+
return nil, "", fmt.Errorf("CMW creation failed: %w", err)
196182
}
197183

198-
cm, err := c.Serialize(cmi.s)
199-
if err != nil {
200-
return nil, "", fmt.Errorf("cmw serialization failed: %w", err)
184+
switch cfg.Wrap {
185+
case WrapCBOR:
186+
cm, err := c.MarshalCBOR()
187+
if err != nil {
188+
return nil, "", fmt.Errorf("CMW CBOR marshalling failed: %w", err)
189+
}
190+
return cm, "application/vnd.veraison.cmw+cbor", nil
191+
case WrapJSON:
192+
cm, err := c.MarshalJSON()
193+
if err != nil {
194+
return nil, "", fmt.Errorf("CMW JSON marshalling failed: %w", err)
195+
}
196+
return cm, "application/vnd.veraison.cmw+json", nil
201197
}
202-
return cm, cmi.mt, nil
198+
199+
return nil, "", fmt.Errorf("internal error: invalid CMW wrap option: %d", cfg.Wrap)
203200
}
204201

205202
// NewSession runs the first part of the interaction which deals with session

0 commit comments

Comments
 (0)