github.com/cosmos/cosmos-sdk@v0.50.1/crypto/keyring/doc.go (about) 1 // Package keyring provides common key management API. 2 // 3 // # The Keyring interface 4 // 5 // The Keyring interface defines the methods that a type needs to implement to be used 6 // as key storage backend. This package provides a few implementations out-of-the-box. 7 // 8 // # NewInMemory 9 // 10 // The NewInMemory constructor returns an implementation backed by an in-memory, goroutine-safe 11 // map that has historically been used for testing purposes or on-the-fly key generation as the 12 // generated keys are discarded when the process terminates or the type instance is garbage 13 // collected. 14 // 15 // # New 16 // 17 // The New constructor returns an implementation backed by a keyring library 18 // (https://github.com/99designs/keyring), whose aim is to provide a common abstraction and uniform 19 // interface between secret stores available for Windows, macOS, and most GNU/Linux distributions 20 // as well as operating system-agnostic encrypted file-based backends. 21 // 22 // The backends: 23 // 24 // os The instance returned by this constructor uses the operating system's default 25 // credentials store to handle keys storage operations securely. It should be noted 26 // that the keyring may be kept unlocked for the whole duration of the user 27 // session. 28 // file This backend more closely resembles the previous keyring storage used prior to 29 // v0.38.1. It stores the keyring encrypted within the app's configuration directory. 30 // This keyring will request a password each time it is accessed, which may occur 31 // multiple times in a single command resulting in repeated password prompts. 32 // kwallet This backend uses KDE Wallet Manager as a credentials management application: 33 // https://github.com/KDE/kwallet 34 // pass This backend uses the pass command line utility to store and retrieve keys: 35 // https://www.passwordstore.org/ 36 // test This backend stores keys insecurely to disk. It does not prompt for a password to 37 // be unlocked and it should be used only for testing purposes. 38 // memory Same instance as returned by NewInMemory. This backend uses a transient storage. Keys 39 // are discarded when the process terminates or the type instance is garbage collected. 40 package keyring