Enum der_parser::ber::BerObjectContent
source · [−]pub enum BerObjectContent<'a> {
Show 28 variants
EndOfContent,
Boolean(bool),
Integer(&'a [u8]),
BitString(u8, BitStringObject<'a>),
OctetString(&'a [u8]),
Null,
Enum(u64),
OID(Oid<'a>),
RelativeOID(Oid<'a>),
NumericString(&'a str),
VisibleString(&'a str),
PrintableString(&'a str),
IA5String(&'a str),
UTF8String(&'a str),
T61String(&'a str),
VideotexString(&'a str),
BmpString(&'a str),
UniversalString(&'a [u8]),
Sequence(Vec<BerObject<'a>>),
Set(Vec<BerObject<'a>>),
UTCTime(ASN1DateTime),
GeneralizedTime(ASN1DateTime),
ObjectDescriptor(&'a str),
GraphicString(&'a str),
GeneralString(&'a str),
Optional(Option<Box<BerObject<'a>>>),
Tagged(Class, Tag, Box<BerObject<'a>>),
Unknown(Any<'a>),
}
Expand description
BER object content
Variants
EndOfContent
EOC (no content)
Boolean(bool)
BOOLEAN: decoded value
Integer(&'a [u8])
INTEGER: raw bytes
Note: the reason to store the raw bytes is that integers have non-finite length in the spec, and also that the raw encoding is also important for some applications.
To extract the number, see the as_u64
, as_u32
, as_bigint
and as_biguint
methods.
BitString(u8, BitStringObject<'a>)
BIT STRING: number of unused bits, and object
OctetString(&'a [u8])
OCTET STRING: slice
Null
NULL (no content)
Enum(u64)
ENUMERATED: decoded enum number
OID(Oid<'a>)
OID
RelativeOID(Oid<'a>)
RELATIVE OID
NumericString(&'a str)
NumericString: decoded string
VisibleString(&'a str)
VisibleString: decoded string
PrintableString(&'a str)
PrintableString: decoded string
IA5String(&'a str)
IA5String: decoded string
UTF8String(&'a str)
UTF8String: decoded string
T61String(&'a str)
T61String: decoded string
VideotexString(&'a str)
VideotexString: decoded string
BmpString(&'a str)
BmpString: decoded string
UniversalString(&'a [u8])
UniversalString: raw object bytes
Sequence(Vec<BerObject<'a>>)
SEQUENCE: list of objects
Set(Vec<BerObject<'a>>)
SET: list of objects
UTCTime(ASN1DateTime)
UTCTime: decoded string
GeneralizedTime(ASN1DateTime)
GeneralizedTime: decoded string
ObjectDescriptor(&'a str)
Object descriptor: decoded string
GraphicString(&'a str)
GraphicString: decoded string
GeneralString(&'a str)
GeneralString: decoded string
Optional(Option<Box<BerObject<'a>>>)
Optional object
Tagged(Class, Tag, Box<BerObject<'a>>)
Tagged object (EXPLICIT): class, tag and content of inner object
Unknown(Any<'a>)
Private or Unknown (for ex. unknown tag) object
Implementations
sourceimpl<'a> BerObjectContent<'a>
impl<'a> BerObjectContent<'a>
sourcepub fn as_i64(&self) -> Result<i64, BerError>
pub fn as_i64(&self) -> Result<i64, BerError>
Attempt to read a signed integer value from this object.
This can fail if the object is not an integer, or if it is too large.
Examples
let der_int = BerObject::from_int_slice(b"\x80");
assert_eq!(
der_int.as_i64(),
Ok(-128)
);
sourcepub fn as_i32(&self) -> Result<i32, BerError>
pub fn as_i32(&self) -> Result<i32, BerError>
Attempt to read a signed integer value from this object.
This can fail if the object is not an integer, or if it is too large.
Examples
let der_int = BerObject::from_int_slice(b"\x80");
assert_eq!(
der_int.as_i32(),
Ok(-128)
);
sourcepub fn as_u64(&self) -> Result<u64, BerError>
pub fn as_u64(&self) -> Result<u64, BerError>
Attempt to read integer value from this object.
This can fail if the object is not an unsigned integer, or if it is too large.
Examples
let der_int = BerObject::from_int_slice(b"\x01\x00\x01");
assert_eq!(
der_int.as_u64(),
Ok(0x10001)
);
sourcepub fn as_u32(&self) -> Result<u32, BerError>
pub fn as_u32(&self) -> Result<u32, BerError>
Attempt to read integer value from this object.
This can fail if the object is not an unsigned integer, or if it is too large.
Examples
let der_int = BerObject::from_obj(BerObjectContent::Integer(b"\x01\x00\x01"));
assert_eq!(
der_int.as_u32(),
Ok(0x10001)
);
pub fn as_bool(&self) -> Result<bool, BerError>
pub fn as_oid(&self) -> Result<&Oid<'a>, BerError>
pub fn as_oid_val(&self) -> Result<Oid<'a>, BerError>
pub fn as_optional(&self) -> Result<Option<&BerObject<'a>>, BerError>
pub fn as_tagged(&self) -> Result<(Class, Tag, &BerObject<'a>), BerError>
pub fn as_bitstring_ref(&self) -> Result<&BitStringObject<'_>, BerError>
pub fn as_bitstring(&self) -> Result<BitStringObject<'a>, BerError>
pub fn as_sequence(&self) -> Result<&Vec<BerObject<'a>>, BerError>
pub fn as_set(&self) -> Result<&Vec<BerObject<'a>>, BerError>
pub fn as_slice(&self) -> Result<&'a [u8], BerError>
pub fn as_str(&self) -> Result<&'a str, BerError>
Trait Implementations
sourceimpl<'a> Clone for BerObjectContent<'a>
impl<'a> Clone for BerObjectContent<'a>
sourcefn clone(&self) -> BerObjectContent<'a>
fn clone(&self) -> BerObjectContent<'a>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<'a> Debug for BerObjectContent<'a>
impl<'a> Debug for BerObjectContent<'a>
sourceimpl<'a> From<BerObjectContent<'a>> for BerObject<'a>
impl<'a> From<BerObjectContent<'a>> for BerObject<'a>
Build a DER object from a BerObjectContent.
sourcefn from(obj: BerObjectContent<'a>) -> BerObject<'a>
fn from(obj: BerObjectContent<'a>) -> BerObject<'a>
Converts to this type from the input type.
sourceimpl<'a> PartialEq<BerObjectContent<'a>> for BerObjectContent<'a>
impl<'a> PartialEq<BerObjectContent<'a>> for BerObjectContent<'a>
sourcefn eq(&self, other: &BerObjectContent<'a>) -> bool
fn eq(&self, other: &BerObjectContent<'a>) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &BerObjectContent<'a>) -> bool
fn ne(&self, other: &BerObjectContent<'a>) -> bool
This method tests for !=
.
impl<'a> StructuralPartialEq for BerObjectContent<'a>
Auto Trait Implementations
impl<'a> RefUnwindSafe for BerObjectContent<'a>
impl<'a> Send for BerObjectContent<'a>
impl<'a> Sync for BerObjectContent<'a>
impl<'a> Unpin for BerObjectContent<'a>
impl<'a> UnwindSafe for BerObjectContent<'a>
Blanket Implementations
sourceimpl<'a, T, E> AsTaggedExplicit<'a, E> for T where
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for T where
T: 'a,
sourceimpl<'a, T, E> AsTaggedImplicit<'a, E> for T where
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for T where
T: 'a,
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more