Skip to main content

PKCS#11 support for Python

Project description

https://travis-ci.org/danni/python-pkcs11.svg?branch=master

Python PKCS#11 - High Level Wrapper API

A high level, “more Pythonic” interface to the PKCS#11 (Cryptoki) standard to support HSM and Smartcard devices in Python.

The interface is designed to follow the logical structure of a HSM, with useful defaults for obscurely documented parameters. Many APIs will optionally accept iterables and act as generators, allowing you to stream large data blocks for symmetric encryption.

python-pkcs11 also includes numerous utility functions to convert between PKCS #11 data structures and common interchange formats including PKCS #1 and X.509.

python-pkcs11 is fully documented and has a full integration test suite for all features.

Historically, this project used to run continuous integration tests against several HSM platforms, but this test setup has not been maintained over time. Currently, the integration tests in GitHub Actions use SoftHSMv2 as a baseline. If you would like to contribute some CI setup with additional PKCS#11 implementations or actual HSMs, let’s chat!

Source: https://github.com/pyauth/python-pkcs11

Documentation: http://python-pkcs11.readthedocs.io/en/latest/

Getting Started

Install from Pip:

pip install python-pkcs11

Or build from source:

python -m build .

Or using uv:

uv build

Assuming your PKCS#11 library is set as PKCS11_MODULE and contains a token named DEMO:

AES

import pkcs11

# Initialise our PKCS#11 library
lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
token = lib.get_token(token_label='DEMO')

data = b'INPUT DATA'

# Open a session on our token
with token.open(user_pin='1234') as session:
    # Generate an AES key in this session
    key = session.generate_key(pkcs11.KeyType.AES, 256)

    # Get an initialisation vector
    iv = session.generate_random(128)  # AES blocks are fixed at 128 bits
    # Encrypt our data
    crypttext = key.encrypt(data, mechanism_param=iv)

3DES

import pkcs11

# Initialise our PKCS#11 library
lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
token = lib.get_token(token_label='DEMO')

data = b'INPUT DATA'

# Open a session on our token
with token.open(user_pin='1234') as session:
    # Generate a DES key in this session
    key = session.generate_key(pkcs11.KeyType.DES3)

    # Get an initialisation vector
    iv = session.generate_random(64)  # DES blocks are fixed at 64 bits
    # Encrypt our data
    crypttext = key.encrypt(data, mechanism_param=iv)

RSA

import pkcs11

lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
token = lib.get_token(token_label='DEMO')

data = b'INPUT DATA'

# Open a session on our token
with token.open(user_pin='1234') as session:
    # Generate an RSA keypair in this session
    pub, priv = session.generate_keypair(pkcs11.KeyType.RSA, 2048)

    # Encrypt as one block
    crypttext = pub.encrypt(data)

DSA

import pkcs11

lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
token = lib.get_token(token_label='DEMO')

data = b'INPUT DATA'

# Open a session on our token
with token.open(user_pin='1234') as session:
    # Generate an DSA keypair in this session
    pub, priv = session.generate_keypair(pkcs11.KeyType.DSA, 1024)

    # Sign
    signature = priv.sign(data)

ECDSA

import pkcs11

lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
token = lib.get_token(token_label='DEMO')

data = b'INPUT DATA'

# Open a session on our token
with token.open(user_pin='1234') as session:
    # Generate an EC keypair in this session from a named curve
    ecparams = session.create_domain_parameters(
        pkcs11.KeyType.EC, {
            pkcs11.Attribute.EC_PARAMS: pkcs11.util.ec.encode_named_curve_parameters('secp256r1'),
        }, local=True)
    pub, priv = ecparams.generate_keypair()

    # Sign
    signature = priv.sign(data)

Diffie-Hellman

import pkcs11

lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
token = lib.get_token(token_label='DEMO')

with token.open() as session:
    # Given shared Diffie-Hellman parameters
    parameters = session.create_domain_parameters(pkcs11.KeyType.DH, {
        pkcs11.Attribute.PRIME: prime,  # Diffie-Hellman parameters
        pkcs11.Attribute.BASE: base,
    })

    # Generate a DH key pair from the public parameters
    public, private = parameters.generate_keypair()

    # Share the public half of it with our other party.
    _network_.write(public[Attribute.VALUE])
    # And get their shared value
    other_value = _network_.read()

    # Derive a shared session key with perfect forward secrecy
    session_key = private.derive_key(
        pkcs11.KeyType.AES, 128,
        mechanism_param=other_value)

