Python wrapper for libksi, a library for accessing Guardtime KSI service
Project description
This is a thin wrapper on top of KSI C SDK. Experimental, non-supported code.
Synopsis
import ksi
import hashlib
# Instantiate service parameters from environment
KSI = ksi.KSI(**ksi.ksi_env())
# Sign a text string
sig = KSI.sign_hash(hashlib.sha256(b"Tere!"))
# Print some signature properties
print(sig.get_signing_time(), sig.get_signer_id())
# Now verify this text string, first obtaining a data hasher
h = sig.get_hasher()
h.update(b"Tere!")
print(KSI.verify_hash(sig, h))
# Obtain a binary blob which can be stored for long term
serialized_signature = sig.serialize()
# Some time have passed, fetch the signature and verify again
sig2 = KSI.parse(serialized_signature)
KSI.set_verification_policy(KSI.verification.POLICY_CALENDAR_BASED)
print(KSI.verify_hash(sig2, h))
Install
Requirements: Python 2.7+ or Python 3.1+. Jython, IronPython do not work.
Install fresh libksi aka KSI C SDK; see https://github.com/guardtime/libksi/
Install python-devel package
Run:
> python setup.py install
For development something like below is more appropriate:
> python setup.py build_ext --inplace
Using pip:
> pip install git+https://github.com/GuardTime/ksi-python.git
Library can be packaged as a binary rpm:
> python setup.py bdist_rpm
etc.
Tests
> python setup.py test
Documentation
http://guardtime.github.io/ksi-python/
Type:
> pydoc ksi
to read the documentation after installation. Generating html or pdf documentation: make sure that dependencies like sphinx (pip install sphinx) are installed and run:
> cd docs > make html > make latexpdf
License
Apache 2.0. Please contact Guardtime for supported options.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.