Struct Account

Source
pub struct Account<P: Persist> { /* private fields */ }
Expand description

Account with an ACME provider.

Accounts are created using Directory::account and consist of a contact email address and a private key for signing requests to the ACME API.

acme-lib uses elliptic curve P-256 for accessing the account. This does not affect which key algorithms that can be used for the issued certificates.

The advantage of using elliptic curve cryptography is that the signed requests against the ACME lib are kept small and that the public key can be derived from the private.

Implementations§

Source§

impl<P: Persist> Account<P>

Source

pub fn acme_private_key_pem(&self) -> String

Private key for this account.

The key is an elliptic curve private key.

Source

pub fn certificate(&self, primary_name: &str) -> Result<Option<Certificate>>

Get an already issued and downloaded certificate.

Every time a certificate is downloaded, the certificate and corresponding private key are persisted. This method returns an already existing certificate from the local storage (no API calls involved).

This can form the basis for implemeting automatic renewal of certificates where the valid days left are running low.

Source

pub fn new_order( &self, primary_name: &str, alt_names: &[&str], ) -> Result<NewOrder<P>>

Create a new order to issue a certificate for this account.

Each order has a required primary_name (which will be set as the certificates CN) and a variable number of alt_names.

This library doesn’t constrain the number of alt_names, but it is limited by the ACME API provider. Let’s Encrypt sets a max of 100 names per certificate.

Every call creates a new order with the ACME API provider, even when the domain names supplied are exactly the same.

Source

pub fn revoke_certificate( &self, cert: &Certificate, reason: RevocationReason, ) -> Result<()>

Revoke a certificate for the reason given.

This calls the ACME API revoke endpoint, but does not affect the locally persisted certs, the revoked certificate will still be available using certificate.

Source

pub fn api_account(&self) -> &ApiAccount

Access the underlying JSON object for debugging.

Trait Implementations§

Source§

impl<P: Clone + Persist> Clone for Account<P>

Source§

fn clone(&self) -> Account<P>

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<P> Freeze for Account<P>

§

impl<P> RefUnwindSafe for Account<P>
where P: RefUnwindSafe,

§

impl<P> Send for Account<P>
where P: Sync,

§

impl<P> Sync for Account<P>
where P: Sync,

§

impl<P> Unpin for Account<P>

§

impl<P> UnwindSafe for Account<P>
where P: RefUnwindSafe,

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<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> CloneToUninit for T
where T: Clone,

Source§

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
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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

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

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

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

Source§

type Error = Infallible

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

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

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

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T