From f68f621342ccd005bd2d8eb6ae234af3b0ef64ae Mon Sep 17 00:00:00 2001 From: Will Browne Date: Tue, 12 Jul 2022 13:28:11 +0100 Subject: [PATCH] remove support for v1 (cherry picked from commit 8630a7a991af74edc4030f57d37a4bc263202fde) --- pkg/plugins/manager/loader/loader_test.go | 8 +++--- pkg/plugins/manager/signature/manifest.go | 30 +++++++++++++---------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/pkg/plugins/manager/loader/loader_test.go b/pkg/plugins/manager/loader/loader_test.go index ec523fe3646..2d6ab653664 100644 --- a/pkg/plugins/manager/loader/loader_test.go +++ b/pkg/plugins/manager/loader/loader_test.go @@ -312,7 +312,7 @@ func TestLoader_Load(t *testing.T) { }, }, { - name: "Load an unsigned plugin with modified signature (production)", + name: "Load a plugin with v1 manifest should return signatureInvalid", class: plugins.External, cfg: &plugins.Cfg{ PluginsPath: filepath.Join(parentDir), @@ -322,12 +322,12 @@ func TestLoader_Load(t *testing.T) { pluginErrors: map[string]*plugins.Error{ "test": { PluginID: "test", - ErrorCode: "signatureModified", + ErrorCode: "signatureInvalid", }, }, }, { - name: "Load an unsigned plugin with modified signature using PluginsAllowUnsigned config (production) still includes a signing error", + name: "Load a plugin with v1 manifest using PluginsAllowUnsigned config should return signatureInvalid", class: plugins.External, cfg: &plugins.Cfg{ PluginsPath: filepath.Join(parentDir), @@ -338,7 +338,7 @@ func TestLoader_Load(t *testing.T) { pluginErrors: map[string]*plugins.Error{ "test": { PluginID: "test", - ErrorCode: "signatureModified", + ErrorCode: "signatureInvalid", }, }, }, diff --git a/pkg/plugins/manager/signature/manifest.go b/pkg/plugins/manager/signature/manifest.go index e8dda349c88..f777869420c 100644 --- a/pkg/plugins/manager/signature/manifest.go +++ b/pkg/plugins/manager/signature/manifest.go @@ -130,6 +130,12 @@ func Calculate(mlog log.Logger, plugin *plugins.Plugin) (plugins.Signature, erro }, nil } + if !manifest.isV2() { + return plugins.Signature{ + Status: plugins.SignatureInvalid, + }, nil + } + // Make sure the versions all match if manifest.Plugin != plugin.ID || manifest.Version != plugin.Info.Version { return plugins.Signature{ @@ -165,21 +171,19 @@ func Calculate(mlog log.Logger, plugin *plugins.Plugin) (plugins.Signature, erro manifestFiles[p] = struct{}{} } - if manifest.isV2() { - // Track files missing from the manifest - var unsignedFiles []string - for _, f := range pluginFiles { - if _, exists := manifestFiles[f]; !exists { - unsignedFiles = append(unsignedFiles, f) - } + // Track files missing from the manifest + var unsignedFiles []string + for _, f := range pluginFiles { + if _, exists := manifestFiles[f]; !exists { + unsignedFiles = append(unsignedFiles, f) } + } - if len(unsignedFiles) > 0 { - mlog.Warn("The following files were not included in the signature", "plugin", plugin.ID, "files", unsignedFiles) - return plugins.Signature{ - Status: plugins.SignatureModified, - }, nil - } + if len(unsignedFiles) > 0 { + mlog.Warn("The following files were not included in the signature", "plugin", plugin.ID, "files", unsignedFiles) + return plugins.Signature{ + Status: plugins.SignatureModified, + }, nil } mlog.Debug("Plugin signature valid", "id", plugin.ID)