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 project.
Usage
Before using the library, you need to generate a keys.yml file. The key_folder_location should contain the public and private keys that are required by the SDC service using the library. To generate the keys.yml run:
generate_keys.py <key_folder_location>
After this has been configured, encrypting and decrypting can be done as follows:
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 via a GitHub Action when a release tag is created in GitHub. The configuration for this is in the .github/workflows/release.yaml file.
Developing changes
This repository uses poetry. Ensure you have it installed.
To install the dependencies run:
make install
Run linting and the unit tests:
make test
Create a package for deployment:
make build
Metadata
Release files for sdc-cryptography 1.4.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 | Provenance | |
|---|---|---|---|---|
| sdc_cryptography-1.4.0.tar.gz | 7.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sdc_cryptography-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.5 kB
Release files / sdc_cryptography-1.4.0.tar.gz
| Download URL | sdc_cryptography-1.4.0.tar.gz |
|---|---|
| Size | 7.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2d331477e3de3336d5cc5a3e4b7bc282eeae20a9c74fb77321b5da8371493e75
|
|
BLAKE2b-256 checksum How to use checksums |
079069a365df212c8e43fccd01a097ec52dedce6c60db6bd81d00fc2c65db047
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Release files / sdc_cryptography-1.4.0-py3-none-any.whl
| Download URL | sdc_cryptography-1.4.0-py3-none-any.whl |
|---|---|
| Size | 10.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4bf97d06888fd4e3e5daf5b40ca15234eb085cccf201c5114ba1584e6b078076
|
|
BLAKE2b-256 checksum How to use checksums |
1075972d8e37af1ecee33274f6f070cf156194c76514dd1b97e4355e83bad6c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Security for sdc-cryptography 1.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.