Manage your secret configurations easily
pip3 install secretconf --user
secretconf is a library to manage (encrypt/decrypt) your credentials on demand using public key encryption.
hush is a commandline utility installed with secretconf to make your life easier to store and update credentials
hush --section twittermain --fields 'user,__token' --privatekey ~/.ssh/id_rsa hush --help
Usage: hush [OPTIONS]
Options:
--section TEXT Section (Appname)
--privatekey TEXT Privatekey path
--configpath TEXT Secret configuration path
--fields TEXT quoted comma separated fields; secret fields are prefixed with __
--help Show this message and exit.
You can configure where to save the data using --configpath which is set to /tmp/secrets.conf by default.
[twittermain]
user = ahmed
__token = eYCWre9l7IauoHs6K3D5J2wkgnQQBtFV4CoZE3W4tpbxa7Z7Qt+c/LnQhSI=
Please notice that you can't use multiple keys on the same
configpathfile
secretconf documentation
def test_make_config_creates_file_with_encrypted_data():
make_config(APPNAME, {'user': USER, '__password': PASSWORD},
config_path=TEST_CONFIG_PATH, private_key=hashedsk)
assert os.path.exists(TEST_CONFIG_PATH)
with open(TEST_CONFIG_PATH, 'r') as f:
content = f.read()
assert "user" in content
assert USER in content
assert "__password" in content
assert PASSWORD not in content conf = read_config(APPNAME, config_path=TEST_CONFIG_PATH,
private_key=hashedsk)
assert APPNAME in conf
assert 'user' in conf[APPNAME]
assert '__password' in conf[APPNAME]
assert conf[APPNAME]['user'] == USER
assert conf[APPNAME]['__password'] == PASSWORDsecretconf tests exists in tests directory
- basic tests
test_basic.py: encryption/decryption and usage ofmake_configandread_config - property based tests
test_properties.py
You can use pytest tests or just tox make sure to install requirements-test.txt or make test
make gendocs
- setuptools==38.5.0
- click==6.7
- PyNaCl==1.2.1
- npyscreen==4.10.5
Software is provided as is under BSD 3-Clause License
secretconf was written by Ahmed Youssef <xmonader@gmail.com>_.
![[https://travis-ci.org/xmonader/secretconf]](https://travis-ci.org/xmonader/secretconf.png)