#ber-der #oid #ber #der

oid-registry

对象标识符(OID)数据库

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

Download history 223616/week @ 2024-04-22 214143/week @ 2024-04-29 202315/week @ 2024-05-06 244735/week @ 2024-05-13 239972/week @ 2024-05-20 248066/week @ 2024-05-27 269497/week @ 2024-06-03 250466/week @ 2024-06-10 236047/week @ 2024-06-17 268764/week @ 2024-06-24 241436/week @ 2024-07-01 284787/week @ 2024-07-08 306199/week @ 2024-07-15 323700/week @ 2024-07-22 312734/week @ 2024-07-29 324168/week @ 2024-08-05

1,278,685 每月下载量
用于 1,040 个crate (6 直接使用)

MIT/Apache

36KB
194

License: MIT Apache License 2.0 docs.rs crates.io Github CI Minimum rustc version

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.0
  • oid-registry 0.6.x 依赖于 asn1-rs 0.5.0
  • oid-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许可证的定义,应作为上述双重许可,不附加任何额外条款或条件。

依赖关系

~1.6–2.4MB
~47K SLoC