4 releases
0.2.1 | Sep 19, 2020 |
---|---|
0.2.0 | Sep 3, 2020 |
0.1.1 | Oct 25, 2019 |
0.1.0 | Jul 24, 2019 |
#255 in Cryptography
27,121 downloads per month
Used in 44 crates
(12 directly)
36KB
706 lines
Object Identifier Library for Rust
Object Identifiers are a standard of the ITU used to reference objects, things, and concepts in a globally unique way. This crate provides for data structures and methods to build, parse, and format OIDs.
Basic Utilization
Running Example
You can run the example code from examples/basic.rs using cargo:
cargo run --example basic
Parsing OID String Representation
use oid::prelude::*;
let oid = ObjectIdentifier::try_from("0.1.2.3")?;
Parsing OID Binary Representation
use oid::prelude::*;
let oid = ObjectIdentifier::try_from(vec![0x00, 0x01, 0x02, 0x03])?;
Encoding OID as String Representation
use oid::prelude::*;
let oid = ObjectIdentifier::try_from("0.1.2.3")?;
let oid: String = oid.into();
assert_eq!(oid, "0.1.2.3");
Encoding OID as Binary Representation
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");
Adding as a dependency with cargo-edit
cargo add oid
Adding as a dependency with cargo-edit for a !#[no_std]
crate
cargo add oid --no-default-features
Adding as a dependency directly to Cargo.toml
[dependencies]
oid = "0.1.0"
Adding as a dependency directly to Cargo.toml
for a !#[no_std]
crate
[dependencies]
oid = { default-features = false }
Building
The build routines have been automated with cargo-make. If you're not using cargo-make, you can check Makefile.toml for the relevant manual build procedures.
Building for a platform with Rust Standard Library
cargo make
Building for an embedded platform or #![no_std]
cargo make build_no_std
Fuzzing Inputs
Profiles for cargo-fuzz are included for fuzzing the inputs on public method parameters.
Fuzz Binary OID Parsing
cargo make fuzz_parse_binary
Fuzz String OID Parsing
cargo make fuzz_parse_string
Contributors ✨
Thanks goes to these wonderful people (emoji key):
Sean Bruton ⚠️ 💻 |
Benoît C. ⚠️ 💻 |
snake66 ⚠️ 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this library by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~170KB