Supported modes of operation (see RFC4880bis [EAX] and RFC7253)
const ( AEADModeEAX = AEADMode(1) AEADModeOCB = AEADMode(2) AEADModeGCM = AEADMode(3) )
The following constants mirror the OpenPGP standard (RFC 4880).
const ( TripleDES = CipherFunction(2) CAST5 = CipherFunction(3) AES128 = CipherFunction(7) AES192 = CipherFunction(8) AES256 = CipherFunction(9) )
CipherById represents the different block ciphers specified for OpenPGP. See http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-13
var CipherById = map[uint8]Cipher{ TripleDES.Id(): TripleDES, CAST5.Id(): CAST5, AES128.Id(): AES128, AES192.Id(): AES192, AES256.Id(): AES256, }
HashById represents the different hash functions specified for OpenPGP. See http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-14
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, } )
func HashIdToHash(id byte) (h crypto.Hash, ok bool)
HashIdToHash returns a crypto.Hash which corresponds to the given OpenPGP hash id.
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 HashIdToString(id byte) (name string, ok bool)
HashIdToString returns the name of the hash function corresponding to the given OpenPGP hash id.
func HashToHashId(h crypto.Hash) (id byte, ok bool)
HashToHashId returns an OpenPGP hash id which corresponds the given Hash.
func HashToHashIdWithSha1(h crypto.Hash) (id byte, ok bool)
HashToHashIdWithSha1 returns an OpenPGP hash id which corresponds the given Hash, allowing instances of SHA1
AEADMode defines the Authenticated Encryption with Associated Data mode of operation.
type AEADMode uint8
func (mode AEADMode) New(block cipher.Block) (alg cipher.AEAD)
New returns a fresh instance of the given mode
func (mode AEADMode) NonceLength() int
NonceLength returns the length in bytes of nonces.
func (mode AEADMode) TagLength() int
TagLength returns the length in bytes of authentication tags.
Cipher is an official symmetric key cipher algorithm. See RFC 4880, section 9.2.
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 }
type CipherFunction uint8
func (cipher CipherFunction) BlockSize() int
BlockSize returns the block size, in bytes, of cipher.
func (sk CipherFunction) Id() uint8
ID returns the algorithm Id, as a byte, of cipher.
func (cipher CipherFunction) KeySize() int
KeySize returns the key size, in bytes, of cipher.
func (cipher CipherFunction) New(key []byte) (block cipher.Block)
New returns a fresh instance of the given cipher.
Hash is an official hash function algorithm. See RFC 4880, section 9.4.
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 }
The following vars mirror the crypto/Hash supported hash functions.
var ( 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} )