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未从Facebook OAuth接收名字、姓氏和姓氏   我自己代码中的java ConcurrentModificationException   java在Android上获得单像素TIFF图像   java图形输出中的swing集成弹出窗口“通知”   将数据库表中的所有数据集插入jTable Java   java如何使用Hibernate获取不完整的集合?   打印无法从java连接到打印机   java使用分隔符拆分带引号的字符串   java Axis2禁用严格验证(wsdl2java中的Eosv)允许什么,如何使其更加严格?   java有人能帮我处理循环代码吗   java将JsonObject数组转换为整数   JavaXWiki扩展:检测事件空间创建   java如何设置图表的文本方向以使用poi旋转所有文本?   eche RecyclerView项的java Set自定义字体   java单元测试带有私有构造函数的spring组件,无需注入   用户界面如何在java中动态显示一组多个元素?   如何从java应用程序调用IDL(交互式数据语言)?   Java的内置库实现