libksi的python包装器,用于访问guardtime ksi服务的库

ksi-python的Python项目详细描述


这是ksi c sdk上的一个薄包装。实验性的,不支持的代码。

概要

同步歌唱和验证的例子。

importksiimporthashlib# Instantiate service parameters from the environmentKSI=ksi.KSI(**ksi.ksi_env())# Sign a text stringsig=KSI.sign_hash(hashlib.sha256(b"Tere!"))# Print some signature propertiesprint(sig.get_signing_time(),sig.get_signer_id())# Now verify this text string, first obtaining a data hasherh=sig.get_hasher()h.update(b"Tere!")print(KSI.verify_hash(sig,h))# Obtain a binary blob which can be stored for long termserialized_signature=sig.get_binary()# Some time have passed, fetch the signature and verify againsig2=KSI.new_signature_object(serialized_signature)print(KSI.verify_hash(sig2,h))

请注意,当请求多个签名时,异步签名可以显著加快速度。 用gevent异步唱歌的例子。

importksiimporthashlibfromgevent.poolimportPool# Instantiate service parameters from the environmentKSI=ksi.KSI(**ksi.ksi_env())# Multiple strings to be signedstring_list=["This","is","a","list","of","strings"]# Define a signer function.defsign_hash(h):sig=KSI.sign_hash(h)# Verification and/or storing could be done hereprint(KSI.verify_hash(sig,h))# Create a gevent pool. Note that for optimal efficiency# pool size should not be smaller than# ``KSI.get_async_config()['max_pending_count']``pool=Pool(100)# Sign all strings asynchronouslyforstringinstring_list:pool.spawn(sign_hash,hashlib.sha256(string.encode()))pool.join()

如果ksi网关允许,也可以进行客户端聚合(登录块)。这意味着 多个散列可以由一个对网关服务器的请求单独签名。此外,如果 允许块签名,异步签名服务默认情况下将根据 如果签名请求需求太大而无法逐个有效地签名,则打开。 同步签名哈希块的示例(也支持异步块签名)。

importksiimporthashlib# Instantiate service parameters from the environmentKSI=ksi.KSI(**ksi.ksi_env())# Multiple strings to be signedstring_list=["This","is","a","list","of","strings"]# Hashes of stringshash_list=[hashlib.sha256(string.encode())forstringinstring_list]# Sign hashes in a blocksigs=KSI.sign_hash_list(hash_list)# Verify hashesforiinrange(len(sigs)):print(KSI.verify_hash(sigs[i],hash_list[i]))

安装

  1. 要求:Python2.7+或Python3.1+。不支持Jython和IronPython。

  2. 安装新的libksi aka ksi c sdk;请参见https://github.com/guardtime/libksi/

  3. 安装python-devel包

  4. 运行:

    > pip install ksi-python
    

> easy_install ksi-python

测试

指定ksi网关访问参数并运行

> python setup.py test

要测试ksi python sdk是否与gevent异步签名,请确保已安装gevent。

文档

http://guardtime.github.io/ksi-python/

类型:

> pydoc ksi

在安装后阅读文档。生成HTML或PDF文档: 确保安装了sphinx(pip install sphinx)之类的依赖项,扩展名 生成(python setup.py build)并运行:

> cd docs
> make html
or
> make latexpdf

许可证

阿帕奇2.0。有关支持的选项,请与GuardTime联系。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在扩展类中将Java重写为抽象的非抽象方法   java可滚动视图   java Android:隐藏操作栏,保持标签   java如何在Hibernate中使用@Qualifier   java如何在spring MVC中进行Http会话管理以获取数据库中的数据   java如何为TictaToe游戏创建HashMap   java在消息资源文件中查找未使用的值   从源代码构建Kafka时发生java错误   c中的java调用optaplanner DLL#   无法通过Java API访问orientdb函数   任务的java执行失败“:app:ProcessDebuggGoogleService”   java在整个模拟过程中保持代理之间的距离不变   如何在Java中使用BouncyCastle PGP实用程序实现增量加密?   java在安卓中计算画布点的距离   Java回文修订   java在Firebase数据库中存储变量的必要性   java如何使用gquery手势插件在页面上启用文本突出显示?   java如何在Apache camel中使用POST调用REST?