copy/sign.go
func (c *copier) createSignature(manifest []byte, keyIdentity string) ([]byte, error) {
	mech, err := signature.NewGPGSigningMechanism()
	if err != nil {
		return nil, errors.Wrap(err, "Error initializing GPG")
	}
	defer mech.Close()
	if err := mech.SupportsSigning(); err != nil {
		return nil, errors.Wrap(err, "Signing not supported")
	}

	dockerReference := c.dest.Reference().DockerReference()
	if dockerReference == nil {
		return nil, errors.Errorf("Cannot determine canonical Docker reference for destination %s", transports.ImageName(c.dest.Reference()))
	}

	c.Printf("Signing manifest\n")
	newSig, err := signature.SignDockerManifest(manifest, dockerReference.String(), mech, keyIdentity)
	if err != nil {
		return nil, errors.Wrap(err, "Error creating signature")
	}
	return newSig, nil
}
func (c *copier) createSignature(manifest []byte, keyIdentity string) ([]byte, error) {
	mech, err := signature.NewGPGSigningMechanism()
	if err != nil {
		return nil, errors.Wrap(err, "Error initializing GPG")
	}
	defer mech.Close()
	if err := mech.SupportsSigning(); err != nil {
		return nil, errors.Wrap(err, "Signing not supported")
	}

	dockerReference := c.dest.Reference().DockerReference()
	if dockerReference == nil {
		return nil, errors.Errorf("Cannot determine canonical Docker reference for destination %s", transports.ImageName(c.dest.Reference()))
	}

	c.Printf("Signing manifest\n")
	newSig, err := signature.SignDockerManifest(manifest, dockerReference.String(), mech, keyIdentity)
	if err != nil {
		return nil, errors.Wrap(err, "Error creating signature")
	}
	return newSig, nil
}
func ( c * copier ) createSignature ( manifest [ ] byte , keyIdentity string ) ( [ ] byte , error ) { mech , err := signature . NewGPGSigningMechanism ( ) if err != nil { return nil , errors . Wrap ( err , " " ) } defer mech . Close ( ) if err := mech . SupportsSigning ( ) ; err != nil { return nil , errors . Wrap ( err , " " ) } dockerReference := c . dest . Reference ( ) . DockerReference ( ) if dockerReference == nil { return nil , errors . Errorf ( " " , transports . ImageName ( c . dest . Reference ( ) ) ) } c . Printf ( " \n " ) newSig , err := signature . SignDockerManifest ( manifest , dockerReference . String ( ) , mech , keyIdentity ) if err != nil { return nil , errors . Wrap ( err , " " ) } return newSig , nil }
// createSignature creates a new signature of manifest using keyIdentity.
createSignature creates a new signature of manifest using keyIdentity .