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第三方库


热门话题
Docker&SeleniumJava:无法在Docker容器上运行的chrome浏览器中上载图像/文件   在python中运行java命令   Java垃圾收集器异常行为   java java是否根据底层操作系统执行字节码级优化?   java是否可以休眠自定义查询返回映射而不是列表?   java Spring引导RabbitMQ接收器Jackson反序列化到POJO   apache flex在ActionScript3中创建对象相等“HashMap”作为java HashMap   java如何在Eclipse集成中切换JProfiler启动器   缓存JSP页面结果的java最佳实践?   java集成jaxb绑定文件,使用CXF生成基于WSDL的客户端   java为什么在上传操作结束之前,客户端没有检测到HttpServletResponse的PrintWriter内容?   java在接口内创建类和在类内创建接口有什么用   java向文件写入错误Android Studio   java合并多个RealmList并对结果列表排序?   谷歌API视觉java。lang.NoSuchMethodError   java如何使用逗号分别存储每个值,然后将它们存储到单独的数组中?