Struct rocket::mtls::x509::X509CertificateParser
[−]pub struct X509CertificateParser { /* private fields */ }
mtls
only.Expand description
X.509 Certificate parser
This object is a parser builder, and allows specifying parsing options.
Currently, the only option is to control deep parsing of X.509v3 extensions:
a parser can decide to skip deep-parsing to be faster (the structure of extensions is still
parsed, and the contents can be parsed later using the from_der
method from individual extension objects).
This object uses the nom::Parser
trait, which must be imported.
Example
To parse a certificate without parsing extensions:
use x509_parser::certificate::X509CertificateParser;
use x509_parser::nom::Parser;
// create a parser that will not parse extensions
let mut parser = X509CertificateParser::new()
.with_deep_parse_extensions(false);
let res = parser.parse(DER);
match res {
Ok((_rem, x509)) => {
let subject = x509.subject();
let issuer = x509.issuer();
println!("X.509 Subject: {}", subject);
println!("X.509 Issuer: {}", issuer);
},
_ => panic!("x509 parsing failed: {:?}", res),
}
Implementations
impl X509CertificateParser
impl X509CertificateParser
pub const fn new() -> X509CertificateParser
pub const fn with_deep_parse_extensions(
self,
deep_parse_extensions: bool
) -> X509CertificateParser
Trait Implementations
impl Clone for X509CertificateParser
impl Clone for X509CertificateParser
fn clone(&self) -> X509CertificateParser
fn clone(&self) -> X509CertificateParser
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
impl Debug for X509CertificateParser
impl Debug for X509CertificateParser
impl<'a> Parser<&'a [u8], X509Certificate<'a>, X509Error> for X509CertificateParser
impl<'a> Parser<&'a [u8], X509Certificate<'a>, X509Error> for X509CertificateParser
fn parse(
&mut self,
input: &'a [u8]
) -> Result<(&'a [u8], X509Certificate<'a>), Err<X509Error>>
fn parse(
&mut self,
input: &'a [u8]
) -> Result<(&'a [u8], X509Certificate<'a>), Err<X509Error>>
A parser takes in input type, and returns a Result
containing
either the remaining input and the output value, or an error Read more
fn map<G, O2>(self, g: G) -> Map<Self, G, O> where
G: Fn(O) -> O2,
fn map<G, O2>(self, g: G) -> Map<Self, G, O> where
G: Fn(O) -> O2,
Maps a function over the result of a parser
fn flat_map<G, H, O2>(self, g: G) -> FlatMap<Self, G, O> where
G: FnMut(O) -> H,
H: Parser<I, O2, E>,
fn flat_map<G, H, O2>(self, g: G) -> FlatMap<Self, G, O> where
G: FnMut(O) -> H,
H: Parser<I, O2, E>,
Creates a second parser from the output of the first one, then apply over the rest of the input
fn and_then<G, O2>(self, g: G) -> AndThen<Self, G, O> where
G: Parser<O, O2, E>,
fn and_then<G, O2>(self, g: G) -> AndThen<Self, G, O> where
G: Parser<O, O2, E>,
Applies a second parser over the output of the first one
fn and<G, O2>(self, g: G) -> And<Self, G> where
G: Parser<I, O2, E>,
fn and<G, O2>(self, g: G) -> And<Self, G> where
G: Parser<I, O2, E>,
Applies a second parser after the first one, return their results as a tuple
impl PartialEq<X509CertificateParser> for X509CertificateParser
impl PartialEq<X509CertificateParser> for X509CertificateParser
fn eq(&self, other: &X509CertificateParser) -> bool
fn eq(&self, other: &X509CertificateParser) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
fn ne(&self, other: &X509CertificateParser) -> bool
fn ne(&self, other: &X509CertificateParser) -> bool
This method tests for !=
.
impl Copy for X509CertificateParser
impl StructuralPartialEq for X509CertificateParser
Auto Trait Implementations
impl RefUnwindSafe for X509CertificateParser
impl Send for X509CertificateParser
impl Sync for X509CertificateParser
impl Unpin for X509CertificateParser
impl UnwindSafe for X509CertificateParser
Blanket Implementations
impl<'a, T> AsTaggedExplicit<'a> for T where
T: 'a,
impl<'a, T> AsTaggedExplicit<'a> for T where
T: 'a,
fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self>
impl<'a, T> AsTaggedImplicit<'a> for T where
T: 'a,
impl<'a, T> AsTaggedImplicit<'a> 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
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
sourcefn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
Converts self
into a collection.
fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
F: FnMut(T) -> U,
A: Array<Item = U>,
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more