⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
Skip to content

Client for KeePassHTTP to fetch and edit credentials from Python

License

Notifications You must be signed in to change notification settings

cyrbil/python_keepass_http

Repository files navigation

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

About

Client for KeePassHTTP to fetch and edit credentials from Python

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages