algorithm

package
v0.0.0-...-c8d11d7 Latest Latest
Warning

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

Go to latest
Published: May 14, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	HashById = map[uint8]Hash{
		MD2.Id():       MD2,
		MD5.Id():       MD5,
		SHA1.Id():      SHA1,
		RIPEMD160.Id(): RIPEMD160,
		SHA256.Id():    SHA256,
		SHA384.Id():    SHA384,
		SHA512.Id():    SHA512,
		SHA224.Id():    SHA224,
		SHA3_256.Id():  SHA3_256,
		SHA3_512.Id():  SHA3_512,
	}
)

HashById represents the different hash functions specified for OpenPGP. See http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-14

Functions

func HashIdToHash

func HashIdToHash(id byte) (h crypto.Hash, ok bool)

HashIdToHash returns a crypto.Hash which corresponds to the given OpenPGP hash id.

func HashIdToString

func HashIdToString(id byte) (name string, ok bool)

HashIdToString returns the name of the hash function corresponding to the given OpenPGP hash id.

func HashNew

func HashNew(hashId crypto.Hash) (hash.Hash, error)

func HashToHashId

func HashToHashId(h crypto.Hash) (id byte, ok bool)

HashToHashId returns an OpenPGP hash id which corresponds the given Hash.

Types

type Hash

type Hash interface {
	// Id returns the algorithm ID, as a byte, of Hash.
	Id() uint8
	// Available reports whether the given hash function is linked into the binary.
	Available() bool
	// HashFunc simply returns the value of h so that Hash implements SignerOpts.
	HashFunc() crypto.Hash
	// New returns a new hash.Hash calculating the given hash function. New
	// panics if the hash function is not linked into the binary.
	New() hash.Hash
	// Size returns the length, in bytes, of a digest resulting from the given
	// hash function. It doesn't require that the hash function in question be
	// linked into the program.
	Size() int
	// String is the name of the hash function corresponding to the given
	// OpenPGP hash id.
	String() string
}

Hash is an official hash function algorithm. See RFC 4880, section 9.4.

var (
	MD5       Hash = cryptoHash{1, crypto.MD5}
	SHA1      Hash = cryptoHash{2, crypto.SHA1}
	RIPEMD160 Hash = cryptoHash{3, crypto.RIPEMD160}
	MD2       Hash = cryptoHash{5, md2.MD2HashID}
	SHA256    Hash = cryptoHash{8, crypto.SHA256}
	SHA384    Hash = cryptoHash{9, crypto.SHA384}
	SHA512    Hash = cryptoHash{10, crypto.SHA512}
	SHA224    Hash = cryptoHash{11, crypto.SHA224}
	SHA3_256  Hash = cryptoHash{12, crypto.SHA3_256}
	SHA3_512  Hash = cryptoHash{14, crypto.SHA3_512}
)

The following vars mirror the crypto/Hash supported hash functions.

Jump to

Keyboard shortcuts

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