summaryrefslogtreecommitdiffstats
path: root/modules/md/md.h
diff options
context:
space:
mode:
authorStefan Eissing <icing@apache.org>2017-09-01 14:11:38 +0200
committerStefan Eissing <icing@apache.org>2017-09-01 14:11:38 +0200
commitc9f60810cf026f000acd77a97eaff31821d018a3 (patch)
tree35b2d5c572b4f8598c3aedbc8551b1f9ade47278 /modules/md/md.h
parentAdding generated files for encrypt.xml (diff)
downloadapache2-c9f60810cf026f000acd77a97eaff31821d018a3.tar.xz
apache2-c9f60810cf026f000acd77a97eaff31821d018a3.zip
On the trunk:
mod_md: v0.8.1 from github, new feats in CHANGES git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1806939 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/md/md.h')
-rw-r--r--modules/md/md.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/modules/md/md.h b/modules/md/md.h
index d1a7b518df..f723309ba5 100644
--- a/modules/md/md.h
+++ b/modules/md/md.h
@@ -25,8 +25,10 @@ struct md_cert_t;
struct md_pkey_t;
struct md_store_t;
struct md_srv_conf_t;
+struct md_pkey_spec_t;
#define MD_TLSSNI01_DNS_SUFFIX ".acme.invalid"
+#define MD_PKEY_RSA_BITS_DEF 2048U
typedef enum {
MD_S_UNKNOWN, /* MD has not been analysed yet */
@@ -34,6 +36,7 @@ typedef enum {
MD_S_COMPLETE, /* MD has all necessary information, can go live */
MD_S_EXPIRED, /* MD is complete, but credentials have expired */
MD_S_ERROR, /* MD data is flawed, unable to be processed as is */
+ MD_S_MISSING, /* MD is missing config information, cannot proceed */
} md_state_t;
typedef enum {
@@ -70,7 +73,9 @@ struct md_t {
int transitive; /* != 0 iff VirtualHost names/aliases are auto-added */
int drive_mode; /* mode of obtaining credentials */
+ struct md_pkey_spec_t *pkey_spec;/* specification for generating new private keys */
int must_staple; /* certificates should set the OCSP Must Staple extension */
+ apr_interval_time_t renew_norm; /* if > 0, normalized cert lifetime */
apr_interval_time_t renew_window;/* time before expiration that starts renewal */
const char *ca_url; /* url of CA certificate service */
@@ -91,6 +96,7 @@ struct md_t {
#define MD_KEY_ACCOUNT "account"
#define MD_KEY_AGREEMENT "agreement"
+#define MD_KEY_BITS "bits"
#define MD_KEY_CA "ca"
#define MD_KEY_CA_URL "ca-url"
#define MD_KEY_CERT "cert"
@@ -112,8 +118,10 @@ struct md_t {
#define MD_KEY_KEYAUTHZ "keyAuthorization"
#define MD_KEY_LOCATION "location"
#define MD_KEY_NAME "name"
+#define MD_KEY_PKEY "privkey"
#define MD_KEY_PROTO "proto"
#define MD_KEY_REGISTRATION "registration"
+#define MD_KEY_RENEW_NORM "renew-norm"
#define MD_KEY_RENEW_WINDOW "renew-window"
#define MD_KEY_RESOURCE "resource"
#define MD_KEY_STATE "state"
@@ -129,7 +137,8 @@ struct md_t {
#define MD_KEY_VERSION "version"
#define MD_FN_MD "md.json"
-#define MD_FN_PKEY "pkey.pem"
+#define MD_FN_PRIVKEY "privkey.pem"
+#define MD_FN_PUBCERT "pubcert.pem"
#define MD_FN_CERT "cert.pem"
#define MD_FN_CHAIN "chain.pem"
#define MD_FN_HTTPD_JSON "httpd.json"
@@ -230,9 +239,9 @@ md_t *md_from_json(struct md_json_t *json, apr_pool_t *p);
typedef struct md_creds_t md_creds_t;
struct md_creds_t {
+ struct md_pkey_t *privkey;
+ struct apr_array_header_t *pubcert; /* complete md_cert* chain */
struct md_cert_t *cert;
- struct md_pkey_t *pkey;
- struct apr_array_header_t *chain; /* list of md_cert* */
int expired;
};