Documentation ¶
Index ¶
- Variables
- func CryptoBackendName(cb CryptoBackend) string
- func CryptoBackends() []string
- func CryptoNameFromBackend(be CryptoBackend) string
- func HasCryptoBackend(ctx context.Context) bool
- func HasStorageBackend(ctx context.Context) bool
- func RegisterCrypto(id CryptoBackend, name string, loader CryptoLoader)
- func RegisterStorage(id StorageBackend, name string, loader StorageLoader)
- func StorageBackendName(sb StorageBackend) string
- func StorageBackends() []string
- func StorageNameFromBackend(be StorageBackend) string
- func WithCryptoBackend(ctx context.Context, be CryptoBackend) context.Context
- func WithCryptoBackendString(ctx context.Context, be string) context.Context
- func WithStorageBackend(ctx context.Context, sb StorageBackend) context.Context
- func WithStorageBackendString(ctx context.Context, sb string) context.Context
- type Crypto
- type CryptoBackend
- type CryptoLoader
- type Keyring
- type Revision
- type Revisions
- type Storage
- func Clone(ctx context.Context, id StorageBackend, repo, path string) (Storage, error)
- func DetectStorage(ctx context.Context, path string) (Storage, error)
- func InitStorage(ctx context.Context, id StorageBackend, path string) (Storage, error)
- func NewStorage(ctx context.Context, id StorageBackend, path string) (Storage, error)
- type StorageBackend
- type StorageLoader
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNotFound is returned if the requested backend was not found. ErrNotFound = fmt.Errorf("backend not found") )
var ( // ErrNotSupported is returned by backends for unsupported calls ErrNotSupported = fmt.Errorf("not supported") )
Functions ¶
func CryptoBackendName ¶
func CryptoBackendName(cb CryptoBackend) string
CryptoBackendName returns the name of the given backend
func CryptoBackends ¶
func CryptoBackends() []string
CryptoBackends returns the list of registered crypto backends.
func CryptoNameFromBackend ¶
func CryptoNameFromBackend(be CryptoBackend) string
CryptoNameFromBackend returns the name of a given crypto backend
func HasCryptoBackend ¶
HasCryptoBackend returns true if a value for crypto backend has been set in the context
func HasStorageBackend ¶
HasStorageBackend returns true if a value for store backend was set
func RegisterCrypto ¶
func RegisterCrypto(id CryptoBackend, name string, loader CryptoLoader)
RegisterCrypto registers a new crypto backend with the backend registry.
func RegisterStorage ¶
func RegisterStorage(id StorageBackend, name string, loader StorageLoader)
RegisterStorage registers a new storage backend with the registry.
func StorageBackendName ¶
func StorageBackendName(sb StorageBackend) string
StorageBackendName returns the name of the given backend
func StorageBackends ¶
func StorageBackends() []string
StorageBackends returns the list of registered storage backends.
func StorageNameFromBackend ¶
func StorageNameFromBackend(be StorageBackend) string
StorageNameFromBackend returns the name of a given storage backend
func WithCryptoBackend ¶
func WithCryptoBackend(ctx context.Context, be CryptoBackend) context.Context
WithCryptoBackend returns a context with the given crypto backend set
func WithCryptoBackendString ¶
WithCryptoBackendString returns a context with the given crypto backend set
func WithStorageBackend ¶
func WithStorageBackend(ctx context.Context, sb StorageBackend) context.Context
WithStorageBackend returns a context with the given store backend set
Types ¶
type Crypto ¶
type Crypto interface { Keyring Encrypt(ctx context.Context, plaintext []byte, recipients []string) ([]byte, error) Decrypt(ctx context.Context, ciphertext []byte) ([]byte, error) RecipientIDs(ctx context.Context, ciphertext []byte) ([]string, error) Name() string Version(context.Context) semver.Version Initialized(ctx context.Context) error Ext() string // filename extension IDFile() string // recipient IDs }
Crypto is a crypto backend
func DetectCrypto ¶
DetectCrypto tries to detect the crypto backend used
type CryptoBackend ¶
type CryptoBackend int
CryptoBackend is a cryptographic backend
const ( // Plain is a no-op crypto backend Plain CryptoBackend = iota // GPGCLI is a gpg-cli based crypto backend GPGCLI // Age - age-encryption.org Age )
func CryptoBackendFromName ¶
func CryptoBackendFromName(name string) CryptoBackend
CryptoBackendFromName parses the identifier into a crypto backend
func GetCryptoBackend ¶
func GetCryptoBackend(ctx context.Context) CryptoBackend
GetCryptoBackend returns the selected crypto backend or the default (GPGCLI)
func (CryptoBackend) String ¶
func (c CryptoBackend) String() string
type CryptoLoader ¶
type CryptoLoader interface { fmt.Stringer New(context.Context) (Crypto, error) Handles(Storage) error Priority() int }
CryptoLoader is the interface for creating a new crypto backend.
type Keyring ¶
type Keyring interface { ListRecipients(ctx context.Context) ([]string, error) ListIdentities(ctx context.Context) ([]string, error) FindRecipients(ctx context.Context, needles ...string) ([]string, error) FindIdentities(ctx context.Context, needles ...string) ([]string, error) Fingerprint(ctx context.Context, id string) string FormatKey(ctx context.Context, id, tpl string) string ReadNamesFromKey(ctx context.Context, buf []byte) ([]string, error) GenerateIdentity(ctx context.Context, name, email, passphrase string) error }
Keyring is a public/private key manager
type Revision ¶
type Revision struct { Hash string AuthorName string AuthorEmail string Date time.Time Subject string Body string }
Revision is a SCM revision
type Storage ¶
type Storage interface { fmt.Stringer Get(ctx context.Context, name string) ([]byte, error) Set(ctx context.Context, name string, value []byte) error Delete(ctx context.Context, name string) error Exists(ctx context.Context, name string) bool List(ctx context.Context, prefix string) ([]string, error) IsDir(ctx context.Context, name string) bool Prune(ctx context.Context, prefix string) error Link(ctx context.Context, from, to string) error Name() string Path() string Version(context.Context) semver.Version Fsck(context.Context) error // contains filtered or unexported methods }
Storage is an storage backend
func DetectStorage ¶
DetectStorage tries to detect the storage backend being used
func InitStorage ¶
InitStorage initilizes a new storage location.
func NewStorage ¶
NewStorage initializes an existing storage backend.
type StorageBackend ¶
type StorageBackend int
StorageBackend is a type of storage backend
const ( // FS is a filesystem-backed storage FS StorageBackend = iota // GitFS is a filesystem-backed storage with Git GitFS )
func GetStorageBackend ¶
func GetStorageBackend(ctx context.Context) StorageBackend
GetStorageBackend returns the store backend or the default (FS)
func StorageBackendFromName ¶
func StorageBackendFromName(name string) StorageBackend
StorageBackendFromName parses the identifier into a storage backend
func (StorageBackend) String ¶
func (s StorageBackend) String() string
type StorageLoader ¶
type StorageLoader interface { fmt.Stringer New(context.Context, string) (Storage, error) Init(context.Context, string) (Storage, error) Clone(context.Context, string, string) (Storage, error) Handles(string) error Priority() int }
StorageLoader is the interface for creating a new storage backend.
Directories ¶
Path | Synopsis |
---|---|
gpg/cli
Package cli implements a GPG CLI crypto backend.
|
Package cli implements a GPG CLI crypto backend. |
plain
Package plain implements a plaintext backend
|
Package plain implements a plaintext backend |
fs
Package fs implement a password-store compatible on disk storage layout with unencrypted paths.
|
Package fs implement a password-store compatible on disk storage layout with unencrypted paths. |
gitfs
Package gitfs implements a git cli based RCS backend.
|
Package gitfs implements a git cli based RCS backend. |