Elliptic-Curve Diffie-Hellman

import pkcs11

lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
token = lib.get_token(token_label='DEMO')

with token.open() as session:
    # Given DER encocded EC parameters, e.g. from
    #    openssl ecparam -outform der -name <named curve>
    parameters = session.create_domain_parameters(pkcs11.KeyType.EC, {
        pkcs11.Attribute.EC_PARAMS: ecparams,
    })

    # Generate a DH key pair from the public parameters
    public, private = parameters.generate_keypair()

    # Share the public half of it with our other party.
    _network_.write(public[pkcs11.Attribute.EC_POINT])
    # And get their shared value
    other_value = _network_.read()

    # Derive a shared session key
    session_key = private.derive_key(
        pkcs11.KeyType.AES, 128,
        mechanism_param=(pkcs11.KDF.NULL, None, other_value))

Tested Compatibility

Functionality

SoftHSMv2

Thales nCipher

Opencryptoki

OpenSC (Nitrokey)

Get Slots/Tokens

Works

Works

Works

Works

Get Mechanisms

Works

Works

Works

Works

Initialize token

Not implemented

Slot events

Not implemented

Alternative authentication path

Not implemented

Always authenticate keys

Not implemented

Create/Copy

Keys

Works

Works

Errors

Create

Certificates

Caveats [1]

Caveats [1]

Caveats [1]

?

Domain Params

Caveats [1]

Caveats [1]

?

N/A

Destroy Object

Works

N/A

Works

Works

Generate Random

Works

Works

Works

Works

Seed Random

Works

N/A

N/A

N/A

Digest (Data & Keys)

Works

Caveats [2]

Works

Works

AES

Generate key

Works

Works

Works

N/A

Encrypt/Decrypt

Works

Works

Works

Wrap/Unwrap

? [3]

Works

Errors

Sign/Verify

Works

Works [4]

N/A

DES2/ DES3

Generate key

Works

Works

Works

N/A

Encrypt/Decrypt

Works

Works

Works

Wrap/Unwrap

?

?

?

Sign/Verify

?

?

?

RSA

Generate key pair

Works

Works

Works

Works [4] [8]

Encrypt/Decrypt

Works

Works

Works

Decrypt only [9]

Wrap/Unwrap

Works

Works

Works

N/A

Sign/Verify

Works

Works

Works

Works

DSA

Generate parameters

Works

Error

N/A

N/A

Generate key pair

Works

Caveats [5]

Sign/Verify

Works

Works [4]

DH

Generate parameters

Works

N/A

N/A

N/A

Generate key pair

Works

Caveats [6]

Derive Key

Works

Caveats [7]

EC

Generate key pair

Caveats [6]

? [3]

N/A

Works

Sign/Verify (ECDSA)

Works [4]

? [3]

Sign only [9]

Derive key (ECDH)

Works

? [3]

?

Proprietary extensions

N/A

Not implemented

N/A

N/A

Python version:

  • >= 3.9

PKCS#11 versions:

  • 2.11

  • 2.20

  • 2.40

  • 3.1

Feel free to send pull requests for any functionality that’s not exposed. The code is designed to be readable and expose the PKCS #11 spec in a straight-forward way.

If you want your device supported, get in touch!

More info on PKCS #11

The latest version of the PKCS #11 spec is available from OASIS:

http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/pkcs11-base-v2.40.html

You should also consult the documentation for your PKCS #11 implementation. Many implementations expose additional vendor options configurable in your environment, including alternative features, modes and debugging information.

License

MIT License

Copyright (c) 2017 Danielle Madeley and contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

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_pkcs11-0.8.1.tar.gz (156.0 kB view details)

Uploaded Source

Built Distributions

python_pkcs11-0.8.1-cp313-cp313-win_amd64.whl (249.0 kB view details)

Uploaded CPython 3.13Windows x86-64

python_pkcs11-0.8.1-cp313-cp313-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

