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. |