application_snapshot_image

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2024 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithClient

func WithClient(ctx context.Context, client Client) context.Context

Types

type ApplicationSnapshotImage

type ApplicationSnapshotImage struct {
	Evaluators []evaluator.Evaluator
	// contains filtered or unexported fields
}

ApplicationSnapshotImage represents the structure needed to evaluate an Application Snapshot Image

func NewApplicationSnapshotImage

func NewApplicationSnapshotImage(ctx context.Context, component app.SnapshotComponent, p policy.Policy) (*ApplicationSnapshotImage, error)

NewApplicationSnapshotImage returns an ApplicationSnapshotImage struct with reference, checkOpts, and evaluator ready to use.

func (*ApplicationSnapshotImage) Attestations

func (a *ApplicationSnapshotImage) Attestations() []attestation.Attestation

Attestations returns the value of the attestations field of the ApplicationSnapshotImage struct

func (*ApplicationSnapshotImage) FetchDigest

func (a *ApplicationSnapshotImage) FetchDigest() (name.Digest, error)

use NewClient(ctx) for all of these

func (*ApplicationSnapshotImage) FetchImageConfig

func (a *ApplicationSnapshotImage) FetchImageConfig(ctx context.Context) error

func (*ApplicationSnapshotImage) FetchImageFiles

func (a *ApplicationSnapshotImage) FetchImageFiles(ctx context.Context) error

func (*ApplicationSnapshotImage) FetchParentImageConfig

func (a *ApplicationSnapshotImage) FetchParentImageConfig(ctx context.Context) error

func (ApplicationSnapshotImage) GetReference

func (a ApplicationSnapshotImage) GetReference() name.Reference

func (*ApplicationSnapshotImage) ResolveDigest

func (a *ApplicationSnapshotImage) ResolveDigest(ctx context.Context) (string, error)

func (*ApplicationSnapshotImage) SetImageURL

func (a *ApplicationSnapshotImage) SetImageURL(url string) error

func (*ApplicationSnapshotImage) Signatures

func (*ApplicationSnapshotImage) ValidateAttestationSignature

func (a *ApplicationSnapshotImage) ValidateAttestationSignature(ctx context.Context) error

ValidateAttestationSignature executes the cosign.VerifyImageAttestations method

func (ApplicationSnapshotImage) ValidateAttestationSyntax

func (a ApplicationSnapshotImage) ValidateAttestationSyntax(ctx context.Context) error

ValidateAttestationSyntax validates the attestations against known JSON schemas, errors out if there are no attestations to check to prevent successful syntax check of no inputs, must invoke [ValidateAttestationSignature] to prefill the attestations.

func (*ApplicationSnapshotImage) ValidateImageAccess

func (a *ApplicationSnapshotImage) ValidateImageAccess(ctx context.Context) error

ValidateImageAccess executes the remote.Head method on the ApplicationSnapshotImage image ref

func (*ApplicationSnapshotImage) ValidateImageSignature

func (a *ApplicationSnapshotImage) ValidateImageSignature(ctx context.Context) error

ValidateImageSignature executes the cosign.VerifyImageSignature method on the ApplicationSnapshotImage image ref.

func (*ApplicationSnapshotImage) WriteInputFile

func (a *ApplicationSnapshotImage) WriteInputFile(ctx context.Context) (string, []byte, error)

WriteInputFile writes the JSON from the attestations to input.json in a random temp dir

type Client

type Client interface {
	VerifyImageSignatures(context.Context, name.Reference, *cosign.CheckOpts) ([]oci.Signature, bool, error)
	VerifyImageAttestations(context.Context, name.Reference, *cosign.CheckOpts) ([]oci.Signature, bool, error)
	Head(name.Reference, ...remote.Option) (*gcr.Descriptor, error)
	ResolveDigest(name.Reference, *cosign.CheckOpts) (string, error)
}

Client is an interface that contains all the external calls used by the application_snapshot_image package.

func NewClient

func NewClient(ctx context.Context) Client

NewClient constructs a new application_snapshot_image with the default client.

type Input

type Input struct {
	Attestations []attestationData `json:"attestations"`
	Image        image             `json:"image"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL