括约肌的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通过两个整数数组对正整数和负整数进行排序   java无参数和默认构造函数混淆   java加载文件MD5的最快方法是什么?   java如何在变量声明中使用带“e”的float   java将项目导入到STS iMac   java在使用图像时旋转图像   java Break语句不起作用   java提供了错误类型Spring的id   java如何为多个变量设置相同的函数属性?   JavaMaven:如何添加编译阶段后生成的资源   java HashMap已损坏/性能问题   java Hibernate SQL中间表b/w父表和子表(不同类型)   java PDFbox找不到字体:/Helv   Java:向自实现的双链接列表添加排序函数   为使用Java BouncyCastle生成的X509Certificate提供密钥使用的安全性   java Hibernate在读写方面的性能   C#相当于Java的DataOutputStream?