18次发布

0.4.1 2024年1月26日
0.4.0 2023年11月21日
0.3.0 2023年6月22日
0.3.0-pre.12023年3月3日
0.1.2 2021年7月7日

125#rfc

Download history 9404/week @ 2024-03-14 9372/week @ 2024-03-21 8189/week @ 2024-03-28 11333/week @ 2024-04-04 9653/week @ 2024-04-11 11033/week @ 2024-04-18 8418/week @ 2024-04-25 10439/week @ 2024-05-02 8703/week @ 2024-05-09 10468/week @ 2024-05-16 10287/week @ 2024-05-23 12362/week @ 2024-05-30 12492/week @ 2024-06-06 14109/week @ 2024-06-13 16082/week @ 2024-06-20 11913/week @ 2024-06-27

57,216 每月下载量
16 个crates中使用 (通过 tls_codec)

Apache-2.0 OR MIT

64KB
1K SLoC

RustCrypto: TLS 编码器

MIT licensed Project Chat Rust Version

crates.io docs.rs
tls_codec Docs
tls_codec_derive Docs

此crate实现了根据RFC 8446定义的TLS编码器,以及MLS所需的一些扩展。

使用derive功能,可以派生TlsSerializeTlsDeserialize

该crate还提供了以下实现TLS序列化/反序列化的数据结构

  • u8, u16, u32, u64
  • TlsVecU8, TlsVecU16, TlsVecU32
  • SecretTlsVecU8, SecretTlsVecU16, SecretTlsVecU32TlsVec* 版本相同,但它实现了zeroize,需要元素也实现zeroize。
  • TlsSliceU8, TlsSliceU16, TlsSliceU32 是切片的轻量级包装器,允许在不创建 TlsVec* 的情况下序列化它们。
  • TlsByteSliceU8, TlsByteSliceU16, TlsByteSliceU32,以及 TlsByteVecU8TlsByteVecU16TlsByteVecU32 提供了针对字节数组的优化实现。
  • [u8; l],其中 l ∈ [1..128]
  • Option<T> 进行序列化,其中 T: Serialize
  • Option<T> 进行反序列化,其中 T: Deserialize
  • (T, U)(T, U, V) 进行序列化,其中 T, U, V 实现 Serialize`
  • (T, U)(T, U, V) 进行反序列化,其中 T, U, V 实现 Deserialize`

最低支持的 Rust 版本

本软件包至少需要 Rust 1.60.0

我们可能会在未来更改最低支持的 Rust 版本,但将伴随着小版本号的增加。

许可证

在您选择的情况下,许可协议为以下之一

贡献

除非您明确声明,否则任何有意提交给工作以包含在内的贡献,根据 Apache-2.0 许可证定义,均应双许可如上所述,不附加任何额外的条款或条件。

依赖项

~265–720KB
~17K SLoC