Skip to main content

manage your secrets and configurations easily

Project description

secretconf

https://pypi.python.org/pypi/secretconf [https://travis-ci.org/xmonader/secretconf]

[https://codecov.io/gh/xmonader/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 of make_config and read_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

secretconf-0.1.2.tar.gz (5.1 kB view hashes)

Uploaded Source

Built Distribution

secretconf-0.1.2-py3-none-any.whl (7.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page