1
0
Fork 0
mirror of https://github.com/processone/ejabberd synced 2025-10-03 01:39:35 +02:00

Merge branch 'lets_encrypt_acme_support' of git://github.com/angelhof/ejabberd into angelhof-lets_encrypt_acme_support

Conflicts:
	rebar.config
	src/ejabberd_pkix.erl
This commit is contained in:
Evgeniy Khramtsov 2017-11-15 10:01:30 +03:00
commit b04c6b7d75
9 changed files with 1874 additions and 14 deletions

53
include/ejabberd_acme.hrl Normal file
View file

@ -0,0 +1,53 @@
-record(challenge, {
type = <<"http-01">> :: bitstring(),
status = pending :: pending | valid | invalid,
uri = "" :: url(),
token = <<"">> :: bitstring()
}).
-record(data_acc, {
id :: list(),
ca_url :: url(),
key :: jose_jwk:key()
}).
-type data_acc() :: #data_acc{}.
-record(data_cert, {
domain :: bitstring(),
pem :: pem(),
path :: string()
}).
-type data_cert() :: #data_cert{}.
%%
%% Types
%%
%% Acme configuration
-type acme_config() :: [{ca_url, url()} | {contact, bitstring()}].
%% The main data type that ejabberd_acme keeps
-type acme_data() :: proplist().
%% The list of certificates kept in data
-type data_certs() :: proplist(bitstring(), data_cert()).
%% The certificate saved in pem format
-type pem() :: bitstring().
-type nonce() :: string().
-type url() :: string().
-type proplist() :: [{_, _}].
-type proplist(X,Y) :: [{X,Y}].
-type dirs() :: #{string() => url()}.
-type jws() :: map().
-type handle_resp_fun() :: fun(({ok, proplist(), proplist()}) -> {ok, _, nonce()}).
-type acme_challenge() :: #challenge{}.
%% Options
-type account_opt() :: string().
-type verbose_opt() :: string().
-type domains_opt() :: string().