Skip to main content

Python library for signing x509 using keys in an pkcs11 device such as a HSM

Project description

python_x509_pkcs11

Seamless signing x509 using PKCS11 device for key storage

Currently supports

  • Creating a root CA and generating its RSA key in the PKCS11 device
  • Using the key in the PKCS11 device to sign certificates (or Intermediate CAs)
  • Creating CRLs with the PKCS11 device key
  • Store multiple keys in the PKCS11 device enabling a full PKI infrastructure
  • 'Advanced' handling of fragile persistent PKCS11 sessions, including recreating the session if PKCS11 operation timeout

This package is pretty much a wrapper around python-pkcs11 and asn1crypto

Setup

# Install this package
pip install python_x509_pkcs11

# Install deps and add your user to the softhsm group
sudo apt-get install opensc softhsm2
sudo usermod -a -G softhsm $USER
sudo reboot # Yeah seem to not update your groups without a reboot

# export env values the code will use
export PKCS11_MODULE="/usr/lib/softhsm/libsofthsm2.so"
export PKCS11_PIN="1234"
export PKCS11_TOKEN="my_test_token_1"

# Initialize the token
softhsm2-util --init-token --slot 0 --label $PKCS11_TOKEN --pin $PKCS11_PIN --so-pin $PKCS11_PIN

Usage

Look at the documentation

The tests are also a good starting point

Contributing / Tests

# Make your code changes
# Then in the root folder, where this README is
bash dev-run.sh

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

python_x509_pkcs11-0.1.82.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

python_x509_pkcs11-0.1.82-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file python_x509_pkcs11-0.1.82.tar.gz.

File metadata

  • Download URL: python_x509_pkcs11-0.1.82.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.2

File hashes

Hashes for python_x509_pkcs11-0.1.82.tar.gz
Algorithm Hash digest
SHA256 88101db25e7d784cf2acc6f429cb1b350e5a79f61111b997ae7322974c5aa9fd
MD5 354d000e6f56154c9e9528624a1f3536
BLAKE2b-256 fcc5ae0d117f17830ce4b0b636f5e02c47a60aff0d5f59eb46cd9573073cda4d

See more details on using hashes here.

File details

Details for the file python_x509_pkcs11-0.1.82-py3-none-any.whl.

File metadata

File hashes

Hashes for python_x509_pkcs11-0.1.82-py3-none-any.whl
Algorithm Hash digest
SHA256 4d25fed2665ab068246f72f4ac6b1f24a84f08c1eef6cd8bdec51c75fb4a37d8
MD5 aac0e17200edf041c8c39a78a6394448
BLAKE2b-256 77594a0f6bb7cbbf9eafd9f0593f8bfd3527e968ffec8625e9a0d89ba66888ee

See more details on using hashes here.

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