Skip to content

JamshedVesuna/cronos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cronos

Python module for safely and cleanly using sensitive data in shared code.

Cronos uses a secure encryption method, AES256, to store passwords and sensitive values locally. Simple (and unsecure) Caesar Ciphers are used to create obfuscated keys in the cronos datastore. This means keys are simply human-unreadable and values are securely encrypted with a password file (defaults to your ssh private key).

Install

Supports Linux and OS X.

  • Python Pip: pip install cronos

Usage

While global keys are stored in your code (such as the plaintext API_KEY in the examples below), Cronos uses the single interface get to initially prompt the user for the value at runtime. Cronos stores the encrypted value in a keystore called db.cronos. Upon a second call to get, Cronos performs a lookup and decryption.

You may want to add *.cronos to your .gitignore.

Using your ssh private key (id_rsa) as the default encryption key:

from cronos import cronos
c = cronos.Cronos()
myKey = c.get("API_KEY")  # Prompt user for API_KEY if not already stored

Using mypassword.txt as the encryption key and /tmp/db.chronos as the db file:

from cronos import cronos
c = cronos.Cronos(passFile='mypassword.txt', storeFile='/tmp/db.chronos')
myKey = c.get("API_KEY")  # Prompt user for API_KEY if not already stored

Requirements

About

Python module for safely and cleanly using sensitive data in code

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages