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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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

Hashes for secretconf-0.1.2.tar.gz
Algorithm Hash digest
SHA256 89aa68c7bcd995aad277a0dadaaf9f92c2e22d56a17bc4f923a01077e097eb47
MD5 0c61d00accf204a0fe1e4bbcafbe3b56
BLAKE2b-256 47f91be6f60067709d34af73e9177f9abea227ec76873d8e7dcd50ec8bc11e69

See more details on using hashes here.

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

Hashes for secretconf-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e1b556b3de83852b9ae97a85b0041987968689efd6673f2cfbb5d5808c968e02
MD5 b1641f45e35cb1e6db04dca116415e8f
BLAKE2b-256 c1fdf08ccc9792e027a7b2d1b376568310bfd487d260123ca1bd628517029ecd

See more details on using hashes here.

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