Skip to main content

Python client for KeePassHTTP to interact with KeePass's credentials

Project description

KeePassHTTP

pypi_version.svg pypi_status.svg pypi_format.svg python_versions.svg license.svg Maintainability travis_build.svg codecov.svg requirements_status.svg code_size.svg pypi_downloads.svg

Python client for KeePassHTTP to interact with KeePass's credentials.

Install

$ pip install keepasshttp

Usage

import keepasshttp

# get single credential
credential = keepasshttp.get("my_credential_name_or_url")
print(credential.login)
print(credential.password)

# find all credentials's name
credentials = keepasshttp.list()

# fetch all partiall matching credentials
credentials = keepasshttp.search("my_credential_name_or_url")

# create a new keepasshttp entry
keepasshttp.create("login", "password", "url")

# update a keepasshttp entry
credential.password = "new password"
# or
keepasshttp.update("login", "password", "url", "uuid")

Command line

KeePassHTTP can also be called from command line:

$ python -m keepasshttp --help
usage: keepasshttp [-h] [-c CONFIG_PATH] [-u URL]
               [-f {python,text,table,json,csv}]
               credential [credential ...]

Fetch credentials from keepass

positional arguments:
  credential            Url or name to match credentials from keepass database

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG_PATH, --config CONFIG_PATH
                        alternative path for keepasshttp's AES exchange key
                        (default: ~/.python_keepass_http)
  -u URL, --url URL     alternative url for keepasshttp server (default:
                        'http://localhost:19455/')
  -f {python,text,table,json,csv}, --format {python,text,table,json,csv}
                        output format for credentials

$ python -m keepathhttp my_credential_name_or_url
my_credential_name_or_url
  - login: login
  - password: password
  - name: test
  - url: my_credential_name_or_url
  - id: ABCDEF1234567890ABCDEF1234567890
  - fields: []

Configuration

By default, this module will write AES association key to ~/.python_keepass_http and use http://localhost:19455/ to connect to the KeePassHTTP server.

To change theses parameters, instantiate keepasshttp.KeePassHTTP class with different values.

from keepasshttp import KeePassHTTP
kph = KeePassHTTP(
    storage="./keepasshttp_key",
    url="https://example.com:1337/")
kph.get("...")
...

Testing

You can simply run the tests using:

python -m unittest discover

KeePassHTTP calls are mocked, to run the tests against a real server, you need to:

  • open tests/test_database.kdbx in KeePass password is test
  • set TEST_WITH_KEEPASS environment variable
  • run test normally

Coverage

To run tests with coverage:

pip install pytest-cov
pytest --cov

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

keepasshttp-1.4.1.tar.gz (9.9 kB view hashes)

Uploaded Source

Built Distribution

keepasshttp-1.4.1-py2.py3-none-any.whl (9.3 kB view hashes)

Uploaded Python 2 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