Package secrets is an interface for encrypting and decrypting secrets



This section is empty.


This section is empty.


This section is empty.


type DecryptOption

type DecryptOption func(*DecryptOptions)

DecryptOption sets DecryptOptions

func SenderPublicKey

func SenderPublicKey(key []byte) DecryptOption

SenderPublicKey is the Public Key of the Secrets that encrypted this message

type DecryptOptions

type DecryptOptions struct {
	SenderPublicKey []byte

DecryptOptions can be passed to Secrets.Decrypt

type EncryptOption

type EncryptOption func(*EncryptOptions)

EncryptOption Sets EncryptOptions

func RecipientPublicKey

func RecipientPublicKey(key []byte) EncryptOption

RecipientPublicKey is the Public Key of the Secrets that will decrypt this message

type EncryptOptions

type EncryptOptions struct {
	RecipientPublicKey []byte

EncryptOptions can be passed to Secrets.Encrypt

type Option

type Option func(*Options)

Option sets options

func Key

func Key(k []byte) Option

Key sets the symmetric secret key

func PrivateKey

func PrivateKey(key []byte) Option

PrivateKey sets the asymmetric Private Key of this codec

func PublicKey

func PublicKey(key []byte) Option

PublicKey sets the asymmetric Public Key of this codec

type Options

type Options struct {
	// Key is a symmetric key for encoding
	Key []byte
	// Private key for decoding
	PrivateKey []byte
	// Public key for encoding
	PublicKey []byte
	// Context for other opts
	Context context.Context

type Secrets

type Secrets interface {
	// Initialise options
	Init(...Option) error
	// Return the options
	Options() Options
	// Decrypt a value
	Decrypt([]byte, ...DecryptOption) ([]byte, error)
	// Encrypt a value
	Encrypt([]byte, ...EncryptOption) ([]byte, error)
	// Secrets implementation
	String() string

Secrets encrypts or decrypts arbitrary data. The data should be as small as possible

Source Files


Path Synopsis
box Package box is an asymmetric implementation of config/secrets using nacl/box
secretbox Package secretbox is a config/secrets implementation that uses nacl/secretbox to do symmetric encryption / verification