code: func (f *fileFetcher) Hash(aciPath string, a *asc) (string, error) {
  	ensureLogger(f.Debug)
  	absPath, err := filepath.Abs(aciPath)
  	if err != nil {
  		return "", errwrap.Wrap(fmt.Errorf("failed to get an absolute path for %q", aciPath), err)
  	}
  	aciPath = absPath
  
  	aciFile, err := f.getFile(aciPath, a)
  	if err != nil {
  		return "", err
  	}
  	defer aciFile.Close()
  
  	key, err := f.S.WriteACI(aciFile, imagestore.ACIFetchInfo{
  		Latest: false,
  	})
  	if err != nil {
  		return "", err
  	}
  
  	return key, nil
  }
docs: // Hash opens a file, optionally verifies it against passed asc,
  // stores it in the store and returns the hash.