Documentation ¶
Overview ¶
Package cipher collects common cryptographic constants and interfaces.
Index ¶
Constants ¶
const ( // NoOperation identified for Encrypt and Decrypter in noop package. NoOperation byte = 0x20 // NACLECDH identified for Encrypt and Decrypter in nacl package using ECDH // for key exchange and share secret generation. NACLECDH byte = 0x2a // NACLSecretKey indenified for nacl secret key encryption. NACLSecretKey byte = 0x2b // AES256CBC identified for Encrypt and Decrypter in aes256cbc package. AES256CBC byte = 0x2e )
Variables ¶
var ( // ErrEncrypt returns the error message if encryption failed // ErrEncrypt = errors.New("cipher: encryption failed") //nolint:gochecknoglobals // ErrDecrypt returns the error message if decryption failed // ErrDecrypt = errors.New("cipher: decryption failed") //nolint:gochecknoglobals )
Functions ¶
This section is empty.
Types ¶
type Decrypter ¶
type Decrypter interface {
Decrypt(EncryptedContent) (PlainContent, error)
}
A Decrypter uses the PrivateKey to decrypt the supplied data.
The decryption method used is dependant on the implementation and must check that the data can be decrypted before continuing. Returned data should be the plain bytes that were supplied originally to the Encrypter.
type EncryptedContent ¶
type EncryptedContent []byte
EncryptedContent typed version of byte array that holds encrypted data.
Encrypt method returns the encrypted contents as EncryptedContent. Decrypt method accepts EncryptedContent as the encrypted contents to decrypt.
type Encrypter ¶
type Encrypter interface {
Encrypt(PlainContent) (EncryptedContent, error)
}
An Encrypter uses the PublicKey to encrypt the supplied data.
The encryption method used is dependant on the implementation and must be included in the response. Returned encrypted data must include what encryption method was used as the first byte. The data can be decrypted using the corresponding PrivateKey and Decrypter method.
type KeyExchange ¶
type KeyExchange interface { // EphemeralKey generates a private/public key pair. EphemeralKey() (private crypto.PrivateKey, err error) // On sending a message the private key should be an ephemeralKey or generated private key, // the public key is the recipient public key. // On reading a message the private key is the recipient private key, the public key is the // ephemeralKey or generated public key. SharedSecret(privateKey crypto.PrivateKey, publicKey crypto.PublicKey) ([]byte, error) }
KeyExchange agrees on a symmetric keys by performing a key exchange using asymmetric keys.
type PlainContent ¶
type PlainContent []byte
PlainContent typed version of byte array that holds plain data.
Encrypt method returns the encrypted contents as EncryptedContent. Decrypt method accepts EncryptedContent as the encrypted contents to decrypt.
Directories ¶
Path | Synopsis |
---|---|
Package aes256cbc implements Advanced Encryption Standard with a 256 bit key length, using Chain Block Cipher mode (AES-256-CBC).
|
Package aes256cbc implements Advanced Encryption Standard with a 256 bit key length, using Chain Block Cipher mode (AES-256-CBC). |
Package ciphertest is a generated GoMock package.
|
Package ciphertest is a generated GoMock package. |
Package ecdh has implementations for different asymmetric key exchange.
|
Package ecdh has implementations for different asymmetric key exchange. |
Package noop is a no operation encryption algorithm for use when the message is intended to be publically readable.
|
Package noop is a no operation encryption algorithm for use when the message is intended to be publically readable. |