From bdd39d62c3dd33ce2e9fa6b989045f93129ef01f Mon Sep 17 00:00:00 2001 From: swrup Date: Mon, 13 Oct 2025 01:55:02 +0200 Subject: [PATCH] --- src/config.ml | 93 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 72 insertions(+), 21 deletions(-) diff --git a/src/config.ml b/src/config.ml index 7502d5b4..4a7753ae 100644 --- a/src/config.ml +++ b/src/config.ml @@ -7,6 +7,27 @@ - default config: use relevant duration, all set to 1 year for now *) +(* TODO unikernel *) +type dir_path +type file_path + +(* TODO *) +(* Values that represent a time duration are represented as a series of one or more NUMBER UNIT pairs, e.g. 60 s, 4 weeks 1 day, 5 years 2 minutes. *) +type duration + +(* TODO + make it Amount.t *) +type amount = string + +(* TODO + still need to parse them and tell that its not supported + some maybe are relevant + idk *) +type not_relevant +type not_implemented +type url = string +type seconds = int + module Global = struct end (* @@ -69,25 +90,6 @@ module type Currency = sig val alt_unit_names : (int * string) list end -(* TODO unikernel *) -type directory - -(* TODO *) -(* Values that represent a time duration are represented as a series of one or more NUMBER UNIT pairs, e.g. 60 s, 4 weeks 1 day, 5 years 2 minutes. *) -type duration - -(* TODO - make it Amount.t *) -type amount = string - -(* TODO - still need to parse them and tell that its not supported - some maybe are relevant - idk *) -type not_relevant -type url = string -type seconds = int - (* The following options are from the “[exchange]” section and used by most exchange tools. *) module type Exchange = sig @@ -261,7 +263,7 @@ module type Exchange = sig - $TERMS_DIR/fr/0.pdf - $TERMS_DIR/fr/0.html - $TERMS_DIR/de/0.txt *) - val terms_dir : directory + val terms_dir : dir_path (* Basename of the file(s) in the ``TERMS_DIR`` with the current terms of service. @@ -276,7 +278,7 @@ module type Exchange = sig (* Works the same as ``TERMS_DIR``, just for the privacy policy. *) - val privacy_dir : directory + val privacy_dir : dir_path (* Works the same as ``TERMS_ETAG``, just for the privacy policy. *) @@ -287,6 +289,55 @@ module type Exchange = sig val enable_kyc : [ `YES | `NO ] 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-]" and the following option: + *) +module type Extansions = sig + (* + If set to ``YES`` the extension ```` 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 + (* -- ********************************** -- *) let currency = `Eur let currency_to_string = function `Eur -> "EUR"