algorithm

package
v0.0.0-...-86ae774 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2023 License: BSD-3-Clause Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AEADModeEAX = AEADMode(1)
	AEADModeOCB = AEADMode(2)
	AEADModeGCM = AEADMode(3)
)

Supported modes of operation (see RFC4880bis [EAX] and RFC7253)

View Source
const (
	TripleDES = CipherFunction(2)
	CAST5     = CipherFunction(3)
	AES128    = CipherFunction(7)
	AES192    = CipherFunction(8)
	AES256    = CipherFunction(9)
)

The following constants mirror the OpenPGP standard (RFC 4880).

Variables

View Source
var CipherById = map[uint8]Cipher{
	TripleDES.Id(): TripleDES,
	CAST5.Id():     CAST5,
	AES128.Id():    AES128,
	AES192.Id():    AES192,
	AES256.Id():    AES256,
}

CipherById represents the different block ciphers specified for OpenPGP. See http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-13

View Source
var (
	HashById = map[uint8]Hash{
		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 HashIdToHashWithSha1

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

HashIdToHashWithSha1 returns a crypto.Hash which corresponds to the given OpenPGP hash id, allowing sha1.

func HashIdToHashWithSha1Md5

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

HashIdToHashWithSha1Md5 returns a crypto.Hash which corresponds to the given OpenPGP hash id, allowing sha1 and md5 (for v3 keys).

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 HashToHashId

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

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

func HashToHashIdWithSha1

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

HashToHashIdWithSha1 returns an OpenPGP hash id which corresponds the given Hash, allowing instances of SHA1

func HashToHashIdWithSha1Md5

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

HashToHashIdWithSha1Md5 returns an OpenPGP hash id which corresponds the given Hash, allowing instances of SHA1 and MD5 (for v3 keys)

Types

type AEADMode

type AEADMode uint8

AEADMode defines the Authenticated Encryption with Associated Data mode of operation.

func (AEADMode) New

func (mode AEADMode) New(block cipher.Block) (alg cipher.AEAD)

New returns a fresh instance of the given mode

func (AEADMode) NonceLength

func (mode AEADMode) NonceLength() int

NonceLength returns the length in bytes of nonces.

func (AEADMode) TagLength

func (mode AEADMode) TagLength() int

TagLength returns the length in bytes of authentication tags.

type Cipher

type Cipher interface {
	// Id returns the algorithm ID, as a byte, of the cipher.
	Id() uint8
	// KeySize returns the key size, in bytes, of the cipher.
	KeySize() int
	// BlockSize returns the block size, in bytes, of the cipher.
	BlockSize() int
	// New returns a fresh instance of the given cipher.
	New(key []byte) cipher.Block
}

Cipher is an official symmetric key cipher algorithm. See RFC 4880, section 9.2.

type CipherFunction

type CipherFunction uint8

func (CipherFunction) BlockSize

func (cipher CipherFunction) BlockSize() int

BlockSize returns the block size, in bytes, of cipher.

func (CipherFunction) Id

func (sk CipherFunction) Id() uint8

ID returns the algorithm Id, as a byte, of cipher.

func (CipherFunction) KeySize

func (cipher CipherFunction) KeySize() int

KeySize returns the key size, in bytes, of cipher.

func (CipherFunction) New

func (cipher CipherFunction) New(key []byte) (block cipher.Block)

New returns a fresh instance of the given cipher.

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}
	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