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


热门话题
使用PostgreSQL java的jooq批量/批更新   java如何从数据库读取密钥库   从REST API返回ResponseEntity<byte[]>时出现java问题。为什么?   JavaApacheFop使用PDF服务中的数据   java读取在线xml文件并对其进行解析   我试图通过jdbc连接MySQL数据库,但代码抛出错误“java.lang.ClassNotFoundException:com.MySQL.jdbc.Driver”   java使用中心点(非左上角)绘制椭圆   java Android应用程序不在设备或模拟器上运行?   java JSR是什么意思   java会话bean为什么这么叫?   java如何获取jar外部文件的Url?   java Mockito with Robolectric:“创建代理时发生ClassCastException”   java在getter方法中使用模式匹配器来格式化日期/删除毫秒   java在数据库中对JTextField的每次击键进行调用搜索   在linux上用java运行shell脚本   JAVAutil。扫描器如何在Java中计算字符串中指定字符的实例?   java永远无法实现以下替代方案:2   java Createwindowex无效句柄错误