Challenge

Struct Challenge 

Source
pub struct Challenge {
    pub type: String,
    pub status: ChallengeStatus,
    pub validated: Option<String>,
    pub error: Option<ServerError>,
    pub token: Option<String>,
    /* private fields */
}
Expand description

A challenge represents a means for the server to validate that an account has control over an identifier (domain).

A challenge can only be acquired through an Authorization.

Fields§

§type: String

The type of challenge encoded in the object.

§status: ChallengeStatus

The status of this challenge.

§validated: Option<String>

The time at which the server validated this challenge.

§error: Option<ServerError>

Error that occurred while the server was validating the challenge, if any.

§token: Option<String>

A random value that uniquely identifies the challenge.

Implementations§

Source§

impl Challenge

Source

pub fn key_authorization(&self) -> Result<Option<String>, Error>

The key authorization is the token that the HTTP01 challenge should be serving for the ACME server to inspect.

Source

pub fn key_authorization_encoded(&self) -> Result<Option<String>, Error>

The encoded key authorization is the token that the DNS01 challenge should be serving for the ACME server to inspect.

Source

pub async fn validate(&self) -> Result<Challenge, Error>

Initiate validation of the challenge by the ACME server.

Before calling this method, you should have set up your challenge token so it is available for the ACME server to check.

In most cases this will not complete immediately. You should always call Challenge::wait_done after this operation to wait until the ACME server has finished validation.

Source

pub async fn poll(&self) -> Result<Challenge, Error>

Update the challenge to match the current server state.

Most users should use Challenge::wait_done.

Source

pub async fn wait_done( self, poll_interval: Duration, attempts: usize, ) -> Result<Challenge, Error>

Wait for the authorization to go into the AuthorizationStatus::Valid or AuthorizationStatus::Invalid state.

Will complete immediately if the authorization is already in one of these states.

Specify the interval at which to poll the acme server, and how often to attempt polling before timing out. Polling should not happen faster than about every 5 seconds to avoid rate limits in the acme server.

Trait Implementations§

Source§

impl Clone for Challenge

Source§

fn clone(&self) -> Challenge

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Challenge

Source§

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

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

impl<'de> Deserialize<'de> for Challenge

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
§

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

§

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

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

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,