19 个版本 (11 个破坏性更新)

0.12.2 2024 年 7 月 8 日
0.11.0 2024 年 5 月 7 日
0.9.0 2024 年 3 月 31 日
0.7.1 2023 年 12 月 23 日
0.1.1 2023 年 6 月 18 日

#324 in 魔法豆

Download history 13/week @ 2024-04-14 17/week @ 2024-04-21 18/week @ 2024-04-28 161/week @ 2024-05-05 9/week @ 2024-05-12 68/week @ 2024-05-19 9/week @ 2024-05-26 24/week @ 2024-06-02 17/week @ 2024-06-09 23/week @ 2024-06-16 11/week @ 2024-06-23 387/week @ 2024-06-30 184/week @ 2024-07-07 27/week @ 2024-07-14 21/week @ 2024-07-21 85/week @ 2024-07-28

每月下载 343
用于 5 crates

BSD-2-Clause-Patent

175KB
4K SLoC

Blockchain Commons Secure Components for Rust

由 Wolf McNally 编写


简介

一组用于密码学、语义图和加密货币的有用原语,主要用于 Blockchain Commons 的高级项目,如 Gordian Envelope。所有类型都是 CBOR 可序列化的,其中许多也可以序列化为 URs

还包括一组用于这些类型的 CBOR 标签和 UR 类型库。

入门

[dependencies]
bc-components = "0.12.2"

类型

名称 描述
AgreementPrivateKey 用于 X25519 密钥协商的 Curve25519 私钥。
AgreementPublicKey 用于 X25519 密钥协商的 Curve25519 公钥。
AuthenticationTag 加密过程中生成的 HMAC 验证标签。
ARID 一个“看似随机标识符”(ARID)。
Compressed 一个压缩的二进制对象。
Digest 使用 SHA-256 实现的加密安全摘要。
ECPrivateKey 椭圆曲线数字签名算法(ECDSA)私钥。
ECPublicKey 压缩的椭圆曲线数字签名算法(ECDSA)压缩公钥。
ECUncompressedPublicKey 压缩的椭圆曲线数字签名算法(ECDSA)未压缩公钥。
EncryptedMessage 一个安全加密消息。
Nonce 随机nonce(“一次性使用的数字”)。
PrivateKeyBase 包含唯一数据,可以从中派生用于签名和解密的密钥。
PublicKeyBase 包含用于与远程实体进行加密通信的信息。
SSKRGroupSpec SSKR分片中一组份额的规范。
SSKRSecret 要分割成份额的秘密。
SSKRShare SSKR份额。与函数 sskr_generatesskr_combine 一起使用。
SSKRSpec SSKR分割的规范。
Salt 随机盐,用于消除其他信息的相关性。
SchnorrPublicKey Schnorr(仅x)椭圆曲线公钥。
SealedMessage 密封消息可以发送给任何人,但只有预期的收件人才能解密它。
Signature 加密签名。支持ECDSA和Schnorr。
SigningPublicKey 可用于签名的公钥。支持ECDSA和
SigningPrivateKey 用于签名的ECDSA或SSH私钥。
SymmetricKey 对称加密密钥。
URI URI。
UUID UUID。

状态 - 社区审查

bc-components 目前处于社区审查阶段。我们感谢您考虑并/或测试这些库。当然,如果您发现任何错误或问题,请告知我们。但也请告诉我们API是否符合您的需求,功能是否易于使用,Rust的使用是否感觉标准化,以及该库是否解决了您在执行此类编码时遇到的问题。还请告诉我们如何改进以及您还需要什么才能使其完全适合您的使用。您可以在 Gordian 开发者社区 发表评论。

由于这个库仍然处于社区审查阶段,在经过进一步测试和审计之前,不应将其用于生产任务。

参见 Blockchain Commons 开发阶段

财务支持

