Skip to content

psytron/keycache

Repository files navigation

Keycache

Keycache is an AES encrypted key:value store for your sensitive credentials. It can be used for database passwords, API-keys, private certificates or anything you don't want floating around on your filesystem. The module works as both static singleton and class instance for multiple simultaneous stores.

pip install keycache

Basic Usage: This example uses automatic defaults for all parameters. It generates an encryption key derived from a hardware identifier, a default path for blobs ( ./blobs/ ), and default name for current blob ( default )

from keycache import Keycache
k1 = Keycache()
k1.add('some_namespace', { 'key1':'val1' , 'key2':'val2'} )
k1.save()

Specific Usage:

k2 = Keycache( 
    alias='api_workers',                        # Blob name
    private_key='key_from_secure_message_bus',  # Encryption key
    blob_path ='blobs/dir' )                   # Where to store encrypted blobs

k2.add('some_namespace' , { 'key1':'val1' , 'key2':'val2'} )
k2.save() 

Loading from file: If you want to distribute the credentials to other machines while keeping a central configuration file on your local host you can use this method. Just ensure you keep your credentials file out of your repository and deploy directory.

k3 = Keycache()
k3.load_config('path/to/config.yml')
k3.save() 

Releases

No releases published

Packages

No packages published

Languages