#asn-1 #parser #identifier #object #formatting #building #x500

no-std oid

Rust 原生库,用于构建、解析和格式化对象标识符(OID)

4 个版本

0.2.1 2020 年 9 月 19 日
0.2.0 2020 年 9 月 3 日
0.1.1 2019 年 10 月 25 日
0.1.0 2019 年 7 月 24 日

#245 in 密码学

Download history 5432/week @ 2023-12-16 2707/week @ 2023-12-23 5422/week @ 2023-12-30 8559/week @ 2024-01-06 9421/week @ 2024-01-13 13342/week @ 2024-01-20 11831/week @ 2024-01-27 12719/week @ 2024-02-03 9663/week @ 2024-02-10 7669/week @ 2024-02-17 8983/week @ 2024-02-24 7060/week @ 2024-03-02 8950/week @ 2024-03-09 7694/week @ 2024-03-16 6927/week @ 2024-03-23 6025/week @ 2024-03-30

30,778 每月下载量
用于 40 个 crate (12 直接使用)

MIT/Apache

36KB
706

Rust 对象标识符库

All Contributors

Build Status Crate codecov API Minimum rustc version Average time to resolve an issue Percentage of issues still open

对象标识符是国际电信联盟(ITU)的标准,用于全球唯一地引用对象、事物和概念。此crate提供用于构建、解析和格式化OID的数据结构和方法。

基本使用

运行示例

您可以使用cargo运行examples/basic.rs中的示例代码

cargo run --example basic

解析 OID 字符串表示

use oid::prelude::*;
let oid = ObjectIdentifier::try_from("0.1.2.3")?;

解析 OID 二进制表示

use oid::prelude::*;
let oid = ObjectIdentifier::try_from(vec![0x00, 0x01, 0x02, 0x03])?;

将 OID 编码为字符串表示

use oid::prelude::*;
let oid = ObjectIdentifier::try_from("0.1.2.3")?;
let oid: String = oid.into();
assert_eq!(oid, "0.1.2.3");

将 OID 编码为二进制表示

use oid::prelude::*;
let oid = ObjectIdentifier::try_from(vec![0x00, 0x01, 0x02, 0x03])?;
let oid: Vec<u8> = oid.into();
assert_eq!(oid, "0.1.2.3");

使用 cargo-edit 添加依赖

cargo add oid

对于 !#[no_std] crate,使用 cargo-edit 添加依赖

cargo add oid --no-default-features

直接在 Cargo.toml 中添加依赖

[dependencies]
oid = "0.1.0"

对于 !#[no_std] crate,直接在 Cargo.toml 中添加依赖

[dependencies]
oid = { default-features = false }

构建

构建过程已通过 cargo-make 自动化。如果您不使用 cargo-make,您可以在Makefile.toml中查看相关的手动构建过程。

使用Rust标准库构建平台

cargo make

为嵌入式平台构建或 #![no_std]

cargo make build_no_std

模糊输入

cargo-fuzz 提供了配置,用于对公开方法参数的输入进行模糊测试。

模糊二进制OID解析

cargo make fuzz_parse_binary

模糊字符串OID解析

cargo make fuzz_parse_string

贡献者 ✨

感谢这些出色的人(emoji key

Sean Bruton
Sean Bruton

⚠️ 💻
Benoît C.
Benoît C.

⚠️ 💻
snake66
snake66

⚠️ 💻

本项目遵循 all-contributors 规范。欢迎各种形式的贡献!

许可协议

根据您的选择,在 Apache License, Version 2.0MIT 许可协议 下获得许可。除非您明确表示,否则任何有意提交以包含在此库中的贡献,根据 Apache-2.0 许可协议定义,应按上述方式双许可,不附加任何额外条款或条件。

依赖关系

~180KB