#ecdsa #crypto #bitcoin #secp256k1 #no-std

no-std build libsecp256k1-gen-genmult

libsecp256k1 的常量生成器函数

4 个版本 (2 个重大更新)

0.3.0 2021年9月17日
0.2.1 2021年7月20日
0.2.0 2021年5月18日
0.1.0 2020年3月25日

#35 in #secp256k1

Download history 100008/week @ 2024-03-14 104035/week @ 2024-03-21 108708/week @ 2024-03-28 160778/week @ 2024-04-04 121461/week @ 2024-04-11 118421/week @ 2024-04-18 106018/week @ 2024-04-25 102480/week @ 2024-05-02 102946/week @ 2024-05-09 97924/week @ 2024-05-16 116462/week @ 2024-05-23 113813/week @ 2024-05-30 97470/week @ 2024-06-06 108155/week @ 2024-06-13 103588/week @ 2024-06-20 78799/week @ 2024-06-27

407,055 每月下载量
2,163 个 crate 中使用 (通过 libsecp256k1)

Apache-2.0

155KB
4K 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 分支。

拉取请求

所有更改(除新版本外)都通过拉取请求处理。请针对 develop 分支打开您的 PR。

版本控制

libsecp256k1 遵循 语义版本控制。存储库中的未发布 crate 将在末尾具有 -dev 后缀,并且我们进行滚动发布。

当您对这个仓库发起拉取请求时,请同时更新受影响包的版本,并遵循以下规则。请注意,规则应递归应用——如果更改修改了任何上层包的依赖(即使是 Cargo.toml 文件),那么上层包也需要应用这些规则。

此外,如果您的更改值得注意,您还应修改相应的 CHANGELOG.md 文件中的“未发布”部分。

如果受影响的包已经具有 -dev 后缀

  • 如果您的更改是补丁,则无需更新任何版本。
  • 如果您的更改引入了新功能,请检查本地版本是否已增加次要版本,如果没有,则增加它。
  • 如果您的更改修改了当前接口,请检查本地版本是否已增加主版本,如果没有,则增加它。

如果受影响的包尚未具有 -dev 后缀

  • 如果您的更改是补丁,则增加补丁版本,并添加 -dev 后缀。
  • 如果您的更改引入了新功能,则增加次要版本,并添加 -dev 后缀。
  • 如果您的更改修改了当前接口,则增加主版本,并添加 -dev 后缀。

如果您的拉取请求引入了新的包,请将其版本设置为 1.0.0-dev

依赖项

~365KB