Skip to content
Go library providing a uniform interface across a range of secure credential stores
Go Ruby
Branch: master
Clone or download
mtibben Merge pull request #53 from psanford/fix-password-store-keys-with-sla…
…shes

Fix password store to handle keys with '/' in them
Latest commit 90a8c37 Oct 27, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd/keyring Add a basic CLI tool May 19, 2019
testdata Make a brand new gpg homedir to avoid gpg/gpg2 incompatibility Feb 15, 2018
vagrant vagrant: add a windows box for wincred dev/test Jun 25, 2019
.gitignore add vagrant/ directory and a fedora VM for helping with dev/test Jun 25, 2019
.travis.yml Fix missing GetMetadata method (#48) Jun 20, 2019
LICENSE
README.md Add Pass to list of supported backends in README.md Dec 10, 2018
array.go array: add GetMetadata() stub Jun 25, 2019
array_test.go Export ArrayKeyring for tests Sep 27, 2016
config.go Add a WinCredPrefix config and remove the default of aws-vault May 19, 2019
file.go Add GetMetadata API Oct 14, 2018
file_test.go Add backend specific config Nov 18, 2017
go.mod Update dbus dep Aug 8, 2019
go.sum Update dbus dep Aug 8, 2019
keychain.go Merge pull request #43 from joemiller/update-keychain-items Jul 4, 2019
keychain_test.go all backends: Keys() return nil error on empty keychain Jun 25, 2019
keyring.go Merge pull request #29 from philpennock/GetMetadata.take2 May 31, 2019
keyring_test.go Use generic ServiceName Nov 21, 2017
kwallet.go Use new kwallet5 dbus interface Aug 26, 2019
libsecret.go all backends: Keys() return nil error on empty keychain Jun 25, 2019
libsecret_test.go all backends: Keys() return nil error on empty keychain Jun 25, 2019
pass.go Fix password store to handle keys with '/' in them Sep 22, 2019
pass_test.go
prompt.go Fix issues identified by golint May 17, 2019
wincred.go all backends: Keys() return nil error on empty keychain Jun 25, 2019
wincred_test.go all backends: Keys() return nil error on empty keychain Jun 25, 2019

README.md

Keyring

Build Status Documentation

Keyring provides utility functions for and a common interface to a range of secure credential storage services. Originally developed as part of AWS Vault, a command line tool for securely managing AWS access from developer workstations.

Currently Keyring supports the following backends

Installing

go get github.com/99designs/keyring

Usage

The short version of how to use keyring is shown below.

ring, _ := keyring.Open(keyring.Config{
  ServiceName: "example",
})

_ = ring.Set(keyring.Item{
	Key: "foo",
	Data: []byte("secret-bar"),
})

i, _ := ring.Get("foo")

fmt.Printf("%s", i.Data)

For more detail on the API please check the keyring godocs

Development & Contributing

Contributions to the keyring package are most welcome from engineers of all backgrounds and skill levels. In particular the addition of extra backends across popular operating systems would be appreciated.

This project will adhere to the Go Community Code of Conduct in the github provided discussion spaces, with the moderators being the 99designs engineering team.

To make a contribution:

  • Fork the repository
  • Make your changes on the fork
  • Submit a pull request back to this repo with a clear description of the problem you're solving
  • Ensure your PR passes all current (and new) tests
  • Ideally verify that aws-vault works with your changes (optional)

...and we'll do our best to get your work merged in

You can’t perform that action at this time.