Documentation ¶
Index ¶
Constants ¶
const (
PredicateClearlyDefined = "https://in-toto.io/attestation/clearlydefined/v0.1"
)
PredicateVuln This is a new predicate type for vulnerabilities based off https://github.com/sigstore/cosign/blob/main/specs/COSIGN_VULN_ATTESTATION_SPEC.md. This is used by the certifier to attest to vulnerabilities in an artifact. Currently, the predicate is defined here but the intention is to upstream this to https://github.com/in-toto/attestation in the near future once the quirks are worked out.
const (
PredicateVuln = "https://in-toto.io/attestation/vuln/v0.1"
)
PredicateVuln This is a new predicate type for vulnerabilities based off https://github.com/sigstore/cosign/blob/main/specs/COSIGN_VULN_ATTESTATION_SPEC.md. This is used by the certifier to attest to vulnerabilities in an artifact. Currently, the predicate is defined here but the intention is to upstream this to https://github.com/in-toto/attestation in the near future once the quirks are worked out.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClearlyDefinedPredicate ¶ added in v0.8.0
type ClearlyDefinedPredicate struct { Definition Definition `json:"definition,omitempty"` Metadata Metadata `json:"metadata,omitempty"` }
ClearlyDefinedPredicate defines predicate definition of the license attestation
type ClearlyDefinedStatement ¶ added in v0.8.0
type ClearlyDefinedStatement struct { attestationv1.Statement // Predicate contains type specific metadata. Predicate ClearlyDefinedPredicate `json:"predicate"` }
ClearlyDefinedStatement defines the statement header and the license predicate
type Definition ¶ added in v0.8.0
type Definition struct { Described struct { ReleaseDate string `json:"releaseDate"` SourceLocation *struct { Type string `json:"type"` Provider string `json:"provider"` Namespace string `json:"namespace"` Name string `json:"name"` Revision string `json:"revision"` URL string `json:"url"` } `json:"sourceLocation,omitempty"` Urls struct { Registry string `json:"registry"` Version string `json:"version"` Download string `json:"download"` } `json:"urls"` Hashes struct { Sha1 string `json:"sha1"` Sha256 string `json:"sha256"` } `json:"hashes"` Files int `json:"files"` Tools []string `json:"tools"` ToolScore struct { Total int `json:"total"` Date int `json:"date"` Source int `json:"source"` } `json:"toolScore"` Score struct { Total int `json:"total"` Date int `json:"date"` Source int `json:"source"` } `json:"score"` } `json:"described"` Files []struct { Path string `json:"path"` License string `json:"license,omitempty"` Natures []string `json:"natures,omitempty"` Hashes struct { Sha1 string `json:"sha1"` Sha256 string `json:"sha256"` } `json:"hashes"` Token string `json:"token,omitempty"` Attributions []string `json:"attributions,omitempty"` } `json:"files"` Licensed struct { Declared string `json:"declared"` ToolScore struct { Total int `json:"total"` Declared int `json:"declared"` Discovered int `json:"discovered"` Consistency int `json:"consistency"` Spdx int `json:"spdx"` Texts int `json:"texts"` } `json:"toolScore"` Facets struct { Core struct { Attribution struct { Unknown int `json:"unknown"` Parties []string `json:"parties"` } `json:"attribution"` Discovered struct { Unknown int `json:"unknown"` Expressions []string `json:"expressions"` } `json:"discovered"` Files int `json:"files"` } `json:"core"` } `json:"facets"` Score struct { Total int `json:"total"` Declared int `json:"declared"` Discovered int `json:"discovered"` Consistency int `json:"consistency"` Spdx int `json:"spdx"` Texts int `json:"texts"` } `json:"score"` } `json:"licensed"` Coordinates struct { Type string `json:"type"` Provider string `json:"provider"` Namespace string `json:"namespace"` Name string `json:"name"` Revision string `json:"revision"` } `json:"coordinates"` Meta struct { SchemaVersion string `json:"schemaVersion"` Updated time.Time `json:"updated"` } `json:"_meta"` Scores struct { Effective int `json:"effective"` Tool int `json:"tool"` } `json:"scores"` }
Definition represents the structure of the data returned by the API
type Invocation ¶
type Invocation struct { Parameters []string `json:"parameters,omitempty"` Uri string `json:"uri,omitempty"` EventID string `json:"event_id,omitempty"` ProducerID string `json:"producer_id,omitempty"` }
Invocation defines how the scan was initiated and by which producer
type Result ¶
type Result struct { VulnerabilityId string `json:"vulnerability_id,omitempty"` Aliases []string `json:"aliases,omitempty"` }
Result defines the Vulnerability ID and its alias. There can be multiple results per artifact
type Scanner ¶
type Scanner struct { Uri string `json:"uri,omitempty"` Version string `json:"version,omitempty"` Database DB `json:"db,omitempty"` Result []Result `json:"result,omitempty"` }
Scanner defines the scanner that was used to scan the artifacts and the resulting vulnerabilities found
type VulnerabilityPredicate ¶
type VulnerabilityPredicate struct { Invocation Invocation `json:"invocation,omitempty"` Scanner Scanner `json:"scanner,omitempty"` Metadata Metadata `json:"metadata,omitempty"` }
VulnerabilityPredicate defines predicate definition of the vulnerability attestation
type VulnerabilityStatement ¶
type VulnerabilityStatement struct { attestationv1.Statement // Predicate contains type specific metadata. Predicate VulnerabilityPredicate `json:"predicate"` }
VulnerabilityStatement defines the statement header and the vulnerability predicate