Skip to content

Commit 295fb73

Browse files
authored
Merge pull request #1417 from fluxcd/switch-to-verify-ocirepo
Use the verify defined interface in OCIRepository
2 parents 55a2cdb + 12fb25f commit 295fb73

File tree

2 files changed

+11
-17
lines changed

2 files changed

+11
-17
lines changed

internal/controller/ocirepository_controller.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ func (r *OCIRepositoryReconciler) verifySignature(ctx context.Context, obj *ociv
644644
return soci.VerificationResultFailed, err
645645
}
646646

647-
signatureVerified := false
647+
signatureVerified := soci.VerificationResultFailed
648648
for k, data := range pubSecret.Data {
649649
// search for public keys in the secret
650650
if strings.HasSuffix(k, ".pub") {
@@ -653,19 +653,19 @@ func (r *OCIRepositoryReconciler) verifySignature(ctx context.Context, obj *ociv
653653
return soci.VerificationResultFailed, err
654654
}
655655

656-
signatures, _, err := verifier.VerifyImageSignatures(ctxTimeout, ref)
657-
if err != nil {
656+
result, err := verifier.Verify(ctxTimeout, ref)
657+
if err != nil || result == soci.VerificationResultFailed {
658658
continue
659659
}
660660

661-
if signatures != nil {
662-
signatureVerified = true
661+
if result == soci.VerificationResultSuccess {
662+
signatureVerified = result
663663
break
664664
}
665665
}
666666
}
667667

668-
if !signatureVerified {
668+
if signatureVerified == soci.VerificationResultFailed {
669669
return soci.VerificationResultFailed, fmt.Errorf("no matching signatures were found for '%s'", ref)
670670
}
671671

@@ -689,16 +689,16 @@ func (r *OCIRepositoryReconciler) verifySignature(ctx context.Context, obj *ociv
689689
return soci.VerificationResultFailed, err
690690
}
691691

692-
signatures, _, err := verifier.VerifyImageSignatures(ctxTimeout, ref)
692+
result, err := verifier.Verify(ctxTimeout, ref)
693693
if err != nil {
694694
return soci.VerificationResultFailed, err
695695
}
696696

697-
if len(signatures) > 0 {
698-
return soci.VerificationResultSuccess, nil
697+
if result == soci.VerificationResultFailed {
698+
return soci.VerificationResultFailed, fmt.Errorf("no matching signatures were found for '%s'", ref)
699699
}
700700

701-
return soci.VerificationResultFailed, fmt.Errorf("no matching signatures were found for '%s'", ref)
701+
return soci.VerificationResultSuccess, nil
702702

703703
case "notation":
704704
// get the public keys from the given secret

internal/oci/cosign/cosign.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
coptions "github.com/sigstore/cosign/v2/cmd/cosign/cli/options"
2828
"github.com/sigstore/cosign/v2/cmd/cosign/cli/rekor"
2929
"github.com/sigstore/cosign/v2/pkg/cosign"
30-
"github.com/sigstore/cosign/v2/pkg/oci"
3130
ociremote "github.com/sigstore/cosign/v2/pkg/oci/remote"
3231
"github.com/sigstore/sigstore/pkg/cryptoutils"
3332
"github.com/sigstore/sigstore/pkg/signature"
@@ -146,16 +145,11 @@ func NewCosignVerifier(ctx context.Context, opts ...Options) (*CosignVerifier, e
146145
}, nil
147146
}
148147

149-
// VerifyImageSignatures verify the authenticity of the given ref OCI image.
150-
func (v *CosignVerifier) VerifyImageSignatures(ctx context.Context, ref name.Reference) ([]oci.Signature, bool, error) {
151-
return cosign.VerifyImageSignatures(ctx, ref, v.opts)
152-
}
153-
154148
// Verify verifies the authenticity of the given ref OCI image.
155149
// It returns a boolean indicating if the verification was successful.
156150
// It returns an error if the verification fails, nil otherwise.
157151
func (v *CosignVerifier) Verify(ctx context.Context, ref name.Reference) (soci.VerificationResult, error) {
158-
signatures, _, err := v.VerifyImageSignatures(ctx, ref)
152+
signatures, _, err := cosign.VerifyImageSignatures(ctx, ref, v.opts)
159153
if err != nil {
160154
return soci.VerificationResultFailed, err
161155
}

0 commit comments

Comments
 (0)