* fix: standardize casing of initialisms * fix: rename intoto -> inToto and Intoto to InToto * fix: fix all linting errors
64 lines
1.6 KiB
Go
64 lines
1.6 KiB
Go
package test
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"github.com/docker/attest/pkg/attestation"
|
|
"github.com/docker/attest/pkg/oci"
|
|
"github.com/docker/attest/pkg/signerverifier"
|
|
v1 "github.com/google/go-containerregistry/pkg/v1"
|
|
"github.com/secure-systems-lab/go-securesystemslib/dsse"
|
|
)
|
|
|
|
type MockResolver struct {
|
|
Envs []*attestation.Envelope
|
|
}
|
|
|
|
func (r MockResolver) Attestations(_ context.Context, _ string) ([]*attestation.Envelope, error) {
|
|
return r.Envs, nil
|
|
}
|
|
|
|
func (r MockResolver) ImageName(_ context.Context) (string, error) {
|
|
return "library/alpine:latest", nil
|
|
}
|
|
|
|
func (r MockResolver) ImageDescriptor(_ context.Context) (*v1.Descriptor, error) {
|
|
digest, err := v1.NewHash("sha256:da8b190665956ea07890a0273e2a9c96bfe291662f08e2860e868eef69c34620")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &v1.Descriptor{
|
|
Digest: digest,
|
|
Size: 1234,
|
|
MediaType: "application/vnd.oci.image.manifest.v1+json",
|
|
}, nil
|
|
}
|
|
|
|
func (r MockResolver) ImagePlatform(_ context.Context) (*v1.Platform, error) {
|
|
return oci.ParsePlatform("linux/amd64")
|
|
}
|
|
|
|
type MockRegistryResolver struct {
|
|
Subject *v1.Descriptor
|
|
ImageNameStr string
|
|
*MockResolver
|
|
}
|
|
|
|
func (r *MockRegistryResolver) ImageDescriptor(_ context.Context) (*v1.Descriptor, error) {
|
|
return r.Subject, nil
|
|
}
|
|
|
|
func (r *MockRegistryResolver) ImageName(_ context.Context) (string, error) {
|
|
return r.ImageNameStr, nil
|
|
}
|
|
|
|
func GetMockSigner(_ context.Context) (dsse.SignerVerifier, error) {
|
|
priv, err := os.ReadFile(filepath.Join("..", "..", "test", "testdata", "test-signing-key.pem"))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return signerverifier.LoadKeyPair(priv)
|
|
}
|