Expand description
RustCrypto: Object Identifiers (OIDs)
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.
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.1For 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.
Modules
dbOID Names Database
Structs
Iterator over Arc values (a.k.a. nodes) in an ObjectIdentifier.
Object identifier (OID).
Enums
OID errors.
Traits
A trait which associates an OID with a type.