15 个版本
0.6.2 | 2022 年 6 月 3 日 |
---|---|
0.6.1 | 2021 年 11 月 14 日 |
0.6.0 | 2021 年 10 月 20 日 |
0.5.4 | 2021 年 6 月 25 日 |
0.1.0 | 2017 年 12 月 27 日 |
#2 在 #asn1 中
1,544,042 每月下载量
用于 400 个 软件包(29 个直接使用)
59KB
1.5K SLoC
概述
这是一个解析 DER 编码数据的简单库。
特别是,此库自动处理 ASN.1 数据流中的 DER 编码对象的过程。然后,这些令牌可以根据您的格式中的 ASN.1 描述由您的库进行解析。
为了方便起见,我们创建了 traits ToASN1
和 FromASN
来抽象从 ASN.1 令牌流中解码类型的能力。如果您的类型实现了这些 traits 之一,则您的程序或库可以使用方便的函数 der_encode
和 der_decode
在一个动作中完成所有解析工作。
欢迎提交补丁!
lib.rs
:
一个用于 Rust 的小型 ASN.1 解析库。特别是,此库用于将 ASN.1 格式文档的二进制 DER 编码转换为 ASN.1 的核心原语。假设您可以从那里完成所需的所有操作。
此文档的关键项目是 traits ToASN1
和 FromASN1
。前者将您的数据类型编码为简单的 ASN.1 结构(ASN1Block
)的 Vec
。后者反转此过程。
实现 ToASN1
的项目可以与函数 der_encode
一起使用,以提供将数据类型单步编码为二进制 DER 编码的单一步骤。类似地,实现 FromASN
的项目可以使用辅助函数 der_decode
进行单步解码。
您可以根据需要实现一个或两个 traits。如果您都实现了,强烈建议进行编码/解码快速检查属性。
对于需要与二进制表示关联的实际字节的解码方案,我们还提供了 FromASN1WithBody
。这可以与原始 ASN1Block
中的偏移信息一起使用,例如验证 X509 文档中的签名。
最后,此库支持 ASN.1 类信息。我不太确定为什么它有用,但就是这样。
请将任何错误报告、补丁和诅咒发送到 GitHub 仓库 https://github.com/acw/simple_asn1
。
依赖关系
~1.4–2MB
~42K SLoC