commit | c67a48d55f35a95ceb8b5c13437af82603829d5b | [log] [tgz] |
---|---|---|
author | Jeff Vander Stoep <[email protected]> | Thu Dec 08 12:41:05 2022 +0100 |
committer | Jeff Vander Stoep <[email protected]> | Thu Dec 08 14:51:25 2022 +0100 |
tree | 4795bce3ea174233055cb91f0be2e4573c90cf26 | |
parent | 3704e9fdb1163b7b2acf91db7e2b4eae25506795 [diff] |
Upgrade const-oid to 0.9.1 This project was upgraded with external_updater. Usage: tools/external_updater/updater.sh update rust/crates/const-oid For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md Test: TreeHugger Change-Id: I8c67c6d4557e0ef828403f5a271e5f987c04e97e
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.
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.
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.