manage your secrets and configurations easily
Project description
secretconf
Manage your secret configurations easily
Installation
pip3 install secretconf --user
Usage
secretconf is a library to manage (encrypt/decrypt) your credentials on demand using public key encryption.
Hush
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.
Data storage
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
configpath
file
API usage
secretconf documentation
make_config
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
read_config
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'] == PASSWORD
Testing
secretconf tests exists in tests directory
- basic tests
test_basic.py
: encryption/decryption and usage ofmake_config
andread_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
Generating Docs
make gendocs
Requirements
- setuptools==38.5.0
- click==6.7
- PyNaCl==1.2.1
- npyscreen==4.10.5
License
Software is provided as is under BSD 3-Clause License
Authors
secretconf
was written by Ahmed Youssef <xmonader@gmail.com>
_.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file secretconf-0.1.2.tar.gz
.
File metadata
- Download URL: secretconf-0.1.2.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89aa68c7bcd995aad277a0dadaaf9f92c2e22d56a17bc4f923a01077e097eb47 |
|
MD5 | 0c61d00accf204a0fe1e4bbcafbe3b56 |
|
BLAKE2b-256 | 47f91be6f60067709d34af73e9177f9abea227ec76873d8e7dcd50ec8bc11e69 |
File details
Details for the file secretconf-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: secretconf-0.1.2-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1b556b3de83852b9ae97a85b0041987968689efd6673f2cfbb5d5808c968e02 |
|
MD5 | b1641f45e35cb1e6db04dca116415e8f |
|
BLAKE2b-256 | c1fdf08ccc9792e027a7b2d1b376568310bfd487d260123ca1bd628517029ecd |