17个版本
0.7.0 | 2024年2月23日 |
---|---|
0.6.1 | 2022年12月12日 |
0.6.0 | 2022年5月24日 |
0.4.0 | 2022年2月10日 |
0.1.1 | 2020年11月25日 |
#6 in #der
1,278,685 每月下载量
用于 1,040 个crate (6 直接使用)
36KB
194 行
OID注册表
这个crate是一个辅助crate,包含OID对象的数据库。这些对象用于操作ASN.1语法和BER/DER编码,例如。
默认情况下,这个crate提供了一个简单的注册表(类似于HashMap
)。这个对象可以用来从OID获取名称和描述。
它提供了已知OID的默认列表,可以通过构建特性进行选择。默认情况下,注册表没有启用任何特性,以避免在crate中嵌入巨大的数据库。
它还声明了大多数这些OID的常量。
use oid_registry::OidRegistry;
let mut registry = OidRegistry::default()
.with_crypto() // only if the 'crypto' feature is enabled
;
let e = registry.get(&oid_registry::OID_PKCS1_SHA256WITHRSA);
if let Some(entry) = e {
// get sn: sha256WithRSAEncryption
println!("sn: {}", entry.sn());
// get description: SHA256 with RSA encryption
println!("description: {}", entry.description());
}
扩展注册表
提供的列表通常是不完整的,或者可能缺少一些特定的OID。这就是为什么注册表允许在构建后添加新条目。
use asn1_rs::oid;
use oid_registry::{OidEntry, OidRegistry};
let mut registry = OidRegistry::default();
// entries can be added by creating an OidEntry object:
let entry = OidEntry::new("shortName", "description");
registry.insert(oid!(1.2.3.4), entry);
// when using static strings, a tuple can also be used directly for the entry:
registry.insert(oid!(1.2.3.5), ("shortName", "A description"));
版本和与asn1-rs
的兼容性
必须特别选择oid-registry
的版本,以依赖asn1-rs
的确切版本。以下表格总结了匹配的版本
oid-registry
0.7.x 依赖于asn1-rs
0.6.0oid-registry
0.6.x 依赖于asn1-rs
0.5.0oid-registry
0.5.x 依赖于asn1-rs
0.4.0
贡献OID
所有OID值、常量和特性都是从构建脚本(参见build.rs
)中的assets
目录中的文件派生出来的。有关文件格式的文档,请参阅load_file
。
Rust版本要求
oid-registry
需要 Rustc版本1.53或更高版本,基于proc-macro属性支持以及asn1-rs
。
许可证
许可在以下之一下
- Apache许可证版本2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您可以选择。
贡献
除非您明确声明,否则您提交的任何有意包含在作品中的贡献,根据Apache-2.0许可证的定义,应作为上述双重许可,不附加任何额外条款或条件。
依赖关系
~1.6–2.4MB
~47K SLoC