2个版本
0.1.1 | 2022年6月6日 |
---|---|
0.1.0 | 2022年3月31日 |
#1860 在 解析器实现
188 每月下载量
用于 2 crates
21KB
436 行
WireGuard密钥
这是一个包含与WireGuard相关的数据结构的实用程序crate。没有为其构建,但是RustDoc文档在每次提交时都会发布。
资源
要构建此项目,您需要运行 make setup-git
,因为它将使用您的SSH密钥而不是请求git凭据(可能还需要两步验证)。
特性
默认情况下,此crate仅提供WireGuard密钥(Pubkey、Privkey、Secret)的类型。以下可选功能可以启用
serde
:序列化和反序列化功能(默认启用)。hex
:转换为和从十六进制(默认启用)。base64
:转换为和从base64(默认启用)。base32
:转换为和从base32。rocket
:能够在Rocket中解析HTTP请求中的WireGuard密钥。schema
:能够从类型生成JSON模式。
lib.rs
:
此crate允许使用WireGuard密钥。WireGuard使用非对称x25519密钥,分别由[Privkey]和[Pubkey]类型表示。私钥可以随机生成,其对应的公钥可以推导出来。此外,WireGuard允许使用预共享密钥作为额外的安全层,它只是一个随机的256位值。这由[Secret]类型表示。
出于安全考虑,此crate使用[Zeroize]特质标记所有包含密码学相关信息的数据类型,以便在丢弃时清除。使用[x25519_dalek_fiat] crate进行x25519操作。
此crate允许以各种方式编码密钥。此crate支持base64
,这通常由WireGuard使用,但也可以启用hex
和base32
。启用编码还启用了从该编码解析。
默认启用的[serde]功能为WireGuard类型添加了序列化和反序列化支持。这些类型的序列化方式取决于格式:当将数据序列化为可读格式(如JSON)时,密钥被序列化为base64编码的字符串。但是,当序列化为二进制格式(如Bincode)时,密钥被序列化为原始字节。
可选的schema
功能为类型添加信息,允许使用schemars自动从它们生成JSON模式。
启用rocket
功能将添加从HTTP请求解析任何WireGuard类型的从FromParam特性。
依赖项
~2–36MB
~539K SLoC