func()

in image/verify.go [99:136]


func (img *Image) VerifyHash(privEncKeys []sec.PrivEncKey) (int, error) {
	secret, err := img.verifyEncState()
	if err != nil {
		return -1, err
	}

	if secret == nil {
		// Image not encrypted.
		if err := img.verifyHashDecrypted(); err != nil {
			return -1, err
		}

		return -1, nil
	}

	// Image is encrypted.
	if len(privEncKeys) == 0 {
		return -1, errors.Errorf(
			"attempt to verify hash of encrypted image: no keys provided")
	}

	// We don't know which key the image is encrypted with.  For each key,
	// decrypt and then check the hash.
	var hashErr error
	for i, key := range privEncKeys {
		dec, err := Decrypt(*img, key)
		if err != nil {
			hashErr = err
		} else {
			hashErr = dec.verifyHashDecrypted()
			if hashErr == nil {
				return i, nil
			}
		}
	}

	return -1, hashErr
}