Documentation ¶
Overview ¶
cipher package is a helper package for encrypting and decrypting messages
Index ¶
- Constants
- func GeneratePrivateKey(size int) *rsa.PrivateKey
- func GetHash(hashType string) crypto.Hash
- func GetPrivateKey(loader KeyLoader) (*rsa.PrivateKey, error)
- func GetPublicKey(loader KeyLoader) (*rsa.PublicKey, error)
- type AlgorithmType
- type BasicHashLoader
- type BoxLoader
- type BytesLoader
- type Ciphers
- type Config
- type Decrypt
- type DecryptLoader
- type Encrypt
- type EncryptLoader
- type FileLoader
- type HashLoader
- type Identification
- type KeyLoader
- type KeyType
- type LocalCerts
- type NOOP
- type Options
- type RSALoader
Constants ¶
View Source
const ( // CipherKey is the Viper subkey under which logging should be stored. // NewOptions *does not* assume this key. CipherKey = "cipher" )
Variables ¶
This section is empty.
Functions ¶
func GeneratePrivateKey ¶
func GeneratePrivateKey(size int) *rsa.PrivateKey
GeneratePrivateKey will create a private key with the size given size must be greater than 64 or else it will default to 64.
Careful with the size, if its too large it won't encrypt the message or take forever
func GetPrivateKey ¶ added in v0.3.2
func GetPrivateKey(loader KeyLoader) (*rsa.PrivateKey, error)
Types ¶
type AlgorithmType ¶ added in v0.4.0
type AlgorithmType string
const ( None AlgorithmType = "none" Box AlgorithmType = "box" RSASymmetric AlgorithmType = "rsa-sym" RSAAsymmetric AlgorithmType = "rsa-asy" )
func ParseAlogrithmType ¶ added in v0.4.0
func ParseAlogrithmType(algo string) AlgorithmType
type BasicHashLoader ¶ added in v0.3.0
type BasicHashLoader struct {
HashName string `mapstructure:"hash"`
}
type BoxLoader ¶ added in v0.3.2
func (*BoxLoader) LoadDecrypt ¶ added in v0.3.2
func (*BoxLoader) LoadEncrypt ¶ added in v0.3.2
type BytesLoader ¶ added in v0.3.3
type BytesLoader struct {
Data []byte
}
func (*BytesLoader) GetBytes ¶ added in v0.3.3
func (b *BytesLoader) GetBytes() ([]byte, error)
type Ciphers ¶ added in v0.4.0
type Ciphers struct {
Options map[AlgorithmType]map[string]Decrypt
}
type Config ¶ added in v0.4.0
type Config struct { // Logger is the go-kit Logger to use for server startup and error logging. If not // supplied, logging.DefaultLogger() is used instead. Logger log.Logger `json:"-"` // Type is the algorithm type. Like none, box, rsa etc. Type AlgorithmType `json:"type"` // KID is the key id of the cipher KID string `json:"kid,omitempty"` // Params to be provided to the algorithm type. // For example providing a hash algorithm to rsa. Params map[string]string `json:"params,omitempty"` // Keys is a map of keys to path. aka senderPrivateKey : private.pem Keys map[KeyType]string `json:"keys,omitempty"` }
Config used load the Encrypt or Decrypt
func (*Config) LoadDecrypt ¶ added in v0.4.0
func (*Config) LoadEncrypt ¶ added in v0.4.0
type Decrypt ¶ added in v0.3.0
type Decrypt interface { Identification // DecryptMessage attempts to decode the message into a string. // and error will be returned if failed to decode the message. DecryptMessage(cipher []byte, nonce []byte) (message []byte, err error) }
Decrypt represents the ability to decrypt messages
func DefaultCipherDecrypter ¶ added in v0.3.2
func DefaultCipherDecrypter() Decrypt
func NewBoxDecrypter ¶ added in v0.3.2
func NewRSADecrypter ¶ added in v0.4.0
type DecryptLoader ¶ added in v0.3.2
type Encrypt ¶ added in v0.3.2
type Encrypt interface { Identification // EncryptMessage attempts to encode the message into an array of bytes. // and error will be returned if failed to encode the message. EncryptMessage(message []byte) (crypt []byte, nonce []byte, err error) }
Encrypt represents the ability to encrypt messages
func DefaultCipherEncrypter ¶ added in v0.3.2
func DefaultCipherEncrypter() Encrypt
func NewBoxEncrypter ¶ added in v0.3.2
func NewRSAEncrypter ¶ added in v0.4.0
type EncryptLoader ¶ added in v0.3.2
type FileLoader ¶ added in v0.3.0
type FileLoader struct {
Path string
}
func (*FileLoader) GetBytes ¶ added in v0.3.0
func (f *FileLoader) GetBytes() ([]byte, error)
type HashLoader ¶ added in v0.3.0
type Identification ¶ added in v0.4.0
type Identification interface { // GetAlgorithm will return the algorithm Encrypt and Decrypt uses GetAlgorithm() AlgorithmType // GetKID returns the id of the specific keys used GetKID() string }
type LocalCerts ¶ added in v0.3.0
type NOOP ¶
type NOOP struct{}
NOOP will just return the message
func (*NOOP) DecryptMessage ¶
func (*NOOP) EncryptMessage ¶
func (*NOOP) GetAlgorithm ¶ added in v0.4.0
func (*NOOP) GetAlgorithm() AlgorithmType
type Options ¶ added in v0.3.2
type Options []Config
type RSALoader ¶ added in v0.4.0
type RSALoader struct { KID string Hash HashLoader PrivateKey KeyLoader PublicKey KeyLoader }
func (*RSALoader) LoadDecrypt ¶ added in v0.4.0
func (*RSALoader) LoadEncrypt ¶ added in v0.4.0
Source Files ¶
Click to show internal directories.
Click to hide internal directories.