| commit | 17fefe205c598d84bf07f675b8335ca0a0cd0b39 | [log] [tgz] |
|---|---|---|
| author | Alice Wang <aliceywang@google.com> | Thu Nov 23 01:04:34 2023 +0000 |
| committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Thu Nov 23 01:04:34 2023 +0000 |
| tree | 2afec7623caafa2fd114b7ff7ee126a04d6376a1 | |
| parent | d1dea8a7c806d4245cd1c0f08df9f61132edd79f [diff] | |
| parent | 6b12b8ae4888b2c5544c0c97af532acf6a8f36e0 [diff] |
Make libconst_oid_nostd visible for //packages/modules/Virtualization am: 36cba03f6f am: 14c8f2cba7 am: 6b12b8ae48 Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/const-oid/+/2843380 Change-Id: I52c5bf23996cccb81e7aa54081654b1c7b86c678 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
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.