Enum BerObjectContent
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 [u8]),
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>),
}crypto only.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 [u8])
BmpString: raw object bytes
Note: the string is stored as raw bytes because not all UTF-16 sequences can be stored as
&str. To access content, use String::from_utf16 or String::from_utf16_lossy.
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§
§impl<'a> BerObjectContent<'a>
impl<'a> BerObjectContent<'a>
pub fn as_i64(&self) -> Result<i64, Error>
Available on (crate features rustls or boring or acme) and crate feature rustls only.
pub fn as_i64(&self) -> Result<i64, Error>
rustls or boring or acme) and crate feature rustls only.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)
);pub fn as_i32(&self) -> Result<i32, Error>
Available on (crate features rustls or boring or acme) and crate feature rustls only.
pub fn as_i32(&self) -> Result<i32, Error>
rustls or boring or acme) and crate feature rustls only.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)
);pub fn as_u64(&self) -> Result<u64, Error>
Available on (crate features rustls or boring or acme) and crate feature rustls only.
pub fn as_u64(&self) -> Result<u64, Error>
rustls or boring or acme) and crate feature rustls only.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)
);pub fn as_u32(&self) -> Result<u32, Error>
Available on (crate features rustls or boring or acme) and crate feature rustls only.
pub fn as_u32(&self) -> Result<u32, Error>
rustls or boring or acme) and crate feature rustls only.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, Error>
rustls or boring or acme) and crate feature rustls only.pub fn as_oid(&self) -> Result<&Oid<'a>, Error>
rustls or boring or acme) and crate feature rustls only.pub fn as_oid_val(&self) -> Result<Oid<'a>, Error>
rustls or boring or acme) and crate feature rustls only.pub fn as_optional(&self) -> Result<Option<&BerObject<'a>>, Error>
rustls or boring or acme) and crate feature rustls only.pub fn as_tagged(&self) -> Result<(Class, Tag, &BerObject<'a>), Error>
rustls or boring or acme) and crate feature rustls only.pub fn as_bitstring_ref(&self) -> Result<&BitStringObject<'_>, Error>
rustls or boring or acme) and crate feature rustls only.pub fn as_bitstring(&self) -> Result<BitStringObject<'a>, Error>
rustls or boring or acme) and crate feature rustls only.pub fn as_sequence(&self) -> Result<&Vec<BerObject<'a>>, Error>
rustls or boring or acme) and crate feature rustls only.pub fn as_set(&self) -> Result<&Vec<BerObject<'a>>, Error>
rustls or boring or acme) and crate feature rustls only.pub fn as_slice(&self) -> Result<&'a [u8], Error>
rustls or boring or acme) and crate feature rustls only.pub fn as_str(&self) -> Result<&'a str, Error>
rustls or boring or acme) and crate feature rustls only.Trait Implementations§
§impl<'a> Clone for BerObjectContent<'a>
impl<'a> Clone for BerObjectContent<'a>
§fn clone(&self) -> BerObjectContent<'a>
fn clone(&self) -> BerObjectContent<'a>
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl<'a> Debug for BerObjectContent<'a>
impl<'a> Debug for BerObjectContent<'a>
§impl<'a> From<BerObjectContent<'a>> for BerObject<'a>
Build a DER object from a BerObjectContent.
impl<'a> From<BerObjectContent<'a>> for BerObject<'a>
Build a DER object from a BerObjectContent.
§fn from(obj: BerObjectContent<'a>) -> BerObject<'a>
fn from(obj: BerObjectContent<'a>) -> BerObject<'a>
§impl<'a> PartialEq for BerObjectContent<'a>
impl<'a> PartialEq for BerObjectContent<'a>
impl<'a> StructuralPartialEq for BerObjectContent<'a>
Auto Trait Implementations§
impl<'a> Freeze for BerObjectContent<'a>
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§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more