| Crates.io | const-oid |
| lib.rs | const-oid |
| version | 0.10.2 |
| created_at | 2020-08-04 15:51:24.822805+00 |
| updated_at | 2026-01-07 23:11:57.242553+00 |
| description | 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) support |
| homepage | https://github.com/RustCrypto/formats/tree/master/const-oid |
| repository | https://github.com/RustCrypto/formats |
| max_upload_size | |
| id | 272933 |
| size | 372,671 |
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.
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
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.
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.
Licensed under either of:
at your option.
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.