From f80476a7ef22afa8e80237d756dcbeb77f6fb635 Mon Sep 17 00:00:00 2001 From: Will Browne Date: Mon, 5 Sep 2022 14:20:09 +0100 Subject: [PATCH] remove support for v1 manifests (cherry picked from commit a07c2fad4a55a7680bf0899ecc7ba7dd17557adc) --- 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 e000c471d29..673521b005c 100644 --- a/pkg/plugins/manager/loader/loader_test.go +++ b/pkg/plugins/manager/loader/loader_test.go @@ -313,7 +313,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), @@ -323,12 +323,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), @@ -339,7 +339,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 3b5e2dfd770..109d5c8fe24 100644 --- a/pkg/plugins/manager/signature/manifest.go +++ b/pkg/plugins/manager/signature/manifest.go @@ -133,6 +133,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{ @@ -168,21 +174,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)