From 8d2df9a9d0bb634dec9f4c80b885984fc4fbb77d Mon Sep 17 00:00:00 2001 From: Bob Stasyszyn Date: Fri, 27 Sep 2024 09:06:21 -0400 Subject: [PATCH] feat: Add support for VC model 2.0 in presentation exchange Signed-off-by: Bob Stasyszyn --- cmd/vc-rest/go.mod | 2 +- cmd/vc-rest/go.sum | 4 +- component/credentialstatus/go.mod | 2 +- component/credentialstatus/go.sum | 4 +- component/event/go.mod | 2 +- component/event/go.sum | 4 +- component/profile/reader/file/go.mod | 2 +- component/profile/reader/file/go.sum | 4 +- component/wallet-cli/go.mod | 3 +- component/wallet-cli/go.sum | 4 +- go.mod | 2 +- go.sum | 4 +- pkg/restapi/v1/verifier/controller.go | 10 +- test/bdd/attestation/go.mod | 2 +- test/bdd/attestation/go.sum | 4 +- test/bdd/features/oidc4vc_api.feature | 15 +- test/bdd/fixtures/profile/profiles.json | 525 ++++++++++++++++++ test/bdd/go.mod | 3 +- test/bdd/go.sum | 4 +- .../contexts/examples-crude-product-v2.jsonld | 85 +++ test/bdd/pkg/bddutil/util.go | 6 + test/stress/go.mod | 3 +- test/stress/go.sum | 4 +- 23 files changed, 662 insertions(+), 36 deletions(-) create mode 100644 test/bdd/pkg/bddutil/contexts/examples-crude-product-v2.jsonld diff --git a/cmd/vc-rest/go.mod b/cmd/vc-rest/go.mod index 758bee882..149b922c0 100644 --- a/cmd/vc-rest/go.mod +++ b/cmd/vc-rest/go.mod @@ -25,7 +25,7 @@ require ( github.com/trustbloc/did-go v1.3.1-0.20240910130808-bf0188fdfe70 github.com/trustbloc/logutil-go v1.0.0 github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104 - github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e + github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 github.com/trustbloc/vcs v0.0.0 github.com/trustbloc/vcs/component/credentialstatus v0.0.0-00010101000000-000000000000 github.com/trustbloc/vcs/component/echo v0.0.0-00010101000000-000000000000 diff --git a/cmd/vc-rest/go.sum b/cmd/vc-rest/go.sum index feca29fc8..00bc3ef6c 100644 --- a/cmd/vc-rest/go.sum +++ b/cmd/vc-rest/go.sum @@ -676,8 +676,8 @@ github.com/trustbloc/logutil-go v1.0.0 h1:KzNs9TRbnmn+M3oYw9UkrtOjNd3ZGO8aLgfYtt github.com/trustbloc/logutil-go v1.0.0/go.mod h1:JlxT0oZfNKgIlSNtgc001WEeDMxlnAvOM43gNm8DQVc= github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104 h1:0IW4muaGvhjJ4OkG6/PQG3DGf5POWxlA1wwEYsxWQ+4= github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104/go.mod h1:3yChjB5KOT7B9eZe0W1XaIx3MNUuC1Oe9nR/GCtI1W0= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e h1:m2C6rWOMPzFjvjzv/1uuz8RlVd8uIMlOCfcWX9cRvtk= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e/go.mod h1:mjjE1cfzbV5s1NTXhi10YceDyg7c+EBl70LUYcX1mYo= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 h1:k+C+8dfvi/0EOwr6Yjlei5yCYkg2jxPXYgWUYXE7hYU= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5/go.mod h1:LJTZ+GIYr/HeklpmhzlNfz9zAd/t4mj4Kylr9+ubHnc= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= diff --git a/component/credentialstatus/go.mod b/component/credentialstatus/go.mod index 0ce93977e..1fff7b00a 100644 --- a/component/credentialstatus/go.mod +++ b/component/credentialstatus/go.mod @@ -18,7 +18,7 @@ require ( github.com/trustbloc/kms-go v1.1.2 github.com/trustbloc/logutil-go v1.0.0 github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104 - github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e + github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 github.com/trustbloc/vcs v0.0.0-00010101000000-000000000000 ) diff --git a/component/credentialstatus/go.sum b/component/credentialstatus/go.sum index a3888e492..bf8403a7b 100644 --- a/component/credentialstatus/go.sum +++ b/component/credentialstatus/go.sum @@ -472,8 +472,8 @@ github.com/trustbloc/logutil-go v1.0.0 h1:KzNs9TRbnmn+M3oYw9UkrtOjNd3ZGO8aLgfYtt github.com/trustbloc/logutil-go v1.0.0/go.mod h1:JlxT0oZfNKgIlSNtgc001WEeDMxlnAvOM43gNm8DQVc= github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104 h1:0IW4muaGvhjJ4OkG6/PQG3DGf5POWxlA1wwEYsxWQ+4= github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104/go.mod h1:3yChjB5KOT7B9eZe0W1XaIx3MNUuC1Oe9nR/GCtI1W0= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e h1:m2C6rWOMPzFjvjzv/1uuz8RlVd8uIMlOCfcWX9cRvtk= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e/go.mod h1:mjjE1cfzbV5s1NTXhi10YceDyg7c+EBl70LUYcX1mYo= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 h1:k+C+8dfvi/0EOwr6Yjlei5yCYkg2jxPXYgWUYXE7hYU= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5/go.mod h1:LJTZ+GIYr/HeklpmhzlNfz9zAd/t4mj4Kylr9+ubHnc= github.com/urfave/negroni v1.0.0 h1:kIimOitoypq34K7TG7DUaJ9kq/N4Ofuwi1sjz0KipXc= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= diff --git a/component/event/go.mod b/component/event/go.mod index 93e9476d6..d2bf2a207 100644 --- a/component/event/go.mod +++ b/component/event/go.mod @@ -13,7 +13,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/trustbloc/cmdutil-go v1.0.0 github.com/trustbloc/logutil-go v1.0.0 - github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e + github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 github.com/trustbloc/vcs v0.0.0-00010101000000-000000000000 go.opentelemetry.io/otel/trace v1.29.0 ) diff --git a/component/event/go.sum b/component/event/go.sum index 6444937de..3818bdc91 100644 --- a/component/event/go.sum +++ b/component/event/go.sum @@ -454,8 +454,8 @@ github.com/trustbloc/kms-go v1.1.2 h1:nAlhDoHkSyX1eQFRz/sJsdgmJuNadyX7FJEy/9ROwy github.com/trustbloc/kms-go v1.1.2/go.mod h1:OKOtsLbE6W5s4mpjWkvk8XEqcmt9vTgVmDNkHELpWO0= github.com/trustbloc/logutil-go v1.0.0 h1:KzNs9TRbnmn+M3oYw9UkrtOjNd3ZGO8aLgfYttMypcE= github.com/trustbloc/logutil-go v1.0.0/go.mod h1:JlxT0oZfNKgIlSNtgc001WEeDMxlnAvOM43gNm8DQVc= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e h1:m2C6rWOMPzFjvjzv/1uuz8RlVd8uIMlOCfcWX9cRvtk= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e/go.mod h1:mjjE1cfzbV5s1NTXhi10YceDyg7c+EBl70LUYcX1mYo= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 h1:k+C+8dfvi/0EOwr6Yjlei5yCYkg2jxPXYgWUYXE7hYU= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5/go.mod h1:LJTZ+GIYr/HeklpmhzlNfz9zAd/t4mj4Kylr9+ubHnc= github.com/urfave/negroni v1.0.0 h1:kIimOitoypq34K7TG7DUaJ9kq/N4Ofuwi1sjz0KipXc= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= diff --git a/component/profile/reader/file/go.mod b/component/profile/reader/file/go.mod index c2957d125..9cfa1b4b9 100644 --- a/component/profile/reader/file/go.mod +++ b/component/profile/reader/file/go.mod @@ -125,7 +125,7 @@ require ( github.com/tidwall/pretty v1.2.1 // indirect github.com/tidwall/sjson v1.2.5 // indirect github.com/trustbloc/bbs-signature-go v1.0.2 // indirect - github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e // indirect + github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect github.com/veraison/go-cose v1.3.0-rc.1 // indirect diff --git a/component/profile/reader/file/go.sum b/component/profile/reader/file/go.sum index 74ec4884e..e2d27f683 100644 --- a/component/profile/reader/file/go.sum +++ b/component/profile/reader/file/go.sum @@ -476,8 +476,8 @@ github.com/trustbloc/logutil-go v1.0.0 h1:KzNs9TRbnmn+M3oYw9UkrtOjNd3ZGO8aLgfYtt github.com/trustbloc/logutil-go v1.0.0/go.mod h1:JlxT0oZfNKgIlSNtgc001WEeDMxlnAvOM43gNm8DQVc= github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104 h1:0IW4muaGvhjJ4OkG6/PQG3DGf5POWxlA1wwEYsxWQ+4= github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104/go.mod h1:3yChjB5KOT7B9eZe0W1XaIx3MNUuC1Oe9nR/GCtI1W0= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e h1:m2C6rWOMPzFjvjzv/1uuz8RlVd8uIMlOCfcWX9cRvtk= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e/go.mod h1:mjjE1cfzbV5s1NTXhi10YceDyg7c+EBl70LUYcX1mYo= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 h1:k+C+8dfvi/0EOwr6Yjlei5yCYkg2jxPXYgWUYXE7hYU= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5/go.mod h1:LJTZ+GIYr/HeklpmhzlNfz9zAd/t4mj4Kylr9+ubHnc= github.com/urfave/negroni v1.0.0 h1:kIimOitoypq34K7TG7DUaJ9kq/N4Ofuwi1sjz0KipXc= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= diff --git a/component/wallet-cli/go.mod b/component/wallet-cli/go.mod index 0cdd5883e..163ee2abe 100644 --- a/component/wallet-cli/go.mod +++ b/component/wallet-cli/go.mod @@ -15,7 +15,6 @@ require ( github.com/golang/mock v1.6.0 github.com/google/uuid v1.6.0 github.com/henvic/httpretty v0.1.0 - github.com/jinzhu/copier v0.3.5 github.com/makiuchi-d/gozxing v0.1.1 github.com/ory/dockertest/v3 v3.10.1-0.20240704115616-d229e74b748d github.com/piprate/json-gold v0.5.1-0.20230111113000-6ddbe6e6f19f @@ -28,7 +27,7 @@ require ( github.com/trustbloc/kms-go v1.1.2 github.com/trustbloc/logutil-go v1.0.0 github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104 - github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e + github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 github.com/trustbloc/vcs v0.0.0-00010101000000-000000000000 github.com/valyala/fastjson v1.6.4 github.com/veraison/go-cose v1.3.0-rc.1 diff --git a/component/wallet-cli/go.sum b/component/wallet-cli/go.sum index 010634515..2d9a45352 100644 --- a/component/wallet-cli/go.sum +++ b/component/wallet-cli/go.sum @@ -624,8 +624,8 @@ github.com/trustbloc/logutil-go v1.0.0 h1:KzNs9TRbnmn+M3oYw9UkrtOjNd3ZGO8aLgfYtt github.com/trustbloc/logutil-go v1.0.0/go.mod h1:JlxT0oZfNKgIlSNtgc001WEeDMxlnAvOM43gNm8DQVc= github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104 h1:0IW4muaGvhjJ4OkG6/PQG3DGf5POWxlA1wwEYsxWQ+4= github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104/go.mod h1:3yChjB5KOT7B9eZe0W1XaIx3MNUuC1Oe9nR/GCtI1W0= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e h1:m2C6rWOMPzFjvjzv/1uuz8RlVd8uIMlOCfcWX9cRvtk= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e/go.mod h1:mjjE1cfzbV5s1NTXhi10YceDyg7c+EBl70LUYcX1mYo= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 h1:k+C+8dfvi/0EOwr6Yjlei5yCYkg2jxPXYgWUYXE7hYU= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5/go.mod h1:LJTZ+GIYr/HeklpmhzlNfz9zAd/t4mj4Kylr9+ubHnc= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= diff --git a/go.mod b/go.mod index a49636541..e5e1126b5 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,7 @@ require ( github.com/trustbloc/did-go v1.3.1-0.20240910130808-bf0188fdfe70 github.com/trustbloc/kms-go v1.1.2 github.com/trustbloc/logutil-go v1.0.0-rc1 - github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e + github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 github.com/valyala/fastjson v1.6.4 github.com/veraison/go-cose v1.3.0-rc.1 github.com/xeipuuv/gojsonschema v1.2.0 diff --git a/go.sum b/go.sum index f748f6ac8..2646c9e9c 100644 --- a/go.sum +++ b/go.sum @@ -637,8 +637,8 @@ github.com/trustbloc/kms-go v1.1.2 h1:nAlhDoHkSyX1eQFRz/sJsdgmJuNadyX7FJEy/9ROwy github.com/trustbloc/kms-go v1.1.2/go.mod h1:OKOtsLbE6W5s4mpjWkvk8XEqcmt9vTgVmDNkHELpWO0= github.com/trustbloc/logutil-go v1.0.0-rc1 h1:rRJbvgQfrlUfyej+mY0nuQJymGqjRW4oZEwKi544F4c= github.com/trustbloc/logutil-go v1.0.0-rc1/go.mod h1:JlxT0oZfNKgIlSNtgc001WEeDMxlnAvOM43gNm8DQVc= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e h1:m2C6rWOMPzFjvjzv/1uuz8RlVd8uIMlOCfcWX9cRvtk= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e/go.mod h1:mjjE1cfzbV5s1NTXhi10YceDyg7c+EBl70LUYcX1mYo= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 h1:k+C+8dfvi/0EOwr6Yjlei5yCYkg2jxPXYgWUYXE7hYU= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5/go.mod h1:LJTZ+GIYr/HeklpmhzlNfz9zAd/t4mj4Kylr9+ubHnc= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= diff --git a/pkg/restapi/v1/verifier/controller.go b/pkg/restapi/v1/verifier/controller.go index d654388d4..5bd67964f 100644 --- a/pkg/restapi/v1/verifier/controller.go +++ b/pkg/restapi/v1/verifier/controller.go @@ -623,8 +623,14 @@ func (c *Controller) verifyAuthorizationResponseTokens( vpTokenClaims.VP.CustomFields = map[string]interface{}{} } - vpTokenClaims.VP.Context = append(vpTokenClaims.VP.Context, presexch.PresentationSubmissionJSONLDContextIRI) - vpTokenClaims.VP.Type = append(vpTokenClaims.VP.Type, presexch.PresentationSubmissionJSONLDType) + if !lo.Contains(vpTokenClaims.VP.Context, presexch.PresentationSubmissionJSONLDContextIRI) { + vpTokenClaims.VP.Context = append(vpTokenClaims.VP.Context, presexch.PresentationSubmissionJSONLDContextIRI) + } + + if !lo.Contains(vpTokenClaims.VP.Type, presexch.PresentationSubmissionJSONLDType) { + vpTokenClaims.VP.Type = append(vpTokenClaims.VP.Type, presexch.PresentationSubmissionJSONLDType) + } + vpTokenClaims.VP.CustomFields[vpSubmissionProperty] = presentationSubmission processedVPTokens = append(processedVPTokens, diff --git a/test/bdd/attestation/go.mod b/test/bdd/attestation/go.mod index 375b32cf2..f46a2505b 100644 --- a/test/bdd/attestation/go.mod +++ b/test/bdd/attestation/go.mod @@ -13,7 +13,7 @@ require ( github.com/gorilla/mux v1.8.0 github.com/trustbloc/cmdutil-go v1.0.0 github.com/trustbloc/did-go v1.3.1-0.20240910130808-bf0188fdfe70 - github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e + github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b ) diff --git a/test/bdd/attestation/go.sum b/test/bdd/attestation/go.sum index c1dc8f746..813f05ab1 100644 --- a/test/bdd/attestation/go.sum +++ b/test/bdd/attestation/go.sum @@ -232,8 +232,8 @@ github.com/trustbloc/kms-go v1.1.2 h1:nAlhDoHkSyX1eQFRz/sJsdgmJuNadyX7FJEy/9ROwy github.com/trustbloc/kms-go v1.1.2/go.mod h1:OKOtsLbE6W5s4mpjWkvk8XEqcmt9vTgVmDNkHELpWO0= github.com/trustbloc/logutil-go v0.0.0-20221124174025-c46110e3ea42 h1:Mzg9wvEoUIWPoI/GHz3YlVbd4nKWeSPGc6+3l95eOZU= github.com/trustbloc/logutil-go v0.0.0-20221124174025-c46110e3ea42/go.mod h1:HRaXVV1caceumbDBwLO3ByiCcAc18KwrNvZ7JQBvDIQ= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e h1:m2C6rWOMPzFjvjzv/1uuz8RlVd8uIMlOCfcWX9cRvtk= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e/go.mod h1:mjjE1cfzbV5s1NTXhi10YceDyg7c+EBl70LUYcX1mYo= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 h1:k+C+8dfvi/0EOwr6Yjlei5yCYkg2jxPXYgWUYXE7hYU= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5/go.mod h1:LJTZ+GIYr/HeklpmhzlNfz9zAd/t4mj4Kylr9+ubHnc= github.com/veraison/go-cose v1.1.1-0.20240126165338-2300d5c96dbd h1:QhdCHSW1/oosJbzBTEYLU6xcKxXbQzzqFnhCtW2UWbA= github.com/veraison/go-cose v1.1.1-0.20240126165338-2300d5c96dbd/go.mod h1:D1wnviyjdmcF8AO5Y9kVGU6OGuvXUMGiE0Auo/fYRYo= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= diff --git a/test/bdd/features/oidc4vc_api.feature b/test/bdd/features/oidc4vc_api.feature index 594e93b3b..f1dcaf03d 100644 --- a/test/bdd/features/oidc4vc_api.feature +++ b/test/bdd/features/oidc4vc_api.feature @@ -50,13 +50,20 @@ Feature: OIDC4VC REST API And Verifier with profile "" requests deleted interactions claims Examples: - | issuerProfile | credentialType | clientRegistrationMethod | credentialTemplate | verifierProfile | presentationDefinitionID | fields | + | issuerProfile | credentialType | clientRegistrationMethod | credentialTemplate | verifierProfile | presentationDefinitionID | fields | # SDJWT issuer, JWT verifier, no limit disclosure in PD query. - | bank_issuer_v2/v1.0 | UniversityDegreeCredential | dynamic | universityDegreeTemplateID | v_myprofile_jwt/v1.0 | 32f54163-no-limit-disclosure-single-field | degree_type_id | + | bank_issuer_v2/v1.0 | UniversityDegreeCredential | dynamic | universityDegreeTemplateID | v_myprofile_jwt/v1.0 | 32f54163-no-limit-disclosure-single-field | degree_type_id | # SDJWT issuer, JWT verifier, limit disclosure and optional fields in PD query. - | bank_issuer_v2/v1.0 | CrudeProductCredential | discoverable | crudeProductCredentialV2TemplateID | v_myprofile_jwt/v1.0 | 3c8b1d9a-limit-disclosure-optional-fields | unit_of_measure_barrel,api_gravity,category,supplier_address | + | bank_issuer_v2/v1.0 | CrudeProductCredential | discoverable | crudeProductCredentialV2TemplateID | v_myprofile_jwt/v1.0 | 3c8b1d9a-limit-disclosure-optional-fields | unit_of_measure_barrel,api_gravity,category,supplier_address | # JWT issuer, JWT verifier, no limit disclosure and optional fields in PD query. - | i_myprofile_ud_es256k_jwt_v2/v1.0 | PermanentResidentCard | pre-registered | permanentResidentCardTemplateID | v_myprofile_jwt/v1.0 | 32f54163-no-limit-disclosure-optional-fields | lpr_category_id,registration_city,commuter_classification | + | i_myprofile_ud_es256k_jwt_v2/v1.0 | PermanentResidentCard | pre-registered | permanentResidentCardTemplateID | v_myprofile_jwt/v1.0 | 32f54163-no-limit-disclosure-optional-fields | lpr_category_id,registration_city,commuter_classification | +# JWT issuer with status list feature disabled, JWT verifier, no limit disclosure and optional fields in PD query. + | i_myprofile_ud_es256k_jwt_no_csl_v2/v1.0 | PermanentResidentCard | pre-registered | permanentResidentCardTemplateID | v_myprofile_jwt/v1.0 | 32f54163-no-limit-disclosure-optional-fields | lpr_category_id,registration_city,commuter_classification | +# LDP Data Integrity issuer V2, LDP verifier, no limit disclosure and schema match in PD query. +# TODO: Implement Data Integrity V2 +# | i_myprofile_ud_di_ecdsa-2019_v2/v1.0 | PermanentResidentCard | pre-registered | permanentResidentCardTemplateID | v_myprofile_ldp/v1.0 | 062759b1-no-limit-disclosure-optional-fields-v2 | lpr_category_id,registration_city,commuter_classification | +# LDP issuer, LDP verifier, no limit disclosure and schema match in PD query. + | i_myprofile_cmtr_p256_ldp_v2/v1.0 | CrudeProductCredential | pre-registered | crudeProductCredentialTemplateID | v_myprofile_ldp/v1.0 | lp403pb9-schema-match-v2 | schema_id | @oidc4vc_rest_auth_flow_fail Scenario Outline: OIDC credential issuance and verification Auth flow negative tests diff --git a/test/bdd/fixtures/profile/profiles.json b/test/bdd/fixtures/profile/profiles.json index 05c2d06e2..700e879b3 100644 --- a/test/bdd/fixtures/profile/profiles.json +++ b/test/bdd/fixtures/profile/profiles.json @@ -489,6 +489,155 @@ }, "createDID": true }, + { + "issuer": { + "id": "i_myprofile_ud_di_ecdsa-2019_v2", + "version": "v1.0", + "groupID": "i_myprofile_ud_di_ecdsa-2019_v2", + "name": "i_myprofile_ud_di_ecdsa-2019_v2", + "organizationID": "00000000-0000-0000-0000-000000000001", + "url": "http://vc-rest-echo.trustbloc.local:8075", + "active": true, + "vcConfig": { + "model": "w3c-vc-2.0", + "refreshServiceEnabled": false, + "signingAlgorithm": "JsonWebSignature2020", + "signatureRepresentation": 0, + "keyType": "ECDSAP256DER", + "format": "ldp", + "didMethod": "ion", + "status": { + "type": "BitstringStatusListEntry" + }, + "dataIntegrityProof": { + "enable": true, + "suiteType": "ecdsa-2019" + } + }, + "oidcConfig": { + "client_id": "7d4u50e7w6nfq8tfayhzplgjf", + "client_secret_handle": "282ks4fkuqfosus5k0x30abnv", + "redirect_uri": "https://api-gateway.trustbloc.local:5566/oidc/redirect", + "issuer_well_known": "http://cognito-mock.trustbloc.local:9229/local_5a9GzRvB/.well-known/openid-configuration", + "scopes_supported": [ + "openid", + "profile" + ], + "grant_types_supported": [ + "authorization_code", + "urn:ietf:params:oauth:grant-type:pre-authorized_code" + ], + "response_types_supported": [ + "code" + ], + "token_endpoint_auth_methods_supported": [ + "none" + ], + "enable_dynamic_client_registration": true, + "wallet_initiated_auth_flow_supported": true, + "pre-authorized_grant_anonymous_access_supported": true, + "claims_endpoint": "https://mock-login-consent.example.com:8099/claim-data?credentialType=PermanentResidentCard" + }, + "credentialTemplates": [ + { + "contexts": [ + "https://www.w3.org/ns/credentials/v2", + "https://w3id.org/citizenship/v2" + ], + "type": "PermanentResidentCard", + "id": "permanentResidentCardTemplateID", + "issuer": "did:ion:i_myprofile_ud_di_ecdsa-2019_v2", + "checks": { + "strict": false + } + } + ], + "credentialMetadata": { + "display": [], + "credential_configurations_supported": { + "VerifiedEmployeeIdentifier": { + "format": "ldp_vc", + "display": [ + { + "name": "Verified Employee", + "locale": "en-US", + "logo": { + "uri": "https://example.com/public/logo.png", + "alt_text": "a square logo of a employee verification" + }, + "background_color": "#12107c", + "text_color": "#FFFFFF" + } + ], + "credential_definition": { + "type": [ + "VerifiableCredential", + "PermanentResidentCard" + ], + "credentialSubject": { + "displayName": { + "display": [ + { + "name": "Employee", + "locale": "en-US" + } + ] + }, + "givenName": { + "display": [ + { + "name": "Given Name", + "locale": "en-US" + } + ] + }, + "jobTitle": { + "display": [ + { + "name": "Job Title", + "locale": "en-US" + } + ] + }, + "surname": { + "display": [ + { + "name": "Surname", + "locale": "en-US" + } + ] + }, + "preferredLanguage": { + "display": [ + { + "name": "Preferred Language", + "locale": "en-US" + } + ] + }, + "mail": { + "display": [ + { + "name": "Mail", + "locale": "en-US" + } + ] + }, + "photo": { + "display": [ + { + "name": "Photo" + } + ] + } + } + } + } + } + } + }, + "createDID": true + }, { "issuer": { "id": "i_myprofile_ud_es256_jwt", @@ -733,6 +882,151 @@ }, "createDID": true }, + { + "issuer": { + "id": "i_myprofile_ud_es256k_jwt_no_csl_v2", + "version": "v1.0", + "groupID": "group_i_myprofile_ud_es256k_jwt_no_csl_v2", + "name": "i_myprofile_ud_es256k_jwt_no_csl_v2", + "organizationID": "00000000-0000-0000-0000-000000000001", + "url": "http://vc-rest-echo.trustbloc.local:8075", + "active": true, + "vcConfig": { + "model": "w3c-vc-2.0", + "refreshServiceEnabled": false, + "signingAlgorithm": "ES256K", + "signatureRepresentation": 1, + "keyType": "ECDSASecp256k1DER", + "format": "jwt", + "didMethod": "ion", + "status": { + "type": "BitstringStatusListEntry" + } + }, + "oidcConfig": { + "client_id": "7d4u50e7w6nfq8tfayhzplgjf", + "client_secret_handle": "282ks4fkuqfosus5k0x30abnv", + "redirect_uri": "https://api-gateway.trustbloc.local:5566/oidc/redirect", + "issuer_well_known": "http://cognito-mock.trustbloc.local:9229/local_5a9GzRvB/.well-known/openid-configuration", + "scopes_supported": [ + "openid", + "profile" + ], + "grant_types_supported": [ + "authorization_code", + "urn:ietf:params:oauth:grant-type:pre-authorized_code" + ], + "response_types_supported": [ + "code" + ], + "token_endpoint_auth_methods_supported": [ + "none" + ], + "enable_dynamic_client_registration": true, + "wallet_initiated_auth_flow_supported": true, + "pre-authorized_grant_anonymous_access_supported": true, + "claims_endpoint": "https://mock-login-consent.example.com:8099/claim-data?credentialType=PermanentResidentCard" + }, + "credentialTemplates": [ + { + "contexts": [ + "https://www.w3.org/ns/credentials/v2", + "https://w3id.org/citizenship/v2" + ], + "type": "PermanentResidentCard", + "id": "permanentResidentCardTemplateID", + "issuer": "did:orb:i_myprofile_ud_es256k_jwt_v2", + "checks": { + "strict": false + } + } + ], + "credentialMetadata": { + "display": [], + "credential_configurations_supported": { + "PermanentResidentCardIdentifier": { + "format": "jwt_vc_json", + "display": [ + { + "name": "Permanent Resident Card", + "locale": "en-US", + "logo": { + "uri": "https://example.com/public/logo.png", + "alt_text": "a square logo" + }, + "background_color": "#12107c", + "text_color": "#FFFFFF" + } + ], + "credential_definition": { + "credentialSubject": { + "displayName": { + "display": [ + { + "name": "Employee", + "locale": "en-US" + } + ] + }, + "givenName": { + "display": [ + { + "name": "Given Name", + "locale": "en-US" + } + ] + }, + "jobTitle": { + "display": [ + { + "name": "Job Title", + "locale": "en-US" + } + ] + }, + "surname": { + "display": [ + { + "name": "Surname", + "locale": "en-US" + } + ] + }, + "preferredLanguage": { + "display": [ + { + "name": "Preferred Language", + "locale": "en-US" + } + ] + }, + "mail": { + "display": [ + { + "name": "Mail", + "locale": "en-US" + } + ] + }, + "photo": { + "display": [ + { + "name": "Photo" + } + ] + } + }, + "type": [ + "VerifiableCredential", + "PermanentResidentCard" + ] + } + } + } + } + }, + "createDID": true + }, { "issuer": { "id": "i_myprofile_ud_es256k_jwt", @@ -1657,6 +1951,153 @@ }, "createDID": true }, + { + "issuer": { + "id": "i_myprofile_cmtr_p256_ldp_v2", + "version": "v1.0", + "groupID": "group_i_myprofile_cmtr_p256_ldp_v2", + "name": "i_myprofile_cmtr_p256_ldp_v2", + "organizationID": "00000000-0000-0000-0000-000000000001", + "url": "http://vc-rest-echo.trustbloc.local:8075", + "active": true, + "vcConfig": { + "model": "w3c-vc-2.0", + "refreshServiceEnabled": false, + "signingAlgorithm": "JsonWebSignature2020", + "signatureRepresentation": 1, + "keyType": "ECDSAP256DER", + "format": "ldp", + "didMethod": "jwk", + "status": { + "type": "BitstringStatusListEntry" + } + }, + "oidcConfig": { + "client_id": "7d4u50e7w6nfq8tfayhzplgjf", + "client_secret_handle": "282ks4fkuqfosus5k0x30abnv", + "redirect_uri": "https://api-gateway.trustbloc.local:5566/oidc/redirect", + "issuer_well_known": "http://cognito-mock.trustbloc.local:9229/local_5a9GzRvB/.well-known/openid-configuration", + "scopes_supported": [ + "openid", + "profile" + ], + "grant_types_supported": [ + "authorization_code", + "urn:ietf:params:oauth:grant-type:pre-authorized_code" + ], + "response_types_supported": [ + "code" + ], + "token_endpoint_auth_methods_supported": [ + "none" + ], + "enable_dynamic_client_registration": true, + "pre-authorized_grant_anonymous_access_supported": true, + "wallet_initiated_auth_flow_supported": true, + "signed_credential_offer_supported": true, + "signed_issuer_metadata_supported": true, + "claims_endpoint": "https://mock-login-consent.example.com:8099/claim-data?credentialType=CrudeProductCredential" + }, + "credentialTemplates": [ + { + "contexts": [ + "https://www.w3.org/ns/credentials/v2", + "https://trustbloc.github.io/context/vc/examples-crude-product-v2.jsonld" + ], + "type": "CrudeProductCredential", + "id": "crudeProductCredentialTemplateID", + "issuer": "did:jwk:i_myprofile_cmtr_p256_ldp_v2", + "checks": { + "strict": true + } + } + ], + "credentialMetadata": { + "display": [], + "credential_configurations_supported": { + "VerifiedEmployeeIdentifier": { + "format": "ldp_vc", + "display": [ + { + "name": "Verified Employee", + "locale": "en-US", + "logo": { + "uri": "https://example.com/public/logo.png", + "alt_text": "a square logo of a employee verification" + }, + "background_color": "#12107c", + "text_color": "#FFFFFF" + } + ], + "credential_definition": { + "credentialSubject": { + "displayName": { + "display": [ + { + "name": "Employee", + "locale": "en-US" + } + ] + }, + "givenName": { + "display": [ + { + "name": "Given Name", + "locale": "en-US" + } + ] + }, + "jobTitle": { + "display": [ + { + "name": "Job Title", + "locale": "en-US" + } + ] + }, + "surname": { + "display": [ + { + "name": "Surname", + "locale": "en-US" + } + ] + }, + "preferredLanguage": { + "display": [ + { + "name": "Preferred Language", + "locale": "en-US" + } + ] + }, + "mail": { + "display": [ + { + "name": "Mail", + "locale": "en-US" + } + ] + }, + "photo": { + "display": [ + { + "name": "Photo" + } + ] + } + }, + "type": [ + "VerifiableCredential", + "CrudeProductCredential" + ] + } + } + } + } + }, + "createDID": true + }, { "issuer": { "id": "bank_issuer", @@ -2851,6 +3292,34 @@ } ] }, + { + "id": "lp403pb9-schema-match-v2", + "input_descriptors": [ + { + "id": "schema", + "name": "schema", + "purpose": "Match credentials using specific schema.", + "constraints": { + "fields": [ + { + "path": [ + "$[\"@context\"]" + ], + "id": "schema_id", + "purpose": "Match credentials using specific schema.", + "filter": { + "type": "array", + "contains": { + "type": "string", + "pattern": "https://trustbloc.github.io/context/vc/examples-crude-product-v2.jsonld" + } + } + } + ] + } + } + ] + }, { "id": "062759b1-no-limit-disclosure-optional-fields", "input_descriptors": [ @@ -2906,6 +3375,62 @@ } } ] + }, + { + "id": "062759b1-no-limit-disclosure-optional-fields-v2", + "input_descriptors": [ + { + "id": "lprCategory", + "name": "lprCategory", + "purpose": "Permanent Resident Card specification", + "schema": [ + { + "uri": "https://www.w3.org/ns/credentials/v2#VerifiableCredential" + } + ], + "constraints": { + "fields": [ + { + "path": [ + "$.credentialSubject.lprCategory", + "$.vc.credentialSubject.lprCategory" + ], + "id": "lpr_category_id", + "purpose": "Specific LPR category.", + "filter": { + "type": "string", + "const": "C09" + } + }, + { + "path": [ + "$.credentialSubject.commuterClassification", + "$.vc.credentialSubject.commuterClassification" + ], + "id": "commuter_classification", + "purpose": "Specific commuter classification.", + "filter": { + "type": "string", + "const": "C1" + } + }, + { + "path": [ + "$.credentialSubject.registrationCity", + "$.vc.credentialSubject.registrationCity" + ], + "id": "registration_city", + "purpose": "Specific registration city.", + "optional": true, + "filter": { + "type": "string", + "const": "Albuquerque" + } + } + ] + } + } + ] } ] }, diff --git a/test/bdd/go.mod b/test/bdd/go.mod index 5a8bf1888..a08fa4c12 100644 --- a/test/bdd/go.mod +++ b/test/bdd/go.mod @@ -29,7 +29,7 @@ require ( github.com/trustbloc/kms-go v1.1.2 github.com/trustbloc/logutil-go v1.0.0 github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104 - github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e + github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 github.com/trustbloc/vcs v0.1.9-0.20230210204445-f2870a36f0ea github.com/trustbloc/vcs/component/wallet-cli v0.0.0-20240103173902-7fbe030659b2 github.com/trustbloc/vcs/test/stress v0.0.0-00010101000000-000000000000 @@ -124,7 +124,6 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/invopop/yaml v0.3.1 // indirect github.com/iris-contrib/schema v0.0.6 // indirect - github.com/jinzhu/copier v0.3.5 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kataras/blocks v0.0.8 // indirect diff --git a/test/bdd/go.sum b/test/bdd/go.sum index 010e4a047..4cce73e1e 100644 --- a/test/bdd/go.sum +++ b/test/bdd/go.sum @@ -790,8 +790,8 @@ github.com/trustbloc/logutil-go v1.0.0 h1:KzNs9TRbnmn+M3oYw9UkrtOjNd3ZGO8aLgfYtt github.com/trustbloc/logutil-go v1.0.0/go.mod h1:JlxT0oZfNKgIlSNtgc001WEeDMxlnAvOM43gNm8DQVc= github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104 h1:0IW4muaGvhjJ4OkG6/PQG3DGf5POWxlA1wwEYsxWQ+4= github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104/go.mod h1:3yChjB5KOT7B9eZe0W1XaIx3MNUuC1Oe9nR/GCtI1W0= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e h1:m2C6rWOMPzFjvjzv/1uuz8RlVd8uIMlOCfcWX9cRvtk= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e/go.mod h1:mjjE1cfzbV5s1NTXhi10YceDyg7c+EBl70LUYcX1mYo= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 h1:k+C+8dfvi/0EOwr6Yjlei5yCYkg2jxPXYgWUYXE7hYU= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5/go.mod h1:LJTZ+GIYr/HeklpmhzlNfz9zAd/t4mj4Kylr9+ubHnc= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= diff --git a/test/bdd/pkg/bddutil/contexts/examples-crude-product-v2.jsonld b/test/bdd/pkg/bddutil/contexts/examples-crude-product-v2.jsonld new file mode 100644 index 000000000..f180f05d4 --- /dev/null +++ b/test/bdd/pkg/bddutil/contexts/examples-crude-product-v2.jsonld @@ -0,0 +1,85 @@ +{ + "@context": { + "@version": 1.1, + "cp": "https://mavennet.github.io/contexts/crude-product-vocab#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "schema": "http://schema.org/", + "prm": "http://schema.org/ProductModel", + "CrudeProductCredential": "schema:CrudeProductCredential", + "producer": "cp:producer", + "category": "cp:category", + "hsCode": "cp:hsCode", + "identifier": "prm:identifier", + "volume": "cp:volume", + "address": "prm:address", + "productionDate": "prm:productionDate", + "predecessorOf": "prm:predecessorOf", + "successorOf": "prm:successorOf", + "physicalSpecs": "cp:physicalSpecs", + "chemicalSpecs": "cp:chemicalSpecs", + "latitude": "cp:latitude", + "longitude": "cp:longitude", + "uom": "cp:uom", + "minimumQuantity": "cp:minimumQuantity", + "apiGravity": "cp:apiGravity", + "viscosityAt10C": "cp:viscosityAt10C", + "viscosityAt20C": "cp:viscosityAt20C", + "viscosityAt30C": "cp:viscosityAt30C", + "viscosityAt40C": "cp:viscosityAt40C", + "viscosityAt45C": "cp:viscosityAt45C", + "pourPoint": "cp:pourPoint", + "vapourPressure": "cp:vapourPressure", + "density": "cp:density", + "naphtha": "cp:naphtha", + "distillateAt350To650F": "cp:distillateAt350To650F", + "gasOilAt650To980F": "cp:gasOilAt650To980F", + "residAt980F": "cp:residAt980F", + "deemedButane": "cp:deemedButane", + "tan": "cp:tan", + "ron": "cp:ron", + "mon": "cp:mon", + "boilingPoint": "cp:boilingPoint", + "freezingPoint": "cp:freezingPoint", + "criticalTemperature": "cp:criticalTemperature", + "criticalPressure": "cp:criticalPressure", + "autoIgnitionTemperatureInAirAt1atm": "cp:autoIgnitionTemperatureInAirAt1atm", + "solubilityInTrichloroethylene": "cp:solubilityInTrichloroethylene", + "penetrationAt25C100g5sec": "cp:penetrationAt25C100g5sec", + "softeningPoint": "cp:softeningPoint", + "ductilityAt25C": "cp:ductilityAt25C", + "olefin": "cp:olefin", + "color": "cp:color", + "odor": "cp:odor", + "grossCalorificValueAt15C": "cp:grossCalorificValueAt15C", + "netCalorificValueAt15C": "cp:netCalorificValueAt15C", + "airRequiredForCombustion": "cp:airRequiredForCombustion", + "copperCorrosionAt38CFor1Hour": "cp:copperCorrosionAt38CFor1Hour", + "microCarbonResidue": "cp:microCarbonResidue", + "aromaticsTotalBTEX": "cp:aromaticsTotalBTEX", + "sedimentAndWater": "cp:sedimentAndWater", + "liquidPhaseH2S": "cp:liquidPhaseH2S", + "mercury": "cp:mercury", + "oxygenates": "cp:oxygenates", + "filterableSolids": "cp:filterableSolids", + "phosphorousVolatile": "cp:phosphorousVolatile", + "mediumChainTriglycerides": "cp:mediumChainTriglycerides", + "benzene": "cp:benzene", + "particulates": "cp:particulates", + "organicChlorides": "cp:organicChlorides", + "nickel": "cp:nickel", + "vanadium": "cp:vanadium", + "water": "cp:water", + "molecularWeight": "cp:molecularWeight", + "sulphur": "cp:sulphur", + "naphthenes": "cp:naphthenes", + "chloride": "cp:chloride", + "arsenic": "cp:arsenic", + "lead": "cp:lead", + "ethene": "cp:ethene", + "propane": "cp:propane", + "isoButane": "cp:isoButane", + "nButane": "cp:nButane", + "hydrocarbonsHeavier": "cp:hydrocarbonsHeavier", + "unsaturatedHydrocarbons": "cp:unsaturatedHydrocarbons" + } +} \ No newline at end of file diff --git a/test/bdd/pkg/bddutil/util.go b/test/bdd/pkg/bddutil/util.go index 8bbec0100..b203e4059 100644 --- a/test/bdd/pkg/bddutil/util.go +++ b/test/bdd/pkg/bddutil/util.go @@ -277,6 +277,8 @@ var ( examplesExtVocab []byte //go:embed contexts/examples-crude-product-v1.jsonld examplesCrudeProductVocab []byte + //go:embed contexts/examples-crude-product-v2.jsonld + examplesCrudeProductVocabV2 []byte //go:embed contexts/odrl.jsonld odrl []byte //go:embed contexts/revocation-list-2021.jsonld @@ -311,6 +313,10 @@ var extraContexts = []ldcontext.Document{ //nolint:gochecknoglobals URL: "https://trustbloc.github.io/context/vc/examples-crude-product-v1.jsonld", Content: examplesCrudeProductVocab, }, + { + URL: "https://trustbloc.github.io/context/vc/examples-crude-product-v2.jsonld", + Content: examplesCrudeProductVocabV2, + }, { URL: "https://www.w3.org/ns/odrl.jsonld", Content: odrl, diff --git a/test/stress/go.mod b/test/stress/go.mod index ef9178a2f..60d2c821d 100644 --- a/test/stress/go.mod +++ b/test/stress/go.mod @@ -21,7 +21,7 @@ require ( github.com/trustbloc/kms-go v1.1.2 github.com/trustbloc/logutil-go v1.0.0 github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104 - github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e + github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 github.com/trustbloc/vcs v0.1.9-0.20230210204445-f2870a36f0ea github.com/trustbloc/vcs/component/wallet-cli v0.0.0-20240103173902-7fbe030659b2 github.com/trustbloc/vcs/test/bdd v0.0.0-00010101000000-000000000000 @@ -119,7 +119,6 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/invopop/yaml v0.3.1 // indirect github.com/iris-contrib/schema v0.0.6 // indirect - github.com/jinzhu/copier v0.3.5 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kataras/blocks v0.0.8 // indirect diff --git a/test/stress/go.sum b/test/stress/go.sum index 014a46d3b..72762e275 100644 --- a/test/stress/go.sum +++ b/test/stress/go.sum @@ -642,8 +642,8 @@ github.com/trustbloc/logutil-go v1.0.0 h1:KzNs9TRbnmn+M3oYw9UkrtOjNd3ZGO8aLgfYtt github.com/trustbloc/logutil-go v1.0.0/go.mod h1:JlxT0oZfNKgIlSNtgc001WEeDMxlnAvOM43gNm8DQVc= github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104 h1:0IW4muaGvhjJ4OkG6/PQG3DGf5POWxlA1wwEYsxWQ+4= github.com/trustbloc/sidetree-go v1.0.1-0.20240219121130-f4260aff7104/go.mod h1:3yChjB5KOT7B9eZe0W1XaIx3MNUuC1Oe9nR/GCtI1W0= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e h1:m2C6rWOMPzFjvjzv/1uuz8RlVd8uIMlOCfcWX9cRvtk= -github.com/trustbloc/vc-go v1.2.1-0.20240923190115-62cdfe76225e/go.mod h1:mjjE1cfzbV5s1NTXhi10YceDyg7c+EBl70LUYcX1mYo= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5 h1:k+C+8dfvi/0EOwr6Yjlei5yCYkg2jxPXYgWUYXE7hYU= +github.com/trustbloc/vc-go v1.2.1-0.20240927095859-a58759112df5/go.mod h1:LJTZ+GIYr/HeklpmhzlNfz9zAd/t4mj4Kylr9+ubHnc= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE=