dirhash

package
v0.5.56 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2023 License: MPL-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package dirhash defines hashes over directory trees. These hashes are recorded in go.sum files and in the Go checksum database, to allow verifying that a newly-downloaded module has the expected content.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DirFiles

func DirFiles(dir, prefix string, ignore ...string) ([]string, error)

DirFiles returns the list of files in the tree rooted at dir, replacing the directory name dir with prefix in each name. The resulting names always use forward slashes. A globbed list of files to ignore can be provided as a variadic argument

func Hash1

func Hash1(files []string, open func(string) (io.ReadCloser, error)) (string, error)

Hash1 is the "h1:" directory hash function, using SHA-256.

Hash1 is "h1:" followed by the base64-encoded SHA-256 hash of a summary prepared as if by the Unix command:

sha256sum $(find . -type f | sort) | sha256sum

More precisely, the hashed summary contains a single line for each file in the list, ordered by sort.Strings applied to the file names, where each line consists of the hexadecimal SHA-256 hash of the file content, two spaces (U+0020), the file name, and a newline (U+000A).

File names with newlines (U+000A) are disallowed.

func HashDir

func HashDir(dir, prefix string, hash Hash, ignore ...string) (string, error)

HashDir returns the hash of the local file system directory dir, replacing the directory name itself with prefix in the file names used in the hash function. optionally a list of files to ignore can be provided as a globbed list

func HashZip

func HashZip(zipfile string, hash Hash) (string, error)

HashZip returns the hash of the file content in the named zip file. Only the file names and their contents are included in the hash: the exact zip file format encoding, compression method, per-file modification times, and other metadata are ignored.

Types

type Hash

type Hash func(files []string, open func(string) (io.ReadCloser, error)) (string, error)

A Hash is a directory hash function. It accepts a list of files along with a function that opens the content of each file. It opens, reads, hashes, and closes each file and returns the overall directory hash.

var DefaultHash Hash = Hash1

DefaultHash is the default hash function used in new go.sum entries.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL