Skip to content

Commit 7f23305

Browse files
authored
Merge pull request #2125 from ActiveState/mitchell/dx-1246-2
Initial support for validating Platform attestations
2 parents 257d79f + aef60f0 commit 7f23305

20 files changed

Lines changed: 2410 additions & 19 deletions

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ require (
6363
github.com/vektah/gqlparser/v2 v2.1.0
6464
github.com/wailsapp/wails v1.16.3
6565
github.com/yuin/goldmark v1.3.5
66+
go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352
6667
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5
6768
golang.org/x/net v0.0.0-20210614182718-04defd469f4e
6869
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -753,6 +753,8 @@ go.mongodb.org/mongo-driver v1.4.6/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4S
753753
go.mongodb.org/mongo-driver v1.5.1/go.mod h1:gRXCHX4Jo7J0IJ1oDQyUxF7jfy19UfxniMS4xxMmUqw=
754754
go.mongodb.org/mongo-driver v1.5.3 h1:wWbFB6zaGHpzguF3f7tW94sVE8sFl3lHx8OZx/4OuFI=
755755
go.mongodb.org/mongo-driver v1.5.3/go.mod h1:gRXCHX4Jo7J0IJ1oDQyUxF7jfy19UfxniMS4xxMmUqw=
756+
go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak=
757+
go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk=
756758
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
757759
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
758760
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=

pkg/platform/runtime/setup/setup.go

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import (
4040
"github.com/ActiveState/cli/pkg/platform/runtime/setup/implementations/camel"
4141
"github.com/ActiveState/cli/pkg/platform/runtime/store"
4242
"github.com/ActiveState/cli/pkg/platform/runtime/target"
43+
"github.com/ActiveState/cli/pkg/platform/runtime/validate"
4344
"github.com/ActiveState/cli/pkg/project"
4445
"github.com/faiface/mainthread"
4546
"github.com/gammazero/workerpool"
@@ -587,25 +588,7 @@ func (s *Setup) downloadArtifactWithProgress(unsignedURI string, targetFile stri
587588
// verifyArtifact verifies the checksum of the downloaded artifact matches the checksum given by the
588589
// platform, and returns an error if the verification fails.
589590
func (s *Setup) verifyArtifact(archivePath string, a artifact.ArtifactDownload) error {
590-
if a.Checksum != "" {
591-
logging.Debug("Validating checksum for %s", archivePath)
592-
} else {
593-
logging.Debug("Skipping checksum validation for %s because the Platform did not provide a checksum to validate against.")
594-
return nil
595-
}
596-
597-
checksum, err := fileutils.Sha256Hash(archivePath)
598-
if err != nil {
599-
return errs.Wrap(err, "Failed to compute checksum for "+a.ArtifactID.String())
600-
}
601-
602-
if checksum != a.Checksum {
603-
logging.Debug("Checksum validation failed. Expected '%s', but was '%s'", a.Checksum, checksum)
604-
// Note: the artifact name will be reported higher up the chain
605-
return locale.WrapError(err, "artifact_checksum_failed", "Checksum validation failed")
606-
}
607-
608-
return nil
591+
return validate.Checksum(archivePath, a.Checksum)
609592
}
610593

611594
// downloadArtifact downloads an artifact and returns the local path to that artifact's archive.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"payloadType": "application/vnd.in-toto+json", "payload": "eyJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YwLjEiLCAiaW52b2NhdGlvbiI6IHsiY29uZmlnU291cmNlIjogeyJkaWdlc3QiOiB7InNoYTI1NiI6ICJhYjVhMDMxNzZlZTEwNmQzZjBmYTkwZTM4MWRhNDc4ZGRhZTQwNTkxODE1M2NjYTI0OGU2ODJjZDBjNGEyMjY5In0sICJlbnRyeVBvaW50IjogImJ1aWxkIiwgInVyaSI6ICJzMzovL3BsYXRmb3JtLXNvdXJjZXMvc2hhcmVkL2FiNWEwMzE3NmVlMTA2ZDNmMGZhOTBlMzgxZGE0NzhkZGFlNDA1OTE4MTUzY2NhMjQ4ZTY4MmNkMGM0YTIyNjkvYnppcDItMS4wLjgtcHlzdm4udGFyLmd6In0sICJlbnZpcm9ubWVudCI6IHsiZW52Ijoge319LCAicGFyYW1ldGVycyI6IFsiLS1jbWFrZS1jYWNoZT1CVUlMRF9TSEFSRURfTElCUz10cnVlIl19LCAibWF0ZXJpYWxzIjogW3siZGlnZXN0IjogeyJzaGEyNTYiOiAiNjMyMGIwMDZiMjY4YzcyMTljNzFmNjA0NjJjNzlhMWZmMmM1MjJlZTY3ZWI1NzQzMTUxMDFiMmZiNWNiZDY3NSJ9LCAidXJpIjogInMzOi8vcGxhdGZvcm0tc291cmNlcy9idWlsZGVyLzYzMjBiMDA2YjI2OGM3MjE5YzcxZjYwNDYyYzc5YTFmZjJjNTIyZWU2N2ViNTc0MzE1MTAxYjJmYjVjYmQ2NzUvY29tbW9uLWJ1aWxkZXItbGliLnRhci5neiJ9LCB7ImRpZ2VzdCI6IHsic2hhMjU2IjogIjdkNjg5MmRjZjE2ZWFkZmEwYjU4YjllNWQzM2NkMzUwNGY5YzI0Mzc1ZGUwZGY1MjdlNzVhMzU0ZTI1ZTE5OGMifSwgInVyaSI6ICJzMzovL3BsYXRmb3JtLXNvdXJjZXMvYnVpbGRlci83ZDY4OTJkY2YxNmVhZGZhMGI1OGI5ZTVkMzNjZDM1MDRmOWMyNDM3NWRlMGRmNTI3ZTc1YTM1NGUyNWUxOThjL2F1dG90b29scy1idWlsZGVyLWxpYi50YXIuZ3oifSwgeyJkaWdlc3QiOiB7InNoYTI1NiI6ICI4NGE4MTI4OGRiMDAzMWI2Y2MxOGRmMjUwNmJlNTU3MTAwMDk4MzY0NjFhMDg1OGUyMjcwMzFjYzgzYjFmYzg0In0sICJ1cmkiOiAiczM6Ly9wbGF0Zm9ybS1zb3VyY2VzL2J1aWxkZXIvODRhODEyODhkYjAwMzFiNmNjMThkZjI1MDZiZTU1NzEwMDA5ODM2NDYxYTA4NThlMjI3MDMxY2M4M2IxZmM4NC91bml4LWJ1aWxkZXItbGliLnRhci5neiJ9LCB7ImRpZ2VzdCI6IHsic2hhMjU2IjogImRlZmY1ODc0ZjcxNmFlOGRkMGYzNzlkMDc0NjkyODFlZGMzMGJkOTUyMGZiZGZlZWUyZWVhNjVjYTM2NWRlNGMifSwgInVyaSI6ICJzMzovL3BsYXRmb3JtLXNvdXJjZXMvYnVpbGRlci9kZWZmNTg3NGY3MTZhZThkZDBmMzc5ZDA3NDY5MjgxZWRjMzBiZDk1MjBmYmRmZWVlMmVlYTY1Y2EzNjVkZTRjL2NtYWtlLWJ1aWxkZXItbGliLnRhci5neiJ9LCB7ImRpZ2VzdCI6IHsic2hhMjU2IjogIjg3NzFlYWUyZTg0OTA3MTZlYTQ2MzczYmQ3MGZlMGY3NDkxNjZiODQ0ZWZlMDNjYjRlNTUwNDcxMTVjOGE5NGEifSwgInVyaSI6ICJzMzovL3BsYXRmb3JtLXNvdXJjZXMvYnVpbGRlci84NzcxZWFlMmU4NDkwNzE2ZWE0NjM3M2JkNzBmZTBmNzQ5MTY2Yjg0NGVmZTAzY2I0ZTU1MDQ3MTE1YzhhOTRhL2NtYWtlLWJ1aWxkZXIudGFyLmd6In0sIHsiZGlnZXN0IjogbnVsbCwgInVyaSI6ICJzMzovL3BsYXRmb3JtLXNvdXJjZXMvcGF0Y2hlcy9jMGEzNTcxNjE4ODRiZjIzNGJlMjAyZGViNzZmMzcwYjIwYWRjYWI3Mzg4MDJmOWJkYTcyNjAyZGIwNWRhM2FhLzAwMDEtQWRkLUNNYWtlLWJ1aWxkZXItc3VwcG9ydC5wYXRjaCJ9XSwgInByZWRpY2F0ZSI6IHsiYnVpbGRDb25maWciOiB7InN0ZXBzIjogW3siY29tbWFuZCI6ICJidWlsZCIsICJwYXJhbWV0ZXJzIjogWyItLWNtYWtlLWNhY2hlPUJVSUxEX1NIQVJFRF9MSUJTPXRydWUiXX1dfSwgImJ1aWxkVHlwZSI6ICJodHRwczovL2FjdGl2ZXN0YXRlLmNvbS9wbGF0Zm9ybV9idWlsZGVyL3YwLjEiLCAiYnVpbGRlciI6IHsiaWQiOiAiaHR0cHM6Ly9hY3RpdmVzdGF0ZS5jb20vYnVpbGRlci9jbWFrZS1idWlsZGVyQDEuMC4wcjE3In0sICJtZXRhZGF0YSI6IHsiYnVpbGRGaW5pc2hlZE9uIjogIjIwMjItMDktMDZUMjI6MjM6NDQuMDI1NzU4WiIsICJidWlsZEludm9jYXRpb25JZCI6ICJCdWlsZGVyIGNtYWtlLWJ1aWxkZXIgMS4wLjAgYnVpbGRpbmcgc2hhcmVkIGJ6aXAyIDEuMC44IGZvciBhcnRpZmFjdCA4NWU4YThmZC03YzVkLTVmMzYtYWIwZi1lNDM0NzUzNTk0NmQiLCAiYnVpbGRTdGFydGVkT24iOiAiMjAyMi0wOS0wNlQyMjoyMzo0My44NTU3NThaIiwgImNvbXBsZXRlbmVzcyI6IHsiZW52aXJvbm1lbnQiOiB0cnVlLCAibWF0ZXJpYWxzIjogdHJ1ZSwgInBhcmFtZXRlcnMiOiB0cnVlfX0sICJyZXByb2R1Y2libGUiOiB0cnVlfSwgInByZWRpY2F0ZVR5cGUiOiAiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YwLjIiLCAic3ViamVjdCI6IFt7ImRpZ2VzdCI6IHsic2hhMjU2IjogImQ0ZDdjMWUxN2EyNGJiZTg0ZDAwZjZiMmRiODNmOTJjYWFjNzM5ZGYyM2NkMjc2MTUwNzgxZTJjMmUyZGVhZjUifSwgInVyaSI6ICJzMzovL2FzLWJ1aWxkcy9wcm9kdWN0aW9uL3NoYXJlZC9iemlwMi8xLjAuOC85Lzg1ZThhOGZkLTdjNWQtNWYzNi1hYjBmLWU0MzQ3NTM1OTQ2ZC9hcnRpZmFjdC50YXIuZ3oifV19", "signatures": [{"sig": "jmXj6x1q6IIPfdcpgZXJc74E0nsKBxr/E8ZGk4dw5Nf7KJ84SWq+pyar3xqaSMyFZXn3ektiwBJtVZIVCUxLgXMzcVZTajOMueeV04LuLzy2P03iez8w6efPh3xSl8uPn63nUt2ugXKk4flOOAYBXNlES+QqgFjYZaU+NMpkePiWwyH7Hzjg4N9SiWYWGErobBpMfdewhKXmA5a7wozP1VtaBtVB922bccJqnTkQwst9UXBrMuuJbkA5tLFNoqyyaKoN4azSythZ8TC3StZAyo8Vigvy/r6grOeU86s3s/NgCIiyANH3piAyNZfXdLsoc3iGy2rm0d6UG3T5qdmRugt6H1hGs2RPg9QQi8gdfLVVTVdL5caJT30+L/zOIt7LH+JfbmjMvAc9XXqxgQD+t2Fq51ThSKG3Q3fY7Oix8R9rZHWX5sBfzKR39cqeEtzzvIMQLPcvPGifOwfLLaCVuJnbZYOv0FuQT4yI6QFu5vn/gVrm3fwgJ8jyVas9hckO+UfUuGBsx+EWI6qUI0jNsQ5qqTGwF5k163c4uId0gbNZpWnOTSmEY+9gikSB1iy3mgPC6nQzWL+i8mVd2KZ0mS715jcYmZdVSVI9e6L4NS/7++T5yDus8Did5gsjAPrjF1udLJmGrVO/wNHUDrSKI1aAwZ3hU8fO7FxqGgzpmYE=", "cert": "-----BEGIN CERTIFICATE-----\n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\n-----END CERTIFICATE-----\n"}]}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"payloadType": "application/vnd.in-toto+json", "payload": "eyJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YwLjEiLCAiaW52b2NhdGlvbiI6IHsiY29uZmlnU291cmNlIjogeyJkaWdlc3QiOiB7InNoYTI1NiI6ICJhYjVhMDMxNzZlZTEwNmQzZjBmYTkwZTM4MWRhNDc4ZGRhZTQwNTkxODE1M2NjYTI0OGU2ODJjZDBjNGEyMjY5In0sICJlbnRyeVBvaW50IjogImJ1aWxkIiwgInVyaSI6ICJzMzovL3BsYXRmb3JtLXNvdXJjZXMvc2hhcmVkL2FiNWEwMzE3NmVlMTA2ZDNmMGZhOTBlMzgxZGE0NzhkZGFlNDA1OTE4MTUzY2NhMjQ4ZTY4MmNkMGM0YTIyNjkvYnppcDItMS4wLjgtcHlzdm4udGFyLmd6In0sICJlbnZpcm9ubWVudCI6IHsiZW52Ijoge319LCAicGFyYW1ldGVycyI6IFsiLS1jbWFrZS1jYWNoZT1CVUlMRF9TSEFSRURfTElCUz10cnVlIl19LCAibWF0ZXJpYWxzIjogW3siZGlnZXN0IjogeyJzaGEyNTYiOiAiNjMyMGIwMDZiMjY4YzcyMTljNzFmNjA0NjJjNzlhMWZmMmM1MjJlZTY3ZWI1NzQzMTUxMDFiMmZiNWNiZDY3NSJ9LCAidXJpIjogInMzOi8vcGxhdGZvcm0tc291cmNlcy9idWlsZGVyLzYzMjBiMDA2YjI2OGM3MjE5YzcxZjYwNDYyYzc5YTFmZjJjNTIyZWU2N2ViNTc0MzE1MTAxYjJmYjVjYmQ2NzUvY29tbW9uLWJ1aWxkZXItbGliLnRhci5neiJ9LCB7ImRpZ2VzdCI6IHsic2hhMjU2IjogIjdkNjg5MmRjZjE2ZWFkZmEwYjU4YjllNWQzM2NkMzUwNGY5YzI0Mzc1ZGUwZGY1MjdlNzVhMzU0ZTI1ZTE5OGMifSwgInVyaSI6ICJzMzovL3BsYXRmb3JtLXNvdXJjZXMvYnVpbGRlci83ZDY4OTJkY2YxNmVhZGZhMGI1OGI5ZTVkMzNjZDM1MDRmOWMyNDM3NWRlMGRmNTI3ZTc1YTM1NGUyNWUxOThjL2F1dG90b29scy1idWlsZGVyLWxpYi50YXIuZ3oifSwgeyJkaWdlc3QiOiB7InNoYTI1NiI6ICI4NGE4MTI4OGRiMDAzMWI2Y2MxOGRmMjUwNmJlNTU3MTAwMDk4MzY0NjFhMDg1OGUyMjcwMzFjYzgzYjFmYzg0In0sICJ1cmkiOiAiczM6Ly9wbGF0Zm9ybS1zb3VyY2VzL2J1aWxkZXIvODRhODEyODhkYjAwMzFiNmNjMThkZjI1MDZiZTU1NzEwMDA5ODM2NDYxYTA4NThlMjI3MDMxY2M4M2IxZmM4NC91bml4LWJ1aWxkZXItbGliLnRhci5neiJ9LCB7ImRpZ2VzdCI6IHsic2hhMjU2IjogImRlZmY1ODc0ZjcxNmFlOGRkMGYzNzlkMDc0NjkyODFlZGMzMGJkOTUyMGZiZGZlZWUyZWVhNjVjYTM2NWRlNGMifSwgInVyaSI6ICJzMzovL3BsYXRmb3JtLXNvdXJjZXMvYnVpbGRlci9kZWZmNTg3NGY3MTZhZThkZDBmMzc5ZDA3NDY5MjgxZWRjMzBiZDk1MjBmYmRmZWVlMmVlYTY1Y2EzNjVkZTRjL2NtYWtlLWJ1aWxkZXItbGliLnRhci5neiJ9LCB7ImRpZ2VzdCI6IHsic2hhMjU2IjogIjg3NzFlYWUyZTg0OTA3MTZlYTQ2MzczYmQ3MGZlMGY3NDkxNjZiODQ0ZWZlMDNjYjRlNTUwNDcxMTVjOGE5NGEifSwgInVyaSI6ICJzMzovL3BsYXRmb3JtLXNvdXJjZXMvYnVpbGRlci84NzcxZWFlMmU4NDkwNzE2ZWE0NjM3M2JkNzBmZTBmNzQ5MTY2Yjg0NGVmZTAzY2I0ZTU1MDQ3MTE1YzhhOTRhL2NtYWtlLWJ1aWxkZXIudGFyLmd6In0sIHsiZGlnZXN0IjogbnVsbCwgInVyaSI6ICJzMzovL3BsYXRmb3JtLXNvdXJjZXMvcGF0Y2hlcy9jMGEzNTcxNjE4ODRiZjIzNGJlMjAyZGViNzZmMzcwYjIwYWRjYWI3Mzg4MDJmOWJkYTcyNjAyZGIwNWRhM2FhLzAwMDEtQWRkLUNNYWtlLWJ1aWxkZXItc3VwcG9ydC5wYXRjaCJ9XSwgInByZWRpY2F0ZSI6IHsiYnVpbGRDb25maWciOiB7InN0ZXBzIjogW3siY29tbWFuZCI6ICJidWlsZCIsICJwYXJhbWV0ZXJzIjogWyItLWNtYWtlLWNhY2hlPUJVSUxEX1NIQVJFRF9MSUJTPXRydWUiXX1dfSwgImJ1aWxkVHlwZSI6ICJodHRwczovL2FjdGl2ZXN0YXRlLmNvbS9wbGF0Zm9ybV9idWlsZGVyL3YwLjEiLCAiYnVpbGRlciI6IHsiaWQiOiAiaHR0cHM6Ly9hY3RpdmVzdGF0ZS5jb20vYnVpbGRlci9jbWFrZS1idWlsZGVyQDEuMC4wcjE3In0sICJtZXRhZGF0YSI6IHsiYnVpbGRGaW5pc2hlZE9uIjogIjIwMjItMDktMDZUMjI6MjM6NDQuMDI1NzU4WiIsICJidWlsZEludm9jYXRpb25JZCI6ICJCdWlsZGVyIGNtYWtlLWJ1aWxkZXIgMS4wLjAgYnVpbGRpbmcgc2hhcmVkIGJ6aXAyIDEuMC44IGZvciBhcnRpZmFjdCA4NWU4YThmZC03YzVkLTVmMzYtYWIwZi1lNDM0NzUzNTk0NmQiLCAiYnVpbGRTdGFydGVkT24iOiAiMjAyMi0wOS0wNlQyMjoyMzo0My44NTU3NThaIiwgImNvbXBsZXRlbmVzcyI6IHsiZW52aXJvbm1lbnQiOiB0cnVlLCAibWF0ZXJpYWxzIjogdHJ1ZSwgInBhcmFtZXRlcnMiOiB0cnVlfX0sICJyZXByb2R1Y2libGUiOiB0cnVlfSwgInByZWRpY2F0ZVR5cGUiOiAiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YwLjIiLCAic3ViamVjdCI6IFt7ImRpZ2VzdCI6IHsic2hhMjU2IjogImQ0ZDdjMWUxN2EyNGJiZTg0ZDAwZjZiMmRiODNmOTJjYWFjNzM5ZGYyM2NkMjc2MTUwNzgxZTJjMmUyZGVhZjUifSwgInVyaSI6ICJzMzovL2FzLWJ1aWxkcy9wcm9kdWN0aW9uL3NoYXJlZC9iemlwMi8xLjAuOC85Lzg1ZThhOGZkLTdjNWQtNWYzNi1hYjBmLWU0MzQ3NTM1OTQ2ZC9hcnRpZmFjdC50YXIuZ3oifV19", "signatures": [{"sig": "jmXj6x1q6IIPfdcpgZXJc74E0nsKBxr/E8ZGk4dw5Nf7KJ84SWq+pyar3xqaSMyFZXn3ektiwBJtVZIVCUxLgXMzcVZTajOMueeV04LuLzy2P03iez8w6efPh3xSl8uPn63nUt2ugXKk4flOOAYBXNlES+QqgFjYZaU+NMpkePiWwyH7Hzjg4N9SiWYWGErobBpMfdewhKXmA5a7wozP1VtaBtVB922bccJqnTkQwst9UXBrMuuJbkA5tLFNoqyyaKoN4azSythZ8TC3StZAyo8Vigvy/r6grOeU86s3s/NgCIiyANH3piAyNZfXdLsoc3iGy2rm0d6UG3T5qdmRugt6H1hGs2RPg9QQi8gdfLVVTVdL5caJT30+L/zOIt7LH+JfbmjMvAc9XXqxgQD+t2Fq51ThSKG3Q3fY7Oix8R9rZHWX5sBfzKR39cqeEtzzvIMQLPcvPGifOwfLLaCVuJnbZYOv0FuQT4yI6QFu5vn/gVrm3fwgJ8jyVas9hckO+UfUuGBsx+EWI6qUI0jNsQ5qqTGwF5k163c4uId0gbNZpWnOTSmEY+9gikSB1iy3mgPC6nQzWL+i8mVd2KZ0mS715jcYmZdVSVI9e6L4NS/7++T5yDus8Did5gsjAPrjF1udLJmGrVO/wNHUDrSKI1aAwZ3hU8fO7FxqGgzpmYE=", "cert": "-----BEGIN CERTIFICATE-----\nTHISISABADCERTIFICATEN/ggKF1YLuvioWPMvCo/XgwDQYJKoZIhvcNAQEMBQAw\nVDELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDErMCkGA1UE\nAxMiU2VjdGlnbyBQdWJsaWMgQ29kZSBTaWduaW5nIENBIFIzNjAeFw0yMjA1MzAw\nMDAwMDBaFw0yNTA1MjkyMzU5NTlaMG4xCzAJBgNVBAYTAkNBMRkwFwYDVQQIDBBC\ncml0aXNoIENvbHVtYmlhMSEwHwYDVQQKDBhBY3RpdmVTdGF0ZSBTb2Z0d2FyZSBJ\nbmMxITAfBgNVBAMMGEFjdGl2ZVN0YXRlIFNvZnR3YXJlIEluYzCCAiIwDQYJKoZI\nhvcNAQEBBQADggIPADCCAgoCggIBAKbVI9jNHXKM6PB3zkdcO64/nnEUG97M1txD\nwK0aWVaMYOL/R3+JJ6BIaTSNN+NjJzrof/pGhbahwy1pbCDO9hQGBqkEFgjeswkS\n00B1oXiYxGIUIv2tqinROSrNu6uxzsiBtOSe9VC/Yc+370zW67d990h79Jg4aC8b\nglSsYSNQQOHlKmZIA5fYtVG2evyV0bR5sjFLXqkP82GfIcFGgucfFqQkojvr6wTE\nl2CHJ/kwxlxAVknocTb/4yrJ9Po3Db2t+Q6mjATiRgRyN7A5t4Qs6UZ8ItLKkfBV\nhaWZhamksSD0riO5jrDeaX/2KWsfKXD8QcRzIwEcZqbJVKN1qsF8boTQ+Q7Dtn0i\nZnPDugeTHK4+7c4OCUb6rTDG4vfbUVrvQdLLp7FJBElVa+Y6Fls3ohhkZQ8MZ6c8\nPZn/BFgo6Yb6j/iVKBQZ1D7Vzol8eZPsk3uBcC3YYZ03JYp3v27nfudfFqIaJi76\nKWvPkAc3GF8SSVLPTotxFNbKY+F4bkuMQQyoRgO5OxbJ9c90KxZSptwO+6jX16b8\nLD5GMbsYsXoMFTaWQ9Xn3vXTs3bKVIEIe8xiL9QwQHruArXgyj9PaadvzExJCZW0\nt5gFSdZDKF+8VgsZbscVJoQuDzTj+JyWe6p/q++1W1/vtqKITYu8dfvQKIXrdLP0\n7LTDSWOZAgMBAAGjggGJMIIBhTAfBgNVHSMEGDAWgBQPKssghyi47G9IritUpimq\nF6TNDDAdBgNVHQ4EFgQUQAAxgT6ilb56sYvs8HCO5xU3lwMwDgYDVR0PAQH/BAQD\nAgeAMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwSgYDVR0gBEMw\nQTA1BgwrBgEEAbIxAQIBAwIwJTAjBggrBgEFBQcCARYXaHR0cHM6Ly9zZWN0aWdv\nLmNvbS9DUFMwCAYGZ4EMAQQBMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9jcmwu\nc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWduaW5nQ0FSMzYuY3JsMHkG\nCCsGAQUFBwEBBG0wazBEBggrBgEFBQcwAoY4aHR0cDovL2NydC5zZWN0aWdvLmNv\nbS9TZWN0aWdvUHVibGljQ29kZVNpZ25pbmdDQVIzNi5jcnQwIwYIKwYBBQUHMAGG\nF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMA0GCSqGSIb3DQEBDAUAA4IBgQCCSNSa\no7mSXjVrOC7K0Z7HlBTo8WyAA8BxLAQ7h+rCIWmuLEMoCBGRkYw/0fyfZaC4PCT8\nqh76RsjVhUDA6OsFVFV9I8YB/7S7praAJPX7P6ZTlTySCYp5hBT0gs1qzgA/M+dU\nVMN5E5jMbIFtssbd+yTkOE1Sxz3Xg+6PD92ruWs0X36WG/Q7+PDzTC9Gp2WYWifB\n3TXxv1b7POsmCUR8esJdqEOv5QkmmyI/YjMWDbCJ7xHOGs2OgPNv5rJbNM813+wk\nuriXqzRrVJU86HnQV9j3PNYEwPdsRjQvP3FSnqdRyo6IkRS1F5LJwN8fwt9fbb4r\n5A8vrBD/U7ntT9DRUd1ubVZy9dT43Wc7kmhjbnoB4RhTtHc5Bl6nZS/m8Yp1/X+k\n1CEvUoI6bHIgf2q0L7zn+o0Hd5h3n90SWmVM+fmTi62cObY0QwZN1TfwHZ6CezUJ\nHTPypB+BerbmSGdbUVKABgUSrBoMLwXzeHp33urpTPDXvoTohixbw3N2qe0=\n-----END CERTIFICATE-----\n"}]}

0 commit comments

Comments
 (0)