16个版本
0.22.4 | 2023年10月9日 |
---|---|
0.22.2 | 2023年9月30日 |
0.22.0 | 2021年4月10日 |
0.21.4 | 2020年12月2日 |
0.8.0 |
|
在 密码学 中排名 75
每月下载量 2,061,875
在 3,001 个crate中使用 (直接使用155个)
145KB
2.5K SLoC
本软件按“原样”提供,且作者对本软件不提供任何明示或暗示的保证,包括但不限于适销性和适用性。在任何情况下,作者均不对任何特殊、直接、间接或后果性损害或任何因使用、数据丢失或利润损失而产生的任何损害承担责任,无论此类损害是否源于合同行为、疏忽或其他侵权行为,以及与使用或运行本软件有关的任何损害。
什么是webpki?
webpki是一个验证Web PKI(TLS/SSL)证书的库。webpki旨在为各种应用和设备提供Web PKI客户端的完整实现,包括嵌入式(IoT)应用、移动应用、桌面应用和服务器基础设施。webpki不仅旨在成为Web PKI的最佳实现,而且还要精确定义Web PKI是什么。
webpki是用Rust编写的,并使用ring进行签名验证。
webpki深受mozilla::pkix的影响。您可以在insanity::pkix: A New Certificate Path Building & Validation Library中了解关于mozilla::pkix和webpki背后理念的更多信息。
Rust编译器静态保证webpki中没有缓冲区溢出、使用后释放、双重释放、数据竞争等。webpki利用Rust的借用检查器确保其零复制解析策略既安全又高效。webpki永远不会在堆上分配内存,并且对使用的堆栈内存量保持严格的限制。webpki避免了所有不必要的PKIX功能,以保持其目标代码大小小。进一步减小webpki的代码大小是一个重要的目标。
此版本是第一个原型。计划进行大量改进,包括
- 一个广泛的自动化测试套件。
- 密钥固定。
- 证书透明度支持。
- 支持短期证书、OCSP stapling和CRLSet。
- 允许在验证过程中自定义支持的算法、密钥大小和椭圆曲线。
- 一个C语言包装器接口,允许在非Rust应用中使用webpki。
- 精确指定Web PKI是什么的规范。
演示
请参阅https://github.com/ctz/rustls#example-code以获取使用webpki的示例。
许可证
请参阅LICENSE。本项目乐于接受任何非正式的版权/贡献者许可协议的pull请求。Pull请求必须明确指出所贡献代码的版权所有者,并且代码将在与现有webpki代码相同的条款下进行许可。
错误报告
请将错误报告为pull请求或问题跟踪器中的问题。webpki有一个完全披露漏洞政策。请勿尝试将此代码的任何安全漏洞私下报告给任何人。
依赖关系
~5–13MB
~234K SLoC