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.1
For more information, see: https://en.wikipedia.org/wiki/Object_identifier
Implementation
This library supports parsing OIDs in const contexts, e.g.:
use ObjectIdentifier;
pub const MY_OID: ObjectIdentifier = new_unwrap;
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 (MSRV) Policy
MSRV increases are not considered breaking changes and can happen in patch releases.
The crate MSRV accounts for all supported targets and crate feature combinations, excluding explicitly unstable features.
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.