Documentation ¶
Index ¶
- Constants
- Variables
- func HashIdToHash(id byte) (h crypto.Hash, ok bool)
- func HashIdToHashWithSha1(id byte) (h crypto.Hash, ok bool)
- func HashIdToString(id byte) (name string, ok bool)
- func HashToHashId(h crypto.Hash) (id byte, ok bool)
- func HashToHashIdWithSha1(h crypto.Hash) (id byte, ok bool)
- type AEADMode
- type Cipher
- type CipherFunction
- type Hash
Constants ¶
const ( AEADModeEAX = AEADMode(1) AEADModeOCB = AEADMode(2) AEADModeGCM = AEADMode(3) )
Supported modes of operation (see RFC4880bis [EAX] and RFC7253)
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 ¶
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
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 ¶
HashIdToHash returns a crypto.Hash which corresponds to the given OpenPGP hash id.
func HashIdToHashWithSha1 ¶
HashIdToHashWithSha1 returns a crypto.Hash which corresponds to the given OpenPGP hash id, allowing sha1.
func HashIdToString ¶
HashIdToString returns the name of the hash function corresponding to the given OpenPGP hash id.
func HashToHashId ¶
HashToHashId returns an OpenPGP hash id which corresponds the given Hash.
Types ¶
type AEADMode ¶
type AEADMode uint8
AEADMode defines the Authenticated Encryption with Associated Data mode of operation.
func (AEADMode) NonceLength ¶
NonceLength returns the length in bytes of nonces.
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.
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 ( 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.