17#ifndef mod_md_md_acme_h
18#define mod_md_md_acme_h
33#define MD_PROTO_ACME "ACME"
35#define MD_AUTHZ_CHA_HTTP_01 "http-01"
36#define MD_AUTHZ_CHA_SNI_01 "tls-sni-01"
38#define MD_ACME_VERSION_UNKNOWN 0x0
39#define MD_ACME_VERSION_1 0x010000
40#define MD_ACME_VERSION_2 0x020000
42#define MD_ACME_VERSION_MAJOR(i) (((i)&0xFF0000) >> 16)
119 const char *revoke_cert;
154 const char *proxy_url,
const char *ca_file);
235 const char *agreement,
const char **
prequired);
ap_vhost_iterate_conn_cb void * baton
apr_pool_t apr_dbd_t apr_dbd_results_t ** res
const char int apr_pool_t * pool
apr_array_header_t ** result
const char * md_acme_acct_url_get(md_acme_t *acme)
apr_status_t md_acme_get_json(struct md_json_t **pjson, md_acme_t *acme, const char *url, 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_req_json_cb(md_acme_t *acme, apr_pool_t *p, const apr_table_t *headers, struct md_json_t *jbody, void *baton)
apr_status_t md_acme_post_fn(md_acme_t *acme, md_acme_req_init_cb *on_init, md_acme_req_json_cb *on_json, md_acme_req_res_cb *on_res, md_acme_req_err_cb *on_err, void *baton)
void md_acme_clear_acct(md_acme_t *acme)
apr_status_t md_acme_use_acct_for_md(md_acme_t *acme, struct md_store_t *store, apr_pool_t *p, const char *acct_id, const md_t *md)
apr_status_t md_acme_req_init_cb(md_acme_req_t *req, void *baton)
apr_status_t md_acme_req_init_fn(md_acme_req_t *req, struct md_json_t *jpayload)
const char * md_acme_acct_id_get(md_acme_t *acme)
apr_status_t md_acme_req_res_cb(md_acme_t *acme, const struct md_http_response_t *res, void *baton)
int md_acme_problem_is_input_related(const char *problem)
apr_status_t md_acme_req_err_cb(md_acme_req_t *req, const struct md_result_t *result, void *baton)
apr_status_t md_acme_acct_deactivate(md_acme_t *acme, apr_pool_t *p)
apr_status_t md_acme_use_acct(md_acme_t *acme, struct md_store_t *store, apr_pool_t *p, const char *acct_id)
apr_status_t md_acme_protos_add(struct apr_hash_t *protos, apr_pool_t *p)
apr_status_t md_acme_POST_new_account(md_acme_t *acme, md_acme_req_init_cb *on_init, md_acme_req_json_cb *on_json, md_acme_req_res_cb *on_res, md_acme_req_err_cb *on_err, void *baton)
apr_status_t md_acme_req_body_init(md_acme_req_t *req, struct md_json_t *payload)
apr_status_t md_acme_GET(md_acme_t *acme, const char *url, md_acme_req_init_cb *on_init, md_acme_req_json_cb *on_json, md_acme_req_res_cb *on_res, md_acme_req_err_cb *on_err, void *baton)
apr_status_t md_acme_check_agreement(md_acme_t *acme, apr_pool_t *p, const char *agreement, const char **prequired)
apr_status_t md_acme_init(apr_pool_t *pool, const char *base_version, int init_ssl)
apr_status_t md_acme_setup(md_acme_t *acme, struct md_result_t *result)
apr_status_t md_acme_POST(md_acme_t *acme, const char *url, md_acme_req_init_cb *on_init, md_acme_req_json_cb *on_json, md_acme_req_res_cb *on_res, md_acme_req_err_cb *on_err, void *baton)
apr_status_t md_acme_new_nonce_fn(md_acme_t *acme)
apr_status_t md_acme_save_acct(md_acme_t *acme, apr_pool_t *p, struct md_store_t *store)
apr_status_t md_acme_create(md_acme_t **pacme, apr_pool_t *p, const char *url, const char *proxy_url, const char *ca_file)
void md_acme_report_result(md_acme_t *acme, apr_status_t rv, struct md_result_t *result)
static void init_ssl(void)
struct md_result_t * result
struct md_json_t * req_json
md_acme_req_err_cb * on_err
md_acme_req_res_cb * on_res
md_acme_req_json_cb * on_json
struct md_json_t * resp_json
struct md_json_t * prot_fields
md_acme_req_init_cb * on_init
struct md_result_t * last
md_acme_post_fn * post_new_account_fn
const char * ca_agreement
md_acme_req_init_fn * req_init_fn
struct md_acme_acct_t * acct
struct md_pkey_t * acct_key
md_acme_new_nonce_fn * new_nonce_fn