From b9aa21c7d5691d31b623fe6eab4c7a0b88b2c07b Mon Sep 17 00:00:00 2001 From: Cody Soyland Date: Tue, 10 Dec 2024 17:28:04 -0500 Subject: [PATCH] Simplify HasPublicKey interface method (#348) Rename to `PublicKey`. Remove second return value (bool), as nil return value symbolizes nonexistence. Signed-off-by: Cody Soyland --- pkg/bundle/bundle_test.go | 4 ++-- pkg/bundle/verification_content.go | 8 ++++---- pkg/verify/interface.go | 2 +- pkg/verify/signature.go | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/bundle/bundle_test.go b/pkg/bundle/bundle_test.go index 1db242c2..aa4bfbbd 100644 --- a/pkg/bundle/bundle_test.go +++ b/pkg/bundle/bundle_test.go @@ -818,8 +818,8 @@ func TestVerificationContent(t *testing.T) { return } if tt.wantPublicKey { - _, hasPubKey := got.HasPublicKey() - require.True(t, hasPubKey) + k := got.PublicKey() + require.NotNil(t, k) return } }) diff --git a/pkg/bundle/verification_content.go b/pkg/bundle/verification_content.go index b775295d..94111150 100644 --- a/pkg/bundle/verification_content.go +++ b/pkg/bundle/verification_content.go @@ -52,8 +52,8 @@ func (c *Certificate) GetCertificate() *x509.Certificate { return c.Certificate } -func (c *Certificate) HasPublicKey() (verify.PublicKeyProvider, bool) { - return PublicKey{}, false +func (c *Certificate) PublicKey() verify.PublicKeyProvider { + return nil } func (pk *PublicKey) CompareKey(key any, tm root.TrustedMaterial) bool { @@ -83,6 +83,6 @@ func (pk *PublicKey) GetCertificate() *x509.Certificate { return nil } -func (pk *PublicKey) HasPublicKey() (verify.PublicKeyProvider, bool) { - return *pk, true +func (pk *PublicKey) PublicKey() verify.PublicKeyProvider { + return pk } diff --git a/pkg/verify/interface.go b/pkg/verify/interface.go index c06310fb..6b0ac27f 100644 --- a/pkg/verify/interface.go +++ b/pkg/verify/interface.go @@ -64,7 +64,7 @@ type VerificationContent interface { CompareKey(any, root.TrustedMaterial) bool ValidAtTime(time.Time, root.TrustedMaterial) bool GetCertificate() *x509.Certificate - HasPublicKey() (PublicKeyProvider, bool) + PublicKey() PublicKeyProvider } type SignatureContent interface { diff --git a/pkg/verify/signature.go b/pkg/verify/signature.go index 1d0ddfab..4e4dc97f 100644 --- a/pkg/verify/signature.go +++ b/pkg/verify/signature.go @@ -97,7 +97,7 @@ func getSignatureVerifier(verificationContent VerificationContent, tm root.Trust if leafCert := verificationContent.GetCertificate(); leafCert != nil { // TODO: Inspect certificate's SignatureAlgorithm to determine hash function return signature.LoadVerifier(leafCert.PublicKey, crypto.SHA256) - } else if pk, ok := verificationContent.HasPublicKey(); ok { + } else if pk := verificationContent.PublicKey(); pk != nil { return tm.PublicKeyVerifier(pk.Hint()) }