python中的椭圆曲线密码,包括secp256k1和alt_bn128

py-ecc的Python项目详细描述


Py_ECC

python中的椭圆曲线密码,包括secp256k1和alt_bn128

GitHubBuild StatusPyPI version

快速启动

pip install py_ecc

BLS签名

frompy_eccimportblsdomain=43private_key=5566public_key=bls.privtopub(private_key)# Hash your message to 32 bytesmessage_hash=b'\xab'*32# Signingsignature=bls.sign(message_hash,private_key,domain)# Verifyingassertbls.verify(message_hash,public_key,signature,domain)

domain看作一个版本。签名和验证在不同的域上不起作用。在升级的系统中设置新域可防止它受到旧消息和签名的影响。

聚合签名和公钥

private_keys=[3,14,159]public_keys=[bls.privtopub(key)forkeyinprivate_keys]signatures=[bls.sign(message_hash,key,domain)forkeyinprivate_keys]# Aggregatingagg_sig=bls.aggregate_signatures(signatures)agg_pub=bls.aggregate_pubkeys(public_keys)# Verifyingassertbls.verify(message_hash,agg_pub,agg_sig,domain)

多重聚集

message_hash_1,message_hash_2=b'\xaa'*32,b'\xbb'*32msg_hashes=[message_hash_1,message_hash_2]agg_pubs=[agg_pub_1,agg_pub_2]agg_agg_sig=bls.aggregate_signatures([agg_sig_1,agg_sig_2])assertbls.verify_multiple(agg_pubs,msg_hashes,agg_agg_sig,domain)

开发人员设置

如果您想破解py_ecc,请查看Ethereum Development Tactical Manual了解我们的操作:

  • 测试
  • 拉取请求
  • 代码样式
  • 文档

有虫子吗?

请随意在https://github.com/ethereum/py_ecc/issues下创建问题

版权和许可

项目是根据麻省理工学院的许可证授权的。

释放设置

发布新版本:

make release bump=$$VERSION_PART_TO_BUMP$$

如何颠簸

此回购协议的版本格式为{major}.{minor}.{patch},表示稳定,并且 {major}.{minor}.{patch}-{stage}.{devnum}表示不稳定(stage可以是α或β)。

要发布第行的下一个版本,请指定要凹凸的部分, 比如make release bump=minor或者make release bump=devnum

如果您是beta版,make release bump=stage将切换到稳定版。

若要在当前版本稳定时发布不稳定版本,请指定 新版本,如make release bump="--new-version 4.0.0-alpha.1 devnum"

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

推荐PyPI第三方库


热门话题
返回数组无效的java方法   异步Java CompletableFuture获取其请求   java是否可以像RDBMS那样使用视图?   java如何在屏幕上只运行一个片段?   java无法从Vertex jdbc查询中获取结果   java从jtable获取对象的正确方法   java Spring 3数据设备替代方案   Java BigDecimal:四舍五入到客户首选的数字和增量   JAVA主窗口没有出现,我必须左键单击主窗口。java并单击run查看它   Eclipse RCP中的java进程自定义设备事件   JavaEclipse一次又一次地构建代码(没有任何更改)?   java如何实现对象合并