27次发布
0.10.0-rc.0 | 2024年7月26日 |
---|---|
0.10.0-pre.2 | 2024年1月5日 |
0.10.0-pre.0 | 2023年10月8日 |
0.9.6 | 2023年12月15日 |
0.2.0 | 2020年9月5日 |
#38 in 编码
3,628,260每月下载量
在4,578个crate中使用 (35 直接)
300KB
6K SLoC
RustCrypto: 对象标识符 (OID)
根据ITU X.660定义的ISO/IEC对象标识符(OID)标准的友好const实现,支持BER/DER编码/解码以及无堆栈空间no_std(即嵌入式)环境。
关于OID
对象标识符,即OID,是国际电信联盟(ITU)和ISO/IEC为任何对象、概念或“事物”提供具有全球唯一持久名称的标准。
ITU的X.660标准提供了OID规范。每个OID都是层次命名空间的一部分,从根OID开始,根OID可以是ITU的根OID(0),ISO的根OID(1)或ISO/ITU的联合根OID(2)。
以下是一个OID的示例,在这种情况下用于标识rsaEncryption
算法
1.2.840.113549.1.1.1
更多信息请见:https://en.wikipedia.org/wiki/Object_identifier
实现
此库支持在const上下文中解析OID,例如。
use const_oid::ObjectIdentifier;
pub const MY_OID: ObjectIdentifier = ObjectIdentifier::new_unwrap("1.2.840.113549.1.1.1");
OID解析器完全使用const fn
实现,不使用proc宏。
此外,它还包括一个const fn
OID序列化器,并将从const上下文中解析的OID使用BER/DER序列化(不带头)存储。
这允许 ObjectIdentifier
实现 AsRef<[u8]>
,它可以用来获取 OID 的 BER/DER 序列化,即使是声明为 const
的。
此外,它还实现了 FromStr
和 TryFrom<&[u8]>
,并且与运行时的 OID 库一样好用。
最低支持的 Rust 版本
此软件包至少需要 Rust 1.71。
我们可能会在未来更改最低支持版本,但将伴随小版本号的增加。
许可证
在以下许可证之一下授权:
任选其一。
贡献
除非您明确声明,否则您提交的任何旨在包含在作品中的贡献(根据 Apache-2.0 许可证定义),将按上述方式双重许可,不附加任何额外的条款或条件。
依赖项
~130KB