21个版本 (6个重大更新)
0.9.0 | 2024年6月8日 |
---|---|
0.9.0-alpha.9 | 2024年5月29日 |
0.6.0 | 2024年3月11日 |
在密码学类别中排名437
每月下载量1,516次
在stimmgabel中使用
200KB
3.5K SLoC
polyproto
提供(泛型)Rust类型和特质,以快速实现polyproto实现,以及用于polyproto API的HTTP客户端。
基于der
、x509_cert
和spki
crate提供的类型构建,此crate提供了一组类型和特质,以快速实现polyproto规范。只需将您选择的加密和签名算法crate添加到其中,即可开始。
所有polyproto证书类型都可以转换为x509_cert
crate提供的类型。
实现polyproto
首先,为所选的签名算法实现crate::signature::Signature
特质。流行的加密和签名算法crate提供了自己的PublicKey
和PrivateKey
类型。您应该使用自己的结构体扩展这些类型,并实现针对这些新结构的crate::key
特质。
然后,您可以使用crate::certs
类型构建证书,使用上述特质的实现。
查看示例目录,了解如何使用ED25519签名算法实现和使用此crate的简单示例。
密码学
此crate不提供任何加密功能;其唯一目的是通过将polyproto规范转换为定义良好且可适应的Rust类型来帮助实现polyproto。
安全性
请参考各个函数的文档,了解它们提供的哪些安全保证。返回证书、证书请求和其他类型的方法,其中数据的有效性和正确性可能会影响系统的安全性,在各自的文档中都会提及它们提供的安全保证。
此crate尚未经过任何安全审计。
WebAssembly
此crate旨在与wasm32-unknown-unknown
目标一起使用。要编译为wasm
,您必须使用wasm
功能。
[dependencies]
polyproto = { version = "0", features = ["wasm"] }
通过reqwest
的HTTP API客户端
如果激活了reqwest
功能,此crate提供了一个polyproto HTTP API客户端,使用reqwest
crate。
reqwest
的替代方案
如果您想使用除reqwest
以外的任何东西来实现HTTP客户端,只需启用types
和serde
功能。使用这些功能,您可以实现自己的HTTP客户端,其中polyproto crate作为请求和响应类型、请求路由和方法的单一来源,通过导出的static
Route
。
依赖项
~3–16MB
~195K SLoC