python_pkcs11-0.8.1-cp313-cp313-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

python_pkcs11-0.8.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

python_pkcs11-0.8.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

python_pkcs11-0.8.1-cp313-cp313-macosx_10_13_universal2.whl (499.2 kB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

python_pkcs11-0.8.1-cp312-cp312-win_amd64.whl (248.0 kB view details)

Uploaded CPython 3.12Windows x86-64

python_pkcs11-0.8.1-cp312-cp312-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

python_pkcs11-0.8.1-cp312-cp312-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

python_pkcs11-0.8.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

python_pkcs11-0.8.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

python_pkcs11-0.8.1-cp312-cp312-macosx_10_13_universal2.whl (501.9 kB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

python_pkcs11-0.8.1-cp311-cp311-win_amd64.whl (271.8 kB view details)

Uploaded CPython 3.11Windows x86-64

python_pkcs11-0.8.1-cp311-cp311-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

python_pkcs11-0.8.1-cp311-cp311-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

python_pkcs11-0.8.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

python_pkcs11-0.8.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

python_pkcs11-0.8.1-cp311-cp311-macosx_10_9_universal2.whl (533.1 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

python_pkcs11-0.8.1-cp310-cp310-win_amd64.whl (269.8 kB view details)

Uploaded CPython 3.10Windows x86-64

python_pkcs11-0.8.1-cp310-cp310-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

python_pkcs11-0.8.1-cp310-cp310-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

python_pkcs11-0.8.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

python_pkcs11-0.8.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

python_pkcs11-0.8.1-cp310-cp310-macosx_10_9_universal2.whl (527.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

python_pkcs11-0.8.1-cp39-cp39-win_amd64.whl (270.3 kB view details)

Uploaded CPython 3.9Windows x86-64

python_pkcs11-0.8.1-cp39-cp39-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

python_pkcs11-0.8.1-cp39-cp39-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

python_pkcs11-0.8.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

python_pkcs11-0.8.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

python_pkcs11-0.8.1-cp39-cp39-macosx_10_9_universal2.whl (529.5 kB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file python_pkcs11-0.8.1.tar.gz.

File metadata

  • Download URL: python_pkcs11-0.8.1.tar.gz
  • Upload date:
  • Size: 156.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for python_pkcs11-0.8.1.tar.gz
Algorithm Hash digest
SHA256 f9e11df146ce2e6359aeb81fa84c2dd7ab9719f707cdae06ceae22d9e6a10818
MD5 dfce0b6955e582c8557bfff7c6af0d99
BLAKE2b-256 7d4b7172d764458d0c05d5f38447a18482139a4ba9d3236e3e92a5c43e0eadcf

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1.tar.gz:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4ba8887c4e5a680b17a2a94afe78ef1c12c49fdb0f7269656025884f57a2baae
MD5 86c684cb936067cf5d588979bca8bbe9
BLAKE2b-256 ee02373bf5b6eeaff057265896470016aa6c1850b87955d9fe319060c852dce1

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp313-cp313-win_amd64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9b982b63d257d694bc0ec32a2ae2b4a628cd50c2a69830d315bd97c2194fc5ce
MD5 9a8def073c094fc683c8e8629b797d1a
BLAKE2b-256 e483bb0ecec6fdd4921ebde365b4f95e687f3b0c7b9d97cf416ef590e3d5c62d

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 879ebf0b4921d30299e741d47f9caf726cf73828ba8b1b4767eb3d8e9a5e6e02
MD5 0edf6d54751bc05d8fa85691b9a0c762
BLAKE2b-256 383480fc7fbc33d55551d0eef8479dcf68dfa3eb32b48e61f9eecdbc8bb3ddec

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e4604a71538300d8be7a5fbed58f401bb8147fc558ff1415469637bbc5dbff00
MD5 13f97732426fac868731214d6b462eb3
BLAKE2b-256 1fcb688fc9ebc890ac4343c382c2bce828b14fb70505d3593ecc9217b93e5496

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e7d5b94c5e02bd5bb5969715de0b7516ded2309c4f11c68ca6b55cbfd03340c3
MD5 30a4d817f152d4f9841212b85c460c4c
BLAKE2b-256 883b238088442e40054a25bcad99cf37770330417e9ae0b7023dcdae421e8885

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 affe4427a5277409a8caf43c14743d155968bfd017739e94a72f585527f7507c
MD5 ab2ade5a7b13355a0ea31dd80ff45f0d
BLAKE2b-256 b783729faa232b6bf233888d472d176e19693e1fdf204145dcd4b0b4ad959379

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp313-cp313-macosx_10_13_universal2.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 23796a54d760c8a5fcfe78b584b107f31a136a18fc834dcc47421e44ef3135c6
MD5 b7ec91d5c54c9dc5fe591b5e9c208cb8
BLAKE2b-256 81f9fad2125902ed51e10ae421195821403cd378d0fe52c785e85ba59d70df92

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp312-cp312-win_amd64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 84d81fa07aa9fef41cee8b4f6cc6765b7c16231d92f750d318a3cd62eb948e9c
MD5 c165ad78e100fa8d22d65286e5f33802
BLAKE2b-256 a0fd4cc20e0164eeff39b518608c71b2e6f7801d15fbf5c5300876be55b73cdc

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 29d4edc329c1bd9dc197d57f43f5e558da97d0f9696fe6bff2ea7adce4a5cc60
MD5 5558a2bbf2c8f107db37e58a2d904632
BLAKE2b-256 72898d2fe2760e70bef5a94d25a462f43213b3e893644c347ead377f7c29e81b

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 180807fda104ae11a785fc43c30ee55fe00459e517630bc462aa67767526a614
MD5 260ae2cb170dbd851d32beef3fb54b46
BLAKE2b-256 d16006202030f003b9a6d059f488a4be9191ee199e08e17a78c1f02069fc8853

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ec0fd787a028b5685f5ec680863779618128ff3d6523e4900644b80af334cfd4
MD5 a8a3f3b53fb5ecc969bd7689c0249aa0
BLAKE2b-256 7d2d4ad5294f9fa7a833791ef699bf73fa9123025c124bbba3170db49a5233b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 a48f93a9b09e4e1c770c779295b6b8913bcf65f511bb3cb361db513e4f0f25fb
MD5 06e02df3c5e003b0e719d36e11613bc8
BLAKE2b-256 fbd8f3c2c577b706329604ba60bf823840d105bdae6802fd29c5ba4478618527

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp312-cp312-macosx_10_13_universal2.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7afe2963cbae96b3bbb08401f1937f21d85acad3439def83141e4e21ddf9d07b
MD5 3e2a0dd36d4e2e3858c9aaf141dc97b0
BLAKE2b-256 2585499a88a73ad2db6a1715753019f9736a7e15be4e3e5fb644e341309f914d

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp311-cp311-win_amd64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 91bfad39671332ab28ed5aebca41b6182a4c9b4b7b9af3f1084b48f495ce5e28
MD5 f5ddeb46c2e01ba855c1eeabf214fbe4
BLAKE2b-256 bae4a21a2f9f56d221b7958b69eeed6d7d81eed5237b8720f5d7fe26a1fbcd50

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f58cdf62a911f4b6dfcf3a76c7d7a0e1cd932615ac243ddf00df84a9d4993134
MD5 b637e817c78a0aaa9186e78961219214
BLAKE2b-256 74c494fbff6971d80a1f305f2a423568088fe8a8488b4e4135e3290796c1e43d

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 231967fde9cf793b390d97a96f546777a02c5727d87476f2250782b0175ec246
MD5 cb8de59f5aa512ede01b19eafc5cf0cc
BLAKE2b-256 33c739a31b05123cb260b4faf579efbb86f3acd4fccd37dfdb8b3c1ccf01c5cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e191cbb268d0453fc566eba15c0913dd4cfe361c710cc3fb2144a144e8d2f4a9
MD5 01cdb3fc9ba3991bf4d8f64a5f90d371
BLAKE2b-256 2e4dea9b6289fda805e8c74d381c6567b75a64211b416bc7a25d997332748abd

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 35ba04d02ccd905f008efc02e00097273eb792cfe49e1d5b4520df8d58ee29b0
MD5 164b3b5a3c0083f31c00f476a17a7036
BLAKE2b-256 8b95ee9e2b48e7797563e75c387cd3d385f0a2a654f2bad477f4ffddae019b2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp311-cp311-macosx_10_9_universal2.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 29f5fbd83d4e57f6553970509068063c21db2863e14e07ad3c8bc65e9329deed
MD5 6d4c0902469550f818d7f40ff770a3a6
BLAKE2b-256 56643f0670f98952b6bd76d9346224cb98f0374e153c66f68f00b2b57a3ef844

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp310-cp310-win_amd64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6f33ac3e485096f4d316972bbc0d72283be7df394e50d2199d7474fbbd98580d
MD5 db966bb7f9e55d5bf105e8c625088958
BLAKE2b-256 0f441388036d57059357a2912183ffcc9152cf4bf1f82d6f55dc650deb04ed3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 07f69fed005ba8338e3bdfffc5711989822bdc927517c233b7318309bb015945
MD5 70617890d8b392b93dfaeba27697cf65
BLAKE2b-256 6872a49aaf1c8f9277f9f13f5ef1850734cc375f76384b91c8ce64b21bcbfc09

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 af18143f108f968d4a94dcb270828ee36f73fcf411fe65fefece9691e5ef25df
MD5 b93a60cdaedfa98a85f24516ab35ca65
BLAKE2b-256 401fa208a7ff617fe3c4b1a3b2de9911a9d25a11f78256a7d4fd8b52521b881b

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6fe267c10d8fbbd103454e7287d64f78144b94aab6e3f72f0843c8e9249d2ea7
MD5 f3bee84931089109569ded851e1ea95b
BLAKE2b-256 ce3dd2f1492353fa648a5d6fa1c97c2e3d1afea4045571bdea7ca1db2234dc5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 dd4ba565615f55526af1c851d8c95e07441f6aba7462da03513111578ae622d4
MD5 0609fdf7b87095fe5188568cefe693ce
BLAKE2b-256 3e25c957279245028fdd2dd67f2445f0bb6dfdfa1bb5c3dff8a068762575d092

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp310-cp310-macosx_10_9_universal2.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 afc405f2a6afdeeac8746a87da690f30bc315bc719ff9d1e2f0dffdb17e050ed
MD5 0bc0af76030d23f69df8833c77f46547
BLAKE2b-256 95fa72732a5aef8383247c7d727d5d084a551c803e7bb2b79ac7b8a65d6f4f5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp39-cp39-win_amd64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 458089d54a2700d666a117de265f50cf92ce1a14d92a78c4b92dc78ce9cd0758
MD5 78b81e6de7302cb1d152ce3fcb61a15e
BLAKE2b-256 22f217ed7bd7d482f41c0c9850cfa03f6513c45ee8ccd2cf028cf825e1fb90b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 500ca838019e4a184b8e0ba968d66bee000e88e3b08907a54d38bb93d64f8f53
MD5 c59d6178bdca470dfed7bd822b05ec47
BLAKE2b-256 cd776682c1944d7d0d35b94cad847adede33eee65250e894b15be7fbb68fdead

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp39-cp39-musllinux_1_2_aarch64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1cbb521a41dfbf570ef227c4a862e34a8aab0f1de1d45aa84abbe907691460b8
MD5 2ca4716fcfec594491b239651ca9b5b3
BLAKE2b-256 a47b1cf2fc1113b481ee7d4a470b3b22088599aa6da26b04515a27e076f43bd7

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fda61449786035ad42abbcefe7b7de3c09412c98697e26b69794d52df5b4ee84
MD5 9e49848d88e259b33174de18fb306979
BLAKE2b-256 e8fce6021fa5741eb1cc3fb80513169879171fe91ef80b9106c5ea601b34f8f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file python_pkcs11-0.8.1-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.8.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 aec06a80a805e46fb534a7aba67424d97fa4cfad68be21cc60557448db46b888
MD5 e4d27359887c2258d8af31ae1e1912e0
BLAKE2b-256 1fe3a1c17aa0dac3db56803dc75954fdfb814e29c060c6a64db530679a05d587

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.8.1-cp39-cp39-macosx_10_9_universal2.whl:

Publisher: release.yml on pyauth/python-pkcs11

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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