sdc-cryptography
A common source code library for SDC services that use JWE. Apps wishing to use this should add the sdc_cryptography
dependency to their requirements.txt and install with pip.
Basic Use (with pipenv, recommended)
Install requirements
pip install pipenv
make build
Run the unit tests
pipenv run make test
Create a package for deployment
pipenv run make sdist
Basic Use (with activated virtual environment)
Install requirements
These commands will generate a requirements file that pip can use. It doesn't have to be created this way but this is the easiest way.
pip install pipenv
pipenv lock -r --dev > requirements.txt
pip install -r requirements.txt
Run the unit tests
make test
Create a package for deployment
make sdist
Usage
Need to generate a keys.yml file first. Note, this requires a file system to store the file. Then it needs to be loaded, and a key store generated.
generate_keys.py <key_folder_location>
After this has been configured, encrypting and decrypting can be done as in the example below.
secrets_from_file = yaml.safe_load("keys.yml")
validate_required_secrets(secrets_from_file, EXPECTED_SECRETS, KEY_PURPOSE_SUBMISSION)
key_store = KeyStore(secrets_from_file)
# Encrypt JSON (Purpose has a single encryption key in the key store)
from sdc.crypto.encrypter import encrypt
encrypted_json = encrypt(json, key_store, key_purpose)
# Encrypt JSON with encryption service (Purpose has multiple encryption keys in the key store each tagged with a service)
from sdc.crypto.encrypter import encrypt
encrypted_json = encrypt(json, key_store, key_purpose, encryption_for_service="some-service")
# Decrypt UTF8 jwe token
from sdc.crypto.decrypter import decrypt
data_bytes = data.decode('UTF8')
decrypted_json = decrypt(data_bytes, key_store, key_purpose)
PyPi
This repo is available from PyPi at sdc-cryptography
The package is published automatically to PyPi when a tag is created in Github. The configuration for this is in the .travis.yml file.
Metadata
Release files for sdc-cryptography 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sdc-cryptography-1.1.0.tar.gz | 9.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sdc_cryptography-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.7 kB
Release files / sdc-cryptography-1.1.0.tar.gz
| Download URL | sdc-cryptography-1.1.0.tar.gz |
|---|---|
| Size | 9.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b1d98a7bc73f8960c07fc6c9156eb1a6e3bfb9e3e057df0dfa8f979e08754166
|
|
BLAKE2b-256 checksum How to use checksums |
e7ec6623367d181aed2dc91833f1a73231e6c2f20ea32e4fe01cc8565a8113da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
|
Release files / sdc_cryptography-1.1.0-py3-none-any.whl
| Download URL | sdc_cryptography-1.1.0-py3-none-any.whl |
|---|---|
| Size | 13.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0bb9ff7347bf871c362d659f04b9988c48db75f50dd5545e0dc6ef71016ba8c0
|
|
BLAKE2b-256 checksum How to use checksums |
4ddd984a2aebb799dc96b1dfba82f90cefb0cc31fc183a911d468aad35d6c023
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
|