Documentation
¶
Overview ¶
Package signature handles the nitty-gritty of formatting and writing out signatures. Functions here should not require any network/Sigstore access.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Identity ¶
type Identity interface {
// Certificate gets the identity's certificate.
Certificate() (*x509.Certificate, error)
// CertificateChain attempts to get the identity's full certificate chain.
CertificateChain() ([]*x509.Certificate, error)
// Signer gets a crypto.Signer that uses the identity's private key.
Signer() (crypto.Signer, error)
// Delete deletes this identity from the system.
Delete() error
// Close any manually managed memory held by the Identity.
Close()
}
Identity is a copy of smimesign.Identity to allow for compatibility without needing a dependency on the whole package. This can be removed once https://github.com/github/smimesign/pull/108 is merged.
type SignOptions ¶
type SignOptions struct {
// Make a detached signature
Detached bool
// URL of RFC3161 timestamp authority to use for timestamping
TimestampAuthority string
// Create ascii armored output
Armor bool
// IncludeCerts specifies what certs to include in the resulting signature.
// -3 is the same as -2, but omits issuer when cert has Authority Information Access extension.
// -2 includes all certs except root.
// -1 includes all certs.
// 0 includes no certs.
// 1 includes leaf cert.
// >1 includes n from the leaf.
IncludeCerts int
// UserName specifies the email to match against. If present, signing
// will fail if the Fulcio identity SAN URI does not match the git committer name.
UserName string
// UserEmail specifies the email to match against. If present, signing
// will fail if the Fulcio identity SAN email does not match the git committer email.
UserEmail string
// Rekor client - if specified, Rekor details are embedded directly in the
// signature output.
Rekor rekor.Writer
}
type SignResponse ¶ added in v0.7.0
type SignResponse struct {
Signature []byte
Cert *x509.Certificate
// LogEntry is the Rekor tlog entry from the signing operation.
// This is only populated if offline signing mode was used (e.g. SignOpts.Rekor was passed in)
LogEntry *models.LogEntryAnon
}
SignResponse is the response from Sign containing the signature and other related metadata.
func Sign ¶
func Sign(ctx context.Context, ident Identity, body []byte, opts SignOptions) (*SignResponse, error)
Sign signs a given payload for the given identity. The resulting signature and cert used is returned.
Click to show internal directories.
Click to hide internal directories.