M
.github
Bump go version
bin
Update vagrant test harness
cmd
Add golangci-lint and fix linting issues
testdata
Make a brand new gpg homedir to avoid gpg/gpg2 incompatibility
.gitattributes
Add golangci-lint and fix linting issues
.gitignore
Revert "Add in memory keyring."
.golangci.yml
More linting fixes
array_test.go
Export ArrayKeyring for tests
array.go
Add golangci-lint and fix linting issues
config.go
Add golangci-lint and fix linting issues
docker-compose.yml
Bump go version
file_test.go
Export prompt functions to be used by external users.
file.go
Fix linting issues
go.mod
Bump go version
go.sum
Bump go version
keychain_test.go
Add golangci-lint and fix linting issues
keychain.go
More linting fixes
keyctl_test.go
Add golangci-lint and fix linting issues
keyctl.go
Add golangci-lint and fix linting issues
keyring_test.go
Add golangci-lint and fix linting issues
keyring.go
Add golangci-lint and fix linting issues
kwallet.go
Add golangci-lint and fix linting issues
LICENSE
Add LICENSE and bare-bones README
pass_test.go
Fix linting issues
pass.go
Add golangci-lint and fix linting issues
prompt.go
Add golangci-lint and fix linting issues
README.md
Update README.md
secretservice_test.go
Add golangci-lint and fix linting issues
secretservice.go
Add golangci-lint and fix linting issues
tilde_test.go
Add tilde tests
tilde.go
Add golangci-lint and fix linting issues
Vagrantfile
Update vagrant test harness
wincred_test.go
Run 'go fmt' with go1.17.
wincred.go
Run 'go fmt' with go1.17.

Keyring

Keyring provides 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

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

Testing

Vagrant is used to create linux and windows test environments.

# Start vagrant
vagrant up

# Run go tests on all platforms
./bin/go-test

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