From 0b92e50e6424851bb27f433dd0806ab19d24257f Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Thu, 14 Dec 2023 19:21:40 +0000 Subject: [PATCH 01/60] fix: upgrade software.amazon.awssdk:dynamodb from 2.21.27 to 2.21.28 Snyk has created this PR to upgrade software.amazon.awssdk:dynamodb from 2.21.27 to 2.21.28. See this package in Maven Repository: https://mvnrepository.com/artifact/software.amazon.awssdk/dynamodb/ See this project in Snyk: https://app.snyk.io/org/oswg/project/99275a84-1f2f-45d7-a9c0-01d6eb3416e0?utm_source=github&utm_medium=referral&page=upgrade-pr --- java/app-encryption/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/app-encryption/pom.xml b/java/app-encryption/pom.xml index 8d2dadd9b..c3a08816e 100644 --- a/java/app-encryption/pom.xml +++ b/java/app-encryption/pom.xml @@ -45,7 +45,7 @@ 3.12.0 1.21.1 1.12.468 - 2.21.27 + 2.21.28 1.70 3.3.0 3.1.8 From 26bae69298804c21b155088b99f7da7f3eb47f73 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Fri, 15 Dec 2023 14:56:06 +0000 Subject: [PATCH 02/60] fix: upgrade software.amazon.awssdk:kms from 2.21.27 to 2.21.29 Snyk has created this PR to upgrade software.amazon.awssdk:kms from 2.21.27 to 2.21.29. See this package in Maven Repository: https://mvnrepository.com/artifact/software.amazon.awssdk/kms/ See this project in Snyk: https://app.snyk.io/org/oswg/project/99275a84-1f2f-45d7-a9c0-01d6eb3416e0?utm_source=github&utm_medium=referral&page=upgrade-pr --- java/app-encryption/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/app-encryption/pom.xml b/java/app-encryption/pom.xml index 8d2dadd9b..4d1a1d3a1 100644 --- a/java/app-encryption/pom.xml +++ b/java/app-encryption/pom.xml @@ -45,7 +45,7 @@ 3.12.0 1.21.1 1.12.468 - 2.21.27 + 2.21.29 1.70 3.3.0 3.1.8 From 6201fcb4c6d76614999c516df8a833b595f06e4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 23:41:43 +0000 Subject: [PATCH 03/60] build(deps): bump golang.org/x/crypto in /server/go Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0. - [Commits](https://github.com/golang/crypto/compare/v0.14.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] --- server/go/go.mod | 6 +++--- server/go/go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/server/go/go.mod b/server/go/go.mod index ffeb67cda..8feda6b79 100644 --- a/server/go/go.mod +++ b/server/go/go.mod @@ -24,10 +24,10 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/stretchr/objx v0.5.0 // indirect - golang.org/x/crypto v0.14.0 // indirect + golang.org/x/crypto v0.17.0 // indirect golang.org/x/net v0.17.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/text v0.14.0 // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect google.golang.org/protobuf v1.30.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/server/go/go.sum b/server/go/go.sum index ce29789dc..42a3bbde4 100644 --- a/server/go/go.sum +++ b/server/go/go.sum @@ -49,8 +49,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -68,8 +68,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -77,8 +77,8 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= From 26f98dcc971b3f589e4cf752802be0d4c8143cf3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 23:42:08 +0000 Subject: [PATCH 04/60] build(deps): bump golang.org/x/crypto in /samples/go/aws/lambda/function Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0. - [Commits](https://github.com/golang/crypto/compare/v0.14.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] --- samples/go/aws/lambda/function/go.mod | 6 +++--- samples/go/aws/lambda/function/go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/samples/go/aws/lambda/function/go.mod b/samples/go/aws/lambda/function/go.mod index c1d7ecf4c..d7ddd6d8b 100644 --- a/samples/go/aws/lambda/function/go.mod +++ b/samples/go/aws/lambda/function/go.mod @@ -23,10 +23,10 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.35.0 // indirect - golang.org/x/crypto v0.14.0 // indirect + golang.org/x/crypto v0.17.0 // indirect golang.org/x/net v0.17.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/text v0.14.0 // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect google.golang.org/grpc v1.56.3 // indirect google.golang.org/protobuf v1.30.0 // indirect diff --git a/samples/go/aws/lambda/function/go.sum b/samples/go/aws/lambda/function/go.sum index 19b8c57f2..b23ae5d1b 100644 --- a/samples/go/aws/lambda/function/go.sum +++ b/samples/go/aws/lambda/function/go.sum @@ -53,8 +53,8 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -76,8 +76,8 @@ golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -86,8 +86,8 @@ golang.org/x/text v0.3.3/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.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= From a455a4b9e73843f8156e70a7f09343b42491b744 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 23:46:39 +0000 Subject: [PATCH 05/60] build(deps): bump golang.org/x/crypto in /go/securememory Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0. - [Commits](https://github.com/golang/crypto/compare/v0.14.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go/securememory/go.mod | 7 ++----- go/securememory/go.sum | 19 ++++--------------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/go/securememory/go.mod b/go/securememory/go.mod index a7ec6441b..e55f1b35a 100644 --- a/go/securememory/go.mod +++ b/go/securememory/go.mod @@ -8,17 +8,14 @@ require ( github.com/pkg/errors v0.9.1 github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 github.com/stretchr/testify v1.8.4 - golang.org/x/sys v0.13.0 + golang.org/x/sys v0.15.0 ) require ( github.com/davecgh/go-spew v1.1.1 // indirect - github.com/kr/pretty v0.2.1 // indirect - github.com/kr/text v0.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/stretchr/objx v0.5.1 // indirect - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/text v0.13.0 // indirect + golang.org/x/crypto v0.17.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go/securememory/go.sum b/go/securememory/go.sum index 5ec770948..099702677 100644 --- a/go/securememory/go.sum +++ b/go/securememory/go.sum @@ -18,30 +18,19 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5X github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.1 h1:4VhoImhV/Bm0ToFkXFi8hXNXwpDRZ/ynw3amt82mzq0= github.com/stretchr/objx v0.5.1/go.mod h1:/iHQpkQwBD6DLUmQ4pE+s1TXdob1mORJ4/UFdrifcy0= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From e1ae1f1de38184bb5edd90424b1e70306dabe605 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 00:09:31 +0000 Subject: [PATCH 06/60] build(deps): bump golang.org/x/crypto in /go/appencryption Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.5.0 to 0.17.0. - [Commits](https://github.com/golang/crypto/compare/v0.5.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go/appencryption/go.mod | 8 ++++---- go/appencryption/go.sum | 24 +++++++++++------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/go/appencryption/go.mod b/go/appencryption/go.mod index 12566a83c..858edcfca 100644 --- a/go/appencryption/go.mod +++ b/go/appencryption/go.mod @@ -8,7 +8,7 @@ require ( github.com/google/uuid v1.4.0 github.com/pkg/errors v0.9.1 github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 - github.com/stretchr/testify v1.8.1 + github.com/stretchr/testify v1.8.4 ) require ( @@ -19,9 +19,9 @@ require ( github.com/kr/pretty v0.3.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.8.1 // indirect - github.com/stretchr/objx v0.5.0 // indirect - golang.org/x/crypto v0.5.0 // indirect - golang.org/x/sys v0.4.0 // indirect + github.com/stretchr/objx v0.5.1 // indirect + golang.org/x/crypto v0.17.0 // indirect + golang.org/x/sys v0.15.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go/appencryption/go.sum b/go/appencryption/go.sum index 918b9dca6..c67ce10ff 100644 --- a/go/appencryption/go.sum +++ b/go/appencryption/go.sum @@ -2,18 +2,14 @@ github.com/awnumar/memcall v0.1.2 h1:7gOfDTL+BJ6nnbtAp9+HQzUFjtP1hEseRQq8eP055QY github.com/awnumar/memcall v0.1.2/go.mod h1:S911igBPR9CThzd/hYQQmTc9SWNu3ZHIlCGaWsWsoJo= github.com/awnumar/memguard v0.22.3 h1:b4sgUXtbUjhrGELPbuC62wU+BsPQy+8lkWed9Z+pj0Y= github.com/awnumar/memguard v0.22.3/go.mod h1:mmGunnffnLHlxE5rRgQc3j+uwPZ27eYb61ccr8Clz2Y= -github.com/aws/aws-sdk-go v1.44.265 h1:rlBuD8OYjM5Vfcf7jDa264oVHqlPqY7y7o+JmrjNFUc= -github.com/aws/aws-sdk-go v1.44.265/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go v1.46.7 h1:IjvAWeiJZlbETOemOwvheN5L17CvKvKW0T1xOC6d3Sc= github.com/aws/aws-sdk-go v1.46.7/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/godaddy/asherah/go/securememory v0.1.4 h1:1UlEPE5Q2wK1fbGwjIBtlGO02teLFBFk7dNIvdWOzNQ= -github.com/godaddy/asherah/go/securememory v0.1.4/go.mod h1:grCFdMhT5CY8h+E+Qb1Abhd6uBDIxrwVh6Tulsc9gj4= -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/godaddy/asherah/go/securememory v0.1.5 h1:kVD3uXa/eB7cZaKW5Dcxt/3lFw3r34DIqR+zWj2/HIc= +github.com/godaddy/asherah/go/securememory v0.1.5/go.mod h1:a9Y2Xj/Lo0aCXLh3MD6gGlNq+9jrYB6FT8nGgr4ureg= github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= @@ -39,17 +35,19 @@ github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XF github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.1 h1:4VhoImhV/Bm0ToFkXFi8hXNXwpDRZ/ynw3amt82mzq0= +github.com/stretchr/objx v0.5.1/go.mod h1:/iHQpkQwBD6DLUmQ4pE+s1TXdob1mORJ4/UFdrifcy0= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -64,8 +62,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From 4f818a86431c14c896d508efbf5378669f90b09f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 00:09:52 +0000 Subject: [PATCH 07/60] build(deps): bump golang.org/x/crypto in /go/appencryption/cmd/example Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.5.0 to 0.17.0. - [Commits](https://github.com/golang/crypto/compare/v0.5.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go/appencryption/cmd/example/go.mod | 9 ++++----- go/appencryption/cmd/example/go.sum | 24 +++++++++--------------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/go/appencryption/cmd/example/go.mod b/go/appencryption/cmd/example/go.mod index 7c3785d79..7396a0b6b 100644 --- a/go/appencryption/cmd/example/go.mod +++ b/go/appencryption/cmd/example/go.mod @@ -4,10 +4,10 @@ go 1.19 require ( github.com/TylerBrock/colorjson v0.0.0-20200706003622-8a50f05110d2 - github.com/aws/aws-sdk-go v1.44.265 + github.com/aws/aws-sdk-go v1.46.7 github.com/go-sql-driver/mysql v1.7.0 github.com/godaddy/asherah/go/appencryption v0.2.6 - github.com/godaddy/asherah/go/securememory v0.1.4 + github.com/godaddy/asherah/go/securememory v0.1.5 github.com/jessevdk/go-flags v1.5.0 github.com/logrusorgru/aurora v2.0.3+incompatible github.com/pkg/errors v0.9.1 @@ -18,13 +18,12 @@ require ( github.com/awnumar/memcall v0.1.2 // indirect github.com/awnumar/memguard v0.22.3 // indirect github.com/fatih/color v1.13.0 // indirect - github.com/goburrow/cache v0.1.4 // indirect github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/mattn/go-colorable v0.1.12 // indirect github.com/mattn/go-isatty v0.0.14 // indirect - golang.org/x/crypto v0.5.0 // indirect - golang.org/x/sys v0.4.0 // indirect + golang.org/x/crypto v0.17.0 // indirect + golang.org/x/sys v0.15.0 // indirect ) replace github.com/godaddy/asherah/go/appencryption => ../.. diff --git a/go/appencryption/cmd/example/go.sum b/go/appencryption/cmd/example/go.sum index 28ed0ce69..d8d3bbd85 100644 --- a/go/appencryption/cmd/example/go.sum +++ b/go/appencryption/cmd/example/go.sum @@ -4,21 +4,15 @@ github.com/awnumar/memcall v0.1.2 h1:7gOfDTL+BJ6nnbtAp9+HQzUFjtP1hEseRQq8eP055QY github.com/awnumar/memcall v0.1.2/go.mod h1:S911igBPR9CThzd/hYQQmTc9SWNu3ZHIlCGaWsWsoJo= github.com/awnumar/memguard v0.22.3 h1:b4sgUXtbUjhrGELPbuC62wU+BsPQy+8lkWed9Z+pj0Y= github.com/awnumar/memguard v0.22.3/go.mod h1:mmGunnffnLHlxE5rRgQc3j+uwPZ27eYb61ccr8Clz2Y= -github.com/aws/aws-sdk-go v1.44.193 h1:qJBu5TGkTcaKrl4SGRq4Qy/wEBk/Pi1y9TbB+T9Wz8U= -github.com/aws/aws-sdk-go v1.44.193/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= -github.com/aws/aws-sdk-go v1.44.250 h1:IuGUO2Hafv/b0yYKI5UPLQShYDx50BCIQhab/H1sX2M= -github.com/aws/aws-sdk-go v1.44.250/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= -github.com/aws/aws-sdk-go v1.44.265 h1:rlBuD8OYjM5Vfcf7jDa264oVHqlPqY7y7o+JmrjNFUc= -github.com/aws/aws-sdk-go v1.44.265/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.46.7 h1:IjvAWeiJZlbETOemOwvheN5L17CvKvKW0T1xOC6d3Sc= +github.com/aws/aws-sdk-go v1.46.7/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= -github.com/goburrow/cache v0.1.4 h1:As4KzO3hgmzPlnaMniZU9+VmoNYseUhuELbxy9mRBfw= -github.com/goburrow/cache v0.1.4/go.mod h1:cDFesZDnIlrHoNlMYqqMpCRawuXulgx+y7mXU8HZ+/c= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f h1:7LYC+Yfkj3CTRcShK0KOL/w6iTiKyqqBA9a41Wnggw8= github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f/go.mod h1:pFlLw2CfqZiIBOx6BuCeRLCrfxBJipTY0nIOF/VbGcI= github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc= @@ -42,13 +36,13 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/objx v0.5.1 h1:4VhoImhV/Bm0ToFkXFi8hXNXwpDRZ/ynw3amt82mzq0= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -68,8 +62,8 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From d9d3f74088f04011627cdea8a979ae347bcafabd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 00:11:07 +0000 Subject: [PATCH 08/60] build(deps): bump golang.org/x/crypto in /samples/go/referenceapp Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.5.0 to 0.17.0. - [Commits](https://github.com/golang/crypto/compare/v0.5.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] --- samples/go/referenceapp/go.mod | 4 ++-- samples/go/referenceapp/go.sum | 12 ++++-------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/samples/go/referenceapp/go.mod b/samples/go/referenceapp/go.mod index 9ba101f41..7f123a23e 100644 --- a/samples/go/referenceapp/go.mod +++ b/samples/go/referenceapp/go.mod @@ -18,6 +18,6 @@ require ( github.com/godaddy/asherah/go/securememory v0.1.4 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - golang.org/x/crypto v0.5.0 // indirect - golang.org/x/sys v0.4.0 // indirect + golang.org/x/crypto v0.17.0 // indirect + golang.org/x/sys v0.15.0 // indirect ) diff --git a/samples/go/referenceapp/go.sum b/samples/go/referenceapp/go.sum index 35f9091c9..37873d928 100644 --- a/samples/go/referenceapp/go.sum +++ b/samples/go/referenceapp/go.sum @@ -2,10 +2,6 @@ github.com/awnumar/memcall v0.1.2 h1:7gOfDTL+BJ6nnbtAp9+HQzUFjtP1hEseRQq8eP055QY github.com/awnumar/memcall v0.1.2/go.mod h1:S911igBPR9CThzd/hYQQmTc9SWNu3ZHIlCGaWsWsoJo= github.com/awnumar/memguard v0.22.3 h1:b4sgUXtbUjhrGELPbuC62wU+BsPQy+8lkWed9Z+pj0Y= github.com/awnumar/memguard v0.22.3/go.mod h1:mmGunnffnLHlxE5rRgQc3j+uwPZ27eYb61ccr8Clz2Y= -github.com/aws/aws-sdk-go v1.44.193 h1:qJBu5TGkTcaKrl4SGRq4Qy/wEBk/Pi1y9TbB+T9Wz8U= -github.com/aws/aws-sdk-go v1.44.193/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= -github.com/aws/aws-sdk-go v1.44.250 h1:IuGUO2Hafv/b0yYKI5UPLQShYDx50BCIQhab/H1sX2M= -github.com/aws/aws-sdk-go v1.44.250/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go v1.44.265 h1:rlBuD8OYjM5Vfcf7jDa264oVHqlPqY7y7o+JmrjNFUc= github.com/aws/aws-sdk-go v1.44.265/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -39,8 +35,8 @@ github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKs github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -57,8 +53,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From 56547f25b7a9657bfd6ab929c04c69b11f975e0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 00:11:11 +0000 Subject: [PATCH 09/60] build(deps): bump golang.org/x/crypto in /tests/cross-language/go Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.5.0 to 0.17.0. - [Commits](https://github.com/golang/crypto/compare/v0.5.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] --- tests/cross-language/go/go.mod | 4 ++-- tests/cross-language/go/go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/cross-language/go/go.mod b/tests/cross-language/go/go.mod index 4de87af7f..0e13c033b 100644 --- a/tests/cross-language/go/go.mod +++ b/tests/cross-language/go/go.mod @@ -24,6 +24,6 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/spf13/pflag v1.0.5 // indirect - golang.org/x/crypto v0.5.0 // indirect - golang.org/x/sys v0.4.0 // indirect + golang.org/x/crypto v0.17.0 // indirect + golang.org/x/sys v0.15.0 // indirect ) diff --git a/tests/cross-language/go/go.sum b/tests/cross-language/go/go.sum index 7e0eadfbc..caf4d39e7 100644 --- a/tests/cross-language/go/go.sum +++ b/tests/cross-language/go/go.sum @@ -72,8 +72,8 @@ github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKs github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -89,8 +89,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From 87fe544273cde68c41e8039bcc5f0e4fd482f462 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 21:25:57 +0000 Subject: [PATCH 10/60] build(deps): bump github.com/containerd/containerd Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.6.18 to 1.6.26. - [Release notes](https://github.com/containerd/containerd/releases) - [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md) - [Commits](https://github.com/containerd/containerd/compare/v1.6.18...v1.6.26) --- updated-dependencies: - dependency-name: github.com/containerd/containerd dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go/appencryption/integrationtest/go.mod | 21 +- go/appencryption/integrationtest/go.sum | 962 +++++++++++++++++++++++- 2 files changed, 951 insertions(+), 32 deletions(-) diff --git a/go/appencryption/integrationtest/go.mod b/go/appencryption/integrationtest/go.mod index 1eb64367f..83cf0e633 100644 --- a/go/appencryption/integrationtest/go.mod +++ b/go/appencryption/integrationtest/go.mod @@ -7,17 +7,20 @@ require ( github.com/docker/go-connections v0.4.0 github.com/go-sql-driver/mysql v1.7.0 github.com/godaddy/asherah/go/appencryption v0.2.6 - github.com/stretchr/testify v1.8.1 + github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 + github.com/stretchr/testify v1.8.4 github.com/testcontainers/testcontainers-go v0.17.0 ) require ( github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/Microsoft/go-winio v0.6.0 // indirect + github.com/Microsoft/hcsshim v0.9.10 // indirect github.com/awnumar/memcall v0.1.2 // indirect github.com/awnumar/memguard v0.22.3 // indirect github.com/cenkalti/backoff/v4 v4.2.0 // indirect - github.com/containerd/containerd v1.6.18 // indirect + github.com/containerd/containerd v1.6.26 // indirect + github.com/containerd/log v0.1.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/distribution v2.8.2+incompatible // indirect github.com/docker/docker v24.0.7+incompatible // indirect @@ -28,27 +31,25 @@ require ( github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.3.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/klauspost/compress v1.11.13 // indirect - github.com/kr/text v0.2.0 // indirect + github.com/klauspost/compress v1.15.9 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/moby/patternmatcher v0.5.0 // indirect github.com/moby/sys/sequential v0.5.0 // indirect github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc2 // indirect + github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect github.com/opencontainers/runc v1.1.5 // 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-20201227073835-cf1acfcdf475 // indirect - github.com/sirupsen/logrus v1.9.0 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect golang.org/x/crypto v0.14.0 // indirect golang.org/x/mod v0.8.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/tools v0.6.0 // indirect - google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect - google.golang.org/grpc v1.56.3 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/grpc v1.58.3 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go/appencryption/integrationtest/go.sum b/go/appencryption/integrationtest/go.sum index 72957c9e4..055888d4c 100644 --- a/go/appencryption/integrationtest/go.sum +++ b/go/appencryption/integrationtest/go.sum @@ -1,167 +1,888 @@ +bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +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= +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/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= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8 h1:V8krnnfGj4pV65YLUm3C0/8bl7V5Nry2Pwvy3ru/wLc= +github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= +github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= +github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= +github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= +github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= +github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= +github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= +github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE= -github.com/Microsoft/hcsshim v0.9.6 h1:VwnDOgLeoi2du6dAznfmspNqTiwczvjv4K7NxuY9jsY= +github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= +github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= +github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= +github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= +github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg= +github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= +github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600= +github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= +github.com/Microsoft/hcsshim v0.9.10 h1:TxXGNmcbQxBKVWvjvTocNb6jrPyeHlk5EiDhhgHgggs= +github.com/Microsoft/hcsshim v0.9.10/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= +github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU= +github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= +github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/awnumar/memcall v0.1.2 h1:7gOfDTL+BJ6nnbtAp9+HQzUFjtP1hEseRQq8eP055QY= github.com/awnumar/memcall v0.1.2/go.mod h1:S911igBPR9CThzd/hYQQmTc9SWNu3ZHIlCGaWsWsoJo= github.com/awnumar/memguard v0.22.3 h1:b4sgUXtbUjhrGELPbuC62wU+BsPQy+8lkWed9Z+pj0Y= github.com/awnumar/memguard v0.22.3/go.mod h1:mmGunnffnLHlxE5rRgQc3j+uwPZ27eYb61ccr8Clz2Y= +github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= github.com/aws/aws-sdk-go v1.44.265 h1:rlBuD8OYjM5Vfcf7jDa264oVHqlPqY7y7o+JmrjNFUc= github.com/aws/aws-sdk-go v1.44.265/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +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/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= +github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= +github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= +github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= +github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= +github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= +github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= +github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= +github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= +github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= +github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= +github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= +github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= +github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= +github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= +github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E= +github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= +github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= +github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI= +github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= +github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= +github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= +github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= +github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= +github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= +github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= +github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= +github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= -github.com/containerd/containerd v1.6.18 h1:qZbsLvmyu+Vlty0/Ex5xc0z2YtKpIsb5n45mAMI+2Ns= -github.com/containerd/containerd v1.6.18/go.mod h1:1RdCUu95+gc2v9t3IL+zIlpClSmew7/0YS8O5eQZrOw= +github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ= +github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU= +github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI= +github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s= +github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g= +github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c= +github.com/containerd/containerd v1.6.26 h1:VVfrE6ZpyisvB1fzoY8Vkiq4sy+i5oF4uk7zu03RaHs= +github.com/containerd/containerd v1.6.26/go.mod h1:I4TRdsdoo5MlKob5khDJS2EPT1l1oMNaE2MBm6FrwxM= +github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= +github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= +github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ= +github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= +github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= +github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= +github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= +github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= +github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU= +github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk= +github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g= +github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= +github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= +github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0= +github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA= +github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow= +github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= +github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= +github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= +github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= +github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= +github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= +github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8= +github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= +github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= +github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ= +github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= +github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= +github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= +github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= +github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= +github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y= +github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= +github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= +github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= +github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= +github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= +github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= +github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= +github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= +github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= +github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= +github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= +github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= +github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM= github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= +github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= +github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= +github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= +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/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= +github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= +github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= +github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= +github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= +github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= +github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= +github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= +github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/goburrow/cache v0.1.4 h1:As4KzO3hgmzPlnaMniZU9+VmoNYseUhuELbxy9mRBfw= github.com/goburrow/cache v0.1.4/go.mod h1:cDFesZDnIlrHoNlMYqqMpCRawuXulgx+y7mXU8HZ+/c= github.com/godaddy/asherah/go/appencryption v0.2.6 h1:4Julkowk/oL2xspt6XvcT0i93RASSU5k2kmauBSTV2U= github.com/godaddy/asherah/go/appencryption v0.2.6/go.mod h1:T4QuD/LuWnFxaro5K7n6VzXAtII5fjVed5el4j6hMns= github.com/godaddy/asherah/go/securememory v0.1.4 h1:1UlEPE5Q2wK1fbGwjIBtlGO02teLFBFk7dNIvdWOzNQ= github.com/godaddy/asherah/go/securememory v0.1.4/go.mod h1:grCFdMhT5CY8h+E+Qb1Abhd6uBDIxrwVh6Tulsc9gj4= +github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= +github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= +github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= +github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= +github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +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.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +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= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +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= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 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/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= +github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +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/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/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= +github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.11.13 h1:eSvu8Tmq6j2psUJqJrLcWH6K3w5Dwc+qipbaA6eVEN4= +github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +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.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= +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-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= +github.com/miekg/pkcs11 v1.0.3/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/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= +github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= github.com/moby/patternmatcher v0.5.0 h1:YCZgJOeULcxLw1Q+sVR636pmS7sPEn1Qo2iAN6M7DBo= github.com/moby/patternmatcher v0.5.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= +github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= +github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA= github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= +github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= +github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= +github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= -github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= +github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1:YWuSjZCQAPM8UUBLkYUk1e+rZcvWHJmFb6i6rM44Xs8= +github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= +github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= +github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= +github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= +github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= +github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= +github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +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/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= +github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= +github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/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/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= +github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= +github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= github.com/testcontainers/testcontainers-go v0.17.0 h1:UdKSw2DJXinlS6ijbFb4VHpQzD+EfTwcTq1/19a+8PU= github.com/testcontainers/testcontainers-go v0.17.0/go.mod h1:n5trpHrB68IUelEqGNC8VipaCo6jOGusU44kIK11XRs= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +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= +github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= +github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= +github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= +github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= +github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= +go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= +go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +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-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +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= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +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= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/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-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-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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= @@ -171,16 +892,67 @@ golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/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.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= @@ -188,21 +960,167 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= -google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +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= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +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= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= 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.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= +gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +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/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= +gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= +gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= +k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= +k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8= +k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= +k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= +k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc= +k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= +k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM= +k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q= +k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= +k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k= +k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0= +k8s.io/code-generator v0.19.7/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0= +k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= +k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI= +k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM= +k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= +k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= +k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= +k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= +k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= +k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= +k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= From 6df49e764a180f0c7b10aae4ac2a70f2f8eca2e3 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Wed, 20 Dec 2023 21:48:23 +0000 Subject: [PATCH 11/60] fix: upgrade io.grpc:grpc-core from 1.59.0 to 1.59.1 Snyk has created this PR to upgrade io.grpc:grpc-core from 1.59.0 to 1.59.1. See this package in Maven Repository: https://mvnrepository.com/artifact/io.grpc/grpc-core/ See this project in Snyk: https://app.snyk.io/org/oswg/project/3650172a-cc57-4132-b6fd-0af0aa59b122?utm_source=github&utm_medium=referral&page=upgrade-pr --- server/java/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/java/pom.xml b/server/java/pom.xml index b340ba02e..3144935b9 100644 --- a/server/java/pom.xml +++ b/server/java/pom.xml @@ -15,7 +15,7 @@ UTF-8 5.9.3 5.9.3 - 1.59.0 + 1.59.1 3.25.1 0.3.1 4.7.5 From 6f704ea5bad5f5c03a4331fa40838ecaf7c39330 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Tue, 26 Dec 2023 18:54:47 +0000 Subject: [PATCH 12/60] fix: upgrade org.checkerframework:checker-qual from 3.40.0 to 3.41.0 Snyk has created this PR to upgrade org.checkerframework:checker-qual from 3.40.0 to 3.41.0. See this package in Maven Repository: https://mvnrepository.com/artifact/org.checkerframework/checker-qual/ See this project in Snyk: https://app.snyk.io/org/oswg/project/99275a84-1f2f-45d7-a9c0-01d6eb3416e0?utm_source=github&utm_medium=referral&page=upgrade-pr --- java/app-encryption/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/app-encryption/pom.xml b/java/app-encryption/pom.xml index 8d2dadd9b..ac9664172 100644 --- a/java/app-encryption/pom.xml +++ b/java/app-encryption/pom.xml @@ -49,7 +49,7 @@ 1.70 3.3.0 3.1.8 - 3.40.0 + 3.41.0 1.15 1.2 1.10.0 From 6ac2474bd22bf77404bfb1979350b8c7656f3826 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Wed, 27 Dec 2023 23:35:45 +0000 Subject: [PATCH 13/60] fix: upgrade io.grpc:grpc-api from 1.59.0 to 1.60.0 Snyk has created this PR to upgrade io.grpc:grpc-api from 1.59.0 to 1.60.0. See this package in Maven Repository: https://mvnrepository.com/artifact/io.grpc/grpc-api/ See this project in Snyk: https://app.snyk.io/org/oswg/project/3650172a-cc57-4132-b6fd-0af0aa59b122?utm_source=github&utm_medium=referral&page=upgrade-pr --- server/java/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/java/pom.xml b/server/java/pom.xml index b340ba02e..419080477 100644 --- a/server/java/pom.xml +++ b/server/java/pom.xml @@ -15,7 +15,7 @@ UTF-8 5.9.3 5.9.3 - 1.59.0 + 1.60.0 3.25.1 0.3.1 4.7.5 From a6e87729d0138923e44d86db605253f27c18c418 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 18:04:54 +0000 Subject: [PATCH 14/60] build(deps): bump golang.org/x/crypto Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0. - [Commits](https://github.com/golang/crypto/compare/v0.14.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go/appencryption/integrationtest/go.mod | 4 ++-- go/appencryption/integrationtest/go.sum | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/go/appencryption/integrationtest/go.mod b/go/appencryption/integrationtest/go.mod index 83cf0e633..fac40dac2 100644 --- a/go/appencryption/integrationtest/go.mod +++ b/go/appencryption/integrationtest/go.mod @@ -43,10 +43,10 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - golang.org/x/crypto v0.14.0 // indirect + golang.org/x/crypto v0.17.0 // indirect golang.org/x/mod v0.8.0 // indirect golang.org/x/net v0.17.0 // indirect - golang.org/x/sys v0.13.0 // indirect + golang.org/x/sys v0.15.0 // indirect golang.org/x/tools v0.6.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect diff --git a/go/appencryption/integrationtest/go.sum b/go/appencryption/integrationtest/go.sum index 055888d4c..d47d17853 100644 --- a/go/appencryption/integrationtest/go.sum +++ b/go/appencryption/integrationtest/go.sum @@ -714,8 +714,8 @@ golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -887,8 +887,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc 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.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -901,7 +901,7 @@ golang.org/x/text v0.3.4/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.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From a3cbce4bcbf75014e467ab3bdc5de3a4e21add78 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Tue, 2 Jan 2024 20:09:49 +0000 Subject: [PATCH 15/60] fix: upgrade net.java.dev.jna:jna from 5.13.0 to 5.14.0 Snyk has created this PR to upgrade net.java.dev.jna:jna from 5.13.0 to 5.14.0. See this package in Maven Repository: https://mvnrepository.com/artifact/net.java.dev.jna/jna/ See this project in Snyk: https://app.snyk.io/org/oswg/project/c7aa31e1-6004-42c7-894c-461a2267b355?utm_source=github&utm_medium=referral&page=upgrade-pr --- java/secure-memory/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/secure-memory/pom.xml b/java/secure-memory/pom.xml index 1f3dc58ca..5c06cd4db 100644 --- a/java/secure-memory/pom.xml +++ b/java/secure-memory/pom.xml @@ -38,7 +38,7 @@ UTF-8 0.8.10 - 5.13.0 + 5.14.0 5.10.0 1.9.2 1.4.12 From e63a2478bb78182ca2c34746139fb71fbb7a0779 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Sat, 6 Jan 2024 17:31:12 +0000 Subject: [PATCH 16/60] fix: upgrade software.amazon.awssdk:dynamodb from 2.21.29 to 2.21.46 Snyk has created this PR to upgrade software.amazon.awssdk:dynamodb from 2.21.29 to 2.21.46. See this package in Maven Repository: https://mvnrepository.com/artifact/software.amazon.awssdk/dynamodb/ See this project in Snyk: https://app.snyk.io/org/oswg/project/99275a84-1f2f-45d7-a9c0-01d6eb3416e0?utm_source=github&utm_medium=referral&page=upgrade-pr --- java/app-encryption/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/app-encryption/pom.xml b/java/app-encryption/pom.xml index dc133ae5e..b5f209e27 100644 --- a/java/app-encryption/pom.xml +++ b/java/app-encryption/pom.xml @@ -45,7 +45,7 @@ 3.12.0 1.21.1 1.12.468 - 2.21.29 + 2.21.46 1.70 3.3.0 3.1.8 From 90db642563b54cad28d498b66ec8711b889a2ab8 Mon Sep 17 00:00:00 2001 From: Sushant Mimani Date: Tue, 2 Jan 2024 16:38:21 -0800 Subject: [PATCH 17/60] Replace master branch with main --- .../run-wss-scan/wss-unified-agent.config | 2 +- .github/workflows/ci.yml | 6 +-- .github/workflows/sync-release.yml | 4 +- CONTRIBUTING.md | 2 +- README.md | 2 +- .../AppEncryption/AppEncryption.csproj | 4 +- csharp/Logging/Logging/Logging.csproj | 2 +- .../PlatformNative/PlatformNative.csproj | 54 +++++++++---------- .../SecureMemory/SecureMemory.csproj | 2 +- docs/Internals.md | 4 +- .../ReferenceApp/ReferenceApp.csproj | 2 +- server/java/pom.xml | 2 +- 12 files changed, 43 insertions(+), 43 deletions(-) diff --git a/.github/actions/run-wss-scan/wss-unified-agent.config b/.github/actions/run-wss-scan/wss-unified-agent.config index 8fe9a8316..1358caf3c 100644 --- a/.github/actions/run-wss-scan/wss-unified-agent.config +++ b/.github/actions/run-wss-scan/wss-unified-agent.config @@ -229,7 +229,7 @@ followSymbolicLinks=true #scm.pass= #scm.ppk= #scm.url=https://github.com/godaddy/asherah -#scm.branch=master +#scm.branch=main #scm.tag= #scm.npmInstall=false #scm.npmInstallTimeoutMinutes= diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c6697ca17..b2e2e73b8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,12 +3,12 @@ name: Continuous Integration on: push: branches: - # Push events on master branch - - master + # Push events on main branch + - main # Push events to branches matching refs/heads/release- - 'release-*' pull_request: - branches: [ master ] + branches: [ main ] #### Global environment variables env: diff --git a/.github/workflows/sync-release.yml b/.github/workflows/sync-release.yml index 42d27c054..8ba6a5970 100644 --- a/.github/workflows/sync-release.yml +++ b/.github/workflows/sync-release.yml @@ -14,10 +14,10 @@ jobs: steps: - uses: actions/checkout@f095bcc56b7c2baf48f3ac70d6d6782f4f553222 - - name: Merge master -> {RELEASE_TARGET} + - name: Merge main -> {RELEASE_TARGET} uses: devmasx/merge-branch@6ec8363d74aad4f1615d1234ae1908b4185c4313 with: type: now - head_to_merge: master + head_to_merge: main target_branch: ${{ github.event.inputs.target }} github_token: ${{ secrets.MERGE_TOKEN }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ac0a48dfe..787ae6190 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -48,7 +48,7 @@ From a practical perspective, contributions are as simple as: - Making changes to your forked repository. - When committing, reference your issue (if present) and include a note about the fix. - If possible, and if applicable, please also add/update unit tests for your changes. - - Push the changes to your fork and submit a pull request to the 'master' branch of the project's repository. + - Push the changes to your fork and submit a pull request to the 'main' branch of the project's repository. If you are new to this process, consider taking a look at the whole flow overview [here](https://guides.github.com/activities/forking/). diff --git a/README.md b/README.md index 41e15606f..c45a704d0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![License](https://img.shields.io/github/license/godaddy/asherah.svg)](https://github.com/godaddy/asherah/blob/master/LICENSE) +[![License](https://img.shields.io/github/license/godaddy/asherah.svg)](https://github.com/godaddy/asherah/blob/main/LICENSE) [![CircleCI](https://img.shields.io/circleci/build/gh/godaddy/asherah.svg)](https://circleci.com/gh/godaddy/asherah) [![Codecov](https://codecov.io/gh/godaddy/asherah/graph/badge.svg)](https://codecov.io/gh/godaddy/asherah) diff --git a/csharp/AppEncryption/AppEncryption/AppEncryption.csproj b/csharp/AppEncryption/AppEncryption/AppEncryption.csproj index db9e3bc4c..1886b5678 100644 --- a/csharp/AppEncryption/AppEncryption/AppEncryption.csproj +++ b/csharp/AppEncryption/AppEncryption/AppEncryption.csproj @@ -1,4 +1,4 @@ - + GoDaddy.Asherah.AppEncryption AppEncryption @@ -16,7 +16,7 @@ False https://github.com/godaddy/asherah - https://github.com/godaddy/asherah/tree/master/csharp/AppEncryption + https://github.com/godaddy/asherah/tree/main/csharp/AppEncryption MIT true snupkg diff --git a/csharp/Logging/Logging/Logging.csproj b/csharp/Logging/Logging/Logging.csproj index 21602712d..691b1a3a3 100644 --- a/csharp/Logging/Logging/Logging.csproj +++ b/csharp/Logging/Logging/Logging.csproj @@ -14,7 +14,7 @@ False https://github.com/godaddy/asherah - https://github.com/godaddy/asherah/tree/master/csharp/Logging + https://github.com/godaddy/asherah/tree/main/csharp/Logging MIT diff --git a/csharp/SecureMemory/PlatformNative/PlatformNative.csproj b/csharp/SecureMemory/PlatformNative/PlatformNative.csproj index ed24307d9..d635a2c85 100644 --- a/csharp/SecureMemory/PlatformNative/PlatformNative.csproj +++ b/csharp/SecureMemory/PlatformNative/PlatformNative.csproj @@ -1,27 +1,27 @@ - - - - netstandard2.0 - GoDaddy.Asherah.PlatformNative - GoDaddy - GoDaddy - netstandard2.0 - GoDaddy.Asherah.PlatformNative - ../StyleCopCustom.ruleset - true - False - https://github.com/godaddy/asherah - https://github.com/godaddy/asherah/tree/master/csharp/SecureMemory/PlatformNative - MIT - true - snupkg - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + netstandard2.0 + GoDaddy.Asherah.PlatformNative + GoDaddy + GoDaddy + netstandard2.0 + GoDaddy.Asherah.PlatformNative + ../StyleCopCustom.ruleset + true + False + https://github.com/godaddy/asherah + https://github.com/godaddy/asherah/tree/main/csharp/SecureMemory/PlatformNative + MIT + true + snupkg + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + diff --git a/csharp/SecureMemory/SecureMemory/SecureMemory.csproj b/csharp/SecureMemory/SecureMemory/SecureMemory.csproj index 8dcb0f333..fd97236f9 100644 --- a/csharp/SecureMemory/SecureMemory/SecureMemory.csproj +++ b/csharp/SecureMemory/SecureMemory/SecureMemory.csproj @@ -12,7 +12,7 @@ true False https://github.com/godaddy/asherah - https://github.com/godaddy/asherah/tree/master/csharp/SecureMemory + https://github.com/godaddy/asherah/tree/main/csharp/SecureMemory MIT true snupkg diff --git a/docs/Internals.md b/docs/Internals.md index 557dded98..981061b62 100644 --- a/docs/Internals.md +++ b/docs/Internals.md @@ -64,7 +64,7 @@ Create and write DRR to data persistence The following diagram summarizes the entire encrypt path. -![Encrypt Flow](https://raw.githubusercontent.com/godaddy/asherah/master/docs/images/encrypt.svg?sanitize=true) +![Encrypt Flow](https://raw.githubusercontent.com/godaddy/asherah/main/docs/images/encrypt.svg?sanitize=true) ### Decrypt @@ -105,7 +105,7 @@ Return decrypted data The following diagram summarizes the entire decrypt path. -![Decrypt Flow](https://raw.githubusercontent.com/godaddy/asherah/master/docs/images/decrypt.svg?sanitize=true) +![Decrypt Flow](https://raw.githubusercontent.com/godaddy/asherah/main/docs/images/decrypt.svg?sanitize=true) ### Future Consideration: Queued Rotation diff --git a/samples/csharp/ReferenceApp/ReferenceApp/ReferenceApp.csproj b/samples/csharp/ReferenceApp/ReferenceApp/ReferenceApp.csproj index 594ef307f..50cc79c3b 100644 --- a/samples/csharp/ReferenceApp/ReferenceApp/ReferenceApp.csproj +++ b/samples/csharp/ReferenceApp/ReferenceApp/ReferenceApp.csproj @@ -14,7 +14,7 @@ False https://github.com/godaddy/asherah - https://github.com/godaddy/asherah/tree/master/samples/csharp/ReferenceApp + https://github.com/godaddy/asherah/tree/main/samples/csharp/ReferenceApp diff --git a/server/java/pom.xml b/server/java/pom.xml index 419080477..d5d21e8bb 100644 --- a/server/java/pom.xml +++ b/server/java/pom.xml @@ -34,7 +34,7 @@ + combonations, see https://github.com/grpc/grpc-java/blob/main/SECURITY.md#netty --> io.grpc grpc-core From 53a56c4ea727160a9c2e5ea192dc35e9fb8b2d8f Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Thu, 4 Jan 2024 04:55:40 +0000 Subject: [PATCH 18/60] fix: upgrade software.amazon.awssdk:kms from 2.21.29 to 2.21.43 Snyk has created this PR to upgrade software.amazon.awssdk:kms from 2.21.29 to 2.21.43. See this package in Maven Repository: https://mvnrepository.com/artifact/software.amazon.awssdk/kms/ See this project in Snyk: https://app.snyk.io/org/oswg/project/99275a84-1f2f-45d7-a9c0-01d6eb3416e0?utm_source=github&utm_medium=referral&page=upgrade-pr --- java/app-encryption/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/app-encryption/pom.xml b/java/app-encryption/pom.xml index dc133ae5e..3c5238b01 100644 --- a/java/app-encryption/pom.xml +++ b/java/app-encryption/pom.xml @@ -45,7 +45,7 @@ 3.12.0 1.21.1 1.12.468 - 2.21.29 + 2.21.43 1.70 3.3.0 3.1.8 From e158a492899da9d575d949427a805d6208566f00 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Thu, 4 Jan 2024 04:55:44 +0000 Subject: [PATCH 19/60] fix: upgrade io.micrometer:micrometer-core from 1.12.0 to 1.12.1 Snyk has created this PR to upgrade io.micrometer:micrometer-core from 1.12.0 to 1.12.1. See this package in Maven Repository: https://mvnrepository.com/artifact/io.micrometer/micrometer-core/ See this project in Snyk: https://app.snyk.io/org/oswg/project/99275a84-1f2f-45d7-a9c0-01d6eb3416e0?utm_source=github&utm_medium=referral&page=upgrade-pr --- java/app-encryption/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/app-encryption/pom.xml b/java/app-encryption/pom.xml index 3c5238b01..f36047498 100644 --- a/java/app-encryption/pom.xml +++ b/java/app-encryption/pom.xml @@ -68,7 +68,7 @@ 2.0.0 3.2.1 3.1.0 - 1.12.0 + 1.12.1 5.1.1 1.6.13 0.1.4 From 6a84b53a3e11c8d161463ae51272fd30b698004c Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Thu, 4 Jan 2024 22:20:47 +0000 Subject: [PATCH 20/60] fix: upgrade io.netty:netty-handler-proxy from 4.1.101.Final to 4.1.103.Final Snyk has created this PR to upgrade io.netty:netty-handler-proxy from 4.1.101.Final to 4.1.103.Final. See this package in Maven Repository: https://mvnrepository.com/artifact/io.netty/netty-handler-proxy/ See this project in Snyk: https://app.snyk.io/org/oswg/project/3650172a-cc57-4132-b6fd-0af0aa59b122?utm_source=github&utm_medium=referral&page=upgrade-pr --- server/java/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/java/pom.xml b/server/java/pom.xml index d5d21e8bb..6ed0a9383 100644 --- a/server/java/pom.xml +++ b/server/java/pom.xml @@ -22,7 +22,7 @@ 2.10.1 20231013 5.1.0 - 4.1.101.Final + 4.1.103.Final 3.14.0 2.0.9 0.8.10 From ac5744d8b609048eee42b1d8f615945f686d8906 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:54:28 +0000 Subject: [PATCH 21/60] build(deps): bump github.com/opencontainers/runc Bumps [github.com/opencontainers/runc](https://github.com/opencontainers/runc) from 1.1.5 to 1.1.12. - [Release notes](https://github.com/opencontainers/runc/releases) - [Changelog](https://github.com/opencontainers/runc/blob/v1.1.12/CHANGELOG.md) - [Commits](https://github.com/opencontainers/runc/compare/v1.1.5...v1.1.12) --- updated-dependencies: - dependency-name: github.com/opencontainers/runc dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go/appencryption/integrationtest/go.mod | 2 +- go/appencryption/integrationtest/go.sum | 15 ++------------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/go/appencryption/integrationtest/go.mod b/go/appencryption/integrationtest/go.mod index fac40dac2..913b75b8d 100644 --- a/go/appencryption/integrationtest/go.mod +++ b/go/appencryption/integrationtest/go.mod @@ -39,7 +39,7 @@ require ( github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b // indirect - github.com/opencontainers/runc v1.1.5 // indirect + github.com/opencontainers/runc v1.1.12 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect diff --git a/go/appencryption/integrationtest/go.sum b/go/appencryption/integrationtest/go.sum index d47d17853..56b37c114 100644 --- a/go/appencryption/integrationtest/go.sum +++ b/go/appencryption/integrationtest/go.sum @@ -107,7 +107,6 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= -github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -116,7 +115,6 @@ github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLI github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= -github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -141,7 +139,6 @@ github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= -github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= @@ -232,7 +229,6 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= -github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= @@ -323,7 +319,6 @@ github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblf github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -489,7 +484,6 @@ github.com/moby/patternmatcher v0.5.0 h1:YCZgJOeULcxLw1Q+sVR636pmS7sPEn1Qo2iAN6M github.com/moby/patternmatcher v0.5.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= -github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= @@ -544,8 +538,8 @@ github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= -github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= -github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= +github.com/opencontainers/runc v1.1.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf3phss= +github.com/opencontainers/runc v1.1.12/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8= github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= @@ -556,7 +550,6 @@ github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mo github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= -github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= 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/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= @@ -608,7 +601,6 @@ github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiB github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= -github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= @@ -879,9 +871,6 @@ golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210510120138-977fb7262007/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-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 77253b4dcdac6704ac0aaf415e418317903073e7 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Mon, 5 Feb 2024 15:28:19 -0700 Subject: [PATCH 22/60] upgrade bouncycastle to latest (1.77) --- java/app-encryption/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/app-encryption/pom.xml b/java/app-encryption/pom.xml index 8488b8e12..ea23c3de1 100644 --- a/java/app-encryption/pom.xml +++ b/java/app-encryption/pom.xml @@ -46,7 +46,7 @@ 1.21.1 1.12.468 2.21.46 - 1.70 + 1.77 3.3.0 3.1.8 3.41.0 @@ -295,7 +295,7 @@ org.bouncycastle - bcprov-jdk15on + bcprov-jdk18on ${bouncycastle.version} From 37c3ac46147a5a4e472c9ff98f96c0290ca2fb39 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 11 Feb 2024 05:22:01 +0000 Subject: [PATCH 23/60] build(deps): bump grpcio in /server/samples/clients/python Bumps [grpcio](https://github.com/grpc/grpc) from 1.53.0 to 1.53.2. - [Release notes](https://github.com/grpc/grpc/releases) - [Changelog](https://github.com/grpc/grpc/blob/master/doc/grpc_release_schedule.md) - [Commits](https://github.com/grpc/grpc/compare/v1.53.0...v1.53.2) --- updated-dependencies: - dependency-name: grpcio dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- server/samples/clients/python/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/samples/clients/python/requirements.txt b/server/samples/clients/python/requirements.txt index d76af68da..ffa8263b8 100644 --- a/server/samples/clients/python/requirements.txt +++ b/server/samples/clients/python/requirements.txt @@ -1,2 +1,2 @@ -grpcio==1.53.0 +grpcio==1.53.2 grpcio-tools==1.51.1 From ee93de462197c6523723ee3d425202e308eef509 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 21:29:54 +0000 Subject: [PATCH 24/60] build(deps): bump google.golang.org/protobuf in /server/go Bumps google.golang.org/protobuf from 1.30.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] --- server/go/go.mod | 2 +- server/go/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/server/go/go.mod b/server/go/go.mod index 8feda6b79..b3266c97c 100644 --- a/server/go/go.mod +++ b/server/go/go.mod @@ -29,6 +29,6 @@ require ( golang.org/x/sys v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/server/go/go.sum b/server/go/go.sum index 42a3bbde4..fea192e3a 100644 --- a/server/go/go.sum +++ b/server/go/go.sum @@ -90,8 +90,8 @@ google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -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.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From e7ba331e6f89d4ceb31aedf0b210960cab2fc506 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 22:21:08 +0000 Subject: [PATCH 25/60] build(deps): bump google.golang.org/protobuf Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go/appencryption/integrationtest/go.mod | 2 +- go/appencryption/integrationtest/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go/appencryption/integrationtest/go.mod b/go/appencryption/integrationtest/go.mod index 913b75b8d..379036d54 100644 --- a/go/appencryption/integrationtest/go.mod +++ b/go/appencryption/integrationtest/go.mod @@ -50,6 +50,6 @@ require ( golang.org/x/tools v0.6.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go/appencryption/integrationtest/go.sum b/go/appencryption/integrationtest/go.sum index 56b37c114..8f0a327b8 100644 --- a/go/appencryption/integrationtest/go.sum +++ b/go/appencryption/integrationtest/go.sum @@ -1028,8 +1028,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= 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.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= 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= From a0cae5d845c4b5ec8d9162f2cb8d5d9d191f161f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 23:23:45 +0000 Subject: [PATCH 26/60] build(deps): bump google.golang.org/protobuf Bumps google.golang.org/protobuf from 1.30.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] --- samples/go/aws/lambda/function/go.mod | 2 +- samples/go/aws/lambda/function/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/go/aws/lambda/function/go.mod b/samples/go/aws/lambda/function/go.mod index d7ddd6d8b..9cd226700 100644 --- a/samples/go/aws/lambda/function/go.mod +++ b/samples/go/aws/lambda/function/go.mod @@ -29,5 +29,5 @@ require ( golang.org/x/text v0.14.0 // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect google.golang.org/grpc v1.56.3 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) diff --git a/samples/go/aws/lambda/function/go.sum b/samples/go/aws/lambda/function/go.sum index b23ae5d1b..e9d894f1e 100644 --- a/samples/go/aws/lambda/function/go.sum +++ b/samples/go/aws/lambda/function/go.sum @@ -99,8 +99,8 @@ google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -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.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= From 703aa57747a9ca3911cac33c449080f1bbaa5589 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Apr 2024 21:48:21 +0000 Subject: [PATCH 27/60] build(deps): bump protobufjs in /server/samples/clients/node Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.2.4 to 7.2.6. - [Release notes](https://github.com/protobufjs/protobuf.js/releases) - [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.2.4...protobufjs-v7.2.6) --- updated-dependencies: - dependency-name: protobufjs dependency-type: indirect ... Signed-off-by: dependabot[bot] --- server/samples/clients/node/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/samples/clients/node/package-lock.json b/server/samples/clients/node/package-lock.json index b5a6444ce..96bad4c2e 100644 --- a/server/samples/clients/node/package-lock.json +++ b/server/samples/clients/node/package-lock.json @@ -1081,9 +1081,9 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "protobufjs": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz", - "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==", + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz", + "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==", "requires": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", From 8eba5691c94c081f3d94296fbad1fcea416a854c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 12:20:37 +0000 Subject: [PATCH 28/60] build(deps): bump golang.org/x/net in /samples/go/aws/lambda/function Bumps [golang.org/x/net](https://github.com/golang/net) from 0.17.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.17.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] --- samples/go/aws/lambda/function/go.mod | 6 +++--- samples/go/aws/lambda/function/go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/samples/go/aws/lambda/function/go.mod b/samples/go/aws/lambda/function/go.mod index 9cd226700..ec2941d29 100644 --- a/samples/go/aws/lambda/function/go.mod +++ b/samples/go/aws/lambda/function/go.mod @@ -23,9 +23,9 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.35.0 // indirect - golang.org/x/crypto v0.17.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/net v0.23.0 // indirect + golang.org/x/sys v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect google.golang.org/grpc v1.56.3 // indirect diff --git a/samples/go/aws/lambda/function/go.sum b/samples/go/aws/lambda/function/go.sum index e9d894f1e..320807cdd 100644 --- a/samples/go/aws/lambda/function/go.sum +++ b/samples/go/aws/lambda/function/go.sum @@ -53,8 +53,8 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= @@ -62,8 +62,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx 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.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -76,8 +76,8 @@ golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From 871341c6afb3a55c2d3331c0bbf66b0c279c2af6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 18:45:53 +0000 Subject: [PATCH 29/60] build(deps): bump github.com/docker/docker Bumps [github.com/docker/docker](https://github.com/docker/docker) from 24.0.7+incompatible to 24.0.9+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v24.0.7...v24.0.9) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go/appencryption/integrationtest/go.mod | 2 +- go/appencryption/integrationtest/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go/appencryption/integrationtest/go.mod b/go/appencryption/integrationtest/go.mod index 379036d54..bd1faacb8 100644 --- a/go/appencryption/integrationtest/go.mod +++ b/go/appencryption/integrationtest/go.mod @@ -23,7 +23,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/distribution v2.8.2+incompatible // indirect - github.com/docker/docker v24.0.7+incompatible // indirect + github.com/docker/docker v24.0.9+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/goburrow/cache v0.1.4 // indirect github.com/godaddy/asherah/go/securememory v0.1.4 // indirect diff --git a/go/appencryption/integrationtest/go.sum b/go/appencryption/integrationtest/go.sum index 8f0a327b8..79594ed71 100644 --- a/go/appencryption/integrationtest/go.sum +++ b/go/appencryption/integrationtest/go.sum @@ -248,8 +248,8 @@ github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4Kfc github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM= -github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v24.0.9+incompatible h1:HPGzNmwfLZWdxHqK9/II92pyi1EpYKsAqcl4G0Of9v0= +github.com/docker/docker v24.0.9+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= From 5905b7899e758136104fe6d9958eaf3b0c0e41d4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 17:33:07 +0000 Subject: [PATCH 30/60] build(deps): bump golang.org/x/net in /go/appencryption/integrationtest Bumps [golang.org/x/net](https://github.com/golang/net) from 0.17.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.17.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go/appencryption/integrationtest/go.mod | 6 +++--- go/appencryption/integrationtest/go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go/appencryption/integrationtest/go.mod b/go/appencryption/integrationtest/go.mod index bd1faacb8..3930085b5 100644 --- a/go/appencryption/integrationtest/go.mod +++ b/go/appencryption/integrationtest/go.mod @@ -43,10 +43,10 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - golang.org/x/crypto v0.17.0 // indirect + golang.org/x/crypto v0.21.0 // indirect golang.org/x/mod v0.8.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/net v0.23.0 // indirect + golang.org/x/sys v0.18.0 // indirect golang.org/x/tools v0.6.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect diff --git a/go/appencryption/integrationtest/go.sum b/go/appencryption/integrationtest/go.sum index 79594ed71..f777ad782 100644 --- a/go/appencryption/integrationtest/go.sum +++ b/go/appencryption/integrationtest/go.sum @@ -706,8 +706,8 @@ golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -783,8 +783,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= 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= @@ -876,8 +876,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc 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.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From 3bfee6b1f4bd26f802c7c11a8850e225b20294e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 17:43:32 +0000 Subject: [PATCH 31/60] build(deps): bump golang.org/x/net from 0.17.0 to 0.23.0 in /server/go Bumps [golang.org/x/net](https://github.com/golang/net) from 0.17.0 to 0.23.0. - [Commits](https://github.com/golang/net/compare/v0.17.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] --- server/go/go.mod | 6 +++--- server/go/go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/server/go/go.mod b/server/go/go.mod index b3266c97c..63b48ecc8 100644 --- a/server/go/go.mod +++ b/server/go/go.mod @@ -24,9 +24,9 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/stretchr/objx v0.5.0 // indirect - golang.org/x/crypto v0.17.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/net v0.23.0 // indirect + golang.org/x/sys v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect google.golang.org/protobuf v1.33.0 // indirect diff --git a/server/go/go.sum b/server/go/go.sum index fea192e3a..94d9d6958 100644 --- a/server/go/go.sum +++ b/server/go/go.sum @@ -49,15 +49,15 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -68,8 +68,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From f279fa25c76bae9d22bdaa678a84be22aadddc32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 00:31:43 +0000 Subject: [PATCH 32/60] build(deps): bump org.bouncycastle:bcprov-jdk18on Bumps [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) from 1.77 to 1.78. - [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html) - [Commits](https://github.com/bcgit/bc-java/commits) --- updated-dependencies: - dependency-name: org.bouncycastle:bcprov-jdk18on dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- java/app-encryption/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/app-encryption/pom.xml b/java/app-encryption/pom.xml index ea23c3de1..c0c9de283 100644 --- a/java/app-encryption/pom.xml +++ b/java/app-encryption/pom.xml @@ -46,7 +46,7 @@ 1.21.1 1.12.468 2.21.46 - 1.77 + 1.78 3.3.0 3.1.8 3.41.0 From f1840271d084b9f7dd07c258868376d1f8a40757 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Fri, 12 Apr 2024 14:13:13 -0700 Subject: [PATCH 33/60] upgrade aws-sdk + go work sync --- go/appencryption/cmd/example/go.mod | 4 ++-- go/appencryption/cmd/example/go.sum | 32 ++----------------------- go/appencryption/go.mod | 2 +- go/appencryption/go.sum | 31 ++---------------------- go/appencryption/go.work.sum | 11 +++++---- go/appencryption/integrationtest/go.mod | 6 ++--- go/appencryption/integrationtest/go.sum | 27 ++++++++------------- 7 files changed, 26 insertions(+), 87 deletions(-) diff --git a/go/appencryption/cmd/example/go.mod b/go/appencryption/cmd/example/go.mod index 7396a0b6b..556951a4d 100644 --- a/go/appencryption/cmd/example/go.mod +++ b/go/appencryption/cmd/example/go.mod @@ -4,7 +4,7 @@ go 1.19 require ( github.com/TylerBrock/colorjson v0.0.0-20200706003622-8a50f05110d2 - github.com/aws/aws-sdk-go v1.46.7 + github.com/aws/aws-sdk-go v1.51.21 github.com/go-sql-driver/mysql v1.7.0 github.com/godaddy/asherah/go/appencryption v0.2.6 github.com/godaddy/asherah/go/securememory v0.1.5 @@ -21,7 +21,7 @@ require ( github.com/hokaccha/go-prettyjson v0.0.0-20211117102719-0474bc63780f // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/mattn/go-colorable v0.1.12 // indirect - github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-isatty v0.0.16 // indirect golang.org/x/crypto v0.17.0 // indirect golang.org/x/sys v0.15.0 // indirect ) diff --git a/go/appencryption/cmd/example/go.sum b/go/appencryption/cmd/example/go.sum index d8d3bbd85..e9871528e 100644 --- a/go/appencryption/cmd/example/go.sum +++ b/go/appencryption/cmd/example/go.sum @@ -4,8 +4,7 @@ github.com/awnumar/memcall v0.1.2 h1:7gOfDTL+BJ6nnbtAp9+HQzUFjtP1hEseRQq8eP055QY github.com/awnumar/memcall v0.1.2/go.mod h1:S911igBPR9CThzd/hYQQmTc9SWNu3ZHIlCGaWsWsoJo= github.com/awnumar/memguard v0.22.3 h1:b4sgUXtbUjhrGELPbuC62wU+BsPQy+8lkWed9Z+pj0Y= github.com/awnumar/memguard v0.22.3/go.mod h1:mmGunnffnLHlxE5rRgQc3j+uwPZ27eYb61ccr8Clz2Y= -github.com/aws/aws-sdk-go v1.46.7 h1:IjvAWeiJZlbETOemOwvheN5L17CvKvKW0T1xOC6d3Sc= -github.com/aws/aws-sdk-go v1.46.7/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.51.21 h1:UrT6JC9R9PkYYXDZBV0qDKTualMr+bfK2eboTknMgbs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= @@ -27,8 +26,8 @@ github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -38,43 +37,16 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqn github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.1 h1:4VhoImhV/Bm0ToFkXFi8hXNXwpDRZ/ynw3amt82mzq0= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/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-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= diff --git a/go/appencryption/go.mod b/go/appencryption/go.mod index 858edcfca..06d57619e 100644 --- a/go/appencryption/go.mod +++ b/go/appencryption/go.mod @@ -3,7 +3,7 @@ module github.com/godaddy/asherah/go/appencryption go 1.19 require ( - github.com/aws/aws-sdk-go v1.46.7 + github.com/aws/aws-sdk-go v1.51.21 github.com/godaddy/asherah/go/securememory v0.1.5 github.com/google/uuid v1.4.0 github.com/pkg/errors v0.9.1 diff --git a/go/appencryption/go.sum b/go/appencryption/go.sum index c67ce10ff..aea51ce29 100644 --- a/go/appencryption/go.sum +++ b/go/appencryption/go.sum @@ -2,8 +2,8 @@ github.com/awnumar/memcall v0.1.2 h1:7gOfDTL+BJ6nnbtAp9+HQzUFjtP1hEseRQq8eP055QY github.com/awnumar/memcall v0.1.2/go.mod h1:S911igBPR9CThzd/hYQQmTc9SWNu3ZHIlCGaWsWsoJo= github.com/awnumar/memguard v0.22.3 h1:b4sgUXtbUjhrGELPbuC62wU+BsPQy+8lkWed9Z+pj0Y= github.com/awnumar/memguard v0.22.3/go.mod h1:mmGunnffnLHlxE5rRgQc3j+uwPZ27eYb61ccr8Clz2Y= -github.com/aws/aws-sdk-go v1.46.7 h1:IjvAWeiJZlbETOemOwvheN5L17CvKvKW0T1xOC6d3Sc= -github.com/aws/aws-sdk-go v1.46.7/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.51.21 h1:UrT6JC9R9PkYYXDZBV0qDKTualMr+bfK2eboTknMgbs= +github.com/aws/aws-sdk-go v1.51.21/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -43,38 +43,11 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/go/appencryption/go.work.sum b/go/appencryption/go.work.sum index 560dcbb5c..699991bb3 100644 --- a/go/appencryption/go.work.sum +++ b/go/appencryption/go.work.sum @@ -341,11 +341,6 @@ github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/viper v1.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU= github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980 h1:lIOOHPEbXzO3vnmx2gok1Tfs31Q8GQqKLc8vVqyQq/I= -github.com/stretchr/objx v0.5.1 h1:4VhoImhV/Bm0ToFkXFi8hXNXwpDRZ/ynw3amt82mzq0= -github.com/stretchr/objx v0.5.1/go.mod h1:/iHQpkQwBD6DLUmQ4pE+s1TXdob1mORJ4/UFdrifcy0= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= github.com/tchap/go-patricia v2.2.6+incompatible h1:JvoDL7JSoIP2HDE8AbDH3zC8QBPxmzYe32HHy5yQ+Ck= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= @@ -379,12 +374,18 @@ go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6 h1:QE6XYQK6naiK1EPAe1g/ILLxN5RBoH5xkJk3CqlMI/Y= golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4= golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/go/appencryption/integrationtest/go.mod b/go/appencryption/integrationtest/go.mod index 3930085b5..d0943ffa5 100644 --- a/go/appencryption/integrationtest/go.mod +++ b/go/appencryption/integrationtest/go.mod @@ -3,7 +3,7 @@ module github.com/godaddy/asherah/go/appencryption/integrationtest go 1.19 require ( - github.com/aws/aws-sdk-go v1.44.265 + github.com/aws/aws-sdk-go v1.51.21 github.com/docker/go-connections v0.4.0 github.com/go-sql-driver/mysql v1.7.0 github.com/godaddy/asherah/go/appencryption v0.2.6 @@ -26,10 +26,10 @@ require ( github.com/docker/docker v24.0.9+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/goburrow/cache v0.1.4 // indirect - github.com/godaddy/asherah/go/securememory v0.1.4 // indirect + github.com/godaddy/asherah/go/securememory v0.1.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/uuid v1.4.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/klauspost/compress v1.15.9 // indirect github.com/magiconair/properties v1.8.7 // indirect diff --git a/go/appencryption/integrationtest/go.sum b/go/appencryption/integrationtest/go.sum index f777ad782..590a31c3b 100644 --- a/go/appencryption/integrationtest/go.sum +++ b/go/appencryption/integrationtest/go.sum @@ -82,8 +82,7 @@ github.com/awnumar/memcall v0.1.2/go.mod h1:S911igBPR9CThzd/hYQQmTc9SWNu3ZHIlCGa github.com/awnumar/memguard v0.22.3 h1:b4sgUXtbUjhrGELPbuC62wU+BsPQy+8lkWed9Z+pj0Y= github.com/awnumar/memguard v0.22.3/go.mod h1:mmGunnffnLHlxE5rRgQc3j+uwPZ27eYb61ccr8Clz2Y= github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= -github.com/aws/aws-sdk-go v1.44.265 h1:rlBuD8OYjM5Vfcf7jDa264oVHqlPqY7y7o+JmrjNFUc= -github.com/aws/aws-sdk-go v1.44.265/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.51.21 h1:UrT6JC9R9PkYYXDZBV0qDKTualMr+bfK2eboTknMgbs= github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= @@ -312,8 +311,7 @@ github.com/goburrow/cache v0.1.4 h1:As4KzO3hgmzPlnaMniZU9+VmoNYseUhuELbxy9mRBfw= github.com/goburrow/cache v0.1.4/go.mod h1:cDFesZDnIlrHoNlMYqqMpCRawuXulgx+y7mXU8HZ+/c= github.com/godaddy/asherah/go/appencryption v0.2.6 h1:4Julkowk/oL2xspt6XvcT0i93RASSU5k2kmauBSTV2U= github.com/godaddy/asherah/go/appencryption v0.2.6/go.mod h1:T4QuD/LuWnFxaro5K7n6VzXAtII5fjVed5el4j6hMns= -github.com/godaddy/asherah/go/securememory v0.1.4 h1:1UlEPE5Q2wK1fbGwjIBtlGO02teLFBFk7dNIvdWOzNQ= -github.com/godaddy/asherah/go/securememory v0.1.4/go.mod h1:grCFdMhT5CY8h+E+Qb1Abhd6uBDIxrwVh6Tulsc9gj4= +github.com/godaddy/asherah/go/securememory v0.1.5 h1:kVD3uXa/eB7cZaKW5Dcxt/3lFw3r34DIqR+zWj2/HIc= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= @@ -386,8 +384,7 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -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/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= 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/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= @@ -634,7 +631,7 @@ github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.1 h1:4VhoImhV/Bm0ToFkXFi8hXNXwpDRZ/ynw3amt82mzq0= github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -673,7 +670,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= @@ -706,6 +702,8 @@ golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -739,7 +737,6 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -783,6 +780,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -801,7 +800,6 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -869,18 +867,16 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/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-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-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -888,8 +884,6 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/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.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -942,7 +936,6 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 1b25a0b9b7de8d1da4c8fed8e4508a5a01b5c89b Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 16 Apr 2024 10:08:11 -0700 Subject: [PATCH 34/60] new package: ./plugins/aws-v1 --- .../plugins/aws-v1/persistence/dynamodb.go | 216 ++++++++++++++++++ .../aws-v1/persistence/dynamodb_test.go | 51 +++++ 2 files changed, 267 insertions(+) create mode 100644 go/appencryption/plugins/aws-v1/persistence/dynamodb.go create mode 100644 go/appencryption/plugins/aws-v1/persistence/dynamodb_test.go diff --git a/go/appencryption/plugins/aws-v1/persistence/dynamodb.go b/go/appencryption/plugins/aws-v1/persistence/dynamodb.go new file mode 100644 index 000000000..55816b243 --- /dev/null +++ b/go/appencryption/plugins/aws-v1/persistence/dynamodb.go @@ -0,0 +1,216 @@ +package persistence + +import ( + "context" + "encoding/base64" + "strconv" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/service/dynamodb" + "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute" + "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbiface" + "github.com/aws/aws-sdk-go/service/dynamodb/expression" + "github.com/godaddy/asherah/go/appencryption" + "github.com/pkg/errors" + "github.com/rcrowley/go-metrics" +) + +const ( + defaultTableName = "EncryptionKey" + partitionKey = "Id" + sortKey = "Created" + keyRecord = "KeyRecord" +) + +var ( + // DynamoDB metastore metrics + loadDynamoDBTimer = metrics.GetOrRegisterTimer("ael.metastore.dynamodb.load", nil) + loadLatestDynamoDBTimer = metrics.GetOrRegisterTimer("ael.metastore.dynamodb.loadlatest", nil) + storeDynamoDBTimer = metrics.GetOrRegisterTimer("ael.metastore.dynamodb.store", nil) +) + +// DynamoDBMetastore implements the Metastore interface. +type DynamoDBMetastore struct { + svc dynamodbiface.DynamoDBAPI + regionSuffix string + tableName string +} + +// GetRegionSuffix returns the DynamoDB region suffix or blank if not configured. +func (d *DynamoDBMetastore) GetRegionSuffix() string { + return d.regionSuffix +} + +// GetTableName returns the DynamoDB table name. +func (d *DynamoDBMetastore) GetTableName() string { + return d.tableName +} + +// DynamoDBMetastoreOption is used to configure additional options in a DynamoDBMetastore. +type DynamoDBMetastoreOption func(d *DynamoDBMetastore, p client.ConfigProvider) + +// WithDynamoDBRegionSuffix configures the DynamoDBMetastore to use a regional suffix for +// all writes. This feature should be enabled when using DynamoDB global tables to avoid +// write conflicts arising from the "last writer wins" method of conflict resolution. +func WithDynamoDBRegionSuffix(enabled bool) DynamoDBMetastoreOption { + return func(d *DynamoDBMetastore, p client.ConfigProvider) { + if enabled { + config := p.ClientConfig(dynamodb.EndpointsID) + d.regionSuffix = *config.Config.Region + } + } +} + +// WithTableName configures the DynamoDBMetastore to use the specified table name. +func WithTableName(table string) DynamoDBMetastoreOption { + return func(d *DynamoDBMetastore, p client.ConfigProvider) { + if len(table) > 0 { + d.tableName = table + } + } +} + +func NewDynamoDBMetastore(sess client.ConfigProvider, opts ...DynamoDBMetastoreOption) *DynamoDBMetastore { + d := &DynamoDBMetastore{ + svc: dynamodb.New(sess), + tableName: defaultTableName, + } + + for _, opt := range opts { + opt(d, sess) + } + + return d +} + +func parseResult(av *dynamodb.AttributeValue) (*appencryption.EnvelopeKeyRecord, error) { + var en appencryption.EnvelopeKeyRecord + if err := dynamodbattribute.Unmarshal(av, &en); err != nil { + return nil, errors.Wrap(err, "failed to unmarshal record") + } + + return &en, nil +} + +// Load returns the key matching the keyID and created times provided. The envelope +// will be nil if it does not exist in the metastore. +func (d *DynamoDBMetastore) Load(ctx context.Context, keyID string, created int64) (*appencryption.EnvelopeKeyRecord, error) { + defer loadDynamoDBTimer.UpdateSince(time.Now()) + + proj := expression.NamesList(expression.Name(keyRecord)) + expr, err := expression.NewBuilder().WithProjection(proj).Build() + + if err != nil { + return nil, errors.Wrap(err, "dynamodb expression error") + } + + res, err := d.svc.GetItemWithContext(ctx, &dynamodb.GetItemInput{ + ExpressionAttributeNames: expr.Names(), + Key: map[string]*dynamodb.AttributeValue{ + partitionKey: {S: &keyID}, + sortKey: {N: aws.String(strconv.FormatInt(created, 10))}, + }, + ProjectionExpression: expr.Projection(), + TableName: aws.String(d.tableName), + ConsistentRead: aws.Bool(true), // always use strong consistency + }) + + if err != nil { + return nil, errors.Wrap(err, "metastore error") + } + + if res.Item == nil { + return nil, nil + } + + return parseResult(res.Item[keyRecord]) +} + +// LoadLatest returns the newest record matching the keyID. +// The return value will be nil if not already present. +func (d *DynamoDBMetastore) LoadLatest(ctx context.Context, keyID string) (*appencryption.EnvelopeKeyRecord, error) { + defer loadLatestDynamoDBTimer.UpdateSince(time.Now()) + + cond := expression.Key(partitionKey).Equal(expression.Value(keyID)) + proj := expression.NamesList(expression.Name(keyRecord)) + + expr, err := expression.NewBuilder().WithKeyCondition(cond).WithProjection(proj).Build() + if err != nil { + return nil, errors.Wrap(err, "dynamodb expression error") + } + + // Have to use query api to use limit and reverse sort order + res, err := d.svc.QueryWithContext(ctx, &dynamodb.QueryInput{ + ConsistentRead: aws.Bool(true), // always use strong consistency + ExpressionAttributeNames: expr.Names(), + ExpressionAttributeValues: expr.Values(), + KeyConditionExpression: expr.KeyCondition(), + Limit: aws.Int64(1), // limit 1 + ProjectionExpression: expr.Projection(), + ScanIndexForward: aws.Bool(false), // sorts descending + TableName: aws.String(d.tableName), + }) + if err != nil { + return nil, err + } + + if len(res.Items) == 0 { + return nil, nil + } + + return parseResult(res.Items[0][keyRecord]) +} + +// DynamoDBEnvelope is used to convert the EncryptedKey to a Base64 encoded string +// to save in DynamoDB. +type DynamoDBEnvelope struct { + Revoked bool `json:"Revoked,omitempty"` + Created int64 `json:"Created"` + EncryptedKey string `json:"Key"` + ParentKeyMeta *appencryption.KeyMeta `json:"ParentKeyMeta,omitempty"` +} + +// Store attempts to insert the key into the metastore if one is not +// already present. If a key exists, the method will return false. If +// one is not present, the value will be inserted and we return true. +func (d *DynamoDBMetastore) Store(ctx context.Context, keyID string, created int64, envelope *appencryption.EnvelopeKeyRecord) (bool, error) { + defer storeDynamoDBTimer.UpdateSince(time.Now()) + + en := &DynamoDBEnvelope{ + Revoked: envelope.Revoked, + Created: envelope.Created, + EncryptedKey: base64.StdEncoding.EncodeToString(envelope.EncryptedKey), + ParentKeyMeta: envelope.ParentKeyMeta, + } + av, err := dynamodbattribute.MarshalMap(&en) + + if err != nil { + return false, errors.Wrap(err, "failed to marshal envelope") + } + + // Note conditional expression using attribute_not_exists has special semantics. Can be used on partition OR + // sort key alone to guarantee primary key uniqueness. It automatically checks for existence of this item's + // composite primary key and if it contains the specified attribute name, either of which is inherently + // required. + _, err = d.svc.PutItemWithContext(ctx, &dynamodb.PutItemInput{ + Item: map[string]*dynamodb.AttributeValue{ + partitionKey: {S: &keyID}, + sortKey: {N: aws.String(strconv.FormatInt(created, 10))}, + keyRecord: {M: av}, + }, + TableName: aws.String(d.tableName), + ConditionExpression: aws.String("attribute_not_exists(" + partitionKey + ")"), + }) + if err != nil { + if awsErr, ok := err.(awserr.Error); ok && awsErr.Code() == dynamodb.ErrCodeConditionalCheckFailedException { + return false, errors.Wrapf(err, "attempted to create duplicate key: %s, %d", keyID, created) + } + + return false, errors.Wrapf(err, "error storing key key: %s, %d", keyID, created) + } + + return true, nil +} diff --git a/go/appencryption/plugins/aws-v1/persistence/dynamodb_test.go b/go/appencryption/plugins/aws-v1/persistence/dynamodb_test.go new file mode 100644 index 000000000..6e1d43874 --- /dev/null +++ b/go/appencryption/plugins/aws-v1/persistence/dynamodb_test.go @@ -0,0 +1,51 @@ +package persistence_test + +import ( + "testing" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/session" + "github.com/stretchr/testify/assert" + + "github.com/godaddy/asherah/go/appencryption/pkg/persistence" +) + +func TestDynamoDBMetastore_WithDynamoDBRegionSuffix(t *testing.T) { + s := getSession() + m1 := persistence.NewDynamoDBMetastore(s) + + // keyPrefix should be empty unless WithDynamoDBRegionSuffix is used + assert.Empty(t, m1.GetRegionSuffix()) + + m2 := persistence.NewDynamoDBMetastore(s, persistence.WithDynamoDBRegionSuffix(true)) + // WithDynamoDBRegionSuffix should set the keyPrefix equal to the client's region + assert.Equal(t, *s.Config.Region, m2.GetRegionSuffix()) +} + +func getSession() *session.Session { + sess, err := session.NewSession(&aws.Config{ + Region: aws.String("us-west-2"), + Endpoint: aws.String("http://localhost:8000"), + }) + + if err != nil { + panic(err) + } + + return sess +} + +func TestDynamoDBMetastore_WithTableName(t *testing.T) { + table := "DummyTable" + db := persistence.NewDynamoDBMetastore(getSession(), persistence.WithTableName(table)) + + assert.Equal(t, table, db.GetTableName()) +} + +func TestDynamoDBMetastore_DefaultTableName(t *testing.T) { + defaultTableName := "EncryptionKey" + + db := persistence.NewDynamoDBMetastore(getSession()) + + assert.Equal(t, defaultTableName, db.GetTableName()) +} From 770ce63a681bbfee6b8fc86583ef9fe90f3f4682 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 16 Apr 2024 12:32:59 -0700 Subject: [PATCH 35/60] dynamodb persistence aliased to plugins/aws-v1 --- go/appencryption/pkg/persistence/dynamodb.go | 219 ++---------------- .../pkg/persistence/dynamodb_test.go | 51 ---- 2 files changed, 21 insertions(+), 249 deletions(-) delete mode 100644 go/appencryption/pkg/persistence/dynamodb_test.go diff --git a/go/appencryption/pkg/persistence/dynamodb.go b/go/appencryption/pkg/persistence/dynamodb.go index 06ac53521..8d10b7c54 100644 --- a/go/appencryption/pkg/persistence/dynamodb.go +++ b/go/appencryption/pkg/persistence/dynamodb.go @@ -1,221 +1,44 @@ package persistence import ( - "context" - "encoding/base64" - "fmt" - "strconv" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/service/dynamodb" - "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute" - "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbiface" - "github.com/aws/aws-sdk-go/service/dynamodb/expression" - "github.com/pkg/errors" - "github.com/rcrowley/go-metrics" - - "github.com/godaddy/asherah/go/appencryption" -) - -const ( - defaultTableName = "EncryptionKey" - partitionKey = "Id" - sortKey = "Created" - keyRecord = "KeyRecord" -) - -var ( - // Verify DynamoDBMetastore implements the Metastore interface. - _ appencryption.Metastore = (*DynamoDBMetastore)(nil) - - // DynamoDB metastore metrics - loadDynamoDBTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.metastore.dynamodb.load", appencryption.MetricsPrefix), nil) - loadLatestDynamoDBTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.metastore.dynamodb.loadlatest", appencryption.MetricsPrefix), nil) - storeDynamoDBTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.metastore.dynamodb.store", appencryption.MetricsPrefix), nil) + awsV1Persistence "github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence" ) // DynamoDBMetastore implements the Metastore interface. -type DynamoDBMetastore struct { - svc dynamodbiface.DynamoDBAPI - regionSuffix string - tableName string -} - -// GetRegionSuffix returns the DynamoDB region suffix or blank if not configured. -func (d *DynamoDBMetastore) GetRegionSuffix() string { - return d.regionSuffix -} - -// GetTableName returns the DynamoDB table name. -func (d *DynamoDBMetastore) GetTableName() string { - return d.tableName -} +// +// DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence.DynamoDBMetastore instead. +type DynamoDBMetastore = awsV1Persistence.DynamoDBMetastore // DynamoDBMetastoreOption is used to configure additional options in a DynamoDBMetastore. -type DynamoDBMetastoreOption func(d *DynamoDBMetastore, p client.ConfigProvider) +// +// DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence.DynamoDBMetastoreOption instead. +type DynamoDBMetastoreOption = awsV1Persistence.DynamoDBMetastoreOption // WithDynamoDBRegionSuffix configures the DynamoDBMetastore to use a regional suffix for // all writes. This feature should be enabled when using DynamoDB global tables to avoid // write conflicts arising from the "last writer wins" method of conflict resolution. +// +// DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence.WithDynamoDBRegionSuffix instead. func WithDynamoDBRegionSuffix(enabled bool) DynamoDBMetastoreOption { - return func(d *DynamoDBMetastore, p client.ConfigProvider) { - if enabled { - config := p.ClientConfig(dynamodb.EndpointsID) - d.regionSuffix = *config.Config.Region - } - } + return awsV1Persistence.WithDynamoDBRegionSuffix(enabled) } // WithTableName configures the DynamoDBMetastore to use the specified table name. +// +// DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence.WithTableName instead. func WithTableName(table string) DynamoDBMetastoreOption { - return func(d *DynamoDBMetastore, p client.ConfigProvider) { - if len(table) > 0 { - d.tableName = table - } - } + return awsV1Persistence.WithTableName(table) } +// NewDynamoDBMetastore returns a new DynamoDBMetastore. +// +// DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence.NewDynamoDBMetastore instead. func NewDynamoDBMetastore(sess client.ConfigProvider, opts ...DynamoDBMetastoreOption) *DynamoDBMetastore { - d := &DynamoDBMetastore{ - svc: dynamodb.New(sess), - tableName: defaultTableName, - } - - for _, opt := range opts { - opt(d, sess) - } - - return d -} - -func parseResult(av *dynamodb.AttributeValue) (*appencryption.EnvelopeKeyRecord, error) { - var en appencryption.EnvelopeKeyRecord - if err := dynamodbattribute.Unmarshal(av, &en); err != nil { - return nil, errors.Wrap(err, "failed to unmarshal record") - } - - return &en, nil -} - -// Load returns the key matching the keyID and created times provided. The envelope -// will be nil if it does not exist in the metastore. -func (d *DynamoDBMetastore) Load(ctx context.Context, keyID string, created int64) (*appencryption.EnvelopeKeyRecord, error) { - defer loadDynamoDBTimer.UpdateSince(time.Now()) - - proj := expression.NamesList(expression.Name(keyRecord)) - expr, err := expression.NewBuilder().WithProjection(proj).Build() - - if err != nil { - return nil, errors.Wrap(err, "dynamodb expression error") - } - - res, err := d.svc.GetItemWithContext(ctx, &dynamodb.GetItemInput{ - ExpressionAttributeNames: expr.Names(), - Key: map[string]*dynamodb.AttributeValue{ - partitionKey: {S: &keyID}, - sortKey: {N: aws.String(strconv.FormatInt(created, 10))}, - }, - ProjectionExpression: expr.Projection(), - TableName: aws.String(d.tableName), - ConsistentRead: aws.Bool(true), // always use strong consistency - }) - - if err != nil { - return nil, errors.Wrap(err, "metastore error") - } - - if res.Item == nil { - return nil, nil - } - - return parseResult(res.Item[keyRecord]) -} - -// LoadLatest returns the newest record matching the keyID. -// The return value will be nil if not already present. -func (d *DynamoDBMetastore) LoadLatest(ctx context.Context, keyID string) (*appencryption.EnvelopeKeyRecord, error) { - defer loadLatestDynamoDBTimer.UpdateSince(time.Now()) - - cond := expression.Key(partitionKey).Equal(expression.Value(keyID)) - proj := expression.NamesList(expression.Name(keyRecord)) - - expr, err := expression.NewBuilder().WithKeyCondition(cond).WithProjection(proj).Build() - if err != nil { - return nil, errors.Wrap(err, "dynamodb expression error") - } - - // Have to use query api to use limit and reverse sort order - res, err := d.svc.QueryWithContext(ctx, &dynamodb.QueryInput{ - ConsistentRead: aws.Bool(true), // always use strong consistency - ExpressionAttributeNames: expr.Names(), - ExpressionAttributeValues: expr.Values(), - KeyConditionExpression: expr.KeyCondition(), - Limit: aws.Int64(1), // limit 1 - ProjectionExpression: expr.Projection(), - ScanIndexForward: aws.Bool(false), // sorts descending - TableName: aws.String(d.tableName), - }) - if err != nil { - return nil, err - } - - if len(res.Items) == 0 { - return nil, nil - } - - return parseResult(res.Items[0][keyRecord]) + return awsV1Persistence.NewDynamoDBMetastore(sess, opts...) } -// DynamoDBEnvelope is used to convert the EncryptedKey to a Base64 encoded string -// to save in DynamoDB. -type DynamoDBEnvelope struct { - Revoked bool `json:"Revoked,omitempty"` - Created int64 `json:"Created"` - EncryptedKey string `json:"Key"` - ParentKeyMeta *appencryption.KeyMeta `json:"ParentKeyMeta,omitempty"` -} - -// Store attempts to insert the key into the metastore if one is not -// already present. If a key exists, the method will return false. If -// one is not present, the value will be inserted and we return true. -func (d *DynamoDBMetastore) Store(ctx context.Context, keyID string, created int64, envelope *appencryption.EnvelopeKeyRecord) (bool, error) { - defer storeDynamoDBTimer.UpdateSince(time.Now()) - - en := &DynamoDBEnvelope{ - Revoked: envelope.Revoked, - Created: envelope.Created, - EncryptedKey: base64.StdEncoding.EncodeToString(envelope.EncryptedKey), - ParentKeyMeta: envelope.ParentKeyMeta, - } - av, err := dynamodbattribute.MarshalMap(&en) - - if err != nil { - return false, errors.Wrap(err, "failed to marshal envelope") - } - - // Note conditional expression using attribute_not_exists has special semantics. Can be used on partition OR - // sort key alone to guarantee primary key uniqueness. It automatically checks for existence of this item's - // composite primary key and if it contains the specified attribute name, either of which is inherently - // required. - _, err = d.svc.PutItemWithContext(ctx, &dynamodb.PutItemInput{ - Item: map[string]*dynamodb.AttributeValue{ - partitionKey: {S: &keyID}, - sortKey: {N: aws.String(strconv.FormatInt(created, 10))}, - keyRecord: {M: av}, - }, - TableName: aws.String(d.tableName), - ConditionExpression: aws.String("attribute_not_exists(" + partitionKey + ")"), - }) - if err != nil { - if awsErr, ok := err.(awserr.Error); ok && awsErr.Code() == dynamodb.ErrCodeConditionalCheckFailedException { - return false, errors.Wrapf(err, "attempted to create duplicate key: %s, %d", keyID, created) - } - - return false, errors.Wrapf(err, "error storing key key: %s, %d", keyID, created) - } - - return true, nil -} +// DynamoDBEnvelope is used to convert the EncryptedKey to a Base64 encoded string to save in DynamoDB. +// +// DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence.DynamoDBEnvelope instead. +type DynamoDBEnvelope = awsV1Persistence.DynamoDBEnvelope diff --git a/go/appencryption/pkg/persistence/dynamodb_test.go b/go/appencryption/pkg/persistence/dynamodb_test.go deleted file mode 100644 index 6e1d43874..000000000 --- a/go/appencryption/pkg/persistence/dynamodb_test.go +++ /dev/null @@ -1,51 +0,0 @@ -package persistence_test - -import ( - "testing" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/session" - "github.com/stretchr/testify/assert" - - "github.com/godaddy/asherah/go/appencryption/pkg/persistence" -) - -func TestDynamoDBMetastore_WithDynamoDBRegionSuffix(t *testing.T) { - s := getSession() - m1 := persistence.NewDynamoDBMetastore(s) - - // keyPrefix should be empty unless WithDynamoDBRegionSuffix is used - assert.Empty(t, m1.GetRegionSuffix()) - - m2 := persistence.NewDynamoDBMetastore(s, persistence.WithDynamoDBRegionSuffix(true)) - // WithDynamoDBRegionSuffix should set the keyPrefix equal to the client's region - assert.Equal(t, *s.Config.Region, m2.GetRegionSuffix()) -} - -func getSession() *session.Session { - sess, err := session.NewSession(&aws.Config{ - Region: aws.String("us-west-2"), - Endpoint: aws.String("http://localhost:8000"), - }) - - if err != nil { - panic(err) - } - - return sess -} - -func TestDynamoDBMetastore_WithTableName(t *testing.T) { - table := "DummyTable" - db := persistence.NewDynamoDBMetastore(getSession(), persistence.WithTableName(table)) - - assert.Equal(t, table, db.GetTableName()) -} - -func TestDynamoDBMetastore_DefaultTableName(t *testing.T) { - defaultTableName := "EncryptionKey" - - db := persistence.NewDynamoDBMetastore(getSession()) - - assert.Equal(t, defaultTableName, db.GetTableName()) -} From a031d369337475e943f9349ef1b0531ffe501e89 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 7 May 2024 16:16:57 -0700 Subject: [PATCH 36/60] aws kms types aliased to plugins/aws-v1/kms --- go/appencryption/pkg/kms/aws.go | 288 +---------------- go/appencryption/pkg/kms/static_test.go | 39 ++- go/appencryption/plugins/aws-v1/kms/aws.go | 299 ++++++++++++++++++ .../{pkg => plugins/aws-v1}/kms/aws_test.go | 0 4 files changed, 347 insertions(+), 279 deletions(-) create mode 100644 go/appencryption/plugins/aws-v1/kms/aws.go rename go/appencryption/{pkg => plugins/aws-v1}/kms/aws_test.go (100%) diff --git a/go/appencryption/pkg/kms/aws.go b/go/appencryption/pkg/kms/aws.go index 7b9e3fa49..2926c1912 100644 --- a/go/appencryption/pkg/kms/aws.go +++ b/go/appencryption/pkg/kms/aws.go @@ -1,299 +1,37 @@ package kms import ( - "context" - "encoding/json" - "fmt" - "sort" - "sync" - "time" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/kms" - "github.com/pkg/errors" - "github.com/rcrowley/go-metrics" - "github.com/godaddy/asherah/go/appencryption" - "github.com/godaddy/asherah/go/appencryption/internal" - "github.com/godaddy/asherah/go/appencryption/pkg/log" + awsV1kms "github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/kms" ) // KMS Metrics Counters & Timers var ( _ appencryption.KeyManagementService = (*AWSKMS)(nil) - - clientFactory = kms.New - - generateDataKeyFunc = generateDataKey - encryptAllRegionsFunc = encryptAllRegions - - encryptKeyTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.kms.aws.encryptkey", appencryption.MetricsPrefix), nil) - decryptKeyTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.kms.aws.decryptkey", appencryption.MetricsPrefix), nil) ) // KMS is implemented by the client in the kms package from the AWS SDK. // We only use a subset of methods defined below. -type KMS interface { - EncryptWithContext(aws.Context, *kms.EncryptInput, ...request.Option) (*kms.EncryptOutput, error) - GenerateDataKeyWithContext(aws.Context, *kms.GenerateDataKeyInput, ...request.Option) (*kms.GenerateDataKeyOutput, error) - DecryptWithContext(ctx aws.Context, input *kms.DecryptInput, opts ...request.Option) (*kms.DecryptOutput, error) -} +// +// DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/kms.KMS instead. +type KMS = awsV1kms.KMS // AWSKMSClient contains a KMS client and region information used for // encrypting a key in KMS. -type AWSKMSClient struct { - KMS KMS - Region string - ARN string -} - -// newAWSKMSClient returns a new AWSKMSClient struct with a new KMS client. -func newAWSKMSClient(sess client.ConfigProvider, region, arn string) AWSKMSClient { - return AWSKMSClient{ - KMS: clientFactory(sess, aws.NewConfig().WithRegion(region)), - Region: region, - ARN: arn, - } -} - -// createAWSKMSClients creates a client for each region in the arn map. -func createAWSKMSClients(arnMap map[string]string) ([]AWSKMSClient, error) { - sess, err := session.NewSession() - if err != nil { - return nil, errors.Wrap(err, "unable to create new session") - } - - clients := make([]AWSKMSClient, 0) - - for region, arn := range arnMap { - clients = append(clients, newAWSKMSClient(sess, region, arn)) - } - - return clients, nil -} +// +// DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/kms.AWSKMSClient instead. +type AWSKMSClient = awsV1kms.AWSKMSClient // AWSKMS implements the KeyManagementService interface and handles // encryption/decryption in KMS. -type AWSKMS struct { - Crypto appencryption.AEAD - Clients []AWSKMSClient - Registry metrics.Registry -} - -func sortClients(preferredRegion string, clients []AWSKMSClient) []AWSKMSClient { - sort.SliceStable(clients, func(i, _ int) bool { - return clients[i].Region == preferredRegion - }) - - return clients -} +// +// DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/kms.AWSKMS instead. +type AWSKMS = awsV1kms.AWSKMS // NewAWS returns a new AWSKMS used for encrypting/decrypting // keys with a master key. +// +// DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/kms.NewAWS instead. func NewAWS(crypto appencryption.AEAD, preferredRegion string, arnMap map[string]string) (*AWSKMS, error) { - return newAWS(crypto, preferredRegion, awsARNMap(arnMap)) -} - -type awsARNMap map[string]string - -func (a awsARNMap) createAWSKMSClients() ([]AWSKMSClient, error) { - return createAWSKMSClients(a) -} - -type clientMapper interface { - createAWSKMSClients() ([]AWSKMSClient, error) -} - -func newAWS(crypto appencryption.AEAD, preferredRegion string, arnMap clientMapper) (*AWSKMS, error) { - clients, err := arnMap.createAWSKMSClients() - if err != nil { - return nil, err - } - - return &AWSKMS{ - Crypto: crypto, - Clients: sortClients(preferredRegion, clients), - }, nil -} - -// envelope contains the data required for decrypting a key. -// This data is base64 encoded and returned in the key_record -// field. -type envelope struct { - EncryptedKey []byte `json:"encryptedKey"` - KMSKEKs keys `json:"kmsKeks"` -} - -// keys contains the encrypted text from each region supported. -type keys []encryptionKey - -// get retrieves an encryption key for the provided -// region. Returns nil if missing. -func (k keys) get(region string) *encryptionKey { - for i := range k { - if k[i].Region == region { - return &k[i] - } - } - - return nil -} - -// encryptionKey contains the region and ARN of the key that was used -// to encrypt. This allows multi-region decryption. -type encryptionKey struct { - Region string `json:"region"` - ARN string `json:"arn"` - EncryptedKEK []byte `json:"encryptedKek"` -} - -// EncryptKey encrypts a byte slice in all supported regions and returns an envelope ready -// to store in metastore. -func (m *AWSKMS) EncryptKey(ctx context.Context, keyBytes []byte) ([]byte, error) { - dataKey, err := generateDataKeyFunc(ctx, m.Clients) - if err != nil { - return nil, err - } - - // Wipe all bytes in plaintext after function exits - defer internal.MemClr(dataKey.Plaintext) - - encKeyBytes, err := m.Crypto.Encrypt(keyBytes, dataKey.Plaintext) - - if err != nil { - return nil, err - } - - kekEn := envelope{ - EncryptedKey: encKeyBytes, - KMSKEKs: make(keys, 0), - } - - for k := range encryptAllRegionsFunc(ctx, dataKey, m.Clients) { - kekEn.KMSKEKs = append(kekEn.KMSKEKs, k) - } - - b, err := json.Marshal(kekEn) - if err != nil { - return nil, err - } - - return b, nil -} - -// encryptAllRegions encrypts the plain-text key using the KMS keys of all requested reegions -func encryptAllRegions(ctx context.Context, resp *kms.GenerateDataKeyOutput, clients []AWSKMSClient) <-chan encryptionKey { - var wg sync.WaitGroup - - results := make(chan encryptionKey, len(clients)) - - for i := range clients { - c := &clients[i] - if c.ARN == *resp.KeyId { - results <- encryptionKey{ - Region: c.Region, - ARN: c.ARN, - EncryptedKEK: resp.CiphertextBlob, - } - } else { - wg.Add(1) - go func(c *AWSKMSClient) { - defer wg.Done() - - defer encryptKeyTimer.UpdateSince(time.Now()) - - encResp, err := c.KMS.EncryptWithContext(ctx, &kms.EncryptInput{ - KeyId: aws.String(c.ARN), - Plaintext: resp.Plaintext, - }) - - if err != nil { - return - } - - results <- encryptionKey{ - Region: c.Region, - ARN: c.ARN, - EncryptedKEK: encResp.CiphertextBlob, - } - }(c) - } - } - - go func() { - defer close(results) - - wg.Wait() - }() - - return results -} - -// generateDataKey generates a new data key used to encrypt a key. -// The first successful response is used. An error is returned only -// if all regions fail to generate a key. -func generateDataKey(ctx context.Context, clients []AWSKMSClient) (*kms.GenerateDataKeyOutput, error) { - for i := range clients { - c := &clients[i] - - start := time.Now() - - resp, err := c.KMS.GenerateDataKeyWithContext(ctx, &kms.GenerateDataKeyInput{ - KeyId: &c.ARN, - KeySpec: aws.String(kms.DataKeySpecAes256), - }) - - generateDataKeyTimer := metrics.GetOrRegisterTimer(fmt.Sprintf("%s.kms.aws.generatedatakey.%s", appencryption.MetricsPrefix, c.Region), nil) - generateDataKeyTimer.UpdateSince(start) - - if err != nil { - log.Debugf("error generating data key in region (%s) trying next region: %s\n", c.Region, err) - continue - } - - return resp, nil - } - - return nil, errors.New("all regions returned errors") -} - -// DecryptKey decrypts an encrypted byte slice and returns the unencrypted key. The preferred region provided in the -// config is tried first, if this fails the remaining regions are tried. -func (m *AWSKMS) DecryptKey(ctx context.Context, keyBytes []byte) ([]byte, error) { - var en envelope - - if err := json.Unmarshal(keyBytes, &en); err != nil { - return nil, errors.Wrap(err, "unable to unmarshal envelope") - } - - for i := range m.Clients { - c := &m.Clients[i] - if key := en.KMSKEKs.get(c.Region); key != nil { - start := time.Now() - - output, err := c.KMS.DecryptWithContext(ctx, &kms.DecryptInput{ - CiphertextBlob: key.EncryptedKEK, - }) - - decryptKeyTimer.UpdateSince(start) - - if err != nil { - log.Debugf("error kms decrypt: %s\n", err) - continue - } - - decryptedKeyBytes, err := m.Crypto.Decrypt(en.EncryptedKey, output.Plaintext) - if err != nil { - log.Debugf("error crypto decrypt: %s\n", err) - continue - } - - return decryptedKeyBytes, nil - } - } - - return nil, errors.New("decrypt failed in all regions") + return awsV1kms.NewAWS(crypto, preferredRegion, arnMap) } diff --git a/go/appencryption/pkg/kms/static_test.go b/go/appencryption/pkg/kms/static_test.go index cbc480499..ac80e2768 100644 --- a/go/appencryption/pkg/kms/static_test.go +++ b/go/appencryption/pkg/kms/static_test.go @@ -5,6 +5,7 @@ import ( "testing" "time" + "github.com/godaddy/asherah/go/securememory/memguard" "github.com/pkg/errors" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -15,6 +16,38 @@ import ( "github.com/godaddy/asherah/go/appencryption/pkg/crypto/aead" ) +var ( + genericErrorMessage = "generic error message" + + secretFactory = new(memguard.SecretFactory) +) + +type MockCrypto struct { + mock.Mock +} + +func (c *MockCrypto) Encrypt(data, key []byte) ([]byte, error) { + ret := c.Called(data, key) + + var bytes []byte + if b := ret.Get(0); b != nil { + bytes = b.([]byte) + } + + return bytes, ret.Error(1) +} + +func (c *MockCrypto) Decrypt(data []byte, key []byte) ([]byte, error) { + ret := c.Called(data, key) + + var bytes []byte + if b := ret.Get(0); b != nil { + bytes = b.([]byte) + } + + return bytes, ret.Error(1) +} + func TestStaticKMS_Encrypt(t *testing.T) { crypto := aead.NewAES256GCM() m, err := NewStatic("bbsPfQTZsmwEcSRKND87WpoC9umuuuOo", crypto) @@ -43,11 +76,10 @@ func TestStaticKMS_EncryptKey_ReturnsErrorOnFail(t *testing.T) { crypto := new(MockCrypto) crypto.On("Encrypt", mock.AnythingOfType("[]uint8"), mock.AnythingOfType("[]uint8")). Return(nil, errors.New(genericErrorMessage)) - crypto.On("KeyByteSize").Return(staticKMSKeySize) m, err := NewStatic("bbsPfQTZsmwEcSRKND87WpoC9umuuuOo", crypto) if assert.NoError(t, err) { - key, err := internal.GenerateKey(secretFactory, time.Now().Unix(), crypto.KeyByteSize()) + key, err := internal.GenerateKey(secretFactory, time.Now().Unix(), staticKMSKeySize) if assert.NoError(t, err) { _, err := internal.WithKeyFunc(key, func(keyBytes []byte) ([]byte, error) { return m.EncryptKey(context.Background(), keyBytes) @@ -61,11 +93,10 @@ func TestStaticKMS_DecryptKey_ReturnsErrorOnFail(t *testing.T) { crypto := new(MockCrypto) crypto.On("Decrypt", mock.AnythingOfType("[]uint8"), mock.AnythingOfType("[]uint8")). Return(nil, errors.New(genericErrorMessage)) - crypto.On("KeyByteSize").Return(staticKMSKeySize) m, err := NewStatic("bbsPfQTZsmwEcSRKND87WpoC9umuuuOo", crypto) if assert.NoError(t, err) { - key, err := internal.GenerateKey(secretFactory, time.Now().Unix(), crypto.KeyByteSize()) + key, err := internal.GenerateKey(secretFactory, time.Now().Unix(), staticKMSKeySize) if assert.NoError(t, err) { _, err := internal.WithKeyFunc(key, func(keyBytes []byte) ([]byte, error) { return m.DecryptKey(context.Background(), keyBytes) diff --git a/go/appencryption/plugins/aws-v1/kms/aws.go b/go/appencryption/plugins/aws-v1/kms/aws.go new file mode 100644 index 000000000..7b9e3fa49 --- /dev/null +++ b/go/appencryption/plugins/aws-v1/kms/aws.go @@ -0,0 +1,299 @@ +package kms + +import ( + "context" + "encoding/json" + "fmt" + "sort" + "sync" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/kms" + "github.com/pkg/errors" + "github.com/rcrowley/go-metrics" + + "github.com/godaddy/asherah/go/appencryption" + "github.com/godaddy/asherah/go/appencryption/internal" + "github.com/godaddy/asherah/go/appencryption/pkg/log" +) + +// KMS Metrics Counters & Timers +var ( + _ appencryption.KeyManagementService = (*AWSKMS)(nil) + + clientFactory = kms.New + + generateDataKeyFunc = generateDataKey + encryptAllRegionsFunc = encryptAllRegions + + encryptKeyTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.kms.aws.encryptkey", appencryption.MetricsPrefix), nil) + decryptKeyTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.kms.aws.decryptkey", appencryption.MetricsPrefix), nil) +) + +// KMS is implemented by the client in the kms package from the AWS SDK. +// We only use a subset of methods defined below. +type KMS interface { + EncryptWithContext(aws.Context, *kms.EncryptInput, ...request.Option) (*kms.EncryptOutput, error) + GenerateDataKeyWithContext(aws.Context, *kms.GenerateDataKeyInput, ...request.Option) (*kms.GenerateDataKeyOutput, error) + DecryptWithContext(ctx aws.Context, input *kms.DecryptInput, opts ...request.Option) (*kms.DecryptOutput, error) +} + +// AWSKMSClient contains a KMS client and region information used for +// encrypting a key in KMS. +type AWSKMSClient struct { + KMS KMS + Region string + ARN string +} + +// newAWSKMSClient returns a new AWSKMSClient struct with a new KMS client. +func newAWSKMSClient(sess client.ConfigProvider, region, arn string) AWSKMSClient { + return AWSKMSClient{ + KMS: clientFactory(sess, aws.NewConfig().WithRegion(region)), + Region: region, + ARN: arn, + } +} + +// createAWSKMSClients creates a client for each region in the arn map. +func createAWSKMSClients(arnMap map[string]string) ([]AWSKMSClient, error) { + sess, err := session.NewSession() + if err != nil { + return nil, errors.Wrap(err, "unable to create new session") + } + + clients := make([]AWSKMSClient, 0) + + for region, arn := range arnMap { + clients = append(clients, newAWSKMSClient(sess, region, arn)) + } + + return clients, nil +} + +// AWSKMS implements the KeyManagementService interface and handles +// encryption/decryption in KMS. +type AWSKMS struct { + Crypto appencryption.AEAD + Clients []AWSKMSClient + Registry metrics.Registry +} + +func sortClients(preferredRegion string, clients []AWSKMSClient) []AWSKMSClient { + sort.SliceStable(clients, func(i, _ int) bool { + return clients[i].Region == preferredRegion + }) + + return clients +} + +// NewAWS returns a new AWSKMS used for encrypting/decrypting +// keys with a master key. +func NewAWS(crypto appencryption.AEAD, preferredRegion string, arnMap map[string]string) (*AWSKMS, error) { + return newAWS(crypto, preferredRegion, awsARNMap(arnMap)) +} + +type awsARNMap map[string]string + +func (a awsARNMap) createAWSKMSClients() ([]AWSKMSClient, error) { + return createAWSKMSClients(a) +} + +type clientMapper interface { + createAWSKMSClients() ([]AWSKMSClient, error) +} + +func newAWS(crypto appencryption.AEAD, preferredRegion string, arnMap clientMapper) (*AWSKMS, error) { + clients, err := arnMap.createAWSKMSClients() + if err != nil { + return nil, err + } + + return &AWSKMS{ + Crypto: crypto, + Clients: sortClients(preferredRegion, clients), + }, nil +} + +// envelope contains the data required for decrypting a key. +// This data is base64 encoded and returned in the key_record +// field. +type envelope struct { + EncryptedKey []byte `json:"encryptedKey"` + KMSKEKs keys `json:"kmsKeks"` +} + +// keys contains the encrypted text from each region supported. +type keys []encryptionKey + +// get retrieves an encryption key for the provided +// region. Returns nil if missing. +func (k keys) get(region string) *encryptionKey { + for i := range k { + if k[i].Region == region { + return &k[i] + } + } + + return nil +} + +// encryptionKey contains the region and ARN of the key that was used +// to encrypt. This allows multi-region decryption. +type encryptionKey struct { + Region string `json:"region"` + ARN string `json:"arn"` + EncryptedKEK []byte `json:"encryptedKek"` +} + +// EncryptKey encrypts a byte slice in all supported regions and returns an envelope ready +// to store in metastore. +func (m *AWSKMS) EncryptKey(ctx context.Context, keyBytes []byte) ([]byte, error) { + dataKey, err := generateDataKeyFunc(ctx, m.Clients) + if err != nil { + return nil, err + } + + // Wipe all bytes in plaintext after function exits + defer internal.MemClr(dataKey.Plaintext) + + encKeyBytes, err := m.Crypto.Encrypt(keyBytes, dataKey.Plaintext) + + if err != nil { + return nil, err + } + + kekEn := envelope{ + EncryptedKey: encKeyBytes, + KMSKEKs: make(keys, 0), + } + + for k := range encryptAllRegionsFunc(ctx, dataKey, m.Clients) { + kekEn.KMSKEKs = append(kekEn.KMSKEKs, k) + } + + b, err := json.Marshal(kekEn) + if err != nil { + return nil, err + } + + return b, nil +} + +// encryptAllRegions encrypts the plain-text key using the KMS keys of all requested reegions +func encryptAllRegions(ctx context.Context, resp *kms.GenerateDataKeyOutput, clients []AWSKMSClient) <-chan encryptionKey { + var wg sync.WaitGroup + + results := make(chan encryptionKey, len(clients)) + + for i := range clients { + c := &clients[i] + if c.ARN == *resp.KeyId { + results <- encryptionKey{ + Region: c.Region, + ARN: c.ARN, + EncryptedKEK: resp.CiphertextBlob, + } + } else { + wg.Add(1) + go func(c *AWSKMSClient) { + defer wg.Done() + + defer encryptKeyTimer.UpdateSince(time.Now()) + + encResp, err := c.KMS.EncryptWithContext(ctx, &kms.EncryptInput{ + KeyId: aws.String(c.ARN), + Plaintext: resp.Plaintext, + }) + + if err != nil { + return + } + + results <- encryptionKey{ + Region: c.Region, + ARN: c.ARN, + EncryptedKEK: encResp.CiphertextBlob, + } + }(c) + } + } + + go func() { + defer close(results) + + wg.Wait() + }() + + return results +} + +// generateDataKey generates a new data key used to encrypt a key. +// The first successful response is used. An error is returned only +// if all regions fail to generate a key. +func generateDataKey(ctx context.Context, clients []AWSKMSClient) (*kms.GenerateDataKeyOutput, error) { + for i := range clients { + c := &clients[i] + + start := time.Now() + + resp, err := c.KMS.GenerateDataKeyWithContext(ctx, &kms.GenerateDataKeyInput{ + KeyId: &c.ARN, + KeySpec: aws.String(kms.DataKeySpecAes256), + }) + + generateDataKeyTimer := metrics.GetOrRegisterTimer(fmt.Sprintf("%s.kms.aws.generatedatakey.%s", appencryption.MetricsPrefix, c.Region), nil) + generateDataKeyTimer.UpdateSince(start) + + if err != nil { + log.Debugf("error generating data key in region (%s) trying next region: %s\n", c.Region, err) + continue + } + + return resp, nil + } + + return nil, errors.New("all regions returned errors") +} + +// DecryptKey decrypts an encrypted byte slice and returns the unencrypted key. The preferred region provided in the +// config is tried first, if this fails the remaining regions are tried. +func (m *AWSKMS) DecryptKey(ctx context.Context, keyBytes []byte) ([]byte, error) { + var en envelope + + if err := json.Unmarshal(keyBytes, &en); err != nil { + return nil, errors.Wrap(err, "unable to unmarshal envelope") + } + + for i := range m.Clients { + c := &m.Clients[i] + if key := en.KMSKEKs.get(c.Region); key != nil { + start := time.Now() + + output, err := c.KMS.DecryptWithContext(ctx, &kms.DecryptInput{ + CiphertextBlob: key.EncryptedKEK, + }) + + decryptKeyTimer.UpdateSince(start) + + if err != nil { + log.Debugf("error kms decrypt: %s\n", err) + continue + } + + decryptedKeyBytes, err := m.Crypto.Decrypt(en.EncryptedKey, output.Plaintext) + if err != nil { + log.Debugf("error crypto decrypt: %s\n", err) + continue + } + + return decryptedKeyBytes, nil + } + } + + return nil, errors.New("decrypt failed in all regions") +} diff --git a/go/appencryption/pkg/kms/aws_test.go b/go/appencryption/plugins/aws-v1/kms/aws_test.go similarity index 100% rename from go/appencryption/pkg/kms/aws_test.go rename to go/appencryption/plugins/aws-v1/kms/aws_test.go From 2d0c6f3e862704171a9527ef5ae3bc3864e7cb8c Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 7 May 2024 16:49:11 -0700 Subject: [PATCH 37/60] go work sync --- go/appencryption/cmd/example/go.mod | 4 ++-- go/appencryption/cmd/example/go.sum | 6 ++---- go/appencryption/go.mod | 4 ++-- go/appencryption/go.sum | 6 ++---- go/appencryption/go.work.sum | 3 ++- go/appencryption/integrationtest/go.sum | 11 ----------- 6 files changed, 10 insertions(+), 24 deletions(-) diff --git a/go/appencryption/cmd/example/go.mod b/go/appencryption/cmd/example/go.mod index 556951a4d..fb9c6f1bd 100644 --- a/go/appencryption/cmd/example/go.mod +++ b/go/appencryption/cmd/example/go.mod @@ -22,8 +22,8 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/mattn/go-colorable v0.1.12 // indirect github.com/mattn/go-isatty v0.0.16 // indirect - golang.org/x/crypto v0.17.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/sys v0.18.0 // indirect ) replace github.com/godaddy/asherah/go/appencryption => ../.. diff --git a/go/appencryption/cmd/example/go.sum b/go/appencryption/cmd/example/go.sum index e9871528e..be281f2b8 100644 --- a/go/appencryption/cmd/example/go.sum +++ b/go/appencryption/cmd/example/go.sum @@ -37,16 +37,14 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqn github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.1 h1:4VhoImhV/Bm0ToFkXFi8hXNXwpDRZ/ynw3amt82mzq0= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= diff --git a/go/appencryption/go.mod b/go/appencryption/go.mod index 06d57619e..65d3bbe80 100644 --- a/go/appencryption/go.mod +++ b/go/appencryption/go.mod @@ -20,8 +20,8 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.8.1 // indirect github.com/stretchr/objx v0.5.1 // indirect - golang.org/x/crypto v0.17.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/sys v0.18.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go/appencryption/go.sum b/go/appencryption/go.sum index aea51ce29..123400dec 100644 --- a/go/appencryption/go.sum +++ b/go/appencryption/go.sum @@ -43,11 +43,9 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/go/appencryption/go.work.sum b/go/appencryption/go.work.sum index 699991bb3..5d0dc30e5 100644 --- a/go/appencryption/go.work.sum +++ b/go/appencryption/go.work.sum @@ -282,7 +282,6 @@ github.com/kr/pty v1.1.5 h1:hyz3dwM5QLc1Rfoz4FuWJQG5BN7tc6K1MndAUnGpQr4= github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3 h1:jUp75lepDg0phMUJBCmvaeFDldD2N3S1lBuPwUTszio= github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM= github.com/marstr/guid v1.1.0 h1:/M4H/1G4avsieL6BbUwCOBzulmoeKVP5ux/3mQNnbyI= -github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.2 h1:UnlwIPBGaTZfPQ6T1IGzPI0EkYAQmT9fAEJ/poFC63o= github.com/mattn/go-shellwords v1.0.6 h1:9Jok5pILi5S1MnDirGVTufYGtksUs/V2BWUP3ZkeUUI= @@ -380,11 +379,13 @@ golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDA golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= diff --git a/go/appencryption/integrationtest/go.sum b/go/appencryption/integrationtest/go.sum index 590a31c3b..997681f40 100644 --- a/go/appencryption/integrationtest/go.sum +++ b/go/appencryption/integrationtest/go.sum @@ -701,9 +701,6 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -778,10 +775,6 @@ golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -870,10 +863,6 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/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.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= From d7ca62aca55771a4168976ee7e04cccf3be15167 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Mon, 13 May 2024 15:46:10 -0700 Subject: [PATCH 38/60] reorganize integrationtest packages & use descriptive/actionable test names --- .../dynamodbtest.go} | 154 ++++++++++-------- .../integrationtest/integration_test.go | 88 +++++----- .../persistence/dynamodb_test.go | 20 ++- .../integrationtest/persistence/sql_test.go | 2 + 4 files changed, 144 insertions(+), 120 deletions(-) rename go/appencryption/integrationtest/{persistence/persistencetest/dynamodb.go => dynamodbtest/dynamodbtest.go} (87%) diff --git a/go/appencryption/integrationtest/persistence/persistencetest/dynamodb.go b/go/appencryption/integrationtest/dynamodbtest/dynamodbtest.go similarity index 87% rename from go/appencryption/integrationtest/persistence/persistencetest/dynamodb.go rename to go/appencryption/integrationtest/dynamodbtest/dynamodbtest.go index 659fb6ca1..cbc283dc5 100644 --- a/go/appencryption/integrationtest/persistence/persistencetest/dynamodb.go +++ b/go/appencryption/integrationtest/dynamodbtest/dynamodbtest.go @@ -1,4 +1,5 @@ -package persistencetest +// Package dynamodbtest provides utilities for testing the DynamoDB persistence layer. +package dynamodbtest import ( "context" @@ -45,6 +46,85 @@ type DynamoDBTestContext struct { dbSvc *dynamodb.DynamoDB } +// NewDynamoDBTestContext creates a new DynamoDBTestContext. +// +// If the DISABLE_TESTCONTAINERS environment variable is set to true, the test context will use the local DynamoDB instance. +// Otherwise, it will use a test container. +// +// Use NewMetastore to create a new DynamoDBMetastore instance based on the context. +// +// (Optionally) Use SeedDB to create the expected DynamoDB table and seed it with test data. +// It may be skipped if the table already exists, or if the table is not needed for the test. +// +// Use CleanDB to clean the DynamoDB table as needed. +func NewDynamoDBTestContext(t *testing.T, instant int64) *DynamoDBTestContext { + t.Helper() + + ctx := context.Background() + d := &DynamoDBTestContext{ + instant: instant, + } + + // Setup client pointing to our local dynamodb + var ( + err error + host string + dynamodbNatPort nat.Port + ) + + if val, ok := os.LookupEnv("DISABLE_TESTCONTAINERS"); ok { + d.disableTestContainers, err = strconv.ParseBool(val) + if err != nil { + panic(err) + } + } + + if d.disableTestContainers { + host = os.Getenv("DYNAMODB_HOSTNAME") + if len(host) == 0 { + host = "localhost" + } + + dynamodbNatPort = portProtocolDynamoDB + } else { + request := testcontainers.ContainerRequest{ + Image: "amazon/dynamodb-local:latest", + ExposedPorts: []string{portProtocolDynamoDB}, + } + d.container, err = testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ + ContainerRequest: request, + Started: true, + }) + if err != nil { + panic(err) + } + + if host, err = d.container.Host(ctx); err != nil { + panic(err) + } + + if dynamodbNatPort, err = d.container.MappedPort(ctx, portProtocolDynamoDB); err != nil { + panic(err) + } + } + + endpoint := "http://" + host + ":" + dynamodbNatPort.Port() + + t.Logf("using dynamodb endpoint: %s", endpoint) + + d.sess = session.Must(session.NewSession(&aws.Config{ + Region: aws.String("us-west-2"), + Endpoint: aws.String(endpoint), + })) + + d.dbSvc = dynamodb.New(d.sess) + + d.waitForDynamoDBPing(t) + + return d +} + +// NewMetastore creates a new DynamoDBMetastore instance based on the context. func (d *DynamoDBTestContext) NewMetastore(opts ...persistence.DynamoDBMetastoreOption) *persistence.DynamoDBMetastore { combinedOpts := []persistence.DynamoDBMetastoreOption{ persistence.WithTableName(tableName), @@ -57,6 +137,7 @@ func (d *DynamoDBTestContext) NewMetastore(opts ...persistence.DynamoDBMetastore return persistence.NewDynamoDBMetastore(d.sess, combinedOpts...) } +// SeedDB creates the DynamoDB table and seeds it with test data. func (d *DynamoDBTestContext) SeedDB(t *testing.T) { t.Helper() t.Log("seeding dynamodb") @@ -118,6 +199,10 @@ func (d *DynamoDBTestContext) SeedDB(t *testing.T) { d.putItemInDynamoDB(t, d.newDynamoDBPutItemInput(en, d.instant)) } +// CleanDB "cleans up" the DynamoDB table by deleting it. +// +// This is useful for resetting table state in between test runs. +// Be sure to call SeedDB before running any additional tests that require the table to be populated. func (d *DynamoDBTestContext) CleanDB(t *testing.T) { t.Helper() t.Log("cleaning db") @@ -218,70 +303,3 @@ func (d *DynamoDBTestContext) TearDown(t *testing.T) { } } } - -func NewDynamoDBTestContext(t *testing.T, instant int64) *DynamoDBTestContext { - t.Helper() - - ctx := context.Background() - d := &DynamoDBTestContext{ - instant: instant, - } - - // Setup client pointing to our local dynamodb - var ( - err error - host string - dynamodbNatPort nat.Port - ) - - if val, ok := os.LookupEnv("DISABLE_TESTCONTAINERS"); ok { - d.disableTestContainers, err = strconv.ParseBool(val) - if err != nil { - panic(err) - } - } - - if d.disableTestContainers { - host = os.Getenv("DYNAMODB_HOSTNAME") - if len(host) == 0 { - host = "localhost" - } - - dynamodbNatPort = portProtocolDynamoDB - } else { - request := testcontainers.ContainerRequest{ - Image: "amazon/dynamodb-local:latest", - ExposedPorts: []string{portProtocolDynamoDB}, - } - d.container, err = testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ - ContainerRequest: request, - Started: true, - }) - if err != nil { - panic(err) - } - - if host, err = d.container.Host(ctx); err != nil { - panic(err) - } - - if dynamodbNatPort, err = d.container.MappedPort(ctx, portProtocolDynamoDB); err != nil { - panic(err) - } - } - - endpoint := "http://" + host + ":" + dynamodbNatPort.Port() - - t.Logf("using dynamodb endpoint: %s", endpoint) - - d.sess = session.Must(session.NewSession(&aws.Config{ - Region: aws.String("us-west-2"), - Endpoint: aws.String(endpoint), - })) - - d.dbSvc = dynamodb.New(d.sess) - - d.waitForDynamoDBPing(t) - - return d -} diff --git a/go/appencryption/integrationtest/integration_test.go b/go/appencryption/integrationtest/integration_test.go index 50084b3fe..d50b24adc 100644 --- a/go/appencryption/integrationtest/integration_test.go +++ b/go/appencryption/integrationtest/integration_test.go @@ -6,18 +6,20 @@ import ( "testing" "time" - "github.com/stretchr/testify/suite" - "github.com/godaddy/asherah/go/appencryption" "github.com/godaddy/asherah/go/appencryption/pkg/crypto/aead" "github.com/godaddy/asherah/go/appencryption/pkg/kms" "github.com/godaddy/asherah/go/appencryption/pkg/persistence" + "github.com/stretchr/testify/suite" - "github.com/godaddy/asherah/go/appencryption/integrationtest/persistence/persistencetest" + "github.com/godaddy/asherah/go/appencryption/integrationtest/dynamodbtest" ) const original = "somesupersecretstring!hjdkashfjkdashfd" +// IntegrationTestSuite provides a suite of integration tests for the appencryption package. +// Tests center around session encrypt and decrypt operations using a SessionFactory with +// a static KMS and various metastore implementations (MemoryMetastore, DynamoDBMetastore). type IntegrationTestSuite struct { suite.Suite c appencryption.AEAD @@ -38,7 +40,7 @@ func (s *IntegrationTestSuite) SetupTest() { s.NoError(err) } -func (s *IntegrationTestSuite) TestIntegration() { +func (s *IntegrationTestSuite) TestSessionFactory_WithMemoryMetastore_EncryptDecrypt() { metastore := persistence.NewMemoryMetastore() factory := appencryption.NewSessionFactory( @@ -64,7 +66,7 @@ func (s *IntegrationTestSuite) TestIntegration() { } } -func (s *IntegrationTestSuite) TestCrossPartitionDecryptShouldFail() { +func (s *IntegrationTestSuite) TestSessionFactory_WithMemoryMetastore_Decrypt_WithMismatchPartition_ShouldFail() { metastore := persistence.NewMemoryMetastore() require := s.Require() @@ -103,7 +105,7 @@ func (s *IntegrationTestSuite) TestCrossPartitionDecryptShouldFail() { require.Error(err, "decrypt expected to return error") } -func (s *IntegrationTestSuite) TestDynamoDBRegionSuffixBackwardsCompatibility() { +func (s *IntegrationTestSuite) TestSessionFactory_WithDynamoDBMetastore_EncryptDecrypt() { if testing.Short() { s.T().Skip("too slow for testing.Short") } @@ -111,23 +113,26 @@ func (s *IntegrationTestSuite) TestDynamoDBRegionSuffixBackwardsCompatibility() instant := time.Now().Add(-24 * time.Hour).Unix() require := s.Require() - testContext := persistencetest.NewDynamoDBTestContext(s.T(), instant) + testContext := dynamodbtest.NewDynamoDBTestContext(s.T(), instant) defer testContext.CleanDB(s.T()) testContext.SeedDB(s.T()) var drr *appencryption.DataRowRecord - // First, encrypt the original using a default, non-suffixed DynamoDBMetastore - func() { - factory := appencryption.NewSessionFactory( - &s.config, - testContext.NewMetastore(), - s.kms, - s.c, - ) - defer factory.Close() + // build a new metastore with regional suffixing enabled + metastore := testContext.NewMetastore(persistence.WithDynamoDBRegionSuffix(true)) + + factory := appencryption.NewSessionFactory( + &s.config, + metastore, + s.kms, + s.c, + ) + defer factory.Close() + // encrypt and decrypt the DRR with a session and dispose of it asap + func() { session, err := factory.GetSession(partitionID) require.NoError(err) @@ -139,22 +144,12 @@ func (s *IntegrationTestSuite) TestDynamoDBRegionSuffixBackwardsCompatibility() require.NoError(err) require.NotNil(drr) - require.Equal(fmt.Sprintf("_IK_%s_%s_%s", partitionID, service, product), drr.Key.ParentKeyMeta.ID) - after, err := session.Decrypt(ctx, *drr) require.NoError(err) require.Equal(original, string(after)) }() - // Now decrypt the encrypted data via a new factory and session using a suffixed DynamoDBMetastore - factory := appencryption.NewSessionFactory( - &s.config, - testContext.NewMetastore(persistence.WithDynamoDBRegionSuffix(true)), - s.kms, - s.c, - ) - defer factory.Close() - + // now decrypt the DRR with a new session using the same (suffixed) partition session, err := factory.GetSession(partitionID) require.NoError(err) @@ -162,10 +157,11 @@ func (s *IntegrationTestSuite) TestDynamoDBRegionSuffixBackwardsCompatibility() after, err := session.Decrypt(context.Background(), *drr) require.NoError(err) + require.Equal(original, string(after)) } -func (s *IntegrationTestSuite) TestDynamoDBRegionSuffix() { +func (s *IntegrationTestSuite) TestSessionFactory_WithDynamoDBMetastore_EncryptDecrypt_RegionSuffixBackwardsCompatibility() { if testing.Short() { s.T().Skip("too slow for testing.Short") } @@ -173,26 +169,23 @@ func (s *IntegrationTestSuite) TestDynamoDBRegionSuffix() { instant := time.Now().Add(-24 * time.Hour).Unix() require := s.Require() - testContext := persistencetest.NewDynamoDBTestContext(s.T(), instant) + testContext := dynamodbtest.NewDynamoDBTestContext(s.T(), instant) defer testContext.CleanDB(s.T()) testContext.SeedDB(s.T()) var drr *appencryption.DataRowRecord - // build a new metastore with regional suffixing enabled - metastore := testContext.NewMetastore(persistence.WithDynamoDBRegionSuffix(true)) - - factory := appencryption.NewSessionFactory( - &s.config, - metastore, - s.kms, - s.c, - ) - defer factory.Close() - - // encrypt and decrypt the DRR with a session and dispose of it asap + // First, encrypt the original using a default, non-suffixed DynamoDBMetastore func() { + factory := appencryption.NewSessionFactory( + &s.config, + testContext.NewMetastore(), + s.kms, + s.c, + ) + defer factory.Close() + session, err := factory.GetSession(partitionID) require.NoError(err) @@ -204,12 +197,22 @@ func (s *IntegrationTestSuite) TestDynamoDBRegionSuffix() { require.NoError(err) require.NotNil(drr) + require.Equal(fmt.Sprintf("_IK_%s_%s_%s", partitionID, service, product), drr.Key.ParentKeyMeta.ID) + after, err := session.Decrypt(ctx, *drr) require.NoError(err) require.Equal(original, string(after)) }() - // now decrypt the DRR with a new session using the same (suffixed) partition + // Now decrypt the encrypted data via a new factory and session using a suffixed DynamoDBMetastore + factory := appencryption.NewSessionFactory( + &s.config, + testContext.NewMetastore(persistence.WithDynamoDBRegionSuffix(true)), + s.kms, + s.c, + ) + defer factory.Close() + session, err := factory.GetSession(partitionID) require.NoError(err) @@ -217,7 +220,6 @@ func (s *IntegrationTestSuite) TestDynamoDBRegionSuffix() { after, err := session.Decrypt(context.Background(), *drr) require.NoError(err) - require.Equal(original, string(after)) } diff --git a/go/appencryption/integrationtest/persistence/dynamodb_test.go b/go/appencryption/integrationtest/persistence/dynamodb_test.go index 49ffe8120..b47661c27 100644 --- a/go/appencryption/integrationtest/persistence/dynamodb_test.go +++ b/go/appencryption/integrationtest/persistence/dynamodb_test.go @@ -12,27 +12,29 @@ import ( "github.com/godaddy/asherah/go/appencryption" "github.com/godaddy/asherah/go/appencryption/pkg/persistence" - "github.com/godaddy/asherah/go/appencryption/integrationtest/persistence/persistencetest" + "github.com/godaddy/asherah/go/appencryption/integrationtest/dynamodbtest" ) +// DynamoDBSuite is the test suite for the DynamoDBMetastore. +// Tests are run against a local DynamoDB instance using testcontainers. type DynamoDBSuite struct { suite.Suite instant int64 dynamodbMetastore *persistence.DynamoDBMetastore - testContext *persistencetest.DynamoDBTestContext + testContext *dynamodbtest.DynamoDBTestContext } const ( - ikCreated = persistencetest.IKCreated - skCreated = persistencetest.SKCreated - encryptedKeyString = persistencetest.EncryptedKeyString - skKeyID = persistencetest.SKKeyID - testKey = persistencetest.TestKey + ikCreated = dynamodbtest.IKCreated + skCreated = dynamodbtest.SKCreated + encryptedKeyString = dynamodbtest.EncryptedKeyString + skKeyID = dynamodbtest.SKKeyID + testKey = dynamodbtest.TestKey ) func (suite *DynamoDBSuite) SetupSuite() { suite.instant = time.Now().Add(-24 * time.Hour).Unix() - suite.testContext = persistencetest.NewDynamoDBTestContext(suite.T(), suite.instant) + suite.testContext = dynamodbtest.NewDynamoDBTestContext(suite.T(), suite.instant) } func (suite *DynamoDBSuite) TearDownSuite() { @@ -100,7 +102,7 @@ func (suite *DynamoDBSuite) TestDynamoDBMetastore_LoadLatest_WithMultipleRecords suite.testContext.InsertTestItem(suite.T(), timeMinusOneHour) suite.testContext.InsertTestItem(suite.T(), timeMinusOneDay) - envelope, _ := suite.dynamodbMetastore.LoadLatest(context.Background(), persistencetest.TestKey) + envelope, _ := suite.dynamodbMetastore.LoadLatest(context.Background(), dynamodbtest.TestKey) assert.NotNil(suite.T(), envelope) assert.Equal(suite.T(), timePlusOneDay, envelope.Created) diff --git a/go/appencryption/integrationtest/persistence/sql_test.go b/go/appencryption/integrationtest/persistence/sql_test.go index e3eeb3088..b823a7860 100644 --- a/go/appencryption/integrationtest/persistence/sql_test.go +++ b/go/appencryption/integrationtest/persistence/sql_test.go @@ -20,6 +20,8 @@ import ( "github.com/godaddy/asherah/go/appencryption/pkg/persistence" ) +// SQLSuite is the test suite for the SQLMetastore. +// Tests are run against a local MySQL instance using testcontainers. type SQLSuite struct { suite.Suite disableTestContainers bool From 16701bf6e5806c77e99ca3fd46af503f460963d4 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Wed, 15 May 2024 18:01:20 -0700 Subject: [PATCH 39/60] updated DynamoDBMetabase to support client injection, increased test coverage --- go/appencryption/pkg/persistence/dynamodb.go | 9 + .../plugins/aws-v1/persistence/dynamodb.go | 26 ++- .../persistence/dynamodb_mockdb_test.go | 158 ++++++++++++++++++ .../aws-v1/persistence/dynamodb_test.go | 11 +- 4 files changed, 201 insertions(+), 3 deletions(-) create mode 100644 go/appencryption/plugins/aws-v1/persistence/dynamodb_mockdb_test.go diff --git a/go/appencryption/pkg/persistence/dynamodb.go b/go/appencryption/pkg/persistence/dynamodb.go index 8d10b7c54..237ac0a4f 100644 --- a/go/appencryption/pkg/persistence/dynamodb.go +++ b/go/appencryption/pkg/persistence/dynamodb.go @@ -31,6 +31,15 @@ func WithTableName(table string) DynamoDBMetastoreOption { return awsV1Persistence.WithTableName(table) } +type DynamoDBClientAPI = awsV1Persistence.DynamoDBClientAPI + +// WithClient configures the DynamoDBMetastore to use the specified DynamoDB client. +// +// DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence.WithClient instead. +func WithClient(c DynamoDBClientAPI) DynamoDBMetastoreOption { + return awsV1Persistence.WithClient(c) +} + // NewDynamoDBMetastore returns a new DynamoDBMetastore. // // DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence.NewDynamoDBMetastore instead. diff --git a/go/appencryption/plugins/aws-v1/persistence/dynamodb.go b/go/appencryption/plugins/aws-v1/persistence/dynamodb.go index 55816b243..be3550fb3 100644 --- a/go/appencryption/plugins/aws-v1/persistence/dynamodb.go +++ b/go/appencryption/plugins/aws-v1/persistence/dynamodb.go @@ -9,9 +9,9 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/service/dynamodb" "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute" - "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbiface" "github.com/aws/aws-sdk-go/service/dynamodb/expression" "github.com/godaddy/asherah/go/appencryption" "github.com/pkg/errors" @@ -34,7 +34,7 @@ var ( // DynamoDBMetastore implements the Metastore interface. type DynamoDBMetastore struct { - svc dynamodbiface.DynamoDBAPI + svc DynamoDBClientAPI regionSuffix string tableName string } @@ -49,6 +49,18 @@ func (d *DynamoDBMetastore) GetTableName() string { return d.tableName } +// DynamoDBClientAPI is an interface that defines the methods used from the DynamoDB client. +type DynamoDBClientAPI interface { + GetItemWithContext(aws.Context, *dynamodb.GetItemInput, ...request.Option) (*dynamodb.GetItemOutput, error) + PutItemWithContext(aws.Context, *dynamodb.PutItemInput, ...request.Option) (*dynamodb.PutItemOutput, error) + QueryWithContext(aws.Context, *dynamodb.QueryInput, ...request.Option) (*dynamodb.QueryOutput, error) +} + +// GetClient returns the DynamoDB client. +func (d *DynamoDBMetastore) GetClient() DynamoDBClientAPI { + return d.svc +} + // DynamoDBMetastoreOption is used to configure additional options in a DynamoDBMetastore. type DynamoDBMetastoreOption func(d *DynamoDBMetastore, p client.ConfigProvider) @@ -73,6 +85,16 @@ func WithTableName(table string) DynamoDBMetastoreOption { } } +// WithClient configures the DynamoDBMetastore to use the provided client. +// +// This is useful for testing or when you want to use a custom DynamoDB client. +func WithClient(c DynamoDBClientAPI) DynamoDBMetastoreOption { + return func(d *DynamoDBMetastore, p client.ConfigProvider) { + d.svc = c + } +} + +// NewDynamoDBMetastore creates a new DynamoDBMetastore with the provided session and options. func NewDynamoDBMetastore(sess client.ConfigProvider, opts ...DynamoDBMetastoreOption) *DynamoDBMetastore { d := &DynamoDBMetastore{ svc: dynamodb.New(sess), diff --git a/go/appencryption/plugins/aws-v1/persistence/dynamodb_mockdb_test.go b/go/appencryption/plugins/aws-v1/persistence/dynamodb_mockdb_test.go new file mode 100644 index 000000000..e589d1e04 --- /dev/null +++ b/go/appencryption/plugins/aws-v1/persistence/dynamodb_mockdb_test.go @@ -0,0 +1,158 @@ +package persistence_test + +import ( + "context" + "testing" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/dynamodb" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" + + "github.com/godaddy/asherah/go/appencryption" + "github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence" +) + +type mockDynamoDB struct { + mock.Mock +} + +func (m *mockDynamoDB) GetItemWithContext(ctx aws.Context, input *dynamodb.GetItemInput, opts ...request.Option) (*dynamodb.GetItemOutput, error) { + args := m.Called(ctx, input, opts) + return args.Get(0).(*dynamodb.GetItemOutput), args.Error(1) +} + +func (m *mockDynamoDB) PutItemWithContext(ctx aws.Context, input *dynamodb.PutItemInput, opts ...request.Option) (*dynamodb.PutItemOutput, error) { + args := m.Called(ctx, input, opts) + return args.Get(0).(*dynamodb.PutItemOutput), args.Error(1) +} + +func (m *mockDynamoDB) QueryWithContext(ctx aws.Context, input *dynamodb.QueryInput, opts ...request.Option) (*dynamodb.QueryOutput, error) { + args := m.Called(ctx, input, opts) + return args.Get(0).(*dynamodb.QueryOutput), args.Error(1) +} + +func TestDynamoDBMetastore_WithClient(t *testing.T) { + sess := getTestSession(t) + + client := &mockDynamoDB{} + db := persistence.NewDynamoDBMetastore(sess, persistence.WithClient(client)) + + assert.Equal(t, client, db.GetClient(), "client should be the same as the one passed in") +} + +func getTestSession(t *testing.T) *session.Session { + sess, err := session.NewSession(&aws.Config{ + Region: aws.String("us-west-2"), + Endpoint: aws.String("http://localhost:8000"), + }) + require.NoError(t, err) + + return sess +} + +func TestDynamoDBMetastore_Load(t *testing.T) { + ctx := context.Background() + + sess := getTestSession(t) + + client := &mockDynamoDB{} + db := persistence.NewDynamoDBMetastore(sess, persistence.WithClient(client)) + + client.On("GetItemWithContext", ctx, mock.Anything, mock.Anything).Return(getItemOutput_WithDummyItem(), nil) + + envelope, err := db.Load(ctx, "testKey", 0) + require.NoError(t, err) + + assert.NotNil(t, envelope) + assert.Equal(t, "parentKeyId", envelope.ParentKeyMeta.ID) + + client.AssertExpectations(t) +} + +func getItemOutput_WithDummyItem() *dynamodb.GetItemOutput { + return &dynamodb.GetItemOutput{ + Item: getDummyItem(), + } +} + +func getDummyItem() map[string]*dynamodb.AttributeValue { + base64 := "YmFzZTY0" // base64 encoded "base64" + + return map[string]*dynamodb.AttributeValue{ + "KeyRecord": { + M: map[string]*dynamodb.AttributeValue{ + "Key": { + S: aws.String(base64), + }, + "Created": { + N: aws.String("1234567890"), + }, + "ParentKeyMeta": { + M: map[string]*dynamodb.AttributeValue{ + "KeyId": { + S: aws.String("parentKeyId"), + }, + "Created": { + N: aws.String("1234567889"), + }, + }, + }, + }, + }, + } +} + +func TestDynamoDBMetastore_LoadLatest(t *testing.T) { + ctx := context.Background() + + sess := getTestSession(t) + + client := &mockDynamoDB{} + db := persistence.NewDynamoDBMetastore(sess, persistence.WithClient(client)) + + dummy := getDummyItem() + queryResponse := &dynamodb.QueryOutput{ + Items: []map[string]*dynamodb.AttributeValue{dummy}, + } + + client.On("QueryWithContext", ctx, mock.Anything, mock.Anything).Return(queryResponse, nil) + + envelope, err := db.LoadLatest(ctx, "testKey") + require.NoError(t, err) + + assert.NotNil(t, envelope) + assert.Equal(t, "parentKeyId", envelope.ParentKeyMeta.ID) + + client.AssertExpectations(t) +} + +func TestDynamoDBMetastore_Store(t *testing.T) { + ctx := context.Background() + + sess := getTestSession(t) + + client := &mockDynamoDB{} + db := persistence.NewDynamoDBMetastore(sess, persistence.WithClient(client)) + + client.On("PutItemWithContext", ctx, mock.Anything, mock.Anything).Return(&dynamodb.PutItemOutput{}, nil) + + envelope := &appencryption.EnvelopeKeyRecord{ + ID: "testKey", + EncryptedKey: []byte("base64"), + Created: 1234567890, + ParentKeyMeta: &appencryption.KeyMeta{ + ID: "parentKeyId", + Created: 1234567889, + }, + } + + inserted, err := db.Store(ctx, "testKey", 1234567890, envelope) + require.NoError(t, err) + assert.True(t, inserted) + + client.AssertExpectations(t) +} diff --git a/go/appencryption/plugins/aws-v1/persistence/dynamodb_test.go b/go/appencryption/plugins/aws-v1/persistence/dynamodb_test.go index 6e1d43874..f9467fbed 100644 --- a/go/appencryption/plugins/aws-v1/persistence/dynamodb_test.go +++ b/go/appencryption/plugins/aws-v1/persistence/dynamodb_test.go @@ -5,9 +5,10 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/dynamodb" "github.com/stretchr/testify/assert" - "github.com/godaddy/asherah/go/appencryption/pkg/persistence" + "github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence" ) func TestDynamoDBMetastore_WithDynamoDBRegionSuffix(t *testing.T) { @@ -49,3 +50,11 @@ func TestDynamoDBMetastore_DefaultTableName(t *testing.T) { assert.Equal(t, defaultTableName, db.GetTableName()) } + +func TestDynamoDBMetastore_DefaultClient(t *testing.T) { + s := getSession() + + db := persistence.NewDynamoDBMetastore(s) + + assert.IsType(t, &dynamodb.DynamoDB{}, db.GetClient()) +} From 7c2e9ebce9536b6b7f19dd27e268c66141c72b60 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Thu, 16 May 2024 09:44:14 -0700 Subject: [PATCH 40/60] go mod tidy --- go/appencryption/go.sum | 2 ++ 1 file changed, 2 insertions(+) diff --git a/go/appencryption/go.sum b/go/appencryption/go.sum index 123400dec..028040cdf 100644 --- a/go/appencryption/go.sum +++ b/go/appencryption/go.sum @@ -44,8 +44,10 @@ github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= From 9f63136ac5e51bc49909abfcc29a551aba32c5c4 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Thu, 16 May 2024 09:44:28 -0700 Subject: [PATCH 41/60] bump version to v0.5.0 --- go/appencryption/.versionfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/appencryption/.versionfile b/go/appencryption/.versionfile index 267577d47..8f0916f76 100644 --- a/go/appencryption/.versionfile +++ b/go/appencryption/.versionfile @@ -1 +1 @@ -0.4.1 +0.5.0 From 6100a3c828f9deba9fe32615a715afcf4003546f Mon Sep 17 00:00:00 2001 From: Sushant Mimani Date: Wed, 29 May 2024 13:22:27 -0700 Subject: [PATCH 42/60] Update the lambda example --- samples/go/aws/lambda/2-deploy.sh | 2 +- samples/go/aws/lambda/function/go.mod | 7 +++---- samples/go/aws/lambda/function/go.sum | 20 +++++++++----------- samples/go/aws/lambda/template.yml | 2 +- 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/samples/go/aws/lambda/2-deploy.sh b/samples/go/aws/lambda/2-deploy.sh index 9168f4e2a..966b3ce06 100755 --- a/samples/go/aws/lambda/2-deploy.sh +++ b/samples/go/aws/lambda/2-deploy.sh @@ -5,7 +5,7 @@ set -eo pipefail ARTIFACT_BUCKET=$(cat out/bucket-name.txt) cd function -GOOS=linux go build main.go +GOOS=linux GOARCH=amd64 go build -o bootstrap main.go cd ../ aws cloudformation package --template-file template.yml --s3-bucket $ARTIFACT_BUCKET --output-template-file out/out.yml diff --git a/samples/go/aws/lambda/function/go.mod b/samples/go/aws/lambda/function/go.mod index ec2941d29..dafcf0d7e 100644 --- a/samples/go/aws/lambda/function/go.mod +++ b/samples/go/aws/lambda/function/go.mod @@ -4,10 +4,10 @@ go 1.19 require ( github.com/aws/aws-lambda-go v1.37.0 - github.com/aws/aws-sdk-go v1.44.265 + github.com/aws/aws-sdk-go v1.46.7 github.com/aws/aws-xray-sdk-go v1.8.0 - github.com/godaddy/asherah/go/appencryption v0.2.6 - github.com/godaddy/asherah/go/securememory v0.1.4 + github.com/godaddy/asherah/go/appencryption v0.4.1 + github.com/godaddy/asherah/go/securememory v0.1.5 github.com/prometheus/procfs v0.9.0 github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 ) @@ -16,7 +16,6 @@ require ( github.com/andybalholm/brotli v1.0.4 // indirect github.com/awnumar/memcall v0.1.2 // indirect github.com/awnumar/memguard v0.22.3 // indirect - github.com/goburrow/cache v0.1.4 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/klauspost/compress v1.15.1 // indirect diff --git a/samples/go/aws/lambda/function/go.sum b/samples/go/aws/lambda/function/go.sum index 320807cdd..57739323f 100644 --- a/samples/go/aws/lambda/function/go.sum +++ b/samples/go/aws/lambda/function/go.sum @@ -7,24 +7,22 @@ github.com/awnumar/memguard v0.22.3 h1:b4sgUXtbUjhrGELPbuC62wU+BsPQy+8lkWed9Z+pj github.com/awnumar/memguard v0.22.3/go.mod h1:mmGunnffnLHlxE5rRgQc3j+uwPZ27eYb61ccr8Clz2Y= github.com/aws/aws-lambda-go v1.37.0 h1:WXkQ/xhIcXZZ2P5ZBEw+bbAKeCEcb5NtiYpSwVVzIXg= github.com/aws/aws-lambda-go v1.37.0/go.mod h1:jwFe2KmMsHmffA1X2R09hH6lFzJQxzI8qK17ewzbQMM= -github.com/aws/aws-sdk-go v1.44.265 h1:rlBuD8OYjM5Vfcf7jDa264oVHqlPqY7y7o+JmrjNFUc= -github.com/aws/aws-sdk-go v1.44.265/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.46.7 h1:IjvAWeiJZlbETOemOwvheN5L17CvKvKW0T1xOC6d3Sc= +github.com/aws/aws-sdk-go v1.46.7/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-xray-sdk-go v1.8.0 h1:0xncHZ588wB/geLjbM/esoW3FOEThWy2TJyb4VXfLFY= github.com/aws/aws-xray-sdk-go v1.8.0/go.mod h1:7LKe47H+j3evfvS1+q0wzpoaGXGrF3mUsfM+thqVO+A= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/goburrow/cache v0.1.4 h1:As4KzO3hgmzPlnaMniZU9+VmoNYseUhuELbxy9mRBfw= -github.com/goburrow/cache v0.1.4/go.mod h1:cDFesZDnIlrHoNlMYqqMpCRawuXulgx+y7mXU8HZ+/c= -github.com/godaddy/asherah/go/appencryption v0.2.6 h1:4Julkowk/oL2xspt6XvcT0i93RASSU5k2kmauBSTV2U= -github.com/godaddy/asherah/go/appencryption v0.2.6/go.mod h1:T4QuD/LuWnFxaro5K7n6VzXAtII5fjVed5el4j6hMns= -github.com/godaddy/asherah/go/securememory v0.1.4 h1:1UlEPE5Q2wK1fbGwjIBtlGO02teLFBFk7dNIvdWOzNQ= -github.com/godaddy/asherah/go/securememory v0.1.4/go.mod h1:grCFdMhT5CY8h+E+Qb1Abhd6uBDIxrwVh6Tulsc9gj4= +github.com/godaddy/asherah/go/appencryption v0.4.1 h1:4AA7VBNrvnMHRyXwsJPvrGE/vOWsCTzEP0/LomJi0c4= +github.com/godaddy/asherah/go/appencryption v0.4.1/go.mod h1:dtyfHw5AYl1PdugPenFpQ66vBLQecEu4gric774Piuo= +github.com/godaddy/asherah/go/securememory v0.1.5 h1:kVD3uXa/eB7cZaKW5Dcxt/3lFw3r34DIqR+zWj2/HIc= +github.com/godaddy/asherah/go/securememory v0.1.5/go.mod h1:a9Y2Xj/Lo0aCXLh3MD6gGlNq+9jrYB6FT8nGgr4ureg= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= 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/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= @@ -42,8 +40,8 @@ github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/objx v0.5.1 h1:4VhoImhV/Bm0ToFkXFi8hXNXwpDRZ/ynw3amt82mzq0= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.35.0 h1:wwkR8mZn2NbigFsaw2Zj5r+xkmzjbrA/lyTmiSlal/Y= diff --git a/samples/go/aws/lambda/template.yml b/samples/go/aws/lambda/template.yml index 61e49f091..1d56452b9 100644 --- a/samples/go/aws/lambda/template.yml +++ b/samples/go/aws/lambda/template.yml @@ -10,7 +10,7 @@ Resources: ASHERAH_KMS_KEY_ARN: arn:aws:kms:::key/ ASHERAH_METASTORE_TABLE_NAME: EncryptionKey Handler: main - Runtime: go1.x + Runtime: provided.al2023 CodeUri: function/. Description: Performs encrypt/decrypt operations via the Asherah SDK Timeout: 5 From ed697934f3b2bf9134cdfd71aa4a9040ce7dfbbc Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 11:31:35 -0700 Subject: [PATCH 43/60] delete existing golangci config --- go/appencryption/.golangci.yml | 229 --------------------------------- 1 file changed, 229 deletions(-) delete mode 100644 go/appencryption/.golangci.yml diff --git a/go/appencryption/.golangci.yml b/go/appencryption/.golangci.yml deleted file mode 100644 index 0da03342e..000000000 --- a/go/appencryption/.golangci.yml +++ /dev/null @@ -1,229 +0,0 @@ -# This file contains all available configuration options -# with their default values. - -# options for analysis running -run: - # default concurrency is a available CPU number - concurrency: 4 - - # timeout for analysis, e.g. 30s, 5m, default is 1m - deadline: 5m - - # exit code when at least one issue was found, default is 1 - issues-exit-code: 0 - - # include test files or not, default is true - tests: true - - # by default isn't set. If set we pass it to "go list -mod={option}". From "go help modules": - # If invoked with -mod=readonly, the go command is disallowed from the implicit - # automatic updating of go.mod described above. Instead, it fails when any changes - # to go.mod are needed. This setting is most useful to check that go.mod does - # not need updates, such as in a continuous integration and testing system. - # If invoked with -mod=vendor, the go command assumes that the vendor - # directory holds the correct copies of dependencies and ignores - # the dependency descriptions in go.mod. - modules-download-mode: readonly - - skip-dirs: - - cmd/example - -# output configuration options -output: - # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number" - format: colored-line-number - - # print lines of code with issue, default is true - print-issued-lines: true - - # print linter name in the end of issue text, default is true - print-linter-name: true - - -# all available settings of specific linters -linters-settings: - errcheck: - # report about not checking of errors in type assetions: `a := b.(MyStruct)`; - # default is false: such cases aren't reported by default. - check-type-assertions: true - - # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; - # default is false: such cases aren't reported by default. - check-blank: true - govet: - # report about shadowed variables - check-shadowing: true - golint: - # minimal confidence for issues, default is 0.8 - min-confidence: 0.8 - gomnd: - settings: - mnd: - # the list of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description. - checks: ignored-numbers - gofmt: - # simplify code: gofmt with `-s` option, true by default - simplify: true - goimports: - # put imports beginning with prefix after 3rd-party packages; - # it's a comma-separated list of prefixes - local-prefixes: github.com/godaddy/asherah/go/appencryption - gocyclo: - # minimal code complexity to report, 30 by default (but we recommend 10-20) - min-complexity: 10 - maligned: - # print struct with more effective memory layout or not, false by default - suggest-new: true - dupl: - # tokens count to trigger issue, 150 by default - threshold: 120 - goconst: - # minimal length of string constant, 3 by default - min-len: 3 - # minimal occurrences count to trigger, 3 by default - min-occurrences: 3 - misspell: - # Correct spellings using locale preferences for US or UK. - # Default is to use a neutral variety of English. - # Setting locale to US will correct the British spelling of 'colour' to 'color'. - locale: US - lll: - # max line length, lines longer will be reported. Default is 120. - # '\t' is counted as 1 character by default, and can be changed with the tab-width option - line-length: 180 - # tab width in spaces. Default to 1. - tab-width: 1 - unused: - # treat code as a program (not a library) and report unused exported identifiers; default is false. - # XXX: if you enable this setting, unused will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find funcs usages. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - unparam: - # Inspect exported functions, default is false. Set to true if no external program/library imports your code. - # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find external interfaces. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - nakedret: - # make an issue if func has more lines of code than this setting and it has naked returns; default is 30 - max-func-lines: 30 - prealloc: - # XXX: we don't recommend using this linter before doing performance profiling. - # For most programs usage of prealloc will be a premature optimization. - - # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them. - # True by default. - simple: true - range-loops: true # Report preallocation suggestions on range loops, true by default - for-loops: true # Report preallocation suggestions on for loops, false by default - gocritic: - # Which checks should be enabled; can't be combined with 'disabled-checks'; - # See https://go-critic.github.io/overview#checks-overview - # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run` - # By default list of stable checks is used. - #enabled-checks: - # - rangeValCopy - - # Which checks should be disabled; can't be combined with 'enabled-checks'; default is empty - disabled-checks: - - regexpMust - - # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint` run to see all tags and checks. - # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags". - enabled-tags: - - performance - - settings: # settings passed to gocritic - captLocal: # must be valid enabled check name - paramsOnly: true - rangeValCopy: - sizeThreshold: 32 - funlen: - lines: 70 - -linters: - #enable: - # - megacheck - # - govet - enable-all: true - disable: - - gochecknoglobals - - godox - # - maligned - # - prealloc - disable-all: false - # presets: - # - bugs - # - unused - fast: false - - -issues: - # List of regexps of issue texts to exclude, empty list by default. - # But independently from this option we use default exclude patterns, - # it can be disabled by `exclude-use-default: false`. To list all - # excluded by default patterns execute `golangci-lint run --help` - #exclude: - # - abcdef - - # Excluding configuration per-path and per-linter - exclude-rules: - # Exclude some linters from running on tests files. - - path: _test\.go - linters: - - dupl - - errcheck - - gocyclo - - gomnd - - gosec - - govet - - # Ease some gocritic warnings on test files. - - path: _test\.go - text: "(unnamedResult|exitAfterDefer)" - linters: - - gocritic - - # Exclude known linters from partially hard-vendored code, - # which is impossible to exclude via "nolint" comments. - - path: internal/hmac/ - text: "weak cryptographic primitive" - linters: - - gosec - - path: internal/hmac/ - text: "Write\\` is not checked" - linters: - - errcheck - - # Ease linting on benchmarking code. - - path: cmd/stun-bench/ - linters: - - gosec - - errcheck - - # Independently from option `exclude` we use default exclude patterns, - # it can be disabled by this option. To list all - # excluded by default patterns execute `golangci-lint run --help`. - # Default value for this option is true. - exclude-use-default: true - - # Maximum issues count per one linter. Set to 0 to disable. Default is 50. - max-per-linter: 0 - - # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. - max-same-issues: 0 - - # Show only new issues: if there are unstaged changes or untracked files, - # only those changes are analyzed, else only changes in HEAD~ are analyzed. - # It's a super-useful option for integration of golangci-lint into existing - # large codebase. It's not practical to fix all existing issues at the moment - # of integration: much better don't allow issues in new code. - # Default is false. - new: false - - # Show only new issues created after git revision `REV` - #new-from-rev: REV - - # Show only new issues created in git patch with set file path. - #new-from-patch: path/to/patch/file From e4b7ff3a9f6130cdeaea90653446e02ffec34a20 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 11:34:29 -0700 Subject: [PATCH 44/60] new golangci config --- go/appencryption/.golangci.yml | 93 ++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 go/appencryption/.golangci.yml diff --git a/go/appencryption/.golangci.yml b/go/appencryption/.golangci.yml new file mode 100644 index 000000000..b7ee86808 --- /dev/null +++ b/go/appencryption/.golangci.yml @@ -0,0 +1,93 @@ +# options for analysis running +run: + # default concurrency is a available CPU number + concurrency: 4 + + # timeout for analysis, e.g. 30s, 5m, default is 1m + deadline: 5m + + # exit code when at least one issue was found, default is 1 + issues-exit-code: 1 + + # ugly code is ugly - test code is no exception + tests: true + + # by default isn't set. If set we pass it to "go list -mod={option}". From "go help modules": + # If invoked with -mod=readonly, the go command is disallowed from the implicit + # automatic updating of go.mod described above. Instead, it fails when any changes + # to go.mod are needed. This setting is most useful to check that go.mod does + # not need updates, such as in a continuous integration and testing system. + # If invoked with -mod=vendor, the go command assumes that the vendor + # directory holds the correct copies of dependencies and ignores + # the dependency descriptions in go.mod. + modules-download-mode: readonly + + # go version to use. Default is the version of the go command. + go: "1.19" + +output: + formats: + - format: colored-line-number + path: stdout + + # Sort results by the order defined in `sort-order`. + # Default: false + sort-results: true + + # Order to use when sorting results. + # Require `sort-results` to `true`. + # Possible values: `file`, `linter`, and `severity`. + # + # If the severity values are inside the following list, they are ordered in this order: + # 1. error + # 2. warning + # 3. high + # 4. medium + # 5. low + # Either they are sorted alphabetically. + # + # Default: ["file"] + sort-order: + # - linter + # - severity + - file # filepath, line, and column. + + # show stats + show-stats: true + +linters: + enable-all: false + enabled: + - errcheck + - gosimple + - govet + - ineffassign + - staticcheck + - unused + fast: false + + disable: + - contextcheck + - testifylint + + presets: + - bugs + # - comment + # - complexity + # - error + # - format + # - import + # - metalinter + # - module + # - performance + # - sql + # - style + # - test + # - unused + +issues: + exclude-rules: + - path: _test\.go + linters: + - errcheck + - gosec From 308e6b2903d50ae5fe8cf55bbb909000771ee4f9 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 12:36:53 -0700 Subject: [PATCH 45/60] initial lint cleanup --- go/appencryption/envelope.go | 4 +- go/appencryption/pkg/cache/cache.go | 52 +++++++++-------- go/appencryption/pkg/cache/internal/hash.go | 2 + go/appencryption/pkg/cache/lfu.go | 28 +++++----- go/appencryption/pkg/cache/lru.go | 56 +++++++++---------- go/appencryption/pkg/cache/tlfu.go | 56 +++++++++---------- go/appencryption/pkg/persistence/sql.go | 4 +- .../plugins/aws-v1/kms/aws_test.go | 19 ++++--- .../plugins/aws-v1/persistence/dynamodb.go | 3 +- 9 files changed, 117 insertions(+), 107 deletions(-) diff --git a/go/appencryption/envelope.go b/go/appencryption/envelope.go index 8b01a4569..d489d624c 100644 --- a/go/appencryption/envelope.go +++ b/go/appencryption/envelope.go @@ -50,8 +50,8 @@ func (m KeyMeta) AsLatest() KeyMeta { // required to decrypt the key encryption key. This struct should be stored in your // data persistence as it's required to decrypt data. type DataRowRecord struct { - Key *EnvelopeKeyRecord - Data []byte + Key *EnvelopeKeyRecord `json:"Key"` + Data []byte `json:"Data"` } // EnvelopeKeyRecord represents an encrypted key and is the data structure used diff --git a/go/appencryption/pkg/cache/cache.go b/go/appencryption/pkg/cache/cache.go index 0de3f158e..37c4c166a 100644 --- a/go/appencryption/pkg/cache/cache.go +++ b/go/appencryption/pkg/cache/cache.go @@ -82,22 +82,26 @@ type cacheEvent[K comparable, V any] struct { } // policy is the generic interface for eviction policies. +// +// Note: methods are exported solely as a workaround for [staticcheck#1294] +// +// [staticcheck#1294]: https://github.com/dominikh/go-tools/issues/1294 type policy[K comparable, V any] interface { - // init initializes the policy with the given capacity. - init(int) - // capacity returns the capacity of the policy. - capacity() int - // close removes all items from the cache, sends a close event to the event + // Init initializes the policy with the given capacity. + Init(int) + // Capacity returns the capacity of the policy. + Capacity() int + // Close removes all items from the cache, sends a Close event to the event // processing goroutine, and waits for it to exit. - close() - // admit is called when an item is admitted to the cache. - admit(item *cacheItem[K, V]) - // access is called when an item is accessed. - access(item *cacheItem[K, V]) - // victim returns the victim item to be evicted. - victim() *cacheItem[K, V] - // remove is called when an item is removed from the cache. - remove(item *cacheItem[K, V]) + Close() + // Admit is called when an item is admitted to the cache. + Admit(item *cacheItem[K, V]) + // Access is called when an item is accessed. + Access(item *cacheItem[K, V]) + // Victim returns the victim item to be evicted. + Victim() *cacheItem[K, V] + // Remove is called when an item is removed from the cache. + Remove(item *cacheItem[K, V]) } // Clock is an interface for getting the current time. @@ -216,7 +220,7 @@ func (b *builder[K, V]) Build() Interface[K, V] { isSync: b.isSync, } - c.policy.init(b.capacity) + c.policy.Init(b.capacity) c.startup() @@ -291,7 +295,7 @@ func (c *cache[K, V]) Close() error { c.byKey = nil - c.policy.close() + c.policy.Close() return nil } @@ -339,7 +343,7 @@ func (c *cache[K, V]) Capacity() int { c.mux.RLock() defer c.mux.RUnlock() - return c.policy.capacity() + return c.policy.Capacity() } // Set adds a value to the cache. If an item with the given key already exists, @@ -359,13 +363,13 @@ func (c *cache[K, V]) Set(key K, value V) { item.expiration = c.clock.Now().Add(c.expiry) } - c.policy.access(item) + c.policy.Access(item) return } // if the cache is full, evict an item - if c.size == c.policy.capacity() { + if c.size == c.policy.Capacity() { c.evict() } @@ -382,7 +386,7 @@ func (c *cache[K, V]) Set(key K, value V) { c.size++ - c.policy.admit(item) + c.policy.Admit(item) } // Get returns a value from the cache. If an item with the given key does not @@ -405,7 +409,7 @@ func (c *cache[K, V]) Get(key K) (V, bool) { return c.zeroValue(), false } - c.policy.access(item) + c.policy.Access(item) return item.value, true } @@ -439,7 +443,7 @@ func (c *cache[K, V]) Delete(key K) bool { c.size-- - c.policy.remove(item) + c.policy.Remove(item) return true } @@ -453,7 +457,7 @@ func (c *cache[K, V]) zeroValue() V { // evict removes an item from the cache and sends an evict event or, if the // cache uses a synchronized eviction process, calls the evict callback. func (c *cache[K, V]) evict() { - item := c.policy.victim() + item := c.policy.Victim() c.evictItem(item) } @@ -463,7 +467,7 @@ func (c *cache[K, V]) evictItem(item *cacheItem[K, V]) { c.size-- - c.policy.remove(item) + c.policy.Remove(item) if c.isSync { log.Debugf("%s executing evict callback for item (synchronous): %v", c, item.key) diff --git a/go/appencryption/pkg/cache/internal/hash.go b/go/appencryption/pkg/cache/internal/hash.go index fd0ce5e8b..3d9c44f1a 100644 --- a/go/appencryption/pkg/cache/internal/hash.go +++ b/go/appencryption/pkg/cache/internal/hash.go @@ -121,6 +121,8 @@ func hashString(data string) uint64 { func hashPointer(k interface{}) (uint64, bool) { v := reflect.ValueOf(k) + + //nolint:exhaustive switch v.Kind() { case reflect.Ptr, reflect.UnsafePointer, reflect.Func, reflect.Slice, reflect.Map, reflect.Chan: return hashU64(uint64(v.Pointer())), true diff --git a/go/appencryption/pkg/cache/lfu.go b/go/appencryption/pkg/cache/lfu.go index d809cdca1..afb4979c8 100644 --- a/go/appencryption/pkg/cache/lfu.go +++ b/go/appencryption/pkg/cache/lfu.go @@ -23,37 +23,37 @@ type lfu[K comparable, V any] struct { frequencies *list.List // Linked list containing all frequencyParents in order of least frequently used } -// init initializes the LFU cache policy. -func (c *lfu[K, V]) init(capacity int) { +// Init initializes the LFU cache policy. +func (c *lfu[K, V]) Init(capacity int) { c.cap = capacity c.frequencies = list.New() } -// capacity returns the capacity of the cache. -func (c *lfu[K, V]) capacity() int { +// Capacity returns the capacity of the cache. +func (c *lfu[K, V]) Capacity() int { return c.cap } -// access is called when an item is accessed in the cache. It increments the +// Access is called when an item is accessed in the cache. It increments the // frequency of the item. -func (c *lfu[K, V]) access(item *cacheItem[K, V]) { +func (c *lfu[K, V]) Access(item *cacheItem[K, V]) { c.increment(item) } -// admit is called when an item is added to the cache. It increments the +// Admit is called when an item is added to the cache. It increments the // frequency of the item. -func (c *lfu[K, V]) admit(item *cacheItem[K, V]) { +func (c *lfu[K, V]) Admit(item *cacheItem[K, V]) { c.increment(item) } -// remove is called when an item is removed from the cache. It removes the item +// Remove is called when an item is removed from the cache. It removes the item // from the frequency. -func (c *lfu[K, V]) remove(item *cacheItem[K, V]) { +func (c *lfu[K, V]) Remove(item *cacheItem[K, V]) { c.delete(item.parent, item) } -// victim returns the least frequently used item in the cache. -func (c *lfu[K, V]) victim() *cacheItem[K, V] { +// Victim returns the least frequently used item in the cache. +func (c *lfu[K, V]) Victim() *cacheItem[K, V] { if frequency := c.frequencies.Front(); frequency != nil { elem := frequency.Value.(*frequencyParent[K, V]).byAccess.Front() if elem != nil { @@ -144,9 +144,9 @@ func (c *lfu[K, V]) delete(frequency *list.Element, item *cacheItem[K, V]) { } } -// close removes all items from the cache, sends a close event on the events +// Close removes all items from the cache, sends a close event on the events // channel, and waits for the cache to close. -func (c *lfu[K, V]) close() { +func (c *lfu[K, V]) Close() { c.frequencies = nil c.cap = 0 } diff --git a/go/appencryption/pkg/cache/lru.go b/go/appencryption/pkg/cache/lru.go index 301bd062f..f48076ed4 100644 --- a/go/appencryption/pkg/cache/lru.go +++ b/go/appencryption/pkg/cache/lru.go @@ -11,14 +11,14 @@ type lru[K comparable, V any] struct { evictList *list.List } -// init initializes the LRU cache policy. -func (c *lru[K, V]) init(capacity int) { +// Init initializes the LRU cache policy. +func (c *lru[K, V]) Init(capacity int) { c.cap = capacity c.evictList = list.New() } -// capacity returns the capacity of the cache. -func (c *lru[K, V]) capacity() int { +// Capacity returns the capacity of the cache. +func (c *lru[K, V]) Capacity() int { return c.cap } @@ -27,26 +27,26 @@ func (c *lru[K, V]) len() int { return c.evictList.Len() } -// access is called when an item is accessed in the cache. It moves the item to +// Access is called when an item is accessed in the cache. It moves the item to // the front of the eviction list. -func (c *lru[K, V]) access(item *cacheItem[K, V]) { +func (c *lru[K, V]) Access(item *cacheItem[K, V]) { c.evictList.MoveToFront(item.parent) } -// admit is called when an item is added to the cache. It adds the item to the +// Admit is called when an item is added to the cache. It adds the item to the // front of the eviction list. -func (c *lru[K, V]) admit(item *cacheItem[K, V]) { +func (c *lru[K, V]) Admit(item *cacheItem[K, V]) { item.parent = c.evictList.PushFront(item) } -// remove is called when an item is removed from the cache. It removes the item +// Remove is called when an item is removed from the cache. It removes the item // from the eviction list. -func (c *lru[K, V]) remove(item *cacheItem[K, V]) { +func (c *lru[K, V]) Remove(item *cacheItem[K, V]) { c.evictList.Remove(item.parent) } -// victim returns the least recently used item in the cache. -func (c *lru[K, V]) victim() *cacheItem[K, V] { +// Victim returns the least recently used item in the cache. +func (c *lru[K, V]) Victim() *cacheItem[K, V] { oldest := c.evictList.Back() if oldest == nil { return nil @@ -55,8 +55,8 @@ func (c *lru[K, V]) victim() *cacheItem[K, V] { return oldest.Value.(*cacheItem[K, V]) } -// close implements the policy interface. -func (c *lru[K, V]) close() { +// Close implements the policy interface. +func (c *lru[K, V]) Close() { c.evictList = nil c.cap = 0 } @@ -80,8 +80,8 @@ type slru[K comparable, V any] struct { probationList *list.List } -// init initializes the SLRU cache policy. -func (c *slru[K, V]) init(capacity int) { +// Init initializes the SLRU cache policy. +func (c *slru[K, V]) Init(capacity int) { c.cap = capacity c.protectedList = list.New() @@ -91,14 +91,14 @@ func (c *slru[K, V]) init(capacity int) { c.probationCapacity = capacity - c.protectedCapacity } -// capacity returns the capacity of the cache. -func (c *slru[K, V]) capacity() int { +// Capacity returns the capacity of the cache. +func (c *slru[K, V]) Capacity() int { return c.cap } -// access is called when an item is accessed in the cache. It moves the item to +// Access is called when an item is accessed in the cache. It moves the item to // the front of its respective eviction list. -func (c *slru[K, V]) access(item *cacheItem[K, V]) { +func (c *slru[K, V]) Access(item *cacheItem[K, V]) { sitem := item.parent.Value.(*slruItem[K, V]) if sitem.protected { c.protectedList.MoveToFront(item.parent) @@ -124,9 +124,9 @@ func (c *slru[K, V]) access(item *cacheItem[K, V]) { } } -// admit is called when an item is added to the cache. It adds the item to the +// Admit is called when an item is added to the cache. It adds the item to the // front of the probation list. -func (c *slru[K, V]) admit(item *cacheItem[K, V]) { +func (c *slru[K, V]) Admit(item *cacheItem[K, V]) { newItem := &slruItem[K, V]{ cacheItem: item, protected: false, @@ -135,8 +135,8 @@ func (c *slru[K, V]) admit(item *cacheItem[K, V]) { item.parent = c.probationList.PushFront(newItem) } -// victim returns the least recently used item in the cache. -func (c *slru[K, V]) victim() *cacheItem[K, V] { +// Victim returns the least recently used item in the cache. +func (c *slru[K, V]) Victim() *cacheItem[K, V] { if c.probationList.Len() > 0 { return c.probationList.Back().Value.(*slruItem[K, V]).cacheItem } @@ -148,9 +148,9 @@ func (c *slru[K, V]) victim() *cacheItem[K, V] { return nil } -// remove is called when an item is removed from the cache. It removes the item +// Remove is called when an item is removed from the cache. It removes the item // from the eviction list. -func (c *slru[K, V]) remove(item *cacheItem[K, V]) { +func (c *slru[K, V]) Remove(item *cacheItem[K, V]) { sitem := item.parent.Value.(*slruItem[K, V]) if sitem.protected { c.protectedList.Remove(item.parent) @@ -160,8 +160,8 @@ func (c *slru[K, V]) remove(item *cacheItem[K, V]) { c.probationList.Remove(item.parent) } -// close implements the policy interface. -func (c *slru[K, V]) close() { +// Close implements the policy interface. +func (c *slru[K, V]) Close() { c.protectedList = nil c.probationList = nil c.cap = 0 diff --git a/go/appencryption/pkg/cache/tlfu.go b/go/appencryption/pkg/cache/tlfu.go index 3cb87d6ab..68152aee4 100644 --- a/go/appencryption/pkg/cache/tlfu.go +++ b/go/appencryption/pkg/cache/tlfu.go @@ -40,8 +40,8 @@ type tinyLFU[K comparable, V any] struct { keys map[K]tinyLFUEntry[K, V] // Hashmap containing *tinyLFUEntry for O(1) access } -// init initializes the tinyLFU cache policy. -func (c *tinyLFU[K, V]) init(capacity int) { +// Init initializes the tinyLFU cache policy. +func (c *tinyLFU[K, V]) Init(capacity int) { c.cap = capacity c.keys = make(map[K]tinyLFUEntry[K, V]) @@ -58,30 +58,30 @@ func (c *tinyLFU[K, V]) init(capacity int) { // Note that for small cache sizes the admission window may be 0, in which // case the SLRU is the entire cache and the doorkeeper is not used. lruCap := int(float64(capacity) * admissionRatio) - c.lru.init(lruCap) + c.lru.Init(lruCap) slruCap := capacity - lruCap - c.slru.init(slruCap) + c.slru.Init(slruCap) } -// capacity returns the capacity of the cache. -func (c *tinyLFU[K, V]) capacity() int { +// Capacity returns the capacity of the cache. +func (c *tinyLFU[K, V]) Capacity() int { return c.cap } -// access is called when an item is accessed in the cache. It increments the +// Access is called when an item is accessed in the cache. It increments the // frequency of the item. -func (c *tinyLFU[K, V]) access(item *cacheItem[K, V]) { +func (c *tinyLFU[K, V]) Access(item *cacheItem[K, V]) { c.increment(item) - c.keys[item.key].parent.access(item) + c.keys[item.key].parent.Access(item) } -// admit is called when an item is added to the cache. It increments the +// Admit is called when an item is added to the cache. It increments the // frequency of the item. -func (c *tinyLFU[K, V]) admit(item *cacheItem[K, V]) { +func (c *tinyLFU[K, V]) Admit(item *cacheItem[K, V]) { if c.bypassed() { - c.slru.admit(item) + c.slru.Admit(item) return } @@ -94,10 +94,10 @@ func (c *tinyLFU[K, V]) admit(item *cacheItem[K, V]) { return } - victim := c.lru.victim() + victim := c.lru.Victim() // Otherwise, promote the victim from the LRU to the SLRU - c.lru.remove(victim) + c.lru.Remove(victim) c.admitTo(victim, &c.slru) // then add the new item to the LRU @@ -111,7 +111,7 @@ func (c *tinyLFU[K, V]) bypassed() bool { // admitTo adds the item to the provided eviction list. func (c *tinyLFU[K, V]) admitTo(item *cacheItem[K, V], list policy[K, V]) { - list.admit(item) + list.Admit(item) c.keys[item.key] = tinyLFUEntry[K, V]{ hash: internal.ComputeHash(item.key), @@ -119,18 +119,18 @@ func (c *tinyLFU[K, V]) admitTo(item *cacheItem[K, V], list policy[K, V]) { } } -// victim returns the victim item to be evicted. -func (c *tinyLFU[K, V]) victim() *cacheItem[K, V] { - candidate := c.lru.victim() +// Victim returns the victim item to be evicted. +func (c *tinyLFU[K, V]) Victim() *cacheItem[K, V] { + candidate := c.lru.Victim() // If the LRU is empty, just return the SLRU victim. // This is the case when the cache is closing and // the items are being purged. if candidate == nil { - return c.slru.victim() + return c.slru.Victim() } - victim := c.slru.victim() + victim := c.slru.Victim() // If the SLRU is empty, just return the LRU victim. if victim == nil { @@ -145,7 +145,7 @@ func (c *tinyLFU[K, V]) victim() *cacheItem[K, V] { // If the candidate is more frequently accessed than the victim, // remove the candidate from the LRU and add it to the SLRU. if candidateFreq > victimFreq { - c.lru.remove(candidate) + c.lru.Remove(candidate) c.admitTo(candidate, &c.slru) @@ -165,10 +165,10 @@ func (c *tinyLFU[K, V]) estimate(h uint64) uint8 { return freq } -// remove is called when an item is removed from the cache. It removes the item +// Remove is called when an item is removed from the cache. It removes the item // from the appropriate eviction list. -func (c *tinyLFU[K, V]) remove(item *cacheItem[K, V]) { - c.keys[item.key].parent.remove(item) +func (c *tinyLFU[K, V]) Remove(item *cacheItem[K, V]) { + c.keys[item.key].parent.Remove(item) } // increment increments the frequency of the item. @@ -193,10 +193,10 @@ func (c *tinyLFU[K, V]) increment(item *cacheItem[K, V]) { } } -// close removes all items from the cache. -func (c *tinyLFU[K, V]) close() { - c.lru.close() - c.slru.close() +// Close removes all items from the cache. +func (c *tinyLFU[K, V]) Close() { + c.lru.Close() + c.slru.Close() c.cap = 0 } diff --git a/go/appencryption/pkg/persistence/sql.go b/go/appencryption/pkg/persistence/sql.go index 2bec08884..7885ebbdb 100644 --- a/go/appencryption/pkg/persistence/sql.go +++ b/go/appencryption/pkg/persistence/sql.go @@ -49,6 +49,8 @@ var qrx = regexp.MustCompile(`\?`) // sql test project: https://github.com/bradfitz/go-sql-test. func (t SQLMetastoreDBType) q(sql string) string { var pref string + + //nolint:exhaustive switch t { case Postgres: pref = "$" @@ -117,7 +119,7 @@ func parseEnvelope(s scanner) (*appencryption.EnvelopeKeyRecord, error) { var keyRecordString string if err := s.Scan(&keyRecordString); err != nil { - if err == sql.ErrNoRows { + if errors.Is(err, sql.ErrNoRows) { return nil, nil } diff --git a/go/appencryption/plugins/aws-v1/kms/aws_test.go b/go/appencryption/plugins/aws-v1/kms/aws_test.go index 453721566..acc24a5b6 100644 --- a/go/appencryption/plugins/aws-v1/kms/aws_test.go +++ b/go/appencryption/plugins/aws-v1/kms/aws_test.go @@ -8,7 +8,6 @@ import ( "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/kms" - "github.com/godaddy/asherah/go/securememory/memguard" "github.com/pkg/errors" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" @@ -34,8 +33,6 @@ var ( "encryptedKey": "+FEJWwhJA3FDFY0rMjZ9/dLqfW4pbrLZ6b4UdlWCQd2TGQ2slCdVRtBDwQm4vtWCrYiOJV6nmcPrxqjI" }` - secretFactory = new(memguard.SecretFactory) - // us-west-2 is the preferred region for our tests preferredRegion = "us-west-2" preferredRegionARN = "some:arn:value" @@ -316,10 +313,12 @@ func TestAWSKMS_DecryptKey_ReturnsErrorIfKMSDecryptFails(t *testing.T) { }, } - enBytes, _ := json.Marshal(en) - decBytes, er := m.DecryptKey(context.Background(), enBytes) + enBytes, err := json.Marshal(en) + assert.NoError(t, err) - assert.Error(t, er) + decBytes, err := m.DecryptKey(context.Background(), enBytes) + + assert.Error(t, err) assert.Nil(t, decBytes) } @@ -364,10 +363,12 @@ func TestAWSKMS_DecryptKey_ReturnsErrorIfDEKDecryptFails(t *testing.T) { }, } - enBytes, _ := json.Marshal(en) - decBytes, er := m.DecryptKey(context.Background(), enBytes) + enBytes, err := json.Marshal(en) + assert.NoError(t, err) - assert.Error(t, er) + decBytes, err := m.DecryptKey(context.Background(), enBytes) + + assert.Error(t, err) assert.Nil(t, decBytes) } diff --git a/go/appencryption/plugins/aws-v1/persistence/dynamodb.go b/go/appencryption/plugins/aws-v1/persistence/dynamodb.go index be3550fb3..de6bbf4a9 100644 --- a/go/appencryption/plugins/aws-v1/persistence/dynamodb.go +++ b/go/appencryption/plugins/aws-v1/persistence/dynamodb.go @@ -227,7 +227,8 @@ func (d *DynamoDBMetastore) Store(ctx context.Context, keyID string, created int ConditionExpression: aws.String("attribute_not_exists(" + partitionKey + ")"), }) if err != nil { - if awsErr, ok := err.(awserr.Error); ok && awsErr.Code() == dynamodb.ErrCodeConditionalCheckFailedException { + var awsErr awserr.Error + if errors.As(err, &awsErr) && awsErr.Code() == dynamodb.ErrCodeConditionalCheckFailedException { return false, errors.Wrapf(err, "attempted to create duplicate key: %s, %d", keyID, created) } From 141f1e4a1cca0537426bfc7c91be28dee2abdb20 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 12:54:04 -0700 Subject: [PATCH 46/60] add linter preset: comment; fixup --- go/appencryption/.golangci.yml | 4 +++- go/appencryption/appencryption.go | 4 ++-- go/appencryption/envelope.go | 4 ++-- go/appencryption/partition.go | 4 ++-- go/appencryption/pkg/crypto/aead/aes256gcm.go | 2 +- go/appencryption/pkg/kms/aws.go | 2 +- go/appencryption/pkg/kms/static.go | 2 +- go/appencryption/pkg/persistence/sql.go | 4 ++-- go/appencryption/plugins/aws-v1/kms/aws.go | 4 ++-- go/appencryption/plugins/aws-v1/persistence/dynamodb.go | 2 +- go/appencryption/session.go | 4 ++-- 11 files changed, 19 insertions(+), 17 deletions(-) diff --git a/go/appencryption/.golangci.yml b/go/appencryption/.golangci.yml index b7ee86808..b4c1905dd 100644 --- a/go/appencryption/.golangci.yml +++ b/go/appencryption/.golangci.yml @@ -68,11 +68,12 @@ linters: disable: - contextcheck + - godox - testifylint presets: - bugs - # - comment + - comment # - complexity # - error # - format @@ -90,4 +91,5 @@ issues: - path: _test\.go linters: - errcheck + - godot - gosec diff --git a/go/appencryption/appencryption.go b/go/appencryption/appencryption.go index 9485c479c..3b9300772 100644 --- a/go/appencryption/appencryption.go +++ b/go/appencryption/appencryption.go @@ -13,7 +13,7 @@ package appencryption import "context" -// Encryption implements the required methods to perform encryption/decryption on a payload +// Encryption implements the required methods to perform encryption/decryption on a payload. type Encryption interface { // EncryptPayload encrypts a provided slice of bytes and returns a DataRowRecord which contains // required information to decrypt the data in the future. @@ -73,5 +73,5 @@ type Storer interface { Store(ctx context.Context, d DataRowRecord) (interface{}, error) } -// AES256KeySize is the size of the AES key used by the AEAD implementation +// AES256KeySize is the size of the AES key used by the AEAD implementation. const AES256KeySize int = 32 diff --git a/go/appencryption/envelope.go b/go/appencryption/envelope.go index d489d624c..5d3506fb1 100644 --- a/go/appencryption/envelope.go +++ b/go/appencryption/envelope.go @@ -13,10 +13,10 @@ import ( "github.com/godaddy/asherah/go/appencryption/pkg/log" ) -// MetricsPrefix prefixes all metrics names +// MetricsPrefix prefixes all metrics names. const MetricsPrefix = "ael" -// Envelope metrics +// Envelope metrics. var ( decryptTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.drr.decrypt", MetricsPrefix), nil) encryptTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.drr.encrypt", MetricsPrefix), nil) diff --git a/go/appencryption/partition.go b/go/appencryption/partition.go index 048e1382d..f0ba45d5f 100644 --- a/go/appencryption/partition.go +++ b/go/appencryption/partition.go @@ -38,7 +38,7 @@ func (p defaultPartition) IntermediateKeyID() string { return fmt.Sprintf("_IK_%s_%s_%s", p.id, p.service, p.product) } -// IsValidIntermediateKeyID ensures the given ID is a valid intermediate key ID for this partition +// IsValidIntermediateKeyID ensures the given ID is a valid intermediate key ID for this partition. func (p defaultPartition) IsValidIntermediateKeyID(id string) bool { return id == p.IntermediateKeyID() } @@ -69,7 +69,7 @@ func (p suffixedPartition) IntermediateKeyID() string { return fmt.Sprintf("_IK_%s_%s_%s_%s", p.id, p.service, p.product, p.suffix) } -// IsValidIntermediateKeyID ensures the given ID is a valid intermediate key ID for this partition +// IsValidIntermediateKeyID ensures the given ID is a valid intermediate key ID for this partition. func (p suffixedPartition) IsValidIntermediateKeyID(id string) bool { return id == p.IntermediateKeyID() || strings.Index(id, p.defaultPartition.IntermediateKeyID()) == 0 } diff --git a/go/appencryption/pkg/crypto/aead/aes256gcm.go b/go/appencryption/pkg/crypto/aead/aes256gcm.go index b79c47667..d7a1d3b69 100644 --- a/go/appencryption/pkg/crypto/aead/aes256gcm.go +++ b/go/appencryption/pkg/crypto/aead/aes256gcm.go @@ -17,7 +17,7 @@ const ( gcmMaxDataSize = ((1 << 32) - 2) * gcmBlockSize ) -// aesGCMCipherFactory returns a AEAD cipher using AES/GCM +// aesGCMCipherFactory returns a AEAD cipher using AES/GCM. func aesGCMCipherFactory(key []byte) (cipher.AEAD, error) { block, err := aes.NewCipher(key) if err != nil { diff --git a/go/appencryption/pkg/kms/aws.go b/go/appencryption/pkg/kms/aws.go index 2926c1912..686e68d05 100644 --- a/go/appencryption/pkg/kms/aws.go +++ b/go/appencryption/pkg/kms/aws.go @@ -5,7 +5,7 @@ import ( awsV1kms "github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/kms" ) -// KMS Metrics Counters & Timers +// KMS Metrics Counters & Timers. var ( _ appencryption.KeyManagementService = (*AWSKMS)(nil) ) diff --git a/go/appencryption/pkg/kms/static.go b/go/appencryption/pkg/kms/static.go index 3230b3658..9af11729c 100644 --- a/go/appencryption/pkg/kms/static.go +++ b/go/appencryption/pkg/kms/static.go @@ -23,7 +23,7 @@ type StaticKMS struct { } // NewStatic constructs a new StaticKMS. The provided key MUST be -// be 32 bytes in length. +// 32 bytes in length. func NewStatic(key string, crypto appencryption.AEAD) (*StaticKMS, error) { if len(key) != staticKMSKeySize { return nil, errors.Errorf("invalid key size %d, must be 32 bytes", len(key)) diff --git a/go/appencryption/pkg/persistence/sql.go b/go/appencryption/pkg/persistence/sql.go index 7885ebbdb..e17051ce2 100644 --- a/go/appencryption/pkg/persistence/sql.go +++ b/go/appencryption/pkg/persistence/sql.go @@ -30,7 +30,7 @@ var ( loadLatestSQLTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.metastore.sql.loadlatest", appencryption.MetricsPrefix), nil) ) -// SQLMetastoreDBType identifies a specific database/sql driver +// SQLMetastoreDBType identifies a specific database/sql driver. type SQLMetastoreDBType string const ( @@ -83,7 +83,7 @@ func WithSQLMetastoreDBType(t SQLMetastoreDBType) SQLMetastoreOption { // SQLMetastore implements the Metastore interface for a RDBMS metastore. // // See https://github.com/godaddy/asherah/blob/master/docs/Metastore.md#rdbms for the -// required table structure and other relevent information. +// required table structure and other relevant information. type SQLMetastore struct { db *sql.DB diff --git a/go/appencryption/plugins/aws-v1/kms/aws.go b/go/appencryption/plugins/aws-v1/kms/aws.go index 7b9e3fa49..8a5806bc0 100644 --- a/go/appencryption/plugins/aws-v1/kms/aws.go +++ b/go/appencryption/plugins/aws-v1/kms/aws.go @@ -21,7 +21,7 @@ import ( "github.com/godaddy/asherah/go/appencryption/pkg/log" ) -// KMS Metrics Counters & Timers +// KMS Metrics Counters & Timers. var ( _ appencryption.KeyManagementService = (*AWSKMS)(nil) @@ -184,7 +184,7 @@ func (m *AWSKMS) EncryptKey(ctx context.Context, keyBytes []byte) ([]byte, error return b, nil } -// encryptAllRegions encrypts the plain-text key using the KMS keys of all requested reegions +// encryptAllRegions encrypts the plain-text key using the KMS keys of all requested regions. func encryptAllRegions(ctx context.Context, resp *kms.GenerateDataKeyOutput, clients []AWSKMSClient) <-chan encryptionKey { var wg sync.WaitGroup diff --git a/go/appencryption/plugins/aws-v1/persistence/dynamodb.go b/go/appencryption/plugins/aws-v1/persistence/dynamodb.go index de6bbf4a9..c7bc8ea75 100644 --- a/go/appencryption/plugins/aws-v1/persistence/dynamodb.go +++ b/go/appencryption/plugins/aws-v1/persistence/dynamodb.go @@ -26,7 +26,7 @@ const ( ) var ( - // DynamoDB metastore metrics + // DynamoDB metastore metrics. loadDynamoDBTimer = metrics.GetOrRegisterTimer("ael.metastore.dynamodb.load", nil) loadLatestDynamoDBTimer = metrics.GetOrRegisterTimer("ael.metastore.dynamodb.loadlatest", nil) storeDynamoDBTimer = metrics.GetOrRegisterTimer("ael.metastore.dynamodb.store", nil) diff --git a/go/appencryption/session.go b/go/appencryption/session.go index 70dd83e1b..cdd5d46e4 100644 --- a/go/appencryption/session.go +++ b/go/appencryption/session.go @@ -27,7 +27,7 @@ type SessionFactory struct { // FactoryOption is used to configure additional options in a SessionFactory. type FactoryOption func(*SessionFactory) -// WithSecretFactory sets the factory to use for creating Secrets +// WithSecretFactory sets the factory to use for creating Secrets. func WithSecretFactory(f securememory.SecretFactory) FactoryOption { return func(factory *SessionFactory) { factory.SecretFactory = f @@ -87,7 +87,7 @@ func NewSessionFactory(config *Config, store Metastore, kms KeyManagementService } // Close will close any open resources owned by this factory (e.g. cache of system keys). It should be called -// when the factory is no longer required +// when the factory is no longer required. func (f *SessionFactory) Close() error { if f.Config.Policy.CacheSessions { f.sessionCache.Close() From 1fb47b1086f0c8b65a08554052299359d36622a1 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 13:06:23 -0700 Subject: [PATCH 47/60] add linter preset: complexity; fixup --- go/appencryption/.golangci.yml | 11 ++++++++++- go/appencryption/pkg/kms/static_test.go | 24 ++++++++++++------------ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/go/appencryption/.golangci.yml b/go/appencryption/.golangci.yml index b4c1905dd..27dc721cd 100644 --- a/go/appencryption/.golangci.yml +++ b/go/appencryption/.golangci.yml @@ -74,7 +74,7 @@ linters: presets: - bugs - comment - # - complexity + - complexity # - error # - format # - import @@ -86,6 +86,15 @@ linters: # - test # - unused +linters-settings: + cyclop: + # The maximal code complexity to report. + # Default: 10 + max-complexity: 20 + + funlen: + lines: 70 + issues: exclude-rules: - path: _test\.go diff --git a/go/appencryption/pkg/kms/static_test.go b/go/appencryption/pkg/kms/static_test.go index ac80e2768..4bb28333b 100644 --- a/go/appencryption/pkg/kms/static_test.go +++ b/go/appencryption/pkg/kms/static_test.go @@ -54,20 +54,20 @@ func TestStaticKMS_Encrypt(t *testing.T) { if assert.NoError(t, err) { key, err := internal.GenerateKey(secretFactory, time.Now().Unix(), appencryption.AES256KeySize) + require.NoError(t, err) + + encKey, err := internal.WithKeyFunc(key, func(keyBytes []byte) ([]byte, error) { + return m.EncryptKey(context.Background(), keyBytes) + }) + require.NoError(t, err) + + afterBytes, err := m.DecryptKey(context.Background(), encKey) if assert.NoError(t, err) { - encKey, err := internal.WithKeyFunc(key, func(keyBytes []byte) ([]byte, error) { - return m.EncryptKey(context.Background(), keyBytes) + err := internal.WithKey(key, func(beforeBytes []byte) error { + assert.Equal(t, beforeBytes, afterBytes) + return nil }) - if assert.NoError(t, err) { - afterBytes, err := m.DecryptKey(context.Background(), encKey) - if assert.NoError(t, err) { - err := internal.WithKey(key, func(beforeBytes []byte) error { - assert.Equal(t, beforeBytes, afterBytes) - return nil - }) - assert.NoError(t, err) - } - } + assert.NoError(t, err) } } } From 35d415ff168212aa0b256c9bdd8feb540e2de931 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 13:11:44 -0700 Subject: [PATCH 48/60] add linter preset: error --- go/appencryption/.golangci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/go/appencryption/.golangci.yml b/go/appencryption/.golangci.yml index 27dc721cd..5ef5197e7 100644 --- a/go/appencryption/.golangci.yml +++ b/go/appencryption/.golangci.yml @@ -70,12 +70,13 @@ linters: - contextcheck - godox - testifylint + - wrapcheck presets: - bugs - comment - complexity - # - error + - error # - format # - import # - metalinter @@ -100,5 +101,6 @@ issues: - path: _test\.go linters: - errcheck + - err113 - godot - gosec From 24b5caaf1c27dfd86b4f41066b1e7506de48d986 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 13:35:54 -0700 Subject: [PATCH 49/60] add linter preset: format; fixup --- go/appencryption/.golangci.yml | 9 ++++++++- go/appencryption/internal/bytes_test.go | 3 +-- go/appencryption/key_cache.go | 1 - go/appencryption/key_cache_benchmark_test.go | 2 +- go/appencryption/key_cache_test.go | 2 +- go/appencryption/parameterized_test.go | 19 ++++++++----------- go/appencryption/pkg/kms/static.go | 2 -- go/appencryption/pkg/persistence/dynamodb.go | 1 + go/appencryption/plugins/aws-v1/kms/aws.go | 2 -- .../plugins/aws-v1/persistence/dynamodb.go | 8 ++++---- .../aws-v1/persistence/dynamodb_test.go | 1 - go/appencryption/session_cache_test.go | 1 - 12 files changed, 24 insertions(+), 27 deletions(-) diff --git a/go/appencryption/.golangci.yml b/go/appencryption/.golangci.yml index 5ef5197e7..f5b2ddd36 100644 --- a/go/appencryption/.golangci.yml +++ b/go/appencryption/.golangci.yml @@ -77,7 +77,7 @@ linters: - comment - complexity - error - # - format + - format # - import # - metalinter # - module @@ -93,6 +93,13 @@ linters-settings: # Default: 10 max-complexity: 20 + gci: + sections: + - standard + - default + - prefix(github.com/godaddy/asherah/go/appencryption) + custom-order: true + funlen: lines: 70 diff --git a/go/appencryption/internal/bytes_test.go b/go/appencryption/internal/bytes_test.go index c7e7cfcad..53152839f 100644 --- a/go/appencryption/internal/bytes_test.go +++ b/go/appencryption/internal/bytes_test.go @@ -23,8 +23,7 @@ func TestMemClr(t *testing.T) { assert.True(t, allZero) } -type ErrorReader struct { -} +type ErrorReader struct{} func (ErrorReader) Read(p []byte) (n int, err error) { return 0, errors.New("error reading from stream") diff --git a/go/appencryption/key_cache.go b/go/appencryption/key_cache.go index c5a300d6a..1a7230cb9 100644 --- a/go/appencryption/key_cache.go +++ b/go/appencryption/key_cache.go @@ -322,7 +322,6 @@ func (c *keyCache) GetOrLoadLatest(id string, loader func(KeyMeta) (*internal.Cr var err error key, err = c.load(meta, loader) - if err != nil { return nil, err } diff --git a/go/appencryption/key_cache_benchmark_test.go b/go/appencryption/key_cache_benchmark_test.go index 434e32b04..4bfec7215 100644 --- a/go/appencryption/key_cache_benchmark_test.go +++ b/go/appencryption/key_cache_benchmark_test.go @@ -184,10 +184,10 @@ func BenchmarkKeyCache_GetOrLoad_MultipleThreadsRead_NeedReloadKey(b *testing.B) // Note: this function should only happen on first load (although could execute more than once currently), if it doesn't, then something is broken return internal.NewCryptoKey(secretFactory, created, false, []byte("testing")) }) - if err != nil { b.Error(err) } + if created != k.Created() { b.Error("created mismatch") } diff --git a/go/appencryption/key_cache_test.go b/go/appencryption/key_cache_test.go index 2a86dcf78..81595a4a0 100644 --- a/go/appencryption/key_cache_test.go +++ b/go/appencryption/key_cache_test.go @@ -201,7 +201,7 @@ func (suite *CacheTestSuite) TestKeyCache_GetOrLoad_WithCachedKeyReloadRequiredA } func (suite *CacheTestSuite) TestKeyCache_GetOrLoad_WithCachedKeyReloadRequiredButNotRevoked() { - var created = time.Now().Add(-2 * suite.policy.RevokeCheckInterval).Unix() + created := time.Now().Add(-2 * suite.policy.RevokeCheckInterval).Unix() key, err := internal.NewCryptoKey(secretFactory, created, false, []byte("blah")) if assert.NoError(suite.T(), err) { diff --git a/go/appencryption/parameterized_test.go b/go/appencryption/parameterized_test.go index 3cef965d0..3fa48df30 100644 --- a/go/appencryption/parameterized_test.go +++ b/go/appencryption/parameterized_test.go @@ -24,9 +24,7 @@ const ( letterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ) -var ( - keyStates = [...]string{RETIRED, VALID, EMPTY} -) +var keyStates = [...]string{RETIRED, VALID, EMPTY} func TestParameters(t *testing.T) { for i := 0; i < len(keyStates); i++ { @@ -92,7 +90,8 @@ func runParameterizedTest(t *testing.T, cacheIK, metaIK, cacheSK, metaSK string) assert.Equal(t, payload, bytes) dkStates := &decryptKeyStates{ cacheIK: cacheIK, - cacheSK: cacheSK} + cacheSK: cacheSK, + } verifyDecryptFlow(t, &metastore.Mock, dkStates, partition.IntermediateKeyID(), partition.SystemKeyID()) } @@ -186,8 +185,7 @@ func createRevokedKey(src *internal.CryptoKey, factory securememory.SecretFactor return key } -func createSession(crypto AEAD, metastore Metastore, kms KeyManagementService, factory securememory.SecretFactory, - policy *CryptoPolicy, partition partition, ikCache keyCacher, skCache keyCacher) *Session { +func createSession(crypto AEAD, metastore Metastore, kms KeyManagementService, factory securememory.SecretFactory, policy *CryptoPolicy, partition partition, ikCache keyCacher, skCache keyCacher) *Session { return &Session{ encryption: &envelopeEncryption{ partition: partition, @@ -198,11 +196,11 @@ func createSession(crypto AEAD, metastore Metastore, kms KeyManagementService, f SecretFactory: factory, skCache: skCache, ikCache: ikCache, - }} + }, + } } -func createCache(partition partition, cacheIK, cacheSK string, intermediateKey, systemKey *internal.CryptoKey, - policy *CryptoPolicy) (keyCacher, keyCacher) { +func createCache(partition partition, cacheIK, cacheSK string, intermediateKey, systemKey *internal.CryptoKey, policy *CryptoPolicy) (keyCacher, keyCacher) { var ikCache, skCache keyCacher skCache = newKeyCache(CacheTypeSystemKeys, policy) ikCache = newKeyCache(CacheTypeIntermediateKeys, policy) @@ -247,8 +245,7 @@ func createCache(partition partition, cacheIK, cacheSK string, intermediateKey, return ikCache, skCache } -func createMetastoreSpy(ctx context.Context, metaIK, metaSK string, intermediateKey, systemKey *internal.CryptoKey, - crypto AEAD, partition partition, km KeyManagementService) *spyMetastore { +func createMetastoreSpy(ctx context.Context, metaIK, metaSK string, intermediateKey, systemKey *internal.CryptoKey, crypto AEAD, partition partition, km KeyManagementService) *spyMetastore { metastore := spyMetastore{ envelopes: make(map[string]map[int64]*EnvelopeKeyRecord), } diff --git a/go/appencryption/pkg/kms/static.go b/go/appencryption/pkg/kms/static.go index 9af11729c..633c25b34 100644 --- a/go/appencryption/pkg/kms/static.go +++ b/go/appencryption/pkg/kms/static.go @@ -50,7 +50,6 @@ func (s *StaticKMS) EncryptKey(_ context.Context, bytes []byte) ([]byte, error) dst, err := internal.WithKeyFunc(s.key, func(keyBytes []byte) ([]byte, error) { return s.Crypto.Encrypt(bytes, keyBytes) }) - if err != nil { return nil, err } @@ -63,7 +62,6 @@ func (s *StaticKMS) DecryptKey(ctx context.Context, encKey []byte) ([]byte, erro keyBytes, err := internal.WithKeyFunc(s.key, func(kekBytes []byte) ([]byte, error) { return s.Crypto.Decrypt(encKey, kekBytes) }) - if err != nil { return nil, err } diff --git a/go/appencryption/pkg/persistence/dynamodb.go b/go/appencryption/pkg/persistence/dynamodb.go index 237ac0a4f..7025609d6 100644 --- a/go/appencryption/pkg/persistence/dynamodb.go +++ b/go/appencryption/pkg/persistence/dynamodb.go @@ -2,6 +2,7 @@ package persistence import ( "github.com/aws/aws-sdk-go/aws/client" + awsV1Persistence "github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence" ) diff --git a/go/appencryption/plugins/aws-v1/kms/aws.go b/go/appencryption/plugins/aws-v1/kms/aws.go index 8a5806bc0..0a58cac30 100644 --- a/go/appencryption/plugins/aws-v1/kms/aws.go +++ b/go/appencryption/plugins/aws-v1/kms/aws.go @@ -162,7 +162,6 @@ func (m *AWSKMS) EncryptKey(ctx context.Context, keyBytes []byte) ([]byte, error defer internal.MemClr(dataKey.Plaintext) encKeyBytes, err := m.Crypto.Encrypt(keyBytes, dataKey.Plaintext) - if err != nil { return nil, err } @@ -209,7 +208,6 @@ func encryptAllRegions(ctx context.Context, resp *kms.GenerateDataKeyOutput, cli KeyId: aws.String(c.ARN), Plaintext: resp.Plaintext, }) - if err != nil { return } diff --git a/go/appencryption/plugins/aws-v1/persistence/dynamodb.go b/go/appencryption/plugins/aws-v1/persistence/dynamodb.go index c7bc8ea75..7f53b3212 100644 --- a/go/appencryption/plugins/aws-v1/persistence/dynamodb.go +++ b/go/appencryption/plugins/aws-v1/persistence/dynamodb.go @@ -13,9 +13,10 @@ import ( "github.com/aws/aws-sdk-go/service/dynamodb" "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute" "github.com/aws/aws-sdk-go/service/dynamodb/expression" - "github.com/godaddy/asherah/go/appencryption" "github.com/pkg/errors" "github.com/rcrowley/go-metrics" + + "github.com/godaddy/asherah/go/appencryption" ) const ( @@ -123,8 +124,8 @@ func (d *DynamoDBMetastore) Load(ctx context.Context, keyID string, created int6 defer loadDynamoDBTimer.UpdateSince(time.Now()) proj := expression.NamesList(expression.Name(keyRecord)) - expr, err := expression.NewBuilder().WithProjection(proj).Build() + expr, err := expression.NewBuilder().WithProjection(proj).Build() if err != nil { return nil, errors.Wrap(err, "dynamodb expression error") } @@ -139,7 +140,6 @@ func (d *DynamoDBMetastore) Load(ctx context.Context, keyID string, created int6 TableName: aws.String(d.tableName), ConsistentRead: aws.Bool(true), // always use strong consistency }) - if err != nil { return nil, errors.Wrap(err, "metastore error") } @@ -207,8 +207,8 @@ func (d *DynamoDBMetastore) Store(ctx context.Context, keyID string, created int EncryptedKey: base64.StdEncoding.EncodeToString(envelope.EncryptedKey), ParentKeyMeta: envelope.ParentKeyMeta, } - av, err := dynamodbattribute.MarshalMap(&en) + av, err := dynamodbattribute.MarshalMap(&en) if err != nil { return false, errors.Wrap(err, "failed to marshal envelope") } diff --git a/go/appencryption/plugins/aws-v1/persistence/dynamodb_test.go b/go/appencryption/plugins/aws-v1/persistence/dynamodb_test.go index f9467fbed..e19bd7410 100644 --- a/go/appencryption/plugins/aws-v1/persistence/dynamodb_test.go +++ b/go/appencryption/plugins/aws-v1/persistence/dynamodb_test.go @@ -28,7 +28,6 @@ func getSession() *session.Session { Region: aws.String("us-west-2"), Endpoint: aws.String("http://localhost:8000"), }) - if err != nil { panic(err) } diff --git a/go/appencryption/session_cache_test.go b/go/appencryption/session_cache_test.go index 758155b8f..dd9e0aa33 100644 --- a/go/appencryption/session_cache_test.go +++ b/go/appencryption/session_cache_test.go @@ -267,7 +267,6 @@ func TestSessionCacheDuration(t *testing.T) { // now that the ttl has elapsed, we should have loaded the sessions again // and the total loaded should be greater than the expected count return loaded > expectedCount - }, time.Second*10, time.Millisecond*10) } From a67b94c1e0c6e46a63af32a8851b9f3439e9d5c9 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 15:22:47 -0700 Subject: [PATCH 50/60] add linter preset: import; replace deprecated pkg/errors package --- go/appencryption/.golangci.yml | 22 ++++++++++++-- go/appencryption/envelope.go | 2 +- go/appencryption/internal/bytes_test.go | 2 +- go/appencryption/internal/key_test.go | 2 +- go/appencryption/key_cache_benchmark_test.go | 2 +- go/appencryption/key_cache_test.go | 2 +- go/appencryption/pkg/crypto/aead/aead.go | 9 ++++-- go/appencryption/pkg/crypto/aead/aead_test.go | 2 +- go/appencryption/pkg/kms/static.go | 4 +-- go/appencryption/pkg/kms/static_test.go | 2 +- go/appencryption/pkg/persistence/dynamodb.go | 4 +-- go/appencryption/pkg/persistence/sql.go | 10 +++---- go/appencryption/plugins/aws-v1/kms/aws.go | 6 ++-- .../plugins/aws-v1/kms/aws_test.go | 2 +- .../plugins/aws-v1/persistence/dynamodb.go | 30 +++++++++++-------- go/appencryption/session.go | 2 +- 16 files changed, 63 insertions(+), 40 deletions(-) diff --git a/go/appencryption/.golangci.yml b/go/appencryption/.golangci.yml index f5b2ddd36..cc40cd2eb 100644 --- a/go/appencryption/.golangci.yml +++ b/go/appencryption/.golangci.yml @@ -68,6 +68,7 @@ linters: disable: - contextcheck + - err113 - godox - testifylint - wrapcheck @@ -78,7 +79,7 @@ linters: - complexity - error - format - # - import + - import # - metalinter # - module # - performance @@ -93,6 +94,24 @@ linters-settings: # Default: 10 max-complexity: 20 + depguard: + rules: + main: + list-mode: lax + files: + - "!$test" + - "!**/plugins/**" + deny: + - pkg: github.com/aws/aws-sdk-go + desc: "aws-sdk-go dependants must be in plugins/aws-v1" + errors: + list-mode: lax + files: + - "$all" + deny: + - pkg: github.com/pkg/errors + desc: "pkg/errors is deprecated, use errors package from stdlib" + gci: sections: - standard @@ -108,6 +127,5 @@ issues: - path: _test\.go linters: - errcheck - - err113 - godot - gosec diff --git a/go/appencryption/envelope.go b/go/appencryption/envelope.go index 5d3506fb1..2e262da3c 100644 --- a/go/appencryption/envelope.go +++ b/go/appencryption/envelope.go @@ -2,11 +2,11 @@ package appencryption import ( "context" + "errors" "fmt" "time" "github.com/godaddy/asherah/go/securememory" - "github.com/pkg/errors" "github.com/rcrowley/go-metrics" "github.com/godaddy/asherah/go/appencryption/internal" diff --git a/go/appencryption/internal/bytes_test.go b/go/appencryption/internal/bytes_test.go index 53152839f..709f81ee2 100644 --- a/go/appencryption/internal/bytes_test.go +++ b/go/appencryption/internal/bytes_test.go @@ -1,9 +1,9 @@ package internal import ( + "errors" "testing" - "github.com/pkg/errors" "github.com/stretchr/testify/assert" ) diff --git a/go/appencryption/internal/key_test.go b/go/appencryption/internal/key_test.go index aa0c42303..b67c286ee 100644 --- a/go/appencryption/internal/key_test.go +++ b/go/appencryption/internal/key_test.go @@ -1,13 +1,13 @@ package internal import ( + "errors" "fmt" "io" "testing" "time" "github.com/godaddy/asherah/go/securememory/memguard" - "github.com/pkg/errors" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" diff --git a/go/appencryption/key_cache_benchmark_test.go b/go/appencryption/key_cache_benchmark_test.go index 4bfec7215..9efb4f05d 100644 --- a/go/appencryption/key_cache_benchmark_test.go +++ b/go/appencryption/key_cache_benchmark_test.go @@ -1,6 +1,7 @@ package appencryption import ( + "errors" "flag" "fmt" "sync/atomic" @@ -8,7 +9,6 @@ import ( "time" "github.com/godaddy/asherah/go/securememory/memguard" - "github.com/pkg/errors" "github.com/stretchr/testify/assert" "github.com/godaddy/asherah/go/appencryption/internal" diff --git a/go/appencryption/key_cache_test.go b/go/appencryption/key_cache_test.go index 81595a4a0..bbebe55c8 100644 --- a/go/appencryption/key_cache_test.go +++ b/go/appencryption/key_cache_test.go @@ -1,6 +1,7 @@ package appencryption import ( + "errors" "fmt" "math/rand" "sync" @@ -8,7 +9,6 @@ import ( "testing" "time" - "github.com/pkg/errors" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" diff --git a/go/appencryption/pkg/crypto/aead/aead.go b/go/appencryption/pkg/crypto/aead/aead.go index 9d7fbe665..5bc143152 100644 --- a/go/appencryption/pkg/crypto/aead/aead.go +++ b/go/appencryption/pkg/crypto/aead/aead.go @@ -2,8 +2,8 @@ package aead import ( "crypto/cipher" - - "github.com/pkg/errors" + "errors" + "fmt" "github.com/godaddy/asherah/go/appencryption/internal" ) @@ -58,6 +58,9 @@ func (c cryptoFunc) Decrypt(data, key []byte) ([]byte, error) { // as we don't control the its lifecycle. For instance, in the case of DEKs // and KEKs this storage is wiped immediately after calling this function. d, err := aeadCipher.Open(nil, data[noncePos:], data[:noncePos], nil) + if err != nil { + return d, fmt.Errorf("error decrypting data: %w", err) + } - return d, errors.Wrap(err, "error decrypting data") + return d, nil } diff --git a/go/appencryption/pkg/crypto/aead/aead_test.go b/go/appencryption/pkg/crypto/aead/aead_test.go index e10e2d77a..c62c4030f 100644 --- a/go/appencryption/pkg/crypto/aead/aead_test.go +++ b/go/appencryption/pkg/crypto/aead/aead_test.go @@ -2,9 +2,9 @@ package aead import ( "crypto/cipher" + "errors" "testing" - "github.com/pkg/errors" "github.com/stretchr/testify/assert" ) diff --git a/go/appencryption/pkg/kms/static.go b/go/appencryption/pkg/kms/static.go index 633c25b34..ddd78c8a2 100644 --- a/go/appencryption/pkg/kms/static.go +++ b/go/appencryption/pkg/kms/static.go @@ -2,10 +2,10 @@ package kms import ( "context" + "fmt" "time" "github.com/godaddy/asherah/go/securememory/memguard" - "github.com/pkg/errors" "github.com/godaddy/asherah/go/appencryption" "github.com/godaddy/asherah/go/appencryption/internal" @@ -26,7 +26,7 @@ type StaticKMS struct { // 32 bytes in length. func NewStatic(key string, crypto appencryption.AEAD) (*StaticKMS, error) { if len(key) != staticKMSKeySize { - return nil, errors.Errorf("invalid key size %d, must be 32 bytes", len(key)) + return nil, fmt.Errorf("invalid key size %d, must be 32 bytes", len(key)) } // just hard-code the internal one being used diff --git a/go/appencryption/pkg/kms/static_test.go b/go/appencryption/pkg/kms/static_test.go index 4bb28333b..e5d14f9c7 100644 --- a/go/appencryption/pkg/kms/static_test.go +++ b/go/appencryption/pkg/kms/static_test.go @@ -2,11 +2,11 @@ package kms import ( "context" + "errors" "testing" "time" "github.com/godaddy/asherah/go/securememory/memguard" - "github.com/pkg/errors" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" diff --git a/go/appencryption/pkg/persistence/dynamodb.go b/go/appencryption/pkg/persistence/dynamodb.go index 7025609d6..b59d3bbf3 100644 --- a/go/appencryption/pkg/persistence/dynamodb.go +++ b/go/appencryption/pkg/persistence/dynamodb.go @@ -1,8 +1,6 @@ package persistence import ( - "github.com/aws/aws-sdk-go/aws/client" - awsV1Persistence "github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence" ) @@ -44,7 +42,7 @@ func WithClient(c DynamoDBClientAPI) DynamoDBMetastoreOption { // NewDynamoDBMetastore returns a new DynamoDBMetastore. // // DEPRECATED: Use github.com/godaddy/asherah/go/appencryption/plugins/aws-v1/persistence.NewDynamoDBMetastore instead. -func NewDynamoDBMetastore(sess client.ConfigProvider, opts ...DynamoDBMetastoreOption) *DynamoDBMetastore { +func NewDynamoDBMetastore(sess awsV1Persistence.ConfigProvider, opts ...DynamoDBMetastoreOption) *DynamoDBMetastore { return awsV1Persistence.NewDynamoDBMetastore(sess, opts...) } diff --git a/go/appencryption/pkg/persistence/sql.go b/go/appencryption/pkg/persistence/sql.go index e17051ce2..5398cb626 100644 --- a/go/appencryption/pkg/persistence/sql.go +++ b/go/appencryption/pkg/persistence/sql.go @@ -4,12 +4,12 @@ import ( "context" "database/sql" "encoding/json" + "errors" "fmt" "regexp" "strconv" "time" - "github.com/pkg/errors" "github.com/rcrowley/go-metrics" "github.com/godaddy/asherah/go/appencryption" @@ -123,13 +123,13 @@ func parseEnvelope(s scanner) (*appencryption.EnvelopeKeyRecord, error) { return nil, nil } - return nil, errors.Wrap(err, "error from scanner") + return nil, fmt.Errorf("error from scanner: %w", err) } var keyRecord *appencryption.EnvelopeKeyRecord if err := json.Unmarshal([]byte(keyRecordString), &keyRecord); err != nil { - return nil, errors.Wrap(err, "unable to unmarshal key") + return nil, fmt.Errorf("unable to unmarshal key: %w", err) } return keyRecord, nil @@ -163,7 +163,7 @@ func (s *SQLMetastore) Store(ctx context.Context, keyID string, created int64, e bytes, err := json.Marshal(envelope) if err != nil { - return false, errors.Wrap(err, "error marshaling envelope") + return false, fmt.Errorf("error marshaling envelope: %w", err) } createdAt := time.Unix(created, 0) @@ -172,7 +172,7 @@ func (s *SQLMetastore) Store(ctx context.Context, keyID string, created int64, e // Go sql package does not provide a specific integrity violation error for duplicate detection // at this time, so it's treated similar to other errors to avoid error parsing. // The caller is left to assume any false/error return value may be a duplicate. - return false, errors.Wrapf(err, "error storing key: %s, %d", keyID, created) + return false, fmt.Errorf("error storing key: %s, %d: %w", keyID, created, err) } return true, nil diff --git a/go/appencryption/plugins/aws-v1/kms/aws.go b/go/appencryption/plugins/aws-v1/kms/aws.go index 0a58cac30..ed7f6631d 100644 --- a/go/appencryption/plugins/aws-v1/kms/aws.go +++ b/go/appencryption/plugins/aws-v1/kms/aws.go @@ -3,6 +3,7 @@ package kms import ( "context" "encoding/json" + "errors" "fmt" "sort" "sync" @@ -13,7 +14,6 @@ import ( "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/kms" - "github.com/pkg/errors" "github.com/rcrowley/go-metrics" "github.com/godaddy/asherah/go/appencryption" @@ -63,7 +63,7 @@ func newAWSKMSClient(sess client.ConfigProvider, region, arn string) AWSKMSClien func createAWSKMSClients(arnMap map[string]string) ([]AWSKMSClient, error) { sess, err := session.NewSession() if err != nil { - return nil, errors.Wrap(err, "unable to create new session") + return nil, fmt.Errorf("unable to create new session: %w", err) } clients := make([]AWSKMSClient, 0) @@ -264,7 +264,7 @@ func (m *AWSKMS) DecryptKey(ctx context.Context, keyBytes []byte) ([]byte, error var en envelope if err := json.Unmarshal(keyBytes, &en); err != nil { - return nil, errors.Wrap(err, "unable to unmarshal envelope") + return nil, fmt.Errorf("unable to unmarshal envelope: %w", err) } for i := range m.Clients { diff --git a/go/appencryption/plugins/aws-v1/kms/aws_test.go b/go/appencryption/plugins/aws-v1/kms/aws_test.go index acc24a5b6..9d36313b8 100644 --- a/go/appencryption/plugins/aws-v1/kms/aws_test.go +++ b/go/appencryption/plugins/aws-v1/kms/aws_test.go @@ -3,12 +3,12 @@ package kms import ( "context" "encoding/json" + "errors" "testing" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/kms" - "github.com/pkg/errors" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" diff --git a/go/appencryption/plugins/aws-v1/persistence/dynamodb.go b/go/appencryption/plugins/aws-v1/persistence/dynamodb.go index 7f53b3212..f6693240f 100644 --- a/go/appencryption/plugins/aws-v1/persistence/dynamodb.go +++ b/go/appencryption/plugins/aws-v1/persistence/dynamodb.go @@ -3,6 +3,8 @@ package persistence import ( "context" "encoding/base64" + "errors" + "fmt" "strconv" "time" @@ -13,7 +15,6 @@ import ( "github.com/aws/aws-sdk-go/service/dynamodb" "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute" "github.com/aws/aws-sdk-go/service/dynamodb/expression" - "github.com/pkg/errors" "github.com/rcrowley/go-metrics" "github.com/godaddy/asherah/go/appencryption" @@ -33,6 +34,9 @@ var ( storeDynamoDBTimer = metrics.GetOrRegisterTimer("ael.metastore.dynamodb.store", nil) ) +// ConfigProvider is an alias for the AWS SDK ConfigProvider interface. +type ConfigProvider = client.ConfigProvider + // DynamoDBMetastore implements the Metastore interface. type DynamoDBMetastore struct { svc DynamoDBClientAPI @@ -63,13 +67,13 @@ func (d *DynamoDBMetastore) GetClient() DynamoDBClientAPI { } // DynamoDBMetastoreOption is used to configure additional options in a DynamoDBMetastore. -type DynamoDBMetastoreOption func(d *DynamoDBMetastore, p client.ConfigProvider) +type DynamoDBMetastoreOption func(d *DynamoDBMetastore, p ConfigProvider) // WithDynamoDBRegionSuffix configures the DynamoDBMetastore to use a regional suffix for // all writes. This feature should be enabled when using DynamoDB global tables to avoid // write conflicts arising from the "last writer wins" method of conflict resolution. func WithDynamoDBRegionSuffix(enabled bool) DynamoDBMetastoreOption { - return func(d *DynamoDBMetastore, p client.ConfigProvider) { + return func(d *DynamoDBMetastore, p ConfigProvider) { if enabled { config := p.ClientConfig(dynamodb.EndpointsID) d.regionSuffix = *config.Config.Region @@ -79,7 +83,7 @@ func WithDynamoDBRegionSuffix(enabled bool) DynamoDBMetastoreOption { // WithTableName configures the DynamoDBMetastore to use the specified table name. func WithTableName(table string) DynamoDBMetastoreOption { - return func(d *DynamoDBMetastore, p client.ConfigProvider) { + return func(d *DynamoDBMetastore, p ConfigProvider) { if len(table) > 0 { d.tableName = table } @@ -90,13 +94,13 @@ func WithTableName(table string) DynamoDBMetastoreOption { // // This is useful for testing or when you want to use a custom DynamoDB client. func WithClient(c DynamoDBClientAPI) DynamoDBMetastoreOption { - return func(d *DynamoDBMetastore, p client.ConfigProvider) { + return func(d *DynamoDBMetastore, p ConfigProvider) { d.svc = c } } // NewDynamoDBMetastore creates a new DynamoDBMetastore with the provided session and options. -func NewDynamoDBMetastore(sess client.ConfigProvider, opts ...DynamoDBMetastoreOption) *DynamoDBMetastore { +func NewDynamoDBMetastore(sess ConfigProvider, opts ...DynamoDBMetastoreOption) *DynamoDBMetastore { d := &DynamoDBMetastore{ svc: dynamodb.New(sess), tableName: defaultTableName, @@ -112,7 +116,7 @@ func NewDynamoDBMetastore(sess client.ConfigProvider, opts ...DynamoDBMetastoreO func parseResult(av *dynamodb.AttributeValue) (*appencryption.EnvelopeKeyRecord, error) { var en appencryption.EnvelopeKeyRecord if err := dynamodbattribute.Unmarshal(av, &en); err != nil { - return nil, errors.Wrap(err, "failed to unmarshal record") + return nil, fmt.Errorf("failed to unmarshal record: %w", err) } return &en, nil @@ -127,7 +131,7 @@ func (d *DynamoDBMetastore) Load(ctx context.Context, keyID string, created int6 expr, err := expression.NewBuilder().WithProjection(proj).Build() if err != nil { - return nil, errors.Wrap(err, "dynamodb expression error") + return nil, fmt.Errorf("dynamodb expression error: %w", err) } res, err := d.svc.GetItemWithContext(ctx, &dynamodb.GetItemInput{ @@ -141,7 +145,7 @@ func (d *DynamoDBMetastore) Load(ctx context.Context, keyID string, created int6 ConsistentRead: aws.Bool(true), // always use strong consistency }) if err != nil { - return nil, errors.Wrap(err, "metastore error") + return nil, fmt.Errorf("metastore error: %w", err) } if res.Item == nil { @@ -161,7 +165,7 @@ func (d *DynamoDBMetastore) LoadLatest(ctx context.Context, keyID string) (*appe expr, err := expression.NewBuilder().WithKeyCondition(cond).WithProjection(proj).Build() if err != nil { - return nil, errors.Wrap(err, "dynamodb expression error") + return nil, fmt.Errorf("dynamodb expression error: %w", err) } // Have to use query api to use limit and reverse sort order @@ -210,7 +214,7 @@ func (d *DynamoDBMetastore) Store(ctx context.Context, keyID string, created int av, err := dynamodbattribute.MarshalMap(&en) if err != nil { - return false, errors.Wrap(err, "failed to marshal envelope") + return false, fmt.Errorf("failed to marshal envelope: %w", err) } // Note conditional expression using attribute_not_exists has special semantics. Can be used on partition OR @@ -229,10 +233,10 @@ func (d *DynamoDBMetastore) Store(ctx context.Context, keyID string, created int if err != nil { var awsErr awserr.Error if errors.As(err, &awsErr) && awsErr.Code() == dynamodb.ErrCodeConditionalCheckFailedException { - return false, errors.Wrapf(err, "attempted to create duplicate key: %s, %d", keyID, created) + return false, fmt.Errorf("attempted to create duplicate key: %s, %d: %w", keyID, created, err) } - return false, errors.Wrapf(err, "error storing key key: %s, %d", keyID, created) + return false, fmt.Errorf("error storing key key: %s, %d: %w", keyID, created, err) } return true, nil diff --git a/go/appencryption/session.go b/go/appencryption/session.go index cdd5d46e4..205dc6610 100644 --- a/go/appencryption/session.go +++ b/go/appencryption/session.go @@ -2,10 +2,10 @@ package appencryption import ( "context" + "errors" "github.com/godaddy/asherah/go/securememory" "github.com/godaddy/asherah/go/securememory/memguard" - "github.com/pkg/errors" "github.com/rcrowley/go-metrics" "github.com/godaddy/asherah/go/appencryption/pkg/log" From 66b58851dcdb637405fbbf69dc376dbd1e912b76 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 15:40:04 -0700 Subject: [PATCH 51/60] add linter preset: module; remove redundant replace directive & go mod tidy --- go/appencryption/.golangci.yml | 2 +- go/appencryption/go.mod | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/go/appencryption/.golangci.yml b/go/appencryption/.golangci.yml index cc40cd2eb..08bb8bada 100644 --- a/go/appencryption/.golangci.yml +++ b/go/appencryption/.golangci.yml @@ -81,7 +81,7 @@ linters: - format - import # - metalinter - # - module + - module # - performance # - sql # - style diff --git a/go/appencryption/go.mod b/go/appencryption/go.mod index 65d3bbe80..e2ca2f532 100644 --- a/go/appencryption/go.mod +++ b/go/appencryption/go.mod @@ -6,7 +6,6 @@ require ( github.com/aws/aws-sdk-go v1.51.21 github.com/godaddy/asherah/go/securememory v0.1.5 github.com/google/uuid v1.4.0 - github.com/pkg/errors v0.9.1 github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 github.com/stretchr/testify v1.8.4 ) @@ -17,6 +16,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/kr/pretty v0.3.0 // indirect + github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.8.1 // indirect github.com/stretchr/objx v0.5.1 // indirect @@ -25,5 +25,3 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) - -replace github.com/docker/docker => github.com/docker/docker v20.10.3-0.20221013203545-33ab36d6b304+incompatible // 22.06 branch From 007c989dddc95dedcdebda7c071248318a1ef0f7 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 15:52:36 -0700 Subject: [PATCH 52/60] add linter preset: performance; fixup --- go/appencryption/.golangci.yml | 3 ++- go/appencryption/envelope.go | 4 ++-- go/appencryption/key_cache_benchmark_test.go | 4 ++-- go/appencryption/pkg/persistence/sql.go | 6 +++--- go/appencryption/plugins/aws-v1/kms/aws.go | 4 ++-- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/go/appencryption/.golangci.yml b/go/appencryption/.golangci.yml index 08bb8bada..3e0ede532 100644 --- a/go/appencryption/.golangci.yml +++ b/go/appencryption/.golangci.yml @@ -82,7 +82,7 @@ linters: - import # - metalinter - module - # - performance + - performance # - sql # - style # - test @@ -129,3 +129,4 @@ issues: - errcheck - godot - gosec + - perfsprint diff --git a/go/appencryption/envelope.go b/go/appencryption/envelope.go index 2e262da3c..aa33c0cfd 100644 --- a/go/appencryption/envelope.go +++ b/go/appencryption/envelope.go @@ -18,8 +18,8 @@ const MetricsPrefix = "ael" // Envelope metrics. var ( - decryptTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.drr.decrypt", MetricsPrefix), nil) - encryptTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.drr.encrypt", MetricsPrefix), nil) + decryptTimer = metrics.GetOrRegisterTimer(MetricsPrefix+".drr.decrypt", nil) + encryptTimer = metrics.GetOrRegisterTimer(MetricsPrefix+".drr.encrypt", nil) ) // KeyMeta contains the ID and Created timestamp for an encryption key. diff --git a/go/appencryption/key_cache_benchmark_test.go b/go/appencryption/key_cache_benchmark_test.go index 9efb4f05d..98cd75c81 100644 --- a/go/appencryption/key_cache_benchmark_test.go +++ b/go/appencryption/key_cache_benchmark_test.go @@ -220,7 +220,7 @@ func BenchmarkKeyCache_GetOrLoad_MultipleThreadsReadUniqueKeys(b *testing.B) { id := fmt.Sprintf(testKey+"-%d", curr) key, err := c.GetOrLoad(KeyMeta{id, created}, func(_ KeyMeta) (key *internal.CryptoKey, e error) { // The passed function is irrelevant because we'll always find the value in the cache - return nil, errors.New(fmt.Sprintf("loader should not be executed for id=%s", id)) + return nil, errors.New("loader should not be executed for id=" + id) }) assert.NoError(b, err) assert.Equal(b, created, key.Created()) @@ -401,7 +401,7 @@ func BenchmarkKeyCache_GetOrLoadLatest_MultipleThreadsReadUniqueKeys(b *testing. key, err := c.GetOrLoadLatest(keyID, func(_ KeyMeta) (key *internal.CryptoKey, e error) { // The passed function is irrelevant because we'll always find the value in the cache - return nil, errors.New(fmt.Sprintf("loader should not be executed for id=%s", keyID)) + return nil, errors.New("loader should not be executed for id=" + keyID) }) if err != nil { b.Error(err) diff --git a/go/appencryption/pkg/persistence/sql.go b/go/appencryption/pkg/persistence/sql.go index 5398cb626..e73f4f4e6 100644 --- a/go/appencryption/pkg/persistence/sql.go +++ b/go/appencryption/pkg/persistence/sql.go @@ -25,9 +25,9 @@ var ( // Verify SQLMetastore implements the Metastore interface. _ appencryption.Metastore = (*SQLMetastore)(nil) - storeSQLTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.metastore.sql.store", appencryption.MetricsPrefix), nil) - loadSQLTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.metastore.sql.load", appencryption.MetricsPrefix), nil) - loadLatestSQLTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.metastore.sql.loadlatest", appencryption.MetricsPrefix), nil) + storeSQLTimer = metrics.GetOrRegisterTimer(appencryption.MetricsPrefix+".metastore.sql.store", nil) + loadSQLTimer = metrics.GetOrRegisterTimer(appencryption.MetricsPrefix+".metastore.sql.load", nil) + loadLatestSQLTimer = metrics.GetOrRegisterTimer(appencryption.MetricsPrefix+".metastore.sql.loadlatest", nil) ) // SQLMetastoreDBType identifies a specific database/sql driver. diff --git a/go/appencryption/plugins/aws-v1/kms/aws.go b/go/appencryption/plugins/aws-v1/kms/aws.go index ed7f6631d..2d2e576b8 100644 --- a/go/appencryption/plugins/aws-v1/kms/aws.go +++ b/go/appencryption/plugins/aws-v1/kms/aws.go @@ -30,8 +30,8 @@ var ( generateDataKeyFunc = generateDataKey encryptAllRegionsFunc = encryptAllRegions - encryptKeyTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.kms.aws.encryptkey", appencryption.MetricsPrefix), nil) - decryptKeyTimer = metrics.GetOrRegisterTimer(fmt.Sprintf("%s.kms.aws.decryptkey", appencryption.MetricsPrefix), nil) + encryptKeyTimer = metrics.GetOrRegisterTimer(appencryption.MetricsPrefix+".kms.aws.encryptkey", nil) + decryptKeyTimer = metrics.GetOrRegisterTimer(appencryption.MetricsPrefix+".kms.aws.decryptkey", nil) ) // KMS is implemented by the client in the kms package from the AWS SDK. From 1a8a231b690d2f34a6b97c2d862c8d0951c99020 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 15:53:33 -0700 Subject: [PATCH 53/60] add linter preset: sql --- go/appencryption/.golangci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/appencryption/.golangci.yml b/go/appencryption/.golangci.yml index 3e0ede532..f18018e0d 100644 --- a/go/appencryption/.golangci.yml +++ b/go/appencryption/.golangci.yml @@ -83,7 +83,7 @@ linters: # - metalinter - module - performance - # - sql + - sql # - style # - test # - unused From 5cf458e0c357fbb4adde4181ceac4e2291420790 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 16:03:24 -0700 Subject: [PATCH 54/60] add linter preset: unused; fixup --- go/appencryption/.golangci.yml | 2 +- go/appencryption/key_cache_test.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/go/appencryption/.golangci.yml b/go/appencryption/.golangci.yml index f18018e0d..93f3aa8b2 100644 --- a/go/appencryption/.golangci.yml +++ b/go/appencryption/.golangci.yml @@ -86,7 +86,7 @@ linters: - sql # - style # - test - # - unused + - unused linters-settings: cyclop: diff --git a/go/appencryption/key_cache_test.go b/go/appencryption/key_cache_test.go index bbebe55c8..bbcf244a8 100644 --- a/go/appencryption/key_cache_test.go +++ b/go/appencryption/key_cache_test.go @@ -493,6 +493,7 @@ func (suite *CacheTestSuite) TestKeyCache_GetOrLoad_Concurrent_100() { counter int32 ) + //nolint:unparam // error param is required by the interface loadFunc := func(_ KeyMeta) (*internal.CryptoKey, error) { <-time.After(time.Millisecond * time.Duration(rand.Intn(30))) atomic.AddInt32(&counter, 1) From 5446d797ad914a926417a8753fadd18e680a7f81 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 16:53:55 -0700 Subject: [PATCH 55/60] install golangci-lint v1.59.0, print version --- build/go/lint.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build/go/lint.sh b/build/go/lint.sh index 01e25fd49..7d6a2a43c 100755 --- a/build/go/lint.sh +++ b/build/go/lint.sh @@ -1,6 +1,9 @@ #!/usr/bin/env bash -curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.24.0 +curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.59.0 + +./bin/golangci-lint --version + ./bin/golangci-lint run --config .golangci.yml # golint is designed to return zero even it finds lint From a1cc0a6824c07e5f75c907ad61eb083415cfda3d Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Tue, 4 Jun 2024 17:04:01 -0700 Subject: [PATCH 56/60] removed redundant status check --- build/go/lint.sh | 9 --------- 1 file changed, 9 deletions(-) diff --git a/build/go/lint.sh b/build/go/lint.sh index 7d6a2a43c..006be652d 100755 --- a/build/go/lint.sh +++ b/build/go/lint.sh @@ -5,12 +5,3 @@ curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/insta ./bin/golangci-lint --version ./bin/golangci-lint run --config .golangci.yml - -# golint is designed to return zero even it finds lint -# https://github.com/golang/lint/issues/65 -# Hence we check if the lint command produced any output. If no output, then no errors were found -if [[ $(./bin/golangci-lint run --config .golangci.yml) ]]; then - exit 1 -else - exit 0 -fi From 86ccd1cf4c2d9d99d084d14987e73b6a247d4159 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Wed, 5 Jun 2024 12:13:11 -0700 Subject: [PATCH 57/60] [go/securememory] updated golangci config, resolved lint issues --- go/securememory/.golangci.yml | 267 +++++------------- go/securememory/internal/memcall/memcall.go | 2 +- go/securememory/internal/secrets/reader.go | 2 +- go/securememory/memguard/secret.go | 2 +- .../memguard/secret_benchmark_test.go | 3 +- go/securememory/protectedmemory/secret.go | 4 +- .../protectedmemory/secret_benchmark_test.go | 3 +- 7 files changed, 84 insertions(+), 199 deletions(-) diff --git a/go/securememory/.golangci.yml b/go/securememory/.golangci.yml index 4ce674df0..605b1fd47 100644 --- a/go/securememory/.golangci.yml +++ b/go/securememory/.golangci.yml @@ -1,6 +1,3 @@ -# This file contains all available configuration options -# with their default values. - # options for analysis running run: # default concurrency is a available CPU number @@ -10,7 +7,7 @@ run: deadline: 5m # exit code when at least one issue was found, default is 1 - issues-exit-code: 0 + issues-exit-code: 1 # include test files or not, default is true tests: true @@ -25,202 +22,92 @@ run: # the dependency descriptions in go.mod. modules-download-mode: readonly - skip-dirs: - - cmd/example - -# output configuration options output: - # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number" - format: colored-line-number - - # print lines of code with issue, default is true - print-issued-lines: true - - # print linter name in the end of issue text, default is true - print-linter-name: true - - -# all available settings of specific linters -linters-settings: - errcheck: - # report about not checking of errors in type assetions: `a := b.(MyStruct)`; - # default is false: such cases aren't reported by default. - check-type-assertions: true - - # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; - # default is false: such cases aren't reported by default. - check-blank: true - govet: - # report about shadowed variables - check-shadowing: true - golint: - # minimal confidence for issues, default is 0.8 - min-confidence: 0.8 - gomnd: - settings: - mnd: - # the list of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description. - checks: ignored-numbers - gofmt: - # simplify code: gofmt with `-s` option, true by default - simplify: true - goimports: - # put imports beginning with prefix after 3rd-party packages; - # it's a comma-separated list of prefixes - local-prefixes: github.com/godaddy/asherah/go/securememory - gocyclo: - # minimal code complexity to report, 30 by default (but we recommend 10-20) - min-complexity: 10 - maligned: - # print struct with more effective memory layout or not, false by default - suggest-new: true - dupl: - # tokens count to trigger issue, 150 by default - threshold: 100 - goconst: - # minimal length of string constant, 3 by default - min-len: 3 - # minimal occurrences count to trigger, 3 by default - min-occurrences: 3 - misspell: - # Correct spellings using locale preferences for US or UK. - # Default is to use a neutral variety of English. - # Setting locale to US will correct the British spelling of 'colour' to 'color'. - locale: US - lll: - # max line length, lines longer will be reported. Default is 120. - # '\t' is counted as 1 character by default, and can be changed with the tab-width option - line-length: 180 - # tab width in spaces. Default to 1. - tab-width: 1 - unused: - # treat code as a program (not a library) and report unused exported identifiers; default is false. - # XXX: if you enable this setting, unused will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find funcs usages. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - unparam: - # Inspect exported functions, default is false. Set to true if no external program/library imports your code. - # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find external interfaces. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - nakedret: - # make an issue if func has more lines of code than this setting and it has naked returns; default is 30 - max-func-lines: 30 - prealloc: - # XXX: we don't recommend using this linter before doing performance profiling. - # For most programs usage of prealloc will be a premature optimization. - - # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them. - # True by default. - simple: true - range-loops: true # Report preallocation suggestions on range loops, true by default - for-loops: true # Report preallocation suggestions on for loops, false by default - gocritic: - # Which checks should be enabled; can't be combined with 'disabled-checks'; - # See https://go-critic.github.io/overview#checks-overview - # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run` - # By default list of stable checks is used. - #enabled-checks: - # - rangeValCopy - - # Which checks should be disabled; can't be combined with 'enabled-checks'; default is empty - disabled-checks: - - regexpMust - - # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint` run to see all tags and checks. - # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags". - enabled-tags: - - performance - - settings: # settings passed to gocritic - captLocal: # must be valid enabled check name - paramsOnly: true - rangeValCopy: - sizeThreshold: 32 + formats: + - format: colored-line-number + path: stdout + + # Sort results by the order defined in `sort-order`. + # Default: false + sort-results: true + + # Order to use when sorting results. + # Require `sort-results` to `true`. + # Possible values: `file`, `linter`, and `severity`. + # + # If the severity values are inside the following list, they are ordered in this order: + # 1. error + # 2. warning + # 3. high + # 4. medium + # 5. low + # Either they are sorted alphabetically. + # + # Default: ["file"] + sort-order: + # - linter + # - severity + - file # filepath, line, and column. + + # show stats + show-stats: true linters: - #enable: - # - megacheck - # - govet - enable-all: true + enable-all: false + enabled: + - errcheck + - gosimple + - govet + - ineffassign + - staticcheck + - unused + fast: false + disable: - - gochecknoglobals + - contextcheck + - err113 - godox - # - maligned - # - prealloc - disable-all: false - # presets: - # - bugs - # - unused - fast: false + - testifylint + - wrapcheck + + presets: + - bugs + - comment + - complexity + # - error + # - format + # - import + # - metalinter + # - module + # - performance + # - sql + # - style + # - test + # - unused +linters-settings: + cyclop: + # The maximal code complexity to report. + # Default: 10 + max-complexity: 20 + + funlen: + # If lower than 0, disable the check. + # Default: 60 + lines: 100 + # Checks the number of statements in a function. + # If lower than 0, disable the check. + # Default: 40 + statements: -1 + # Ignore comments when counting lines. + # Default false + ignore-comments: true issues: - # List of regexps of issue texts to exclude, empty list by default. - # But independently from this option we use default exclude patterns, - # it can be disabled by `exclude-use-default: false`. To list all - # excluded by default patterns execute `golangci-lint run --help` - #exclude: - # - abcdef - - # Excluding configuration per-path and per-linter exclude-rules: - # Exclude some linters from running on tests files. - path: _test\.go linters: - - dupl - errcheck - - gocyclo - - gomnd + - godot - gosec - - # Ease some gocritic warnings on test files. - - path: _test\.go - text: "(unnamedResult|exitAfterDefer)" - linters: - - gocritic - - # Exclude known linters from partially hard-vendored code, - # which is impossible to exclude via "nolint" comments. - - path: internal/hmac/ - text: "weak cryptographic primitive" - linters: - - gosec - - path: internal/hmac/ - text: "Write\\` is not checked" - linters: - - errcheck - - # Ease linting on benchmarking code. - - path: cmd/stun-bench/ - linters: - - gosec - - errcheck - - # Independently from option `exclude` we use default exclude patterns, - # it can be disabled by this option. To list all - # excluded by default patterns execute `golangci-lint run --help`. - # Default value for this option is true. - exclude-use-default: true - - # Maximum issues count per one linter. Set to 0 to disable. Default is 50. - max-per-linter: 0 - - # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. - max-same-issues: 0 - - # Show only new issues: if there are unstaged changes or untracked files, - # only those changes are analyzed, else only changes in HEAD~ are analyzed. - # It's a super-useful option for integration of golangci-lint into existing - # large codebase. It's not practical to fix all existing issues at the moment - # of integration: much better don't allow issues in new code. - # Default is false. - new: false - - # Show only new issues created after git revision `REV` - #new-from-rev: REV - - # Show only new issues created in git patch with set file path. - #new-from-patch: path/to/patch/file + - perfsprint diff --git a/go/securememory/internal/memcall/memcall.go b/go/securememory/internal/memcall/memcall.go index df5a3d015..3b8bfd0b3 100644 --- a/go/securememory/internal/memcall/memcall.go +++ b/go/securememory/internal/memcall/memcall.go @@ -31,7 +31,7 @@ type Interface interface { Unlocker } -// wrapper implements Interface +// wrapper implements Interface. type wrapper struct { } diff --git a/go/securememory/internal/secrets/reader.go b/go/securememory/internal/secrets/reader.go index 3b295ca92..5c460c3f9 100644 --- a/go/securememory/internal/secrets/reader.go +++ b/go/securememory/internal/secrets/reader.go @@ -7,7 +7,7 @@ type Reader struct { i int } -// Read implements io.Reader +// Read implements io.Reader. func (r *Reader) Read(p []byte) (n int, err error) { err = r.secret.WithBytes(func(b []byte) error { if r.i >= len(b) { diff --git a/go/securememory/memguard/secret.go b/go/securememory/memguard/secret.go index d2f709bc8..1fbb44b72 100644 --- a/go/securememory/memguard/secret.go +++ b/go/securememory/memguard/secret.go @@ -89,7 +89,7 @@ func (s *secret) WithBytesFunc(action func([]byte) ([]byte, error)) (ret []byte, return action(s.buffer.Bytes()) } -// IsClosed returns true if the underlying data container has already been closed +// IsClosed returns true if the underlying data container has already been closed. func (s *secret) IsClosed() bool { s.rw.RLock() defer s.rw.RUnlock() diff --git a/go/securememory/memguard/secret_benchmark_test.go b/go/securememory/memguard/secret_benchmark_test.go index 1bfb340a2..8748d8746 100644 --- a/go/securememory/memguard/secret_benchmark_test.go +++ b/go/securememory/memguard/secret_benchmark_test.go @@ -2,7 +2,6 @@ package memguard import ( "io" - "io/ioutil" "testing" "github.com/stretchr/testify/assert" @@ -67,7 +66,7 @@ func BenchmarkMemguardReader_ReadAll(b *testing.B) { for pb.Next() { r := s.NewReader() - bytes, err := ioutil.ReadAll(r) + bytes, err := io.ReadAll(r) if assert.NoError(b, err) { assert.Equal(b, copyBytes, bytes) } diff --git a/go/securememory/protectedmemory/secret.go b/go/securememory/protectedmemory/secret.go index 3f0944da5..af71a65b7 100644 --- a/go/securememory/protectedmemory/secret.go +++ b/go/securememory/protectedmemory/secret.go @@ -11,7 +11,7 @@ import ( "sync" "time" - // NOTE: If we ever remove the import of core, we'll need to add an init func that calls memcall.DisableCoreDumps + // NOTE: If we ever remove the import of core, we'll need to add an init func that calls memcall.DisableCoreDumps. "github.com/awnumar/memguard/core" "github.com/pkg/errors" "github.com/rcrowley/go-metrics" @@ -106,7 +106,7 @@ func (s *secret) WithBytesFunc(action func([]byte) ([]byte, error)) (ret []byte, return action(s.bytes) } -// IsClosed returns true if the underlying data container has already been closed +// IsClosed returns true if the underlying data container has already been closed. func (s *secret) IsClosed() bool { return s.isClosed() } diff --git a/go/securememory/protectedmemory/secret_benchmark_test.go b/go/securememory/protectedmemory/secret_benchmark_test.go index c301209a0..a6a9f18f4 100644 --- a/go/securememory/protectedmemory/secret_benchmark_test.go +++ b/go/securememory/protectedmemory/secret_benchmark_test.go @@ -2,7 +2,6 @@ package protectedmemory import ( "io" - "io/ioutil" "testing" "github.com/stretchr/testify/assert" @@ -68,7 +67,7 @@ func BenchmarkProtectedMemoryReader_ReadAll(b *testing.B) { for pb.Next() { r := s.NewReader() - bytes, err := ioutil.ReadAll(r) + bytes, err := io.ReadAll(r) if assert.NoError(b, err) { assert.Equal(b, copyBytes, bytes) } From a3721662efc340afdde6a5918a818f5c0d71a90d Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Wed, 5 Jun 2024 12:13:26 -0700 Subject: [PATCH 58/60] [go/referenceapp] updated golangci config, resolved lint issues --- samples/go/referenceapp/.golangci.yml | 259 ++++++++------------------ samples/go/referenceapp/main.go | 5 +- 2 files changed, 78 insertions(+), 186 deletions(-) diff --git a/samples/go/referenceapp/.golangci.yml b/samples/go/referenceapp/.golangci.yml index a3375c8b0..605b1fd47 100644 --- a/samples/go/referenceapp/.golangci.yml +++ b/samples/go/referenceapp/.golangci.yml @@ -1,6 +1,3 @@ -# This file contains all available configuration options -# with their default values. - # options for analysis running run: # default concurrency is a available CPU number @@ -10,7 +7,7 @@ run: deadline: 5m # exit code when at least one issue was found, default is 1 - issues-exit-code: 0 + issues-exit-code: 1 # include test files or not, default is true tests: true @@ -25,198 +22,92 @@ run: # the dependency descriptions in go.mod. modules-download-mode: readonly - skip-dirs: - - cmd/example - -# output configuration options output: - # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number" - format: colored-line-number - - # print lines of code with issue, default is true - print-issued-lines: true + formats: + - format: colored-line-number + path: stdout + + # Sort results by the order defined in `sort-order`. + # Default: false + sort-results: true + + # Order to use when sorting results. + # Require `sort-results` to `true`. + # Possible values: `file`, `linter`, and `severity`. + # + # If the severity values are inside the following list, they are ordered in this order: + # 1. error + # 2. warning + # 3. high + # 4. medium + # 5. low + # Either they are sorted alphabetically. + # + # Default: ["file"] + sort-order: + # - linter + # - severity + - file # filepath, line, and column. + + # show stats + show-stats: true - # print linter name in the end of issue text, default is true - print-linter-name: true +linters: + enable-all: false + enabled: + - errcheck + - gosimple + - govet + - ineffassign + - staticcheck + - unused + fast: false + disable: + - contextcheck + - err113 + - godox + - testifylint + - wrapcheck + + presets: + - bugs + - comment + - complexity + # - error + # - format + # - import + # - metalinter + # - module + # - performance + # - sql + # - style + # - test + # - unused -# all available settings of specific linters linters-settings: - errcheck: - # report about not checking of errors in type assetions: `a := b.(MyStruct)`; - # default is false: such cases aren't reported by default. - check-type-assertions: true - - # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; - # default is false: such cases aren't reported by default. - check-blank: true - govet: - # report about shadowed variables - check-shadowing: true - golint: - # minimal confidence for issues, default is 0.8 - min-confidence: 0.8 - gofmt: - # simplify code: gofmt with `-s` option, true by default - simplify: true - goimports: - # put imports beginning with prefix after 3rd-party packages; - # it's a comma-separated list of prefixes - local-prefixes: github.com/godaddy/asherah/samples/go/referenceapp - gocyclo: - # minimal code complexity to report, 30 by default (but we recommend 10-20) - min-complexity: 20 - maligned: - # print struct with more effective memory layout or not, false by default - suggest-new: true - dupl: - # tokens count to trigger issue, 150 by default - threshold: 100 - goconst: - # minimal length of string constant, 3 by default - min-len: 3 - # minimal occurrences count to trigger, 3 by default - min-occurrences: 3 - misspell: - # Correct spellings using locale preferences for US or UK. - # Default is to use a neutral variety of English. - # Setting locale to US will correct the British spelling of 'colour' to 'color'. - locale: US - lll: - # max line length, lines longer will be reported. Default is 120. - # '\t' is counted as 1 character by default, and can be changed with the tab-width option - line-length: 180 - # tab width in spaces. Default to 1. - tab-width: 1 - unused: - # treat code as a program (not a library) and report unused exported identifiers; default is false. - # XXX: if you enable this setting, unused will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find funcs usages. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - unparam: - # Inspect exported functions, default is false. Set to true if no external program/library imports your code. - # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find external interfaces. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - nakedret: - # make an issue if func has more lines of code than this setting and it has naked returns; default is 30 - max-func-lines: 30 - prealloc: - # XXX: we don't recommend using this linter before doing performance profiling. - # For most programs usage of prealloc will be a premature optimization. - - # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them. - # True by default. - simple: true - range-loops: true # Report preallocation suggestions on range loops, true by default - for-loops: true # Report preallocation suggestions on for loops, false by default - gocritic: - # Which checks should be enabled; can't be combined with 'disabled-checks'; - # See https://go-critic.github.io/overview#checks-overview - # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run` - # By default list of stable checks is used. - #enabled-checks: - # - rangeValCopy + cyclop: + # The maximal code complexity to report. + # Default: 10 + max-complexity: 20 - # Which checks should be disabled; can't be combined with 'enabled-checks'; default is empty - disabled-checks: - - regexpMust - - # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint` run to see all tags and checks. - # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags". - enabled-tags: - - performance - - settings: # settings passed to gocritic - captLocal: # must be valid enabled check name - paramsOnly: true - rangeValCopy: - sizeThreshold: 32 funlen: + # If lower than 0, disable the check. + # Default: 60 lines: 100 - -linters: - #enable: - # - megacheck - # - govet - enable-all: true - disable: - - gochecknoglobals - - godox - # - maligned - # - prealloc - disable-all: false - # presets: - # - bugs - # - unused - fast: false - + # Checks the number of statements in a function. + # If lower than 0, disable the check. + # Default: 40 + statements: -1 + # Ignore comments when counting lines. + # Default false + ignore-comments: true issues: - # List of regexps of issue texts to exclude, empty list by default. - # But independently from this option we use default exclude patterns, - # it can be disabled by `exclude-use-default: false`. To list all - # excluded by default patterns execute `golangci-lint run --help` - #exclude: - # - abcdef - - # Excluding configuration per-path and per-linter exclude-rules: - # Exclude some linters from running on tests files. - path: _test\.go linters: - - dupl - errcheck - - gocyclo + - godot - gosec - - # Ease some gocritic warnings on test files. - - path: _test\.go - text: "(unnamedResult|exitAfterDefer)" - linters: - - gocritic - - # Exclude known linters from partially hard-vendored code, - # which is impossible to exclude via "nolint" comments. - - path: internal/hmac/ - text: "weak cryptographic primitive" - linters: - - gosec - - path: internal/hmac/ - text: "Write\\` is not checked" - linters: - - errcheck - - # Ease linting on benchmarking code. - - path: cmd/stun-bench/ - linters: - - gosec - - errcheck - - # Independently from option `exclude` we use default exclude patterns, - # it can be disabled by this option. To list all - # excluded by default patterns execute `golangci-lint run --help`. - # Default value for this option is true. - exclude-use-default: true - - # Maximum issues count per one linter. Set to 0 to disable. Default is 50. - max-per-linter: 0 - - # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. - max-same-issues: 0 - - # Show only new issues: if there are unstaged changes or untracked files, - # only those changes are analyzed, else only changes in HEAD~ are analyzed. - # It's a super-useful option for integration of golangci-lint into existing - # large codebase. It's not practical to fix all existing issues at the moment - # of integration: much better don't allow issues in new code. - # Default is false. - new: false - - # Show only new issues created after git revision `REV` - #new-from-rev: REV - - # Show only new issues created in git patch with set file path. - #new-from-patch: path/to/patch/file + - perfsprint diff --git a/samples/go/referenceapp/main.go b/samples/go/referenceapp/main.go index 46811247d..380699392 100644 --- a/samples/go/referenceapp/main.go +++ b/samples/go/referenceapp/main.go @@ -146,7 +146,8 @@ func createKMS(crypto appencryption.AEAD) (appencryption.KeyManagementService, e func main() { if _, err := flags.Parse(&opts); err != nil { - if e, ok := err.(*flags.Error); ok && e.Type == flags.ErrHelp { + var e *flags.Error + if errors.As(err, &e) && e.Type == flags.ErrHelp { return } @@ -222,7 +223,7 @@ func main() { } // Consider this us "persisting" the DRR - // nolint: errcheck + //nolint: errchkjson b, _ := json.Marshal(dataRow) dataRowString = base64.StdEncoding.EncodeToString(b) fmt.Println("\ndata row record as string:", dataRowString) From eb2b9be18128df426aee3bd9771278e92a336807 Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Wed, 5 Jun 2024 12:14:08 -0700 Subject: [PATCH 59/60] [go/cltf] updated golangci config, resolved lint issues --- tests/cross-language/go/.golangci.yml | 266 +++++++----------------- tests/cross-language/go/decrypt_test.go | 4 +- 2 files changed, 78 insertions(+), 192 deletions(-) diff --git a/tests/cross-language/go/.golangci.yml b/tests/cross-language/go/.golangci.yml index 50c03eed5..605b1fd47 100644 --- a/tests/cross-language/go/.golangci.yml +++ b/tests/cross-language/go/.golangci.yml @@ -1,6 +1,3 @@ -# This file contains all available configuration options -# with their default values. - # options for analysis running run: # default concurrency is a available CPU number @@ -10,7 +7,7 @@ run: deadline: 5m # exit code when at least one issue was found, default is 1 - issues-exit-code: 0 + issues-exit-code: 1 # include test files or not, default is true tests: true @@ -25,203 +22,92 @@ run: # the dependency descriptions in go.mod. modules-download-mode: readonly -# output configuration options output: - # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number" - format: colored-line-number - - # print lines of code with issue, default is true - print-issued-lines: true + formats: + - format: colored-line-number + path: stdout + + # Sort results by the order defined in `sort-order`. + # Default: false + sort-results: true + + # Order to use when sorting results. + # Require `sort-results` to `true`. + # Possible values: `file`, `linter`, and `severity`. + # + # If the severity values are inside the following list, they are ordered in this order: + # 1. error + # 2. warning + # 3. high + # 4. medium + # 5. low + # Either they are sorted alphabetically. + # + # Default: ["file"] + sort-order: + # - linter + # - severity + - file # filepath, line, and column. + + # show stats + show-stats: true - # print linter name in the end of issue text, default is true - print-linter-name: true +linters: + enable-all: false + enabled: + - errcheck + - gosimple + - govet + - ineffassign + - staticcheck + - unused + fast: false + disable: + - contextcheck + - err113 + - godox + - testifylint + - wrapcheck + + presets: + - bugs + - comment + - complexity + # - error + # - format + # - import + # - metalinter + # - module + # - performance + # - sql + # - style + # - test + # - unused -# all available settings of specific linters linters-settings: - errcheck: - # report about not checking of errors in type assetions: `a := b.(MyStruct)`; - # default is false: such cases aren't reported by default. - check-type-assertions: true - - # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; - # default is false: such cases aren't reported by default. - check-blank: true - govet: - # report about shadowed variables - check-shadowing: true - golint: - # minimal confidence for issues, default is 0.8 - min-confidence: 0.8 - gomnd: - settings: - mnd: - # the list of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description. - checks: ignored-numbers - gofmt: - # simplify code: gofmt with `-s` option, true by default - simplify: true - goimports: - # put imports beginning with prefix after 3rd-party packages; - # it's a comma-separated list of prefixes - local-prefixes: github.com/godaddy/asherah/test/cross-language/go - gocyclo: - # minimal code complexity to report, 30 by default (but we recommend 10-20) - min-complexity: 10 - maligned: - # print struct with more effective memory layout or not, false by default - suggest-new: true - dupl: - # tokens count to trigger issue, 150 by default - threshold: 120 - goconst: - # minimal length of string constant, 3 by default - min-len: 3 - # minimal occurrences count to trigger, 3 by default - min-occurrences: 3 - misspell: - # Correct spellings using locale preferences for US or UK. - # Default is to use a neutral variety of English. - # Setting locale to US will correct the British spelling of 'colour' to 'color'. - locale: US - lll: - # max line length, lines longer will be reported. Default is 120. - # '\t' is counted as 1 character by default, and can be changed with the tab-width option - line-length: 180 - # tab width in spaces. Default to 1. - tab-width: 1 - unused: - # treat code as a program (not a library) and report unused exported identifiers; default is false. - # XXX: if you enable this setting, unused will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find funcs usages. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - unparam: - # Inspect exported functions, default is false. Set to true if no external program/library imports your code. - # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find external interfaces. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - nakedret: - # make an issue if func has more lines of code than this setting and it has naked returns; default is 30 - max-func-lines: 30 - prealloc: - # XXX: we don't recommend using this linter before doing performance profiling. - # For most programs usage of prealloc will be a premature optimization. - - # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them. - # True by default. - simple: true - range-loops: true # Report preallocation suggestions on range loops, true by default - for-loops: true # Report preallocation suggestions on for loops, false by default - gocritic: - # Which checks should be enabled; can't be combined with 'disabled-checks'; - # See https://go-critic.github.io/overview#checks-overview - # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run` - # By default list of stable checks is used. - #enabled-checks: - # - rangeValCopy - - # Which checks should be disabled; can't be combined with 'enabled-checks'; default is empty - disabled-checks: - - regexpMust + cyclop: + # The maximal code complexity to report. + # Default: 10 + max-complexity: 20 - # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint` run to see all tags and checks. - # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags". - enabled-tags: - - performance - - settings: # settings passed to gocritic - captLocal: # must be valid enabled check name - paramsOnly: true - rangeValCopy: - sizeThreshold: 32 funlen: - lines: 70 - -linters: - #enable: - # - megacheck - # - govet - enable-all: true - disable: - - gochecknoglobals - - godox - - unused - # - maligned - # - prealloc - disable-all: false - # presets: - # - bugs - # - unused - fast: false - + # If lower than 0, disable the check. + # Default: 60 + lines: 100 + # Checks the number of statements in a function. + # If lower than 0, disable the check. + # Default: 40 + statements: -1 + # Ignore comments when counting lines. + # Default false + ignore-comments: true issues: - # List of regexps of issue texts to exclude, empty list by default. - # But independently from this option we use default exclude patterns, - # it can be disabled by `exclude-use-default: false`. To list all - # excluded by default patterns execute `golangci-lint run --help` - #exclude: - # - abcdef - - # Excluding configuration per-path and per-linter exclude-rules: - # Exclude some linters from running on tests files. - path: _test\.go linters: - - dupl - errcheck - - gocyclo - - gomnd + - godot - gosec - - govet - - # Ease some gocritic warnings on test files. - - path: _test\.go - text: "(unnamedResult|exitAfterDefer)" - linters: - - gocritic - - # Exclude known linters from partially hard-vendored code, - # which is impossible to exclude via "nolint" comments. - - path: internal/hmac/ - text: "weak cryptographic primitive" - linters: - - gosec - - path: internal/hmac/ - text: "Write\\` is not checked" - linters: - - errcheck - - # Ease linting on benchmarking code. - - path: cmd/stun-bench/ - linters: - - gosec - - errcheck - - # Independently from option `exclude` we use default exclude patterns, - # it can be disabled by this option. To list all - # excluded by default patterns execute `golangci-lint run --help`. - # Default value for this option is true. - exclude-use-default: true - - # Maximum issues count per one linter. Set to 0 to disable. Default is 50. - max-per-linter: 0 - - # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. - max-same-issues: 0 - - # Show only new issues: if there are unstaged changes or untracked files, - # only those changes are analyzed, else only changes in HEAD~ are analyzed. - # It's a super-useful option for integration of golangci-lint into existing - # large codebase. It's not practical to fix all existing issues at the moment - # of integration: much better don't allow issues in new code. - # Default is false. - new: false - - # Show only new issues created after git revision `REV` - #new-from-rev: REV - - # Show only new issues created in git patch with set file path. - #new-from-patch: path/to/patch/file + - perfsprint diff --git a/tests/cross-language/go/decrypt_test.go b/tests/cross-language/go/decrypt_test.go index 8b42f0504..5719db3ee 100644 --- a/tests/cross-language/go/decrypt_test.go +++ b/tests/cross-language/go/decrypt_test.go @@ -5,7 +5,7 @@ import ( "encoding/base64" "encoding/json" "fmt" - "io/ioutil" + "os" "github.com/godaddy/asherah/go/appencryption" "github.com/godaddy/asherah/go/appencryption/pkg/crypto/aead" @@ -20,7 +20,7 @@ var ( ) func iHaveEncryptedDataFrom(filename string) error { - data, err := ioutil.ReadFile(fmt.Sprintf("%s%s", fileDirectory, filename)) + data, err := os.ReadFile(fmt.Sprintf("%s%s", fileDirectory, filename)) if err != nil { return err } From 33ed5d3fcc72e71267e2a4f003b8be807add0dff Mon Sep 17 00:00:00 2001 From: Bo Thompson Date: Wed, 5 Jun 2024 12:24:35 -0700 Subject: [PATCH 60/60] [go/server] updated golangci config, resolved lint issues --- server/go/.golangci.yml | 268 ++++++++-------------------- server/go/main.go | 3 +- server/go/pkg/server/server.go | 15 +- server/go/pkg/server/server_test.go | 4 +- 4 files changed, 88 insertions(+), 202 deletions(-) diff --git a/server/go/.golangci.yml b/server/go/.golangci.yml index 314d93e3e..605b1fd47 100644 --- a/server/go/.golangci.yml +++ b/server/go/.golangci.yml @@ -1,6 +1,3 @@ -# This file contains all available configuration options -# with their default values. - # options for analysis running run: # default concurrency is a available CPU number @@ -10,7 +7,7 @@ run: deadline: 5m # exit code when at least one issue was found, default is 1 - issues-exit-code: 0 + issues-exit-code: 1 # include test files or not, default is true tests: true @@ -25,205 +22,92 @@ run: # the dependency descriptions in go.mod. modules-download-mode: readonly - # skip-dirs: - # - some/dir - -# output configuration options output: - # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number" - format: colored-line-number - - # print lines of code with issue, default is true - print-issued-lines: true + formats: + - format: colored-line-number + path: stdout + + # Sort results by the order defined in `sort-order`. + # Default: false + sort-results: true + + # Order to use when sorting results. + # Require `sort-results` to `true`. + # Possible values: `file`, `linter`, and `severity`. + # + # If the severity values are inside the following list, they are ordered in this order: + # 1. error + # 2. warning + # 3. high + # 4. medium + # 5. low + # Either they are sorted alphabetically. + # + # Default: ["file"] + sort-order: + # - linter + # - severity + - file # filepath, line, and column. + + # show stats + show-stats: true - # print linter name in the end of issue text, default is true - print-linter-name: true +linters: + enable-all: false + enabled: + - errcheck + - gosimple + - govet + - ineffassign + - staticcheck + - unused + fast: false + disable: + - contextcheck + - err113 + - godox + - testifylint + - wrapcheck + + presets: + - bugs + - comment + - complexity + # - error + # - format + # - import + # - metalinter + # - module + # - performance + # - sql + # - style + # - test + # - unused -# all available settings of specific linters linters-settings: - errcheck: - # report about not checking of errors in type assetions: `a := b.(MyStruct)`; - # default is false: such cases aren't reported by default. - check-type-assertions: true - - # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; - # default is false: such cases aren't reported by default. - check-blank: true - govet: - # report about shadowed variables - check-shadowing: true - golint: - # minimal confidence for issues, default is 0.8 - min-confidence: 0.8 - gomnd: - settings: - mnd: - # the list of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description. - checks: ignored-numbers - gofmt: - # simplify code: gofmt with `-s` option, true by default - simplify: true - goimports: - # put imports beginning with prefix after 3rd-party packages; - # it's a comma-separated list of prefixes - local-prefixes: github.com/godaddy/asherah/server/go - gocyclo: - # minimal code complexity to report, 30 by default (but we recommend 10-20) - min-complexity: 10 - maligned: - # print struct with more effective memory layout or not, false by default - suggest-new: true - dupl: - # tokens count to trigger issue, 150 by default - threshold: 120 - goconst: - # minimal length of string constant, 3 by default - min-len: 3 - # minimal occurrences count to trigger, 3 by default - min-occurrences: 3 - misspell: - # Correct spellings using locale preferences for US or UK. - # Default is to use a neutral variety of English. - # Setting locale to US will correct the British spelling of 'colour' to 'color'. - locale: US - lll: - # max line length, lines longer will be reported. Default is 120. - # '\t' is counted as 1 character by default, and can be changed with the tab-width option - line-length: 180 - # tab width in spaces. Default to 1. - tab-width: 1 - unused: - # treat code as a program (not a library) and report unused exported identifiers; default is false. - # XXX: if you enable this setting, unused will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find funcs usages. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - unparam: - # Inspect exported functions, default is false. Set to true if no external program/library imports your code. - # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find external interfaces. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false - nakedret: - # make an issue if func has more lines of code than this setting and it has naked returns; default is 30 - max-func-lines: 30 - prealloc: - # XXX: we don't recommend using this linter before doing performance profiling. - # For most programs usage of prealloc will be a premature optimization. - - # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them. - # True by default. - simple: true - range-loops: true # Report preallocation suggestions on range loops, true by default - for-loops: true # Report preallocation suggestions on for loops, false by default - gocritic: - # Which checks should be enabled; can't be combined with 'disabled-checks'; - # See https://go-critic.github.io/overview#checks-overview - # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run` - # By default list of stable checks is used. - #enabled-checks: - # - rangeValCopy + cyclop: + # The maximal code complexity to report. + # Default: 10 + max-complexity: 20 - # Which checks should be disabled; can't be combined with 'enabled-checks'; default is empty - disabled-checks: - - regexpMust - - # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint` run to see all tags and checks. - # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags". - enabled-tags: - - performance - - settings: # settings passed to gocritic - captLocal: # must be valid enabled check name - paramsOnly: true - rangeValCopy: - sizeThreshold: 32 funlen: - lines: 70 - -linters: - #enable: - # - megacheck - # - govet - enable-all: true - disable: - - gochecknoglobals - - godox - # - maligned - # - prealloc - disable-all: false - # presets: - # - bugs - # - unused - fast: false - + # If lower than 0, disable the check. + # Default: 60 + lines: 100 + # Checks the number of statements in a function. + # If lower than 0, disable the check. + # Default: 40 + statements: -1 + # Ignore comments when counting lines. + # Default false + ignore-comments: true issues: - # List of regexps of issue texts to exclude, empty list by default. - # But independently from this option we use default exclude patterns, - # it can be disabled by `exclude-use-default: false`. To list all - # excluded by default patterns execute `golangci-lint run --help` - #exclude: - # - abcdef - - # Excluding configuration per-path and per-linter exclude-rules: - # Exclude some linters from running on tests files. - path: _test\.go linters: - - dupl - errcheck - - gocyclo - - gomnd + - godot - gosec - - govet - - # Ease some gocritic warnings on test files. - - path: _test\.go - text: "(unnamedResult|exitAfterDefer)" - linters: - - gocritic - - # Exclude known linters from partially hard-vendored code, - # which is impossible to exclude via "nolint" comments. - - path: internal/hmac/ - text: "weak cryptographic primitive" - linters: - - gosec - - path: internal/hmac/ - text: "Write\\` is not checked" - linters: - - errcheck - - # Ease linting on benchmarking code. - - path: cmd/stun-bench/ - linters: - - gosec - - errcheck - - # Independently from option `exclude` we use default exclude patterns, - # it can be disabled by this option. To list all - # excluded by default patterns execute `golangci-lint run --help`. - # Default value for this option is true. - exclude-use-default: true - - # Maximum issues count per one linter. Set to 0 to disable. Default is 50. - max-per-linter: 0 - - # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. - max-same-issues: 0 - - # Show only new issues: if there are unstaged changes or untracked files, - # only those changes are analyzed, else only changes in HEAD~ are analyzed. - # It's a super-useful option for integration of golangci-lint into existing - # large codebase. It's not practical to fix all existing issues at the moment - # of integration: much better don't allow issues in new code. - # Default is false. - new: false - - # Show only new issues created after git revision `REV` - #new-from-rev: REV - - # Show only new issues created in git patch with set file path. - #new-from-patch: path/to/patch/file + - perfsprint diff --git a/server/go/main.go b/server/go/main.go index 6a35f47e3..1253e1d4b 100644 --- a/server/go/main.go +++ b/server/go/main.go @@ -30,7 +30,8 @@ func main() { parser := flags.NewParser(opts, flags.Default) if _, err := parser.Parse(); err != nil { - if e, ok := err.(*flags.Error); ok && e.Type == flags.ErrHelp { + var e *flags.Error + if errors.As(err, &e) && e.Type == flags.ErrHelp { return } diff --git a/server/go/pkg/server/server.go b/server/go/pkg/server/server.go index cc62d44af..8321332c2 100644 --- a/server/go/pkg/server/server.go +++ b/server/go/pkg/server/server.go @@ -2,6 +2,7 @@ package server import ( "context" + "errors" "io" "log" @@ -145,7 +146,7 @@ func (s *streamer) Stream(stream pb.AppEncryption_SessionServer) error { for { in, err := stream.Recv() - if err == io.EOF { + if errors.Is(err, io.EOF) { return nil } @@ -162,7 +163,7 @@ func (s *streamer) Stream(stream pb.AppEncryption_SessionServer) error { } func (s *streamer) handleRequest(ctx context.Context, in *pb.SessionRequest) *pb.SessionResponse { - switch in.Request.(type) { + switch in.GetRequest().(type) { case *pb.SessionRequest_Decrypt: if s.handler == nil { return UninitializedSessionResponse @@ -226,13 +227,13 @@ func (h *defaultHandler) Decrypt(ctx context.Context, r *pb.SessionRequest) *pb. func fromProtobufDRR(drr *pb.DataRowRecord) *appencryption.DataRowRecord { return &appencryption.DataRowRecord{ - Data: drr.Data, + Data: drr.GetData(), Key: &appencryption.EnvelopeKeyRecord{ - EncryptedKey: drr.Key.Key, - Created: drr.Key.Created, + EncryptedKey: drr.GetKey().GetKey(), + Created: drr.GetKey().GetCreated(), ParentKeyMeta: &appencryption.KeyMeta{ - ID: drr.Key.ParentKeyMeta.KeyId, - Created: drr.Key.ParentKeyMeta.Created, + ID: drr.GetKey().GetParentKeyMeta().GetKeyId(), + Created: drr.GetKey().GetParentKeyMeta().GetCreated(), }, }, } diff --git a/server/go/pkg/server/server_test.go b/server/go/pkg/server/server_test.go index 6f1732e37..3fe538221 100644 --- a/server/go/pkg/server/server_test.go +++ b/server/go/pkg/server/server_test.go @@ -432,7 +432,7 @@ func Test_DefaultHandler_GetSession(t *testing.T) { resp := h.GetSession(req) assert.NotNil(t, resp) - assert.Nil(t, resp.Response) + assert.Nil(t, resp.GetResponse()) assert.Equal(t, session, h.session) assert.Equal(t, id, h.partition) m.AssertExpectations(t) @@ -507,7 +507,7 @@ func Test_DefaultHandler_Encrypt(t *testing.T) { resp := h.Encrypt(ctx, req) - assert.Equal(t, toProtobufDRR(drr), resp.GetEncryptResponse().DataRowRecord) + assert.Equal(t, toProtobufDRR(drr), resp.GetEncryptResponse().GetDataRowRecord()) m.AssertExpectations(t) }