python-libehsm is a Python wrapper for the ellipticSecure PKCS11 shared library
Note that while the wrapper does export some PKCS#11 helper functions it does so only partially - there are other wrappers available to interface with PKCS#11.
The focus of this wrapper is to export the BIP32/Bitcoin specific functions.
Installation
Download and install the native shared library for your platform here: https://ellipticsecure.com/downloads/
pip install python-libehsm
Example
Signing a transaction hash with a BIP32 (Bitcoin etc.) derived key stored on a MIRkey or eHSM device:
import ehsm
mirkey = ehsm.load_ehsm()
# Get the available device slots
slots = mirkey.enumerate_slots()
if len(slots) > 0:
# Use the first available slot
slot = slots[0]
# Initialize the library
mirkey.init()
try:
session = mirkey.get_logged_in_rw_session(slot, b"testsu")
found = mirkey.bip32_has_root_key(session)
if found:
hash = bytes(32)
# list of integers representing a bip32 path to the derived key
#
# ie. this is "m/0", "m" would be []
indexes = [0]
sig = mirkey.bip32_sign_data(session, hash, indexes)
finally:
mirkey.finalize()
else:
print "No devices found"
Please see the test cases for more usage examples.
Metadata
Release files for ehsm 1.0.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 | |
|---|---|---|---|
| ehsm-1.0.0.tar.gz | 8.0 kB | Details |
Release files / ehsm-1.0.0.tar.gz
| Download URL | ehsm-1.0.0.tar.gz |
|---|---|
| Size | 8.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5778e614a0135da171476c777b112af90e1107894f4e76fb21773ee4c7f5039
|
|
BLAKE2b-256 checksum How to use checksums |
342b304e4b69f32866fa479ae726952c86f7770b8856621a0b8763683830a876
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.16
|