signing

package
v0.77.0 Latest Latest
Warning

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

Go to latest
Published: May 28, 2026 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package signing provides cosign-based signing and verification for Zarf packages.

Index

Constants

View Source
const CosignDefaultTimeout = 3 * time.Minute

CosignDefaultTimeout is the default timeout for cosign sign and verify operations.

Variables

This section is empty.

Functions

func CosignSignBlobWithOptions

func CosignSignBlobWithOptions(ctx context.Context, blobPath string, opts SignBlobOptions) ([]byte, error)

CosignSignBlobWithOptions signs a blob via cosign's SignBlobCmd. Mirrors cmd/cosign/cli/signblob.go (v3.0.6) SignBlob().RunE.

func CosignVerifyBlobWithOptions

func CosignVerifyBlobWithOptions(ctx context.Context, blobPath string, opts VerifyBlobOptions) error

CosignVerifyBlobWithOptions verifies a blob via cosign's VerifyBlobCmd. Mirrors cmd/cosign/cli/verify.go (v3.0.6) VerifyBlob().RunE.

Types

type BundleInfo

type BundleInfo struct {
	Method           SigningMethod
	Identity         string // cert SAN — empty for key-based signatures
	Issuer           string // OIDC issuer — empty for key-based signatures
	HasTSATimestamps bool   // true if the bundle contains signed timestamps
}

BundleInfo contains parsed metadata from a Sigstore bundle file.

func ReadBundleInfo

func ReadBundleInfo(bundlePath string) (BundleInfo, error)

ReadBundleInfo parses a Sigstore bundle file and returns its signing metadata.

type SignBlobOptions

type SignBlobOptions struct {
	Key              string
	Base64Output     bool
	OutputSignature  string
	BundlePath       string
	NewBundleFormat  bool
	SkipConfirmation bool
	TlogUpload       bool
	TSAServerURL     string
	// UseSigningConfig is set to false by DefaultSignBlobOptions to override
	// cosign's default of true, which conflicts with TlogUpload=false in airgap.
	UseSigningConfig bool

	SecurityKey options.SecurityKeyOptions
	Fulcio      options.FulcioOptions
	Rekor       options.RekorOptions
	OIDC        options.OIDCOptions

	Verbose   bool
	Timeout   time.Duration
	Password  string
	PassFunc  cosign.PassFunc
	Overwrite bool
	// Keyless gates zarf-specific sign-side guards on top of cosign's behavior.
	// When true, --signing-key is no longer required and ShouldSign returns true
	// even without explicit Key/IDToken/Sk material — cosign resolves identity
	// via Fulcio/OIDC at sign time.
	Keyless bool

	// Deprecated: use Key. Removed in v1.0.
	KeyRef string
}

SignBlobOptions holds signing configuration for zarf blob operations.

func DefaultSignBlobOptions

func DefaultSignBlobOptions() SignBlobOptions

DefaultSignBlobOptions returns SignBlobOptions seeded with zarf defaults. Divergences from cosign defaults (air-gap):

  • TlogUpload=false (cosign default true)
  • UseSigningConfig=false (cosign default true) — required because cosign rejects UseSigningConfig=true combined with TlogUpload=false.

func (SignBlobOptions) CheckOverwrite

func (opts SignBlobOptions) CheckOverwrite(ctx context.Context) error

CheckOverwrite errors if any output file exists and Overwrite is false.

func (SignBlobOptions) ShouldSign

func (opts SignBlobOptions) ShouldSign() bool

ShouldSign returns true if any signing key material is configured. KeyRef is included for backward compatibility; it's synced to Key in CosignSignBlobWithOptions.

type SigningMethod

type SigningMethod string

SigningMethod identifies how a Sigstore bundle was signed.

const (
	// SigningMethodKeyless indicates a Fulcio-issued certificate bundle (OIDC/keyless).
	SigningMethodKeyless SigningMethod = "keyless"
	// SigningMethodKey indicates a public-key bundle.
	SigningMethodKey SigningMethod = "key"
)

type VerifyBlobOptions

type VerifyBlobOptions struct {
	Key        string
	Signature  string
	BundlePath string

	SecurityKey         options.SecurityKeyOptions
	CertVerify          options.CertVerifyOptions
	Rekor               options.RekorOptions
	CommonVerifyOptions options.CommonVerifyOptions
	SignatureDigest     options.SignatureDigestOptions

	TempDir string
	Timeout time.Duration

	// Deprecated: use Key. Removed in v1.0.
	KeyRef string
	// Deprecated: use Signature. Removed in v1.0.
	SigRef string
}

VerifyBlobOptions holds verification configuration for zarf blob operations.

func DefaultVerifyBlobOptions

func DefaultVerifyBlobOptions() VerifyBlobOptions

DefaultVerifyBlobOptions returns VerifyBlobOptions seeded with zarf defaults. Divergences: IgnoreTlog and IgnoreSCT default to true (cosign default false) for airgap.

Jump to

Keyboard shortcuts

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