Struct der::asn1::ObjectIdentifier
source · pub struct ObjectIdentifier { /* private fields */ }
Expand description
Object identifier (OID).
OIDs are hierarchical structures consisting of “arcs”, i.e. integer identifiers.
Validity
In order for an OID to be considered valid by this library, it must meet the following criteria:
- The OID MUST have at least 3 arcs
- The first arc MUST be within the range 0-2
- The second arc MUST be within the range 0-39
- The BER/DER encoding of the OID MUST be shorter than
ObjectIdentifier::MAX_SIZE
Implementations§
source§impl ObjectIdentifier
impl ObjectIdentifier
sourcepub const fn new(s: &str) -> ObjectIdentifier
pub const fn new(s: &str) -> ObjectIdentifier
Parse an ObjectIdentifier
from the dot-delimited string form, e.g.:
use const_oid::ObjectIdentifier;
pub const MY_OID: ObjectIdentifier = ObjectIdentifier::new("1.2.840.113549.1.1.1");
Panics
This method panics in the event the OID is malformed according to the “Validity” rules given in the toplevel documentation for this type.
For that reason this method is ONLY recommended for use in constants (where it will generate a compiler error instead).
To parse an OID from a &str
slice fallibly and without panicking,
use the FromStr
impl instead (or via str
’s parse
method).
sourcepub fn from_arcs(arcs: &[u32]) -> Result<ObjectIdentifier, Error>
pub fn from_arcs(arcs: &[u32]) -> Result<ObjectIdentifier, Error>
Parse an OID from a slice of Arc
values (i.e. integers).
sourcepub fn from_bytes(ber_bytes: &[u8]) -> Result<ObjectIdentifier, Error>
pub fn from_bytes(ber_bytes: &[u8]) -> Result<ObjectIdentifier, Error>
Parse an OID from from its BER/DER encoding.
sourcepub fn as_bytes(&self) -> &[u8]
pub fn as_bytes(&self) -> &[u8]
Get the BER/DER serialization of this OID as bytes.
Note that this encoding omits the tag/length, and only contains the value portion of the encoded OID.
sourcepub fn arc(&self, index: usize) -> Option<u32>
pub fn arc(&self, index: usize) -> Option<u32>
Return the arc with the given index, if it exists.
sourcepub fn arcs(&self) -> Arcs<'_>
pub fn arcs(&self) -> Arcs<'_>
Iterate over the arcs (a.k.a. nodes) of an ObjectIdentifier
.
Returns Arcs
, an iterator over Arc
values representing the value
of each arc/node.
Trait Implementations§
source§impl AsRef<[u8]> for ObjectIdentifier
impl AsRef<[u8]> for ObjectIdentifier
source§impl Clone for ObjectIdentifier
impl Clone for ObjectIdentifier
source§fn clone(&self) -> ObjectIdentifier
fn clone(&self) -> ObjectIdentifier
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ObjectIdentifier
impl Debug for ObjectIdentifier
source§impl DecodeValue<'_> for ObjectIdentifier
impl DecodeValue<'_> for ObjectIdentifier
source§impl Display for ObjectIdentifier
impl Display for ObjectIdentifier
source§impl EncodeValue for ObjectIdentifier
impl EncodeValue for ObjectIdentifier
source§impl<'a> From<&'a ObjectIdentifier> for Any<'a>
impl<'a> From<&'a ObjectIdentifier> for Any<'a>
source§fn from(oid: &'a ObjectIdentifier) -> Any<'a>
fn from(oid: &'a ObjectIdentifier) -> Any<'a>
source§impl From<&ObjectIdentifier> for ObjectIdentifier
impl From<&ObjectIdentifier> for ObjectIdentifier
source§fn from(oid: &ObjectIdentifier) -> ObjectIdentifier
fn from(oid: &ObjectIdentifier) -> ObjectIdentifier
source§impl FromStr for ObjectIdentifier
impl FromStr for ObjectIdentifier
source§impl Hash for ObjectIdentifier
impl Hash for ObjectIdentifier
source§impl Ord for ObjectIdentifier
impl Ord for ObjectIdentifier
source§fn cmp(&self, other: &ObjectIdentifier) -> Ordering
fn cmp(&self, other: &ObjectIdentifier) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq<ObjectIdentifier> for ObjectIdentifier
impl PartialEq<ObjectIdentifier> for ObjectIdentifier
source§fn eq(&self, other: &ObjectIdentifier) -> bool
fn eq(&self, other: &ObjectIdentifier) -> bool
source§impl PartialOrd<ObjectIdentifier> for ObjectIdentifier
impl PartialOrd<ObjectIdentifier> for ObjectIdentifier
source§fn partial_cmp(&self, other: &ObjectIdentifier) -> Option<Ordering>
fn partial_cmp(&self, other: &ObjectIdentifier) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more