algorithm

package
v0.0.0-...-4a9868b Latest Latest
Warning

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

Go to latest
Published: Jul 4, 2020 License: BSD-3-Clause Imports: 9 Imported by: 0

Documentation

Index

Constants

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

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{
		MD5.Id():       MD5,
		SHA1.Id():      SHA1,
		RIPEMD160.Id(): RIPEMD160,
		SHA256.Id():    SHA256,
		SHA384.Id():    SHA384,
		SHA512.Id():    SHA512,
		SHA224.Id():    SHA224,
	}
)

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

Functions

This section is empty.

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}
	RIPEMD160 Hash = cryptoHash{3, crypto.RIPEMD160}
	SHA256    Hash = cryptoHash{8, crypto.SHA256}
	SHA384    Hash = cryptoHash{9, crypto.SHA384}
	SHA512    Hash = cryptoHash{10, crypto.SHA512}
	SHA224    Hash = cryptoHash{11, crypto.SHA224}
)

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