md_acme_acct.h File Reference
#include "md_store.h"
Include dependency graph for md_acme_acct.h:

Go to the source code of this file.

Data Structures

struct  md_acme_acct_t


#define MD_FN_ACCOUNT   "account.json"
#define MD_FN_ACCT_KEY   "account.pem"
#define MD_ACME_ACCT_PKEY_BITS   3072
#define MD_ACME_ACCT_STAGED   "staged"


typedef struct md_acme_acct_t md_acme_acct_t




struct md_json_tmd_acme_acct_to_json (md_acme_acct_t *acct, apr_pool_t *p)
apr_status_t md_acme_acct_from_json (md_acme_acct_t **pacct, struct md_json_t *json, apr_pool_t *p)
apr_status_t md_acme_acct_update (md_acme_t *acme)
apr_status_t md_acme_acct_validate (md_acme_t *acme, md_store_t *store, apr_pool_t *p)
apr_status_t md_acme_agree (md_acme_t *acme, apr_pool_t *p, const char *tos)
apr_status_t md_acme_check_agreement (md_acme_t *acme, apr_pool_t *p, const char *agreement, const char **prequired)
const char * md_acme_get_agreement (md_acme_t *acme)
apr_status_t md_acme_find_acct (md_acme_t *acme, md_store_t *store)
apr_status_t md_acme_acct_id_for_url (const char **pid, md_store_t *store, md_store_group_t group, const char *url, apr_pool_t *p)
apr_status_t md_acme_acct_register (md_acme_t *acme, md_store_t *store, apr_pool_t *p, apr_array_header_t *contacts, const char *agreement)
apr_status_t md_acme_acct_save (md_store_t *store, apr_pool_t *p, md_acme_t *acme, const char **pid, struct md_acme_acct_t *acct, struct md_pkey_t *acct_key)
apr_status_t md_acme_acct_deactivate (md_acme_t *acme, apr_pool_t *p)
apr_status_t md_acme_acct_load (struct md_acme_acct_t **pacct, struct md_pkey_t **ppkey, md_store_t *store, md_store_group_t group, const char *name, apr_pool_t *p)

Macro Definition Documentation

#define MD_ACME_ACCT_PKEY_BITS   3072
#define MD_ACME_ACCT_STAGED   "staged"
#define MD_FN_ACCOUNT   "account.json"
#define MD_FN_ACCT_KEY   "account.pem"

Typedef Documentation

An ACME account at an ACME server.

Enumeration Type Documentation


Function Documentation

apr_status_t md_acme_acct_deactivate ( md_acme_t acme,
apr_pool_t p 

Deactivate the current account at the ACME server.

apr_status_t md_acme_acct_from_json ( md_acme_acct_t **  pacct,
struct md_json_t json,
apr_pool_t p 
apr_status_t md_acme_acct_id_for_url ( const char **  pid,
md_store_t store,
md_store_group_t  group,
const char *  url,
apr_pool_t p 

Find the account id for a given account url.

apr_status_t md_acme_acct_load ( struct md_acme_acct_t **  pacct,
struct md_pkey_t **  ppkey,
md_store_t store,
md_store_group_t  group,
const char *  name,
apr_pool_t p 
apr_status_t md_acme_acct_register ( md_acme_t acme,
md_store_t store,
apr_pool_t p,
apr_array_header_t contacts,
const char *  agreement 

Create a new account at the ACME server. The new account is the one used by the acme instance afterwards, on success.

apr_status_t md_acme_acct_save ( md_store_t store,
apr_pool_t p,
md_acme_t acme,
const char **  pid,
struct md_acme_acct_t acct,
struct md_pkey_t acct_key 
struct md_json_t* md_acme_acct_to_json ( md_acme_acct_t acct,
apr_pool_t p 

Convert an ACME account form/to JSON.

apr_status_t md_acme_acct_update ( md_acme_t acme)

Update the account from the ACME server.

  • Will update acme->acct structure from server on success
  • Will return error status when request failed or account is not known.
apr_status_t md_acme_acct_validate ( md_acme_t acme,
md_store_t store,
apr_pool_t p 

Update the account and persist changes in the store, if given (and not NULL).

apr_status_t md_acme_agree ( md_acme_t acme,
apr_pool_t p,
const char *  tos 

Agree to the given Terms-of-Service url for the current account.

apr_status_t md_acme_check_agreement ( md_acme_t acme,
apr_pool_t p,
const char *  agreement,
const char **  prequired 

Confirm with the server that the current account agrees to the Terms-of-Service given in the agreement url. If the known agreement is equal to this, nothing is done. If it differs, the account is re-validated in the hope that the server announces the Tos URL it wants. If this is equal to the agreement specified, the server is notified of this. If the server requires a ToS that the account thinks it has already given, it is resend.

If an agreement is required, different from the current one, APR_INCOMPLETE is returned and the agreement url is returned in the parameter.

apr_status_t md_acme_find_acct ( md_acme_t acme,
md_store_t store 

Find an existing account in the local store. On APR_SUCCESS, the acme instance will have a current, validated account to use.

const char* md_acme_get_agreement ( md_acme_t acme)

Get the ToS agreement for current account.