unplugged-system/external/rust/crates/const-oid
2025-10-06 13:59:42 +00:00
..
patches Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
src Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
tests Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
.cargo_vcs_info.json Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
Android.bp Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
cargo2android.json Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
Cargo.toml Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
Cargo.toml.orig Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
CHANGELOG.md Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
LICENSE Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
LICENSE-APACHE Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
LICENSE-MIT Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
METADATA Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
MODULE_LICENSE_APACHE2 Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
OWNERS Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00
README.md Initial commit: AOSP 14 with modifications for Unplugged OS 2025-10-06 13:59:42 +00:00

RustCrypto: Object Identifiers (OIDs)

crate Docs Build Status Apache2/MIT licensed Rust Version Project Chat

Const-friendly implementation of the ISO/IEC Object Identifier (OID) standard as defined in ITU X.660, with support for BER/DER encoding/decoding as well as heapless no_std (i.e. embedded) environments.

Documentation

About OIDs

Object Identifiers, a.k.a. OIDs, are an International Telecommunications Union (ITU) and ISO/IEC standard for naming any object, concept, or "thing" with a globally unambiguous persistent name.

The ITU's X.660 standard provides the OID specification. Every OID is part of a hierarchical namespace which begins with a root OID, which is either the ITU's root OID (0), the ISO's root OID (1), or the joint ISO/ITU root OID (2).

The following is an example of an OID, in this case identifying the rsaEncryption algorithm:

1.2.840.113549.1.1.1

For more information, see: https://en.wikipedia.org/wiki/Object_identifier

Implementation

This library supports parsing OIDs in const contexts, e.g.:

use const_oid::ObjectIdentifier;

pub const MY_OID: ObjectIdentifier = ObjectIdentifier::new_unwrap("1.2.840.113549.1.1.1");

The OID parser is implemented entirely in terms of const fn and without the use of proc macros.

Additionally, it also includes a const fn OID serializer, and stores the OIDs parsed from const contexts encoded using the BER/DER serialization (sans header).

This allows ObjectIdentifier to impl AsRef<[u8]> which can be used to obtain the BER/DER serialization of an OID, even one declared const.

Additionally, it impls FromStr and TryFrom<&[u8]> and functions just as well as a runtime OID library.

Minimum Supported Rust Version

This crate requires Rust 1.57 at a minimum.

We may change the MSRV in the future, but it will be accompanied by a minor version bump.

License

Licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.