pub struct Any<'a> {
pub header: Header<'a>,
pub data: &'a [u8],
}
Expand description
The Any
object is not strictly an ASN.1 type, but holds a generic description of any object
that could be encoded.
It contains a header, and either a reference to or owned data for the object content.
Note: this type is only provided in borrowed version (i.e. it cannot own the inner data).
Fields§
§header: Header<'a>
The object header
data: &'a [u8]
The object contents
Implementations§
source§impl<'a> Any<'a>
impl<'a> Any<'a>
sourcepub const fn new(header: Header<'a>, data: &'a [u8]) -> Self
pub const fn new(header: Header<'a>, data: &'a [u8]) -> Self
Create a new Any
from BER/DER header and content
sourcepub const fn from_tag_and_data(tag: Tag, data: &'a [u8]) -> Self
pub const fn from_tag_and_data(tag: Tag, data: &'a [u8]) -> Self
Create a new Any
from a tag, and BER/DER content
sourcepub fn with_class(self, class: Class) -> Self
pub fn with_class(self, class: Class) -> Self
Update the class of the current object
pub fn parse_ber<T>(&self) -> ParseResult<'a, T>where
T: FromBer<'a>,
sourcepub fn from_ber_and_then<F, T, E>(
class: Class,
tag: u32,
bytes: &'a [u8],
op: F,
) -> ParseResult<'a, T, E>
pub fn from_ber_and_then<F, T, E>( class: Class, tag: u32, bytes: &'a [u8], op: F, ) -> ParseResult<'a, T, E>
Parse a BER value and apply the provided parsing function to content
After parsing, the sequence object and header are discarded.
sourcepub fn from_der_and_then<F, T, E>(
class: Class,
tag: u32,
bytes: &'a [u8],
op: F,
) -> ParseResult<'a, T, E>
pub fn from_der_and_then<F, T, E>( class: Class, tag: u32, bytes: &'a [u8], op: F, ) -> ParseResult<'a, T, E>
Parse a DER value and apply the provided parsing function to content
After parsing, the sequence object and header are discarded.
pub fn parse_der<T>(&self) -> ParseResult<'a, T>where
T: FromDer<'a>,
sourcepub fn parse_ber_content<'i>(
i: &'i [u8],
header: &Header<'_>,
) -> ParseResult<'i, &'i [u8]>
pub fn parse_ber_content<'i>( i: &'i [u8], header: &Header<'_>, ) -> ParseResult<'i, &'i [u8]>
Get the content following a BER header
sourcepub fn parse_der_content<'i>(
i: &'i [u8],
header: &Header<'_>,
) -> ParseResult<'i, &'i [u8]>
pub fn parse_der_content<'i>( i: &'i [u8], header: &Header<'_>, ) -> ParseResult<'i, &'i [u8]>
Get the content following a DER header
source§impl<'a> Any<'a>
impl<'a> Any<'a>
sourcepub fn bitstring(self) -> Result<BitString<'a>>
pub fn bitstring(self) -> Result<BitString<'a>>
Attempt to convert object to BitString<'a>
(ASN.1 type: BIT STRING
).
sourcepub fn bmpstring(self) -> Result<BmpString<'a>>
pub fn bmpstring(self) -> Result<BmpString<'a>>
Attempt to convert object to BmpString<'a>
(ASN.1 type: BMPString
).
sourcepub fn boolean(self) -> Result<Boolean>
pub fn boolean(self) -> Result<Boolean>
Attempt to convert object to Boolean
(ASN.1 type: BOOLEAN
).
sourcepub fn embedded_pdv(self) -> Result<EmbeddedPdv<'a>>
pub fn embedded_pdv(self) -> Result<EmbeddedPdv<'a>>
Attempt to convert object to EmbeddedPdv<'a>
(ASN.1 type: EMBEDDED PDV
).
sourcepub fn enumerated(self) -> Result<Enumerated>
pub fn enumerated(self) -> Result<Enumerated>
Attempt to convert object to Enumerated
(ASN.1 type: ENUMERATED
).
sourcepub fn generalizedtime(self) -> Result<GeneralizedTime>
pub fn generalizedtime(self) -> Result<GeneralizedTime>
Attempt to convert object to GeneralizedTime
(ASN.1 type: GeneralizedTime
).
sourcepub fn generalstring(self) -> Result<GeneralString<'a>>
pub fn generalstring(self) -> Result<GeneralString<'a>>
Attempt to convert object to GeneralString<'a>
(ASN.1 type: GeneralString
).
sourcepub fn graphicstring(self) -> Result<GraphicString<'a>>
pub fn graphicstring(self) -> Result<GraphicString<'a>>
Attempt to convert object to GraphicString<'a>
(ASN.1 type: GraphicString
).
sourcepub fn ia5string(self) -> Result<Ia5String<'a>>
pub fn ia5string(self) -> Result<Ia5String<'a>>
Attempt to convert object to Ia5String<'a>
(ASN.1 type: IA5String
).
sourcepub fn integer(self) -> Result<Integer<'a>>
pub fn integer(self) -> Result<Integer<'a>>
Attempt to convert object to Integer<'a>
(ASN.1 type: INTEGER
).
sourcepub fn numericstring(self) -> Result<NumericString<'a>>
pub fn numericstring(self) -> Result<NumericString<'a>>
Attempt to convert object to NumericString<'a>
(ASN.1 type: NumericString
).
sourcepub fn objectdescriptor(self) -> Result<ObjectDescriptor<'a>>
pub fn objectdescriptor(self) -> Result<ObjectDescriptor<'a>>
Attempt to convert object to ObjectDescriptor<'a>
(ASN.1 type: ObjectDescriptor
).
sourcepub fn octetstring(self) -> Result<OctetString<'a>>
pub fn octetstring(self) -> Result<OctetString<'a>>
Attempt to convert object to OctetString<'a>
(ASN.1 type: OCTET STRING
).
sourcepub fn oid(self) -> Result<Oid<'a>>
pub fn oid(self) -> Result<Oid<'a>>
Attempt to convert object to Oid<'a>
(ASN.1 type: OBJECT IDENTIFIER
).
sourcepub fn relative_oid(self) -> Result<Oid<'a>>
pub fn relative_oid(self) -> Result<Oid<'a>>
Attempt to convert object to Oid
(ASN.1 type: RELATIVE-OID
).
sourcepub fn printablestring(self) -> Result<PrintableString<'a>>
pub fn printablestring(self) -> Result<PrintableString<'a>>
Attempt to convert object to PrintableString<'a>
(ASN.1 type: PrintableString
).
sourcepub fn sequence(self) -> Result<Sequence<'a>>
pub fn sequence(self) -> Result<Sequence<'a>>
Attempt to convert object to Sequence<'a>
(ASN.1 type: SEQUENCE
).
sourcepub fn str(self) -> Result<&'a str>
pub fn str(self) -> Result<&'a str>
Attempt to convert object to &'a str
(ASN.1 type: UTF8String
).
sourcepub fn string(self) -> Result<String>
pub fn string(self) -> Result<String>
Attempt to convert object to String
(ASN.1 type: UTF8String
).
sourcepub fn teletexstring(self) -> Result<TeletexString<'a>>
pub fn teletexstring(self) -> Result<TeletexString<'a>>
Attempt to convert object to TeletexString<'a>
(ASN.1 type: TeletexString
).
sourcepub fn universalstring(self) -> Result<UniversalString<'a>>
pub fn universalstring(self) -> Result<UniversalString<'a>>
Attempt to convert object to UniversalString<'a>
(ASN.1 type: UniversalString
).
sourcepub fn utctime(self) -> Result<UtcTime>
pub fn utctime(self) -> Result<UtcTime>
Attempt to convert object to UtcTime
(ASN.1 type: UTCTime
).
sourcepub fn utf8string(self) -> Result<Utf8String<'a>>
pub fn utf8string(self) -> Result<Utf8String<'a>>
Attempt to convert object to Utf8String<'a>
(ASN.1 type: UTF8String
).
sourcepub fn videotexstring(self) -> Result<VideotexString<'a>>
pub fn videotexstring(self) -> Result<VideotexString<'a>>
Attempt to convert object to VideotexString<'a>
(ASN.1 type: VideotexString
).
sourcepub fn visiblestring(self) -> Result<VisibleString<'a>>
pub fn visiblestring(self) -> Result<VisibleString<'a>>
Attempt to convert object to VisibleString<'a>
(ASN.1 type: VisibleString
).
sourcepub fn as_bitstring(&self) -> Result<BitString<'_>>
pub fn as_bitstring(&self) -> Result<BitString<'_>>
Attempt to create ASN.1 type BITSTRING
from this object.
sourcepub fn as_bmpstring(&self) -> Result<BmpString<'_>>
pub fn as_bmpstring(&self) -> Result<BmpString<'_>>
Attempt to create ASN.1 type BMPString
from this object.
sourcepub fn as_boolean(&self) -> Result<Boolean>
pub fn as_boolean(&self) -> Result<Boolean>
Attempt to create ASN.1 type BOOLEAN
from this object.
sourcepub fn as_embedded_pdv(&self) -> Result<EmbeddedPdv<'_>>
pub fn as_embedded_pdv(&self) -> Result<EmbeddedPdv<'_>>
Attempt to create ASN.1 type EMBEDDED PDV
from this object.
sourcepub fn as_endofcontent(&self) -> Result<EndOfContent>
pub fn as_endofcontent(&self) -> Result<EndOfContent>
Attempt to create ASN.1 type END OF CONTENT (not a real ASN.1 type)
from this object.
sourcepub fn as_enumerated(&self) -> Result<Enumerated>
pub fn as_enumerated(&self) -> Result<Enumerated>
Attempt to create ASN.1 type ENUMERATED
from this object.
sourcepub fn as_generalizedtime(&self) -> Result<GeneralizedTime>
pub fn as_generalizedtime(&self) -> Result<GeneralizedTime>
Attempt to create ASN.1 type GeneralizedTime
from this object.
sourcepub fn as_generalstring(&self) -> Result<GeneralString<'_>>
pub fn as_generalstring(&self) -> Result<GeneralString<'_>>
Attempt to create ASN.1 type GeneralString
from this object.
sourcepub fn as_graphicstring(&self) -> Result<GraphicString<'_>>
pub fn as_graphicstring(&self) -> Result<GraphicString<'_>>
Attempt to create ASN.1 type GraphicString
from this object.
sourcepub fn as_ia5string(&self) -> Result<Ia5String<'_>>
pub fn as_ia5string(&self) -> Result<Ia5String<'_>>
Attempt to create ASN.1 type IA5String
from this object.
sourcepub fn as_integer(&self) -> Result<Integer<'_>>
pub fn as_integer(&self) -> Result<Integer<'_>>
Attempt to create ASN.1 type INTEGER
from this object.
sourcepub fn as_numericstring(&self) -> Result<NumericString<'_>>
pub fn as_numericstring(&self) -> Result<NumericString<'_>>
Attempt to create ASN.1 type NumericString
from this object.
sourcepub fn as_objectdescriptor(&self) -> Result<ObjectDescriptor<'_>>
pub fn as_objectdescriptor(&self) -> Result<ObjectDescriptor<'_>>
Attempt to create ASN.1 type OBJECT IDENTIFIER
from this object.
sourcepub fn as_octetstring(&self) -> Result<OctetString<'_>>
pub fn as_octetstring(&self) -> Result<OctetString<'_>>
Attempt to create ASN.1 type OCTET STRING
from this object.
sourcepub fn as_oid(&self) -> Result<Oid<'_>>
pub fn as_oid(&self) -> Result<Oid<'_>>
Attempt to create ASN.1 type OBJECT IDENTIFIER
from this object.
sourcepub fn as_relative_oid(&self) -> Result<Oid<'a>>
pub fn as_relative_oid(&self) -> Result<Oid<'a>>
Attempt to create ASN.1 type RELATIVE-OID
from this object.
sourcepub fn as_printablestring(&self) -> Result<PrintableString<'_>>
pub fn as_printablestring(&self) -> Result<PrintableString<'_>>
Attempt to create ASN.1 type PrintableString
from this object.
sourcepub fn as_sequence(&self) -> Result<Sequence<'_>>
pub fn as_sequence(&self) -> Result<Sequence<'_>>
Attempt to create ASN.1 type SEQUENCE
from this object.
sourcepub fn as_string(&self) -> Result<String>
pub fn as_string(&self) -> Result<String>
Attempt to create ASN.1 type UTF8String
from this object.
sourcepub fn as_teletexstring(&self) -> Result<TeletexString<'_>>
pub fn as_teletexstring(&self) -> Result<TeletexString<'_>>
Attempt to create ASN.1 type TeletexString
from this object.
sourcepub fn as_universalstring(&self) -> Result<UniversalString<'_>>
pub fn as_universalstring(&self) -> Result<UniversalString<'_>>
Attempt to create ASN.1 type UniversalString
from this object.
sourcepub fn as_utctime(&self) -> Result<UtcTime>
pub fn as_utctime(&self) -> Result<UtcTime>
Attempt to create ASN.1 type UTCTime
from this object.
sourcepub fn as_utf8string(&self) -> Result<Utf8String<'_>>
pub fn as_utf8string(&self) -> Result<Utf8String<'_>>
Attempt to create ASN.1 type UTF8String
from this object.
sourcepub fn as_videotexstring(&self) -> Result<VideotexString<'_>>
pub fn as_videotexstring(&self) -> Result<VideotexString<'_>>
Attempt to create ASN.1 type VideotexString
from this object.
sourcepub fn as_visiblestring(&self) -> Result<VisibleString<'_>>
pub fn as_visiblestring(&self) -> Result<VisibleString<'_>>
Attempt to create ASN.1 type VisibleString
from this object.
sourcepub fn as_optional<'b, T>(&'b self) -> Result<Option<T>>
pub fn as_optional<'b, T>(&'b self) -> Result<Option<T>>
Attempt to create an Option<T>
from this object.
sourcepub fn as_tagged_explicit<T, E, const CLASS: u8, const TAG: u32>(
&self,
) -> Result<TaggedValue<T, E, Explicit, CLASS, TAG>, E>
pub fn as_tagged_explicit<T, E, const CLASS: u8, const TAG: u32>( &self, ) -> Result<TaggedValue<T, E, Explicit, CLASS, TAG>, E>
Attempt to create a tagged value (EXPLICIT) from this object.
Trait Implementations§
source§impl CheckDerConstraints for Any<'_>
impl CheckDerConstraints for Any<'_>
source§impl<'a> FromBer<'a> for Any<'a>
impl<'a> FromBer<'a> for Any<'a>
source§fn from_ber(bytes: &'a [u8]) -> ParseResult<'_, Self>
fn from_ber(bytes: &'a [u8]) -> ParseResult<'_, Self>
source§impl<'a> FromDer<'a> for Any<'a>
impl<'a> FromDer<'a> for Any<'a>
source§fn from_der(bytes: &'a [u8]) -> ParseResult<'_, Self>
fn from_der(bytes: &'a [u8]) -> ParseResult<'_, Self>
source§impl<'a> PartialEq for Any<'a>
impl<'a> PartialEq for Any<'a>
source§impl ToDer for Any<'_>
impl ToDer for Any<'_>
source§fn write_der_raw(&self, writer: &mut dyn Write) -> SerializeResult<usize>
fn write_der_raw(&self, writer: &mut dyn Write) -> SerializeResult<usize>
Similar to using to_der
, but uses header without computing length value
source§fn to_der_len(&self) -> Result<usize>
fn to_der_len(&self) -> Result<usize>
source§fn write_der_header(&self, writer: &mut dyn Write) -> SerializeResult<usize>
fn write_der_header(&self, writer: &mut dyn Write) -> SerializeResult<usize>
source§fn write_der_content(&self, writer: &mut dyn Write) -> SerializeResult<usize>
fn write_der_content(&self, writer: &mut dyn Write) -> SerializeResult<usize>
source§fn to_der_vec(&self) -> SerializeResult<Vec<u8>>
fn to_der_vec(&self) -> SerializeResult<Vec<u8>>
Vec<u8>
.source§fn to_der_vec_raw(&self) -> SerializeResult<Vec<u8>>
fn to_der_vec_raw(&self) -> SerializeResult<Vec<u8>>
to_vec
, but uses provided values without changes.
This can generate an invalid encoding for a DER object.source§impl<'a, 'b> TryFrom<&'b Any<'a>> for EmbeddedPdv<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for EmbeddedPdv<'a>
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for EndOfContent
impl<'a, 'b> TryFrom<&'b Any<'a>> for EndOfContent
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for Enumerated
impl<'a, 'b> TryFrom<&'b Any<'a>> for Enumerated
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for GeneralString<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for GeneralString<'a>
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for GeneralizedTime
impl<'a, 'b> TryFrom<&'b Any<'a>> for GeneralizedTime
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for GraphicString<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for GraphicString<'a>
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for NumericString<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for NumericString<'a>
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for ObjectDescriptor<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for ObjectDescriptor<'a>
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for OctetString<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for OctetString<'a>
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for PrintableString<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for PrintableString<'a>
source§impl<'a, 'b, T, E, const CLASS: u8, const TAG: u32> TryFrom<&'b Any<'a>> for TaggedValue<T, E, Explicit, CLASS, TAG>
impl<'a, 'b, T, E, const CLASS: u8, const TAG: u32> TryFrom<&'b Any<'a>> for TaggedValue<T, E, Explicit, CLASS, TAG>
source§impl<'a, 'b, E, T, const CLASS: u8, const TAG: u32> TryFrom<&'b Any<'a>> for TaggedValue<T, E, Implicit, CLASS, TAG>
impl<'a, 'b, E, T, const CLASS: u8, const TAG: u32> TryFrom<&'b Any<'a>> for TaggedValue<T, E, Implicit, CLASS, TAG>
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for TeletexString<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for TeletexString<'a>
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for UniversalString<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for UniversalString<'a>
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for Utf8String<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for Utf8String<'a>
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for VideotexString<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for VideotexString<'a>
source§impl<'a, 'b> TryFrom<&'b Any<'a>> for VisibleString<'a>
impl<'a, 'b> TryFrom<&'b Any<'a>> for VisibleString<'a>
source§impl<'a> TryFrom<Any<'a>> for EmbeddedPdv<'a>
impl<'a> TryFrom<Any<'a>> for EmbeddedPdv<'a>
source§impl<'a> TryFrom<Any<'a>> for EndOfContent
impl<'a> TryFrom<Any<'a>> for EndOfContent
source§impl<'a> TryFrom<Any<'a>> for Enumerated
impl<'a> TryFrom<Any<'a>> for Enumerated
source§impl<'a> TryFrom<Any<'a>> for GeneralString<'a>
impl<'a> TryFrom<Any<'a>> for GeneralString<'a>
source§impl<'a> TryFrom<Any<'a>> for GeneralizedTime
impl<'a> TryFrom<Any<'a>> for GeneralizedTime
source§impl<'a> TryFrom<Any<'a>> for GraphicString<'a>
impl<'a> TryFrom<Any<'a>> for GraphicString<'a>
source§impl<'a> TryFrom<Any<'a>> for NumericString<'a>
impl<'a> TryFrom<Any<'a>> for NumericString<'a>
source§impl<'a> TryFrom<Any<'a>> for ObjectDescriptor<'a>
impl<'a> TryFrom<Any<'a>> for ObjectDescriptor<'a>
source§impl<'a> TryFrom<Any<'a>> for OctetString<'a>
impl<'a> TryFrom<Any<'a>> for OctetString<'a>
source§impl<'a> TryFrom<Any<'a>> for PrintableString<'a>
impl<'a> TryFrom<Any<'a>> for PrintableString<'a>
source§impl<'a, T, E, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, E, Explicit, CLASS, TAG>
impl<'a, T, E, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, E, Explicit, CLASS, TAG>
source§impl<'a, T, E, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, E, Implicit, CLASS, TAG>
impl<'a, T, E, const CLASS: u8, const TAG: u32> TryFrom<Any<'a>> for TaggedValue<T, E, Implicit, CLASS, TAG>
source§impl<'a> TryFrom<Any<'a>> for TeletexString<'a>
impl<'a> TryFrom<Any<'a>> for TeletexString<'a>
source§impl<'a> TryFrom<Any<'a>> for UniversalString<'a>
impl<'a> TryFrom<Any<'a>> for UniversalString<'a>
source§impl<'a> TryFrom<Any<'a>> for Utf8String<'a>
impl<'a> TryFrom<Any<'a>> for Utf8String<'a>
source§impl<'a> TryFrom<Any<'a>> for VideotexString<'a>
impl<'a> TryFrom<Any<'a>> for VideotexString<'a>
source§impl<'a> TryFrom<Any<'a>> for VisibleString<'a>
impl<'a> TryFrom<Any<'a>> for VisibleString<'a>
impl DerAutoDerive for Any<'_>
impl<'a> Eq for Any<'a>
impl<'a> StructuralPartialEq for Any<'a>
Auto Trait Implementations§
impl<'a> Freeze for Any<'a>
impl<'a> RefUnwindSafe for Any<'a>
impl<'a> Send for Any<'a>
impl<'a> Sync for Any<'a>
impl<'a> Unpin for Any<'a>
impl<'a> UnwindSafe for Any<'a>
Blanket Implementations§
source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)