Skip to main content

Python Library for Encrypted JSON

Project description

json-keystore

PyPI version License GitHub GitHub Discussions Donate with Bitcoin Lightning Donate with Bitcoin

EARLY PREVIEW RELEASE of a rudimentary python library for encrypted JSON

Future Plans

Install and Initial Setup

This utility allows you to set up an encrypted JSON keystore that supports both GPG and Trezor-CipherKeyValue encryption. You will need either a GPG key pair installed, or a Trezor attached. As a fallback you can store data in naked JSON, but that is obviously not recommended.

Install with Debug support

If you want to debug one of the client calls or step into a trezorlib call, you can install from GIT sources. Then you can add breakpoints in source using calls to breakpoint() to get more detailed information.

  1. Get source: git clone https://github.com/brianddk/json-keystore.git
  2. Switch directories: cd json-keystore
  3. Upgrade setuptools: python -m pip install --upgrade setuptools pip wheel
  4. Install develop mode via pip: pip install -e .
  5. Verify install: python -c "import json_keystore"
  6. Optionally add breakpoint() into one of the *.py files
  7. Optionally step through code in the python debugger (pdb)

Install without GIT

To install the most recent edition directly from GitHub tarball:

python -m pip install --upgrade setuptools pip wheel
python -m pip install git+https://github.com/brianddk/json-keystore.git

You won't get to documentation or templates, but all the code will land and function

Install last release from PIP

  1. Upgrade: python -m pip install --upgrade setuptools pip wheel
  2. Install: pip install json-keystore
  3. Verify install: python -c "import json_keystore"

Building a Keystore

Template keystores are provided in the templates directory. If you decide to use a naked JSON, you can simply modify the null values in the json_ks.json to fill in the key values. If you want to use encryption you will need to modify on of the encryption templates (trezor_ks.json or gnupg_ks.json) and update the unencrypted parameters. These all deal with various encryption settings. Note that for Trezor, zlib is the ONLY supported compression. Since the JSON keystore is self explanatory, I'll focus on building the encrypted keystores.

Building a GnuPG encrypted Keystore:

Start with the GnuPG template gnupg_ks.json, and change the recipient to the key-id of your GnuPG key. This can be the UID (email), or the short or long key hex.

{
  "format": "gnupg",
  "gnupg": {
    "recipient": "TYPE_YOUR_GPG_PUBLIC_KEY_HERE"
  }
}

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

json_keystore-0.0.1.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

json_keystore-0.0.1-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file json_keystore-0.0.1.tar.gz.

File metadata

  • Download URL: json_keystore-0.0.1.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.2

File hashes

Hashes for json_keystore-0.0.1.tar.gz
Algorithm Hash digest
SHA256 90efb46dc5fa7b54a896d7bb8004104bf5eea48c09ba3e22a6c1bccec5a6ec2b
MD5 700e1414d29a3c397a44774ea7462d8e
BLAKE2b-256 164d354cf86fcef7eb751f4d3577176504e2d81c7801179b47d6b397867a268d

See more details on using hashes here.

File details

Details for the file json_keystore-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: json_keystore-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.2

File hashes

Hashes for json_keystore-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 310b771c5d24a2fc1e1e6f709165f20e9b1fe572c87d6b8b4718db49773388d3
MD5 0ff0eedc7dfe36afdcbc6f615653e3b2
BLAKE2b-256 3c5ada6f649b7ca044a83da6122aa96ab813f2110b26c1db3c6acde43b883cc2

See more details on using hashes here.

Supported by

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