Skip to main content

Compatibility

What cilock is built for, tested against, and known to interoperate with.

Sources: rookery/cilock/go.mod, rookery/.github/workflows/release.yml, rookery/cilock/cmd/cilock/main.go.

Toolchainโ€‹

Version
Go (build)1.26.0+ (per go.mod)
Build flagsCGO_ENABLED=0, GOWORK=off, -trimpath
FIPS modeOn by default (//go:debug fips140=on in main.go)

Released platformsโ€‹

The official rookery release pipeline produces static binaries for:

OSArchitecturesNotes
Linuxamd64, arm64Full feature set including --trace (ptrace)
macOS (Darwin)amd64, arm64All attestors except --trace (ptrace is Linux-only)
Windows(not shipped)Not shipped: the omnitrail attestor has linux/darwin-only build constraints (per release.yml comment).

To build a Windows binary anyway, fork cilock/cmd/cilock/main.go and remove the omnitrail import.

Container imageโ€‹

Registryghcr.io/aflock-ai/cilock
Tags<version> (current: v1.0.1) and latest
Built withChainguard melange + apko
Architecturesx86_64, aarch64
Signed bycosign (keyless OIDC)

CI platformsโ€‹

Tested integrations from the cilock-action ecosystem:

PlatformIntegrationSource
GitHub Actionsaflock-ai/cilock-action@v1.0.1 (also @v1)cilock-action
GitLab CIReusable template at cilock-action/gitlab/cilock.gitlab-ci.ymlSame repo
JenkinsVia the jenkins attestor + raw cilock binaryrookery/plugins/attestors/jenkins
AWS CodeBuildVia the aws-codebuild attestorrookery/plugins/attestors/aws-codebuild

Signersโ€‹

Verified from rookery/cilock/cmd/cilock/main.go blank imports:

SignerModule
Sigstore Fulcioplugins/signers/fulcio
SPIFFE/SPIREplugins/signers/spiffe
AWS KMSplugins/signers/kms/aws
GCP KMSplugins/signers/kms/gcp
Azure Key Vaultplugins/signers/kms/azure
HashiCorp Vaultplugins/signers/vault
HashiCorp Vault Transitplugins/signers/vault-transit
File (PEM)plugins/signers/file
Debugplugins/signers/debug-signer

Timestamp authoritiesโ€‹

RFC 3161 compatible TSAs. Tested against:

  • Sigstore TSA (Sigstore-operated public TSA, the cilock-action default)
  • Self-hosted TSAs reachable over HTTPS

URL pattern: TSAs are passed via --timestamp-servers <url> (repeatable) or under run.timestamp-servers in the config file.

Evidence storageโ€‹

SinkNotes
File outputDefault; via --outfile.
OCI registryVia the oci attestor + downstream cosign/oras push.
ArchivistaTested against the in-toto/archivista reference server. URL pattern <platform-url>/archivista; auth via static --archivista-headers or OIDC (--archivista-oidc + --archivista-audience).

Witness compatibilityโ€‹

Cilock is bidirectionally interoperable with witness:

  • Cilock attestation type URLs use the https://aflock.ai/attestations/<name>/v0.1 namespace.
  • Legacy witness URLs (https://witness.dev/attestations/<name>/v0.1) are accepted via aliases registered in attestation/legacy.go, called from main.go at startup via attestation.RegisterLegacyAliases().
  • Witness-signed policies (DSSE payload type https://witness.testifysec.com/policy/v0.1) work with cilock verify.
  • Cilock-produced attestations verify under witness verify.

Predicate types in scopeโ€‹

PredicateNotes
in-toto Statement v1 (with versioned predicate URLs)Native format for all cilock attestations.
DSSE envelopeWraps every signed attestation.
SLSA Provenance v1Emitted by the slsa attestor.
CycloneDX, SPDXEmbedded by the sbom attestor when found in products.
SARIFEmbedded by the sarif attestor when found in products.
VEXEmitted by the vex attestor.

Version pinning recommendationsโ€‹

DependencyPin to
aflock-ai/cilock-action in workflowsA commit SHA (not a floating tag like @v1), see the defending-against-supply-chain-attacks tutorial for why.
cilock binaryA specific release version, not :latest, in any production-bound workflow.
Custom binaries built via the rookery builderPin every plugin module to a path-prefixed tag.

What's not coveredโ€‹

  • Real-time network egress monitoring. Cilock observes file/syscall activity, not network traffic. Pair with StepSecurity Harden-Runner for that gap.
  • Developer laptop or production server protection. Cilock operates in CI/CD only.
  • Windows attestor coverage. Until the omnitrail build constraint is relaxed or made conditional, Windows requires a custom build.