Skip to main content

Limits

Struct Limits 

Source
pub struct Limits {
    pub permitted: Vec<String>,
    pub excluded: Vec<String>,
    pub constraints_critical: bool,
    pub path_len: Option<u32>,
    pub is_ca: bool,
    pub signs_only_certificates: bool,
}
Expand description

What the encoded certificate says about how far it may reach.

Read with x509-parser rather than with rcgen, deliberately. The point of checking is that the bytes carry the limits, and asking the library that wrote them would only establish that it remembered its own input.

Fields§

§permitted: Vec<String>

Permitted DNS subtrees, in the order the certificate lists them.

§excluded: Vec<String>

Excluded DNS subtrees. Expected to be empty: this design permits, it does not exclude.

§constraints_critical: bool

Whether nameConstraints is marked critical, which RFC 5280 requires and which is what stops a verifier from skipping it.

§path_len: Option<u32>

pathLenConstraint, if basicConstraints gives one. Some(0) means it cannot sign another authority.

§is_ca: bool§signs_only_certificates: bool

Whether keyUsage allows anything beyond signing certificates and CRLs.

Trait Implementations§

Source§

impl Debug for Limits

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Limits

Source§

impl PartialEq for Limits

Source§

fn eq(&self, other: &Limits) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Limits

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.