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. We also test against opencryptoki in CI. 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]

Works

Works

Sign/Verify (ECDSA)

Works [4]

? [3]

Works

Sign only [9]

Derive key (ECDH)

Works

? [3]

Works

?

ML-DSA

Generate key pair

Works

? [3]

Works

N/A

Sign/Verify

Works

? [3]

Works

Proprietary extensions

N/A

Not implemented

N/A

N/A

Python version:

  • >= 3.10

PKCS#11 versions:

  • 2.11

  • 2.20

  • 2.40

  • 3.1

  • 3.2

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.9.5.tar.gz (194.5 kB view details)

Uploaded Source

Built Distributions

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

python_pkcs11-0.9.5-cp314-cp314-win_amd64.whl (280.4 kB view details)

Uploaded CPython 3.14Windows x86-64

python_pkcs11-0.9.5-cp314-cp314-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

python_pkcs11-0.9.5-cp314-cp314-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

python_pkcs11-0.9.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

python_pkcs11-0.9.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.9 MB view details)

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

python_pkcs11-0.9.5-cp314-cp314-macosx_10_15_universal2.whl (528.9 kB view details)

Uploaded CPython 3.14macOS 10.15+ universal2 (ARM64, x86-64)

python_pkcs11-0.9.5-cp313-cp313-win_amd64.whl (273.2 kB view details)

Uploaded CPython 3.13Windows x86-64

python_pkcs11-0.9.5-cp313-cp313-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

python_pkcs11-0.9.5-cp313-cp313-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

python_pkcs11-0.9.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

python_pkcs11-0.9.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.9 MB view details)

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

python_pkcs11-0.9.5-cp313-cp313-macosx_10_13_universal2.whl (525.7 kB view details)

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

python_pkcs11-0.9.5-cp312-cp312-win_amd64.whl (271.8 kB view details)

Uploaded CPython 3.12Windows x86-64

python_pkcs11-0.9.5-cp312-cp312-musllinux_1_2_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

python_pkcs11-0.9.5-cp312-cp312-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

python_pkcs11-0.9.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

python_pkcs11-0.9.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.9 MB view details)

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

python_pkcs11-0.9.5-cp312-cp312-macosx_10_13_universal2.whl (528.2 kB view details)

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

python_pkcs11-0.9.5-cp311-cp311-win_amd64.whl (284.9 kB view details)

Uploaded CPython 3.11Windows x86-64

python_pkcs11-0.9.5-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.9.5-cp311-cp311-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

python_pkcs11-0.9.5-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.9.5-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.9.5-cp311-cp311-macosx_10_9_universal2.whl (561.1 kB view details)

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

python_pkcs11-0.9.5-cp310-cp310-win_amd64.whl (283.0 kB view details)

Uploaded CPython 3.10Windows x86-64

python_pkcs11-0.9.5-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.9.5-cp310-cp310-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

python_pkcs11-0.9.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

python_pkcs11-0.9.5-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.9.5-cp310-cp310-macosx_10_9_universal2.whl (563.3 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for python_pkcs11-0.9.5.tar.gz
Algorithm Hash digest
SHA256 6b65ec741ea45f47438c495e3d71d97ae671d03afaee6358022babda634508bd
MD5 e1fb4a7a19bc3160da80bc6ce90289ca
BLAKE2b-256 d6ebb1e920ef8ee0a10d3fe1104908b44b6685a3f6624425e5462211f231c990

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5.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.9.5-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 68093261a8fc3a36a2d232ab2e552a081f51725f28d5d61b26b51d744037ba9e
MD5 b8f4703deccef9f0f872ba2f88f19647
BLAKE2b-256 cc571d2f18ae93620f8fd87d720f500ae91e0d3421b059a5dc9a954a569b4d97

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-cp314-cp314-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.9.5-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5fe7005e5aee9a1da4b8c910f2a0277e7119858129e00b31610865cb8495f859
MD5 8f1b43c844019f3f0b6966dc14d7f79d
BLAKE2b-256 ac1ea2e36a8b00ad5b2515528fd1254c18f1be011177cd20ccd1c932455a5cf5

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-cp314-cp314-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.9.5-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5b73d527c6c6e8555b4680dbcf9bd75702fc0c9fd16b90995d55e7e09e8e20ea
MD5 d456f83f39190e5617b3e48fbb40c2df
BLAKE2b-256 1b62ff69a6d4845f2ef0cae512e43ac9b864d4b26653a1f7839d8e661782249c

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-cp314-cp314-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.9.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0809a786da0a96ec6e1b4b77100ee88db8bc08c8cdffdec28f9fd31c7b4191d0
MD5 16b23305cab628b1001b045a5adc7f79
BLAKE2b-256 06b20b467d27190fd4cf104c8945135ae22d594993e2f76b6bd49134ad30317b

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-cp314-cp314-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.9.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b2fa15298c37d7f312e538e6be069e052e603b55aac9afba7a1e8386589941a1
MD5 8b042094e39a61bc54117fc412160a1f
BLAKE2b-256 18e0bd5d61be0be41ec7d41b0bf386984ec0f4a0a11a71350bcee946040a7c7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-cp314-cp314-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.9.5-cp314-cp314-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 a473359af8318e7dfa5be24575dc60b5b3f1ca505b47dae275584bac4d8352cb
MD5 1ccca9c42fb95140d99c39d9b8b8a7a1
BLAKE2b-256 0bbb9d0ebef579bac81f1254c48a6e401056804948584ffc4c58f932b3425722

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-cp314-cp314-macosx_10_15_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.9.5-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f2de9700700c73faef101754d1280832ad151914d909d31423edecca79f5febc
MD5 f15be7189539a04fd61cf1dbca3b646a
BLAKE2b-256 f7be8226ef300f4968827022d03f0cd21832651333fb2207bf6b96cd7c15ed79

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 41e5d62fab382d9bf0412cedd3e9b98ba2a471ba46cbc85d302f94bbca71ed0b
MD5 f260792049ef2fae753853bdc8d32bce
BLAKE2b-256 a74f54c2d473b1af7d3f8005fafb01571cad86546617fb30a2ac71a00d343a86

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b6edbf866ba06cde84310ee59b3028eb3c957162f81a2922ef44e6ddf9567d46
MD5 e38cc7c1338b45799a7e5d2a6d431954
BLAKE2b-256 36762ac80e37f5d8f8d2b872037900964fc298a072219724ec242694fdef307b

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-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.9.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 77fe27933018dd1b5434899908dcdf4807838e6c564b9306d290cda90cde1dab
MD5 dd1b4f8223ad7a10a4a6d85d4353582e
BLAKE2b-256 30397da39fcfb859eaaafd5a944b286e01e88f1f2d7fdfc26d3c05f708139942

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1a6de07db50bb323b2045c2eb0648a54c91078640ed525491ee33fd09eb30e48
MD5 e12bf5c1114a2298e05549fb713539fc
BLAKE2b-256 fe8ceb2c08d486be8e74cc526bf622bda47a8d57ac9226c7bfce9ebf91859727

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 3fed6ee5308cd93963f1b6aaa8985afab8753b18a53dccfb809e4aa64e3948a9
MD5 3180e433c7b62516be1f5f952693f5cf
BLAKE2b-256 f61de5702f8632ef1b1b3fbe28ed8ff4708af59ce96745c55973812c0c78d38e

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 36279f15d4da517cca7708461d90b2c75fa0d5981e3f18fe5fa080ffd33730c5
MD5 f0689ca7cb707447b89a3c184c6e9701
BLAKE2b-256 9e41f4795cefb710ee2e2a86c1da4f834a948b4f95aa5a814239182505c8f9a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8d5a0b84433ef218ccb63baa5ce0b4868b0eaa730ce7556c4d3e7cdbdcaa2484
MD5 80f382329036ee9d4a2bba1415abb030
BLAKE2b-256 90f467e518eda8b56add77f410924829d5f98164bf4dafa77d4053276afa6e19

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 015e810291354cb92b5ee5fc1cba4c793b8a04ae755b89658921974c324a0a60
MD5 94ac65be2241b756184cc4296b9a9ec5
BLAKE2b-256 f8bc448711f3a8fab41527e2bc5c61f71c15af0ee7d3e41b066a826e8084d4ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-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.9.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f56d252a3369209b60c6f001fe5507c40ae974ec681e8494cc988d08eccb2ec6
MD5 92aa900a47bd9d20e840ad6e5a343c76
BLAKE2b-256 3ddcdeb56b19e627a938f3062e7303e1020d9d3f833e70cddcdbd1159911620c

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 51e6846ce3af108f3bbe3a6da3c9aed3094f5d1896ef4eccb02e93497234b7b8
MD5 8854ec7e419b09739393b8cc44898745
BLAKE2b-256 c5c8765c8bd969aaa320587d6a98501611dce161fd81c8a41ed8774c22b29978

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 ac6aaca5760ef3186d46bf93f34102187694d55259ac734d15ac56b1b3d5a19a
MD5 eaee66e5e4ae5d96e2993b1d707763b2
BLAKE2b-256 d59ef32716a4eaee82c016061fe7f5afe2530b7b7c8b777e383fef893b0ee0b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c78f89e89eb096955d90fd177bdf28a46fd0ffca7a7dc6821b0e91303640c00d
MD5 e03e42b93126c9c02f081a7f5ef6be64
BLAKE2b-256 0f84efaf20a356cab36415d876d5d7dc113b2fe92a878fe0124299f331856215

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 269d329944e6190e11f926c6e413acae568adf751e7fa6424ee482d4ce760108
MD5 9ef80777a82853cc63961a17433de27e
BLAKE2b-256 a4fa31de764821bbdaf169b3ec60c0ed7e3b983ab48c9ac144ebbce0a5903ec6

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 60c989694e53b8cfc8751787661c28ce04c53a41b5afde82cd7bd35fbaf27bd1
MD5 81422a942adace1f2c055e3df283d90b
BLAKE2b-256 7d23aec5ea42da4b3d2e4d9530fc81c8c3113462a5fc4016b4958ea8eccc9622

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-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.9.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b3d6d3228b0af50b8927c098a0d33b4de54039500d4347da6eb456d0b251ff82
MD5 caec5c1a041575d3f8b2ca6dfa34a3c6
BLAKE2b-256 fda18f8124467f4a0f237e9a27128bd32ce75fea0f2eafcd57e9bb18224e0c39

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f8d03642c74b6f7193862ebfd44ee6e9f39ff7587baa785df7b455e768248909
MD5 95a61354433eb0df55957d6a8d87727c
BLAKE2b-256 fa275a06b5bb39a7e7bbcb0f426a12765473442e91f08e3b4c4a94a92131e8c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 82b5ac7c6521b8511bee7751a7ee99e2ef8ba8d1dffbbc278f7b1ad7c8f0cffd
MD5 6db7c18239857978bbd6afa1a3769c59
BLAKE2b-256 61c932ea6aa1cb46cf9398154023763f240e4b58a719ba8acc949f8108ccf472

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6840713b58eec7017ee6650ad66863a3203dacb238e286795f68947bea971e6a
MD5 7bf488ac4e7018b8d3823bb976416850
BLAKE2b-256 41649fb7bd4818561785eceab40765572a26031c690738a74b85432d4849ff34

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 33724de9cf74929d14081823e37bd2046fcf67124746d667ce7a5d71c9153e0c
MD5 0baeef17c058e1b2dd7d821d96559344
BLAKE2b-256 55832b3f34dfe2399011f527f2ed08b5ff9d329eb04a19f46592db217cb9611e

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5df64fb7de010be4718f18556c6e9b2b1ac0818e6d9a9327375ca42ee0fd23a2
MD5 55f84809ac61896d69619fd249869f43
BLAKE2b-256 4e829ac126da5b42b719dd52fdb3e7aa4f6e8d3193ff7557f268d1ab6a9a916b

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-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.9.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b3d744e8c4178793a41fccd7261b6ff87945aa8e85c82a7116a622b3ab181fa1
MD5 1cd4ed763542c435a77f5bca71304b02
BLAKE2b-256 7e59cef6b4630118cb7837ebc10f535461942db5a83eca83b07d4153d5b923e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 105164c5c21a6ee26605efdf0dd5d032ad2f2d4873f0e35ecb03dd9147925a10
MD5 dfdcfca4b2b23ddfd4e942489675f626
BLAKE2b-256 84787638d002cd2ae93ec74c4daf3fd6ac7c224fd7a5efa481a439c52998e597

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.9.5-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for python_pkcs11-0.9.5-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 86236e4604f4a1c4ea2f5dbe08f0ee987a28acb6565d0e97dc5611908d46216b
MD5 6a32ffa7e68558cac8b8618e529ff839
BLAKE2b-256 e4d6b51037eb4503590df2ff4d4e1133703b3903cc16699fa99301cc1b5198d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_pkcs11-0.9.5-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.

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