26 个版本
0.7.1 | 2022 年 7 月 14 日 |
---|---|
0.7.0 | 2021 年 9 月 17 日 |
0.6.0 | 2021 年 7 月 20 日 |
0.3.5 | 2020 年 2 月 7 日 |
0.1.10 | 2017 年 11 月 17 日 |
#1419 in 魔法豆
423,543 次每月下载
用于 2,518 个 crate(直接使用 161 个)
205KB
4.5K SLoC
纯 Rust 语言实现的 SECP256K1
支持 no_std
的 SECP256K1 实现。目前我们有以下实现:
- 将私钥转换为公钥。
- 签名消息。
- 签名验证。
- 从签名消息中恢复公钥。
- 共享密钥。
功能标志
std
:如果禁用,则在no_std
环境中运行。默认启用。hmac
:添加需要 HMAC-DRBG 的某些功能。这包括签名。默认启用。static-context
:为了加快计算速度,库使用预计算的表上下文来执行许多ecmult
操作。此功能标志将上下文直接作为静态变量。如果禁用,则必须手动从堆中创建上下文。增加二进制文件大小,默认启用。lazy-static-context
:不是将预计算的表上下文存储为静态变量,而是将其存储为在堆中通过lazy_static
动态分配上下文的变量。它覆盖static-context
。影响引导性能,仅在std
中可用,默认禁用。
开发工作流程
分支
该仓库使用 develop
分支进行开发。更改将定期合并到 master
分支。
拉取请求
所有更改(除了新版本)都通过拉取请求处理。请将您的PR提交到 develop
分支。
版本管理
libsecp256k1
遵循 语义化版本控制。仓库中未发布的crate将以 -dev
后缀结尾,并且我们进行滚动发布。
当您向此仓库提交拉取请求时,请根据以下规则更新受影响的crate的版本。请注意,规则应递归应用--如果更改修改了任何上层crate的依赖(即使是 Cargo.toml
文件),则上层crate也需要应用这些规则。
此外,如果您的更改值得关注,那么您还应该修改相应的 CHANGELOG.md
文件中的 "未发布" 部分。
如果受影响的crate已经有 -dev
后缀
- 如果您的更改是补丁,则无需更新任何版本。
- 如果您的更改引入了新功能,请检查本地版本是否已经提高了次版本号,如果没有,则提高它。
- 如果您的更改修改了当前接口,请检查本地版本是否已经提高了主版本号,如果没有,则提高它。
如果受影响的crate尚未有 -dev
后缀
- 如果您的更改是补丁,则提高补丁版本,并添加
-dev
后缀。 - 如果您的更改引入了新功能,则提高次版本,并添加
-dev
后缀。 - 如果您的更改修改了当前接口,则提高主版本,并添加
-dev
后缀。
如果您的拉取请求引入了新的crate,请将其版本设置为 1.0.0-dev
。
依赖项
~1.2–2.1MB
~44K SLoC