#key #wireguard #private-key #public-key #x25519 #generate #parse

wireguard-keys

生成、解析和导出WireGuard(x25519)密钥

2个版本

0.1.1 2022年6月6日
0.1.0 2022年3月31日

#1860解析器实现

Download history 84/week @ 2024-03-16 145/week @ 2024-03-23 87/week @ 2024-03-30 265/week @ 2024-04-06 95/week @ 2024-04-13 42/week @ 2024-04-20 71/week @ 2024-04-27 68/week @ 2024-05-04 41/week @ 2024-05-11 31/week @ 2024-05-18 103/week @ 2024-05-25 114/week @ 2024-06-01 28/week @ 2024-06-08 88/week @ 2024-06-15 35/week @ 2024-06-22 32/week @ 2024-06-29

188 每月下载量
用于 2 crates

AGPL-3.0-only

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使用,但也可以启用hexbase32。启用编码还启用了从该编码解析。

默认启用的[serde]功能为WireGuard类型添加了序列化反序列化支持。这些类型的序列化方式取决于格式:当将数据序列化为可读格式(如JSON)时,密钥被序列化为base64编码的字符串。但是,当序列化为二进制格式(如Bincode)时,密钥被序列化为原始字节。

可选的schema功能为类型添加信息,允许使用schemars自动从它们生成JSON模式。

启用rocket功能将添加从HTTP请求解析任何WireGuard类型的从FromParam特性。

依赖项

~2–36MB
~539K SLoC