pub struct TlsAlpnSolver {
pub port: Option<u16>,
}Expand description
The TLS-ALPN-01 solver.
Fields§
§port: Option<u16>Optional dedicated listener port. None serves through the caller’s
existing TLS listener and preserves the zero-allocation fast path.
Implementations§
Source§impl TlsAlpnSolver
impl TlsAlpnSolver
Sourcepub const fn new(port: u16) -> Self
pub const fn new(port: u16) -> Self
Construct a solver that serves on a dedicated TLS listener.
Convenience constructor. A solver created with this
method starts its listener lazily when the first challenge is
presented. Use Self::default to serve through the caller’s TLS
resolver instead.
Source§impl TlsAlpnSolver
impl TlsAlpnSolver
Sourcepub fn generate_challenge_cert(
identifier: &str,
key_authorization: &str,
) -> Result<ChallengeCert>
pub fn generate_challenge_cert( identifier: &str, key_authorization: &str, ) -> Result<ChallengeCert>
Generate a challenge certificate for identifier + key authorization
.
§Errors
Error::Issuer on key generation or DER encoding failure.
Trait Implementations§
Source§impl Clone for TlsAlpnSolver
impl Clone for TlsAlpnSolver
impl Copy for TlsAlpnSolver
Source§impl Debug for TlsAlpnSolver
impl Debug for TlsAlpnSolver
Source§impl Default for TlsAlpnSolver
impl Default for TlsAlpnSolver
Source§impl Solver for TlsAlpnSolver
impl Solver for TlsAlpnSolver
Source§fn present<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ct: &'life1 CancellationToken,
chal: &'life2 SolvableChallenge,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn present<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ct: &'life1 CancellationToken,
chal: &'life2 SolvableChallenge,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Publish the challenge answer.
Source§fn cleanup<'life0, 'life1, 'async_trait>(
&'life0 self,
chal: &'life1 SolvableChallenge,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn cleanup<'life0, 'life1, 'async_trait>(
&'life0 self,
chal: &'life1 SolvableChallenge,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Remove the challenge answer. Implementations must complete even if the
surrounding operation is cancelled — do not consult cancellation here.
Source§fn wait<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ct: &'life1 CancellationToken,
_chal: &'life2 SolvableChallenge,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn wait<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ct: &'life1 CancellationToken,
_chal: &'life2 SolvableChallenge,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Wait for propagation; default: nothing to wait for (the ACME client
polls the order).
Auto Trait Implementations§
impl Freeze for TlsAlpnSolver
impl RefUnwindSafe for TlsAlpnSolver
impl Send for TlsAlpnSolver
impl Sync for TlsAlpnSolver
impl Unpin for TlsAlpnSolver
impl UnsafeUnpin for TlsAlpnSolver
impl UnwindSafe for TlsAlpnSolver
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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> ⓘ
Converts
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> ⓘ
Converts
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.