Jeffail / keyring

Go library providing a uniform interface across a range of secure credential stores - FORK THAT DOESNT CREATE ZOMBIE PROCESSES

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Keyring

THIS IS A STALE FORK

Do not use this fork unless you have a specific reason as it will remain stale and will disappear once 99designs#103 is resolved (if ever).

Why

The purpose of this fork is to fix issues where indirect dependencies that your project has (which you have limited control over) include 99designs/keyring, which has an outstanding bug (99designs#103) that causes zombie dbus-daemons processes on each execution. This is an absolute deal breaker for many types of tool or service.

How

Add the following line to your go.mod file:

replace github.com/99designs/keyring => github.com/Jeffail/keyring v1.2.3

Unfortunately, any modules that import your module will also need to add a replace directive of their own.


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

About

Go library providing a uniform interface across a range of secure credential stores - FORK THAT DOESNT CREATE ZOMBIE PROCESSES

License:MIT License


Languages

Language:Go 99.6%Language:Shell 0.4%