Documentation ¶
Index ¶
- Constants
- func Canonicalize(p string) string
- func CategorizeSANs(in []string) (ips []net.IP, domains, emails []string)
- func DecodeErrorResponse(body []byte) error
- func EncodePath(path, key string, version uint64) string
- func HandleJointKeyUsages(usages []string) (ku x509.KeyUsage, eku []x509.ExtKeyUsage, err error)
- func IsKeyNotFound(err error) bool
- func IsNotFound(err error) bool
- func IsSecretNotFound(err error) bool
- func NewKeyNotFoundError(path, key string) error
- func NewSecretNotFoundError(path string) error
- func ParsePath(path string) (secret, key string, version uint64)
- func ParseSubject(subj string) (pkix.Name, error)
- func PathHasKey(path string) bool
- func PathHasVersion(path string) bool
- func PathLessThan(left, right string) bool
- func StartSOCKS5Server(dialFn func(string, string) (net.Conn, error)) (string, error)
- func StartSSHTunnel(conf SOCKS5SSHConfig) (*ssh.Client, error)
- func StrongboxURL(vaultURL *url.URL) string
- func TranslateSignatureAlgorithm(signatureAlgorithm string) (sigAlgo x509.SignatureAlgorithm, err error)
- type CertOptions
- type DeleteOpts
- type MoveCopyOpts
- type ProxyRouter
- type SOCKS5SSHConfig
- type Secret
- func (s *Secret) DHParam(length int, skipIfExists bool) error
- func (s *Secret) Delete(key string) bool
- func (s *Secret) Empty() bool
- func (s *Secret) Format(oldKey, newKey, fmtType string, skipIfExists bool) error
- func (s *Secret) Get(key string) string
- func (s *Secret) Has(key string) bool
- func (s *Secret) JSON() string
- func (s *Secret) Keys() []string
- func (s Secret) MarshalJSON() ([]byte, error)
- func (s *Secret) Password(key string, length int, policy string, skipIfExists bool) error
- func (s *Secret) RSAKey(bits int, skipIfExists bool) error
- func (s *Secret) SSHKey(bits int, skipIfExists bool) error
- func (s *Secret) Set(key, value string, skipIfExists bool) error
- func (s *Secret) SingleValue() (string, error)
- func (s *Secret) UnmarshalJSON(b []byte) error
- func (s Secret) X509(requireKey bool) (*X509, error)
- func (s *Secret) YAML() string
- type SecretEntry
- type SecretVersion
- type Secrets
- type TreeCopyOpts
- type TreeOpts
- type Vault
- func (v *Vault) AddMount(path string, version int) error
- func (v *Vault) CheckPKIBackend(backend string) error
- func (v *Vault) Client() *vaultkv.KV
- func (v *Vault) ConstructSecrets(path string, opts TreeOpts) (s Secrets, err error)
- func (v *Vault) Copy(oldpath, newpath string, opts MoveCopyOpts) error
- func (v *Vault) CreateSignedCertificate(backend, role, path string, params CertOptions, skipIfExists bool) error
- func (v *Vault) Curl(method string, path string, body []byte) (*http.Response, error)
- func (v *Vault) Delete(path string, opts DeleteOpts) error
- func (v *Vault) DeleteTree(root string, opts DeleteOpts) error
- func (v *Vault) DeleteVersions(path string, versions []uint) error
- func (v *Vault) DestroyVersions(path string, versions []uint) error
- func (v *Vault) FindSigningCA(cert *X509, certPath string, signPath string) (*X509, string, error)
- func (v *Vault) Init(nkeys, threshold int) ([]string, string, error)
- func (v *Vault) IsMounted(typ, path string) (bool, error)
- func (v *Vault) List(path string) (paths []string, err error)
- func (v *Vault) ListMounts() (mounts []string, err error)
- func (v *Vault) Mount(typ, path string, params map[string]interface{}) error
- func (v *Vault) MountExists(path string) (bool, error)
- func (v *Vault) MountVersion(path string) (uint, error)
- func (v *Vault) Mounts(typ string) ([]string, error)
- func (v *Vault) Move(oldpath, newpath string, opts MoveCopyOpts) error
- func (v *Vault) MoveCopyTree(oldRoot, newRoot string, f func(string, string, MoveCopyOpts) error, ...) error
- func (v *Vault) NewRootToken(keys []string) (string, error)
- func (v *Vault) ReKey(unsealKeyCount, numToUnseal int, pgpKeys []string) ([]string, error)
- func (v *Vault) Read(path string) (secret *Secret, err error)
- func (v *Vault) RenewLease() error
- func (v *Vault) RetrievePem(backend, path string) ([]byte, error)
- func (v *Vault) RevokeCertificate(backend, serial string) error
- func (v *Vault) SaveSealKeys(keys []string)
- func (v *Vault) Seal() (bool, error)
- func (v *Vault) SealKeys() (int, error)
- func (v *Vault) Sealed() (bool, error)
- func (v *Vault) SetURL(u string)
- func (v *Vault) Strongbox() (map[string]string, error)
- func (v *Vault) Undelete(path string) error
- func (v *Vault) Unseal(keys []string) error
- func (v *Vault) Versions(path string) ([]vaultkv.KVVersion, error)
- func (v *Vault) Write(path string, s *Secret) error
- type VaultConfig
- type X509
- func (x X509) CheckStrength(bits ...int) error
- func (x X509) Expired() bool
- func (c *X509) ExpiryString() string
- func (c *X509) FormatSerial() string
- func (ca *X509) HasRevoked(cert *X509) bool
- func (x *X509) IntermediarySubject(n int) string
- func (x X509) IsCA() bool
- func (x *X509) Issuer() string
- func (x *X509) MakeCA()
- func (ca *X509) Revoke(cert *X509)
- func (ca *X509) SaveTo(v *Vault, path string, skipIfExists bool) error
- func (x X509) Secret(skipIfExists bool) (*Secret, error)
- func (ca *X509) Sign(x *X509, ttl time.Duration) error
- func (x *X509) Subject() string
- func (x X509) ValidFor(names ...string) (bool, error)
- func (x X509) ValidForDomain(domain string) bool
- func (x X509) ValidForEmail(email string) bool
- func (x X509) ValidForIP(ip net.IP) bool
- func (x X509) Validate() error
Constants ¶
const ( SecretStateAlive uint = iota SecretStateDeleted SecretStateDestroyed )
Variables ¶
This section is empty.
Functions ¶
func Canonicalize ¶
func DecodeErrorResponse ¶
func EncodePath ¶
EncodePath creates a safe-friendly canonical path for the given arguments
func HandleJointKeyUsages ¶
func IsKeyNotFound ¶
IsKeyNotFound returns true if the given error was created with NewKeyNotFoundError(). False otherwise.
func IsNotFound ¶
IsNotFound returns true if the given error is a SecretNotFound error
or a KeyNotFound error. Returns false otherwise.
func IsSecretNotFound ¶
IsSecretNotFound returns true if the given error was created with NewSecretNotFoundError(). False otherwise.
func NewKeyNotFoundError ¶
NewKeyNotFoundError returns an error object describing the key that could not be located within the secret it was searched for in. Returning a KeyNotFound error should semantically mean that the secret it would've been contained in was located in the vault.
func NewSecretNotFoundError ¶
NewSecretNotFoundError returns an error with a message descibing the path which could not be found in the secret backend.
func ParsePath ¶
ParsePath splits the given path string into its respective secret path
and contained key parts
func PathHasKey ¶
PathHasKey returns true if the given path has a key specified in its syntax. False otherwise.
func PathHasVersion ¶
PathHasVersion returns true if the given path has a version specified in its syntax. False otherwise.
func PathLessThan ¶
func StartSOCKS5Server ¶
StartSOCKS5SSH makes an SSH connection according to the given config, starts a local SOCKS5 server on a random port, and then returns the proxy address if the connection was successful and an error if it was unsuccessful.
func StartSSHTunnel ¶
func StartSSHTunnel(conf SOCKS5SSHConfig) (*ssh.Client, error)
StartSSHTunnel makes an SSH connection according to the given config. It returns an SSH client if it was successful and an error otherwise.
func StrongboxURL ¶
func TranslateSignatureAlgorithm ¶
func TranslateSignatureAlgorithm(signatureAlgorithm string) (sigAlgo x509.SignatureAlgorithm, err error)
Types ¶
type CertOptions ¶
type DeleteOpts ¶
type MoveCopyOpts ¶
type MoveCopyOpts struct { SkipIfExists bool Quiet bool //Deep copies all versions and overwrites all versions at the target location Deep bool //DeletedVersions undeletes, reads, and redeletes the deleted keys // It also puts in dummy destroyed keys to dest to match destroyed keys from src //Makes no sense without Deep DeletedVersions bool }
type ProxyRouter ¶
func NewProxyRouter ¶
func NewProxyRouter() (*ProxyRouter, error)
type SOCKS5SSHConfig ¶
type SOCKS5SSHConfig struct { Host string User string PrivateKey []byte KnownHostsFile string SkipHostKeyValidation bool }
SOCKS5SSHConfig contains configuration variables for setting up a SOCKS5 proxy to be tunneled through an SSH connection.
type Secret ¶
type Secret struct {
// contains filtered or unexported fields
}
A Secret contains a set of key/value pairs that store anything you want, including passwords, RSAKey keys, usernames, etc.
func (*Secret) Delete ¶
Delete removes the entry with the given key from the Secret. Returns true if there was a matching object to delete. False otherwise.
func (*Secret) Empty ¶
Empty returns true if there are no key-value pairs in this Secret object. False otherwise.
func (*Secret) JSON ¶
JSON converts a Secret to its JSON representation and returns it as a string. Returns an empty string if there were any errors.
func (Secret) MarshalJSON ¶
func (*Secret) RSAKey ¶
RSAKey generates a new public/private keypair, and stores it in the secret, under the 'public' and 'private' keys.
func (*Secret) SSHKey ¶
SSHKey generates a new public/private keypair, and stores it in the secret, under the 'public' and 'private' keys.
func (*Secret) SingleValue ¶
SingleValue converts a secret to a string representing the value extracted. Returns an error if there are not exactly one results in the secret object
func (*Secret) UnmarshalJSON ¶
type SecretEntry ¶
type SecretEntry struct { Path string Versions []SecretVersion }
func (SecretEntry) Basename ¶
func (s SecretEntry) Basename() string
func (SecretEntry) Copy ¶
func (s SecretEntry) Copy(v *Vault, dst string, opts TreeCopyOpts) error
type SecretVersion ¶
type Secrets ¶
type Secrets []SecretEntry
func (*Secrets) Append ¶
func (s *Secrets) Append(e SecretEntry)
type TreeCopyOpts ¶
type TreeOpts ¶
type TreeOpts struct { //For tree/paths --keys FetchKeys bool //v2 backends show deleted secrets in the list by default //Leaving this unset will cause entries with the latest //version deleted to be purged //Ignored by constructTree. Just used by ConstructSecrets AllowDeletedSecrets bool //Overridden by FetchKeys SkipVersionInfo bool //Whether to get all versions of keys in the tree FetchAllVersions bool //GetDeletedVersions tells the workers to temporarily undelete deleted // keys to fetch their value, then delete them again GetDeletedVersions bool //Only perform gets. If the target is not a secret, then an error is returned GetOnly bool }
type Vault ¶
type Vault struct {
// contains filtered or unexported fields
}
func NewVault ¶
func NewVault(conf VaultConfig) (*Vault, error)
NewVault creates a new Vault object. If an empty token is specified, the current user's token is read from ~/.vault-token.
func (*Vault) CheckPKIBackend ¶
func (*Vault) ConstructSecrets ¶
func (*Vault) Copy ¶
func (v *Vault) Copy(oldpath, newpath string, opts MoveCopyOpts) error
Copy copies secrets from one path to another. With a secret:key specified: key -> key is good. key -> no-key is okay - we assume to keep old key name no-key -> key is bad. That makes no sense and the user should feel bad. Returns KeyNotFoundError if there is no such specified key in the secret at oldpath
func (*Vault) CreateSignedCertificate ¶
func (v *Vault) CreateSignedCertificate(backend, role, path string, params CertOptions, skipIfExists bool) error
func (*Vault) Delete ¶
func (v *Vault) Delete(path string, opts DeleteOpts) error
Delete removes the secret or key stored at the specified path. If destroy is true and the mount is v2, the latest version is destroyed instead
func (*Vault) DeleteTree ¶
func (v *Vault) DeleteTree(root string, opts DeleteOpts) error
DeleteTree recursively deletes the leaf nodes beneath the given root until the root has no children, and then deletes that.
func (*Vault) DeleteVersions ¶
DeleteVersions marks the given versions of the given secret as deleted for a v2 backend or actually deletes it for a v1 backend.
func (*Vault) DestroyVersions ¶
DestroyVersions irrevocably destroys the given versions of the given secret
func (*Vault) FindSigningCA ¶
func (*Vault) List ¶
List returns the set of (relative) paths that are directly underneath the given path. Intermediate path nodes are suffixed with a single "/", whereas leaf nodes (the secrets themselves) are not.
func (*Vault) ListMounts ¶
func (*Vault) Move ¶
func (v *Vault) Move(oldpath, newpath string, opts MoveCopyOpts) error
Move moves secrets from one path to another. A move is semantically a copy and then a deletion of the original item. For more information on the behavior of Move pertaining to keys, look at Copy.
func (*Vault) MoveCopyTree ¶
func (v *Vault) MoveCopyTree(oldRoot, newRoot string, f func(string, string, MoveCopyOpts) error, opts MoveCopyOpts) error
MoveCopyTree will recursively copy all nodes from the root to the new location. This function will get confused about 'secret:key' syntax, so don't let those get routed here - they don't make sense for a recursion anyway.
func (*Vault) Read ¶
Read checks the Vault for a Secret at the specified path, and returns it. If there is nothing at that path, a nil *Secret will be returned, with no error.
func (*Vault) RenewLease ¶
func (*Vault) RevokeCertificate ¶
func (*Vault) SaveSealKeys ¶
type VaultConfig ¶
type X509 ¶
type X509 struct { Intermediaries []*x509.Certificate Certificate *x509.Certificate PrivateKey *rsa.PrivateKey Serial *big.Int CRL *pkix.CertificateList KeyUsage x509.KeyUsage ExtKeyUsage []x509.ExtKeyUsage }