bc-componentsBlockchain Commons 的一个项目。我们自豪地是一个“非营利”的社会福利公司,致力于开源和开放发展。我们的工作完全由捐赠和与您这样的人的合作伙伴关系资助。每一笔捐款都将用于构建开放的工具、技术和方法,以维持和推进区块链和互联网安全基础设施,并促进开放网络。

为了进一步开发 bc-components 和其他项目提供财务支持,请考虑通过 GitHub Sponsor 成为 Blockchain Commons 的赞助者。您也可以通过我们的 BTCPay 服务器 使用比特币支持 Blockchain Commons。

贡献

我们鼓励通过问题和拉取请求进行公开贡献!请参阅 CONTRIBUTING.md 了解我们的开发过程详情。此存储库的所有贡献都需要签署 GPG 的 贡献者许可协议

讨论

讨论 Blockchain Commons 和其项目的最佳地方是在我们的 GitHub 讨论区域。

戈迪安开发者社区。对于想要讨论互操作性钱包规范的标准化和开源开发者,请使用戈迪安开发者社区仓库的讨论区域。这里是您讨论戈迪安规范的地方,例如 戈迪安信封bc-shamir分片密钥重建bc-ur,以及更大的戈迪安架构,其独立、隐私、弹性和开放的原则,以及其宏观架构思想,如功能分区(包括空气隔离,本社区的原名)。

戈迪安用户社区。对于戈迪安参考应用的用户,包括戈迪安协调器戈迪安种子工具戈迪安服务器戈迪安钱包以及我们的一系列CLI应用。这是一个讨论错误报告和功能请求,以及探索我们的参考应用如何体现戈迪安原则的地方。

区块链共同讨论。对于区块链共同体的开发者、实习生和赞助商,请使用社区仓库的讨论区域来讨论一般区块链共同体问题、实习生项目或其他非戈迪安开发者社区或戈迪安用户社区覆盖的话题。

其他问题 & 问题

作为一个开源、开放开发社区,区块链共同体没有资源直接支持我们的项目。请将讨论区域视为一个您可能得到答案的地方。作为替代,请使用此仓库的问题功能。遗憾的是,我们无法承诺任何响应时间。

如果贵公司需要使用我们的项目的支持,请随时直接联系我们了解选项。我们可能能够提供我们的贡献者之一的支持合同,或者我们可以将您指向可以提供所需合同支持的另一实体。

鸣谢

以下人员直接为这个仓库做出了贡献。您可以通过参与进来添加您的名字。第一步是学习如何从我们的CONTRIBUTING.md文档中学习如何贡献。

名称 角色 GitHub 电子邮件 GPG指纹
Christopher Allen 首席架构师 @ChristopherA <[email protected]> FDFE 14A5 4ECB 30FC 5D22 74EF F8D3 6C91 3574 05ED
Wolf McNally 首席研究员/工程师 @WolfMcNally <[email protected]> 9436 52EE 3844 1760 C3DC  3536 4B6C 2FCF 8947 80AE

负责任披露

我们希望所有软件都能保证每个人的安全。如果您发现了一个安全漏洞,我们感谢您以负责任的方式向我们披露。遗憾的是,我们目前无法提供赏金。

我们要求您本着诚信的原则,尽力不泄露信息或损害任何用户、他们的数据或我们的开发者社区。在您公布之前,请给我们合理的时间来修复问题。在发现过程中,不要欺骗我们的用户或我们。我们承诺,只要研究人员尽力遵守这些指南,就不会对他们采取法律行动。

报告漏洞

请通过电子邮件私下报告疑似安全漏洞至 [email protected](不要用此邮箱寻求支持)。请不要为疑似安全漏洞创建公开可见的问题。

以下密钥可以用来与开发者沟通敏感信息

名称 指纹
Christopher Allen FDFE 14A5 4ECB 30FC 5D22 74EF F8D3 6C91 3574 05ED

您可以通过以下命令使用该个人的指纹导入密钥: gpg --recv-keys "<fingerprint>" 确保将包含空格的指纹用引号括起来。

依赖项

~20MB
~350K SLoC