func ApplyBinPatch(src *os.File, dest string, result io.Reader) error
func MergeFlags(fs *pflag.FlagSet)
Add this module's flags to a command FlagSet
func Register(s *Signer)
type CertType uint
const ( CertTypeX509 CertType = 1 << iota CertTypePgp )
type FlagValues struct { Defs *pflag.FlagSet Values map[string]string }
func (values *FlagValues) GetBool(name string) bool
GetBool returns the flag's value as a bool
func (values *FlagValues) GetString(name string) string
GetString returns the flag's value as a string
func (values *FlagValues) ToQuery(q url.Values) error
ToQuery appends query parameters to a URL for each option in the flag set
type SignOpts struct { Path string Hash crypto.Hash Time time.Time Flags *FlagValues Audit *audit.Info // contains filtered or unexported fields }
func (o SignOpts) Context() context.Context
Context returns the context attached to the signature operation.
The returned context is always non-nil; it defaults to the background context.
func (o SignOpts) SetBinPatch(p *binpatch.PatchSet) ([]byte, error)
Convenience method to return a binary patch
func (o SignOpts) SetPkcs7(ts *pkcs9.TimestampedSignature) ([]byte, error)
Convenience method to return a PKCS#7 blob
func (o SignOpts) WithContext(ctx context.Context) SignOpts
WithContext attaches a context to the signature operation, and can be used to cancel long-running operations.
type Signature struct { Package string SigInfo string CreationTime time.Time Hash crypto.Hash Signer string SignerPgp *openpgp.Entity X509Signature *pkcs9.TimestampedSignature }
func (s *Signature) SignerName() string
type Signer struct { Name string Aliases []string Magic magic.FileType CertTypes CertType AllowStdin bool // Return true if the given filename is associated with this signer TestPath func(string) bool // Format audit attributes for logfile FormatLog func(*audit.Info) string // Verify a file, returning the set of signatures found. Performs integrity // checks but does not build X509 chains. Verify func(*os.File, VerifyOpts) ([]*Signature, error) // VerifyStream is like Verify but doesn't need to seek. VerifyStream func(io.Reader, VerifyOpts) ([]*Signature, error) // Transform a file into a stream to upload Transform func(*os.File, SignOpts) (Transformer, error) // Sign a input stream (possibly transformed) and return a mode-specific result blob Sign func(io.Reader, *certloader.Certificate, SignOpts) ([]byte, error) // Final step to run on the client after the file is patched Fixup func(*os.File) error // contains filtered or unexported fields }
func ByFile(name, sigtype string) (*Signer, error)
Return the named signer module if given, otherwise identify the file at the given path by contents or extension
func ByFileName(name string) *Signer
Return the signer associated with the given filename extension
func ByMagic(m magic.FileType) *Signer
Return the signer module responsible for the given file magic
func ByName(name string) *Signer
Return the signer module with the given name or alias
func (s *Signer) Flags() *pflag.FlagSet
Create a FlagSet for flags associated with this module. These will be added to "sign" and "remote sign", and transferred to a remote server via the URL query parameters.
func (s *Signer) FlagsFromCmdline(fs *pflag.FlagSet) (*FlagValues, error)
FlagsFromCmdline creates a FlagValues from the (merged) command-line options of a command
func (s *Signer) FlagsFromQuery(q url.Values) (*FlagValues, error)
FlagsFromQuery creates a FlagValues from URL query parameters
func (s *Signer) GetTransform(f *os.File, opts SignOpts) (Transformer, error)
Return the transform for the given module if it has one, otherwise return the default transform.
func (s *Signer) IsSigned(f *os.File) (bool, error)
IsSigned checks if a file contains a signature
type Transformer interface { // Return a stream that will be uploaded to a remote server. This may be // called multiple times in case of failover. GetReader() (stream io.Reader, err error) // Apply a HTTP response to the named destination file Apply(dest, mimetype string, result io.Reader) error }
func DefaultTransform(f *os.File) Transformer
type VerifyOpts struct { FileName string TrustedX509 []*x509.Certificate TrustedPgp openpgp.EntityList TrustedPool *x509.CertPool NoDigests bool NoChain bool Content string Compression magic.CompressionType }