括约肌的python绑定+

PySPX的Python项目详细描述


PYSPxBuild StatusCoverage Status

这个存储库包含一个python包,它为SPHINCS+提供绑定。它支持作为the SPHINCS+ submissionNIST's Post-Quantum Cryptography Standardization project的一部分包含的所有参数集。

虽然这个包在功能上是完整的,但它可能仍然会受到一些小的api更改的影响。 目前,绑定只包装引用代码。针对特定平台(如支持avx2或aesni的机器)优化的代码将被忽略。

安装

包是available on PyPI,只需调用pip install pyspx即可安装。

对于Linux,二进制控制盘基于manylinux1docker映像可用。在其他平台上,编译sphincs+代码可能需要一些时间。目前,sphincsplus引用代码的sha256函数需要openssl。从源代码处编译时,请确保使用开发文件安装openssl。

api

安装包后,导入sphincs+的特定实例,如下所示(例如,对于shake256-128f):

import pyspx.shake256_128f

这将公开以下直接的函数。所有参数都假定为bytes对象。类似地,返回的密钥和签名是bytesverify函数返回一个布尔值,指示成功或失败。

>>> public_key, secret_key = pyspx.shake256_128f.generate_keypair(seed)
>>> signature = pyspx.shake256_128f.sign(message, secret_key)
>>> pyspx.shake256_128f.verify(message, signature, public_key)
True

此外,由于选定的参数集,以下属性将显示预期的大小:

>>> pyspx.shake256_128f.crypto_sign_BYTES
29792
>>> pyspx.shake256_128f.crypto_sign_PUBLICKEYBYTES
64
>>> pyspx.shake256_128f.crypto_sign_SECRETKEYBYTES
128
>>> pyspx.shake256_128f.crypto_sign_SEEDBYTES
96

自定义括约肌+参数

使用附加的括约肌+参数进行编译相当容易。 为此,克隆存储库,初始化src/sphincsplus子模块, 并将新参数集添加到src/sphincsplus/ref/params。 确保遵循params-sphincs-[parameters-shorthand].h命名约定。 从这个修改过的源安装python包将使用上述api公开参数集。

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

推荐PyPI第三方库


热门话题
java不支持ArrayList。clear()方法释放内存?   java有一种保持测试的方法。Bat文件打开并运行其余的代码?   java XMLSocketReceiver和SocketReceiver是如何工作的?   Java ArrayList StringBuilder附加   java Jsoup从html表中提取数据   java JAXB通用XmlAdapter实现   java在半秒钟后更新JLabel中包含的图片   java如何在组织中打印整个标记结构。jdom。文档对象?   java我的公共int没有使用正确的参数,我的调用是否错误?   mysql与Java Rest Webservice的手动数据库连接(jersey)   java这个同步代码是如何中断的?   java试图在关闭的EntityManager上执行操作(在命名查询上调用setParameter()函数时)   java在使用流生成映射时忽略重复项   java使用整数创建日期并显示在文本框中   java在运行时动态更改类字段的注释