~ config
This commit is contained in:
parent
6d07ad6f1c
commit
265bf34b78
1 changed files with 101 additions and 48 deletions
149
src/config.ml
149
src/config.ml
|
|
@ -29,7 +29,20 @@ type not_implemented
|
|||
type url = string
|
||||
type seconds = int
|
||||
|
||||
module Global = struct end
|
||||
(* not relevant for mirage *)
|
||||
module type Global = sig
|
||||
(*
|
||||
The “[PATHS]” section is special in that it contains paths that can be
|
||||
referenced using “$” in other configuration values that specify
|
||||
filenames. For Taler exchange, it commonly contains the following paths:
|
||||
*)
|
||||
|
||||
val taler_home : dir_path
|
||||
val taler_data_home : dir_path
|
||||
val taler_config_home : dir_path
|
||||
val taler_cache_home : dir_path
|
||||
val taler_runtime_dir : dir_path
|
||||
end
|
||||
|
||||
(*
|
||||
Sections with a name of the form “[currency-$NAME]” (where "$NAME" could
|
||||
|
|
@ -292,53 +305,6 @@ end
|
|||
|
||||
(* todo: KYC and AML options *)
|
||||
|
||||
(*
|
||||
The functionality of the exchange can be extended by extensions. Those are
|
||||
shared libraries which implement the extension-API of the exchange and are
|
||||
located under ``$LIBDIR``, starting with prefix ``libtaler_extension_``. Each
|
||||
extension can be enabled by adding a dedicated section
|
||||
"[exchange-extension-<extensionname>]" and the following option:
|
||||
*)
|
||||
module type Extansions = sig
|
||||
(*
|
||||
If set to ``YES`` the extension ``<extensionsname>`` is enabled. Extension-specific
|
||||
options might be set in the same section. *)
|
||||
val enabled : [ (*`YES|*) `NO ]
|
||||
end
|
||||
|
||||
(* The following options must be in the section "[exchange-offline]". *)
|
||||
module type Offline_signing = sig
|
||||
(*
|
||||
Location of the master private key on disk. Only used by tools that
|
||||
can be run offline (as the master key is for offline signing).
|
||||
Mandatory. *)
|
||||
val master_priv_file : file_path
|
||||
|
||||
(* TODO
|
||||
- we need two different file
|
||||
- there is three, not two, crypto helper modules
|
||||
is it only two, because the eddsa one is not comptabilized as a "crypto helper" here? *)
|
||||
(*
|
||||
Where to store the public keys of both crypto helper modules.
|
||||
Used to persist the keys after the first invocation of the tool,
|
||||
so that if they ever change in the future, this is detected and
|
||||
the tool can abort.
|
||||
Mandatory. *)
|
||||
val secm_tofu_file : file_path
|
||||
|
||||
(*
|
||||
Public key of the (RSA) crypto helper module. Optional. If not given,
|
||||
we will rely on TOFU. Note that once TOFU has been established,
|
||||
this option will also be ignored. *)
|
||||
val secm_denom_pubkey : string option
|
||||
|
||||
(*
|
||||
Public key of the (EdDSA) crypto helper module. Optional. If not given,
|
||||
we will rely on TOFU. Note that once TOFU has been established,
|
||||
this option will also be ignored. *)
|
||||
val secm_esign_pubkey : string option
|
||||
end
|
||||
|
||||
(* The following options must be in the section "[taler-exchange-secmod-{rsa|cs|eddsa}]". *)
|
||||
module type Secmod = sig
|
||||
(*
|
||||
|
|
@ -434,6 +400,93 @@ module type Account_secret = sig
|
|||
val token : string
|
||||
end
|
||||
|
||||
(*
|
||||
The following options must be in sections starting with ``"[coin_]"`` and are
|
||||
largely used by **taler-exchange-httpd** to determine the meta data for the
|
||||
denomination keys. Some of the options are used by the
|
||||
**taler-exchange-secmod-rsa** to determine which RSA keys to create (and of
|
||||
what key length). Note that the section names must match, so this part of the
|
||||
configuration MUST be shared between the RSA helper and the exchange.
|
||||
Configuration values MUST NOT be changed in a running setup. Instead, if
|
||||
parameters for a denomination type are to change, a fresh *section name* should
|
||||
be introduced (and the existing section should be deleted).
|
||||
*)
|
||||
module type Coin = sig
|
||||
val value : amount
|
||||
val duration_withdraw : duration
|
||||
val duration_spend : duration
|
||||
val duration_legal : duration
|
||||
val fee_withdraw : amount
|
||||
val fee_deposit : amount
|
||||
val fee_refresh : amount
|
||||
val fee_refund : amount
|
||||
|
||||
(*
|
||||
What cryptosystem should be used? Must be set to either "CS" or "RSA".
|
||||
The respective crypto-helper will then generate the keys for this
|
||||
denomination. *)
|
||||
val cipher : [ `CS | `RSA ]
|
||||
|
||||
(*What is the RSA keysize modulos (in bits)? Only used if "CIPHER=RSA".*)
|
||||
val rsa_keysize : int
|
||||
|
||||
(*
|
||||
For this option to be accepted the extension for age
|
||||
restriction MUST be enabled. *)
|
||||
val age_restricted : [ (*`YES|*) `NO ]
|
||||
end
|
||||
|
||||
(*
|
||||
The functionality of the exchange can be extended by extensions. Those are
|
||||
shared libraries which implement the extension-API of the exchange and are
|
||||
located under ``$LIBDIR``, starting with prefix ``libtaler_extension_``. Each
|
||||
extension can be enabled by adding a dedicated section
|
||||
"[exchange-extension-<extensionname>]" and the following option:
|
||||
*)
|
||||
module type Extensions = sig
|
||||
(*
|
||||
If set to ``YES`` the extension ``<extensionsname>`` is enabled. Extension-specific
|
||||
options might be set in the same section. *)
|
||||
val enabled : [ (*`YES|*) `NO ]
|
||||
end
|
||||
|
||||
(* The following options must be in the section "[exchange-offline]". *)
|
||||
module type Offline_signing = sig
|
||||
(*
|
||||
Location of the master private key on disk. Only used by tools that
|
||||
can be run offline (as the master key is for offline signing).
|
||||
Mandatory. *)
|
||||
val master_priv_file : file_path
|
||||
|
||||
(* TODO
|
||||
- we need two different file
|
||||
- there is three, not two, crypto helper modules
|
||||
is it only two, because the eddsa one is not comptabilized as a "crypto helper" here? *)
|
||||
(*
|
||||
Where to store the public keys of both crypto helper modules.
|
||||
Used to persist the keys after the first invocation of the tool,
|
||||
so that if they ever change in the future, this is detected and
|
||||
the tool can abort.
|
||||
Mandatory. *)
|
||||
val secm_tofu_file : file_path
|
||||
|
||||
(*
|
||||
Public key of the (RSA) crypto helper module. Optional. If not given,
|
||||
we will rely on TOFU. Note that once TOFU has been established,
|
||||
this option will also be ignored. *)
|
||||
val secm_denom_pubkey : string option
|
||||
|
||||
(*
|
||||
Public key of the (EdDSA) crypto helper module. Optional. If not given,
|
||||
we will rely on TOFU. Note that once TOFU has been established,
|
||||
this option will also be ignored. *)
|
||||
val secm_esign_pubkey : string option
|
||||
end
|
||||
|
||||
module type Sanctions_check = sig
|
||||
(* not implemented *)
|
||||
end
|
||||
|
||||
(* -- ********************************** -- *)
|
||||
let currency = `Eur
|
||||
let currency_to_string = function `Eur -> "EUR"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue