From fbe72cb3560471392c060776df07f594b5dee14f Mon Sep 17 00:00:00 2001 From: swrup Date: Tue, 10 Feb 2026 11:59:51 +0100 Subject: [PATCH] mv data/ default/ --- .gitignore | 6 ++-- .../default.config => default/assets/mte.conf | 0 {data => default}/assets/privacy/en/0.md | 0 {data => default}/assets/privacy/en/0.txt | 0 {data => default}/assets/terms/en/0.md | 0 {data => default}/assets/terms/en/0.txt | 0 {data => default}/master_offline_private_key | Bin data/secmod/.gitkeep => secrets/.keep | 0 src/config.ml | 8 +++-- src/dune | 4 +-- src/secmod.ml | 20 ++++++++----- test/offline_management.sh | 6 +++- tools/offline.ml | 28 +++++------------- 13 files changed, 35 insertions(+), 37 deletions(-) rename data/assets/default.config => default/assets/mte.conf (100%) rename {data => default}/assets/privacy/en/0.md (100%) rename {data => default}/assets/privacy/en/0.txt (100%) rename {data => default}/assets/terms/en/0.md (100%) rename {data => default}/assets/terms/en/0.txt (100%) rename {data => default}/master_offline_private_key (100%) rename data/secmod/.gitkeep => secrets/.keep (100%) diff --git a/.gitignore b/.gitignore index 39665c11..7aeab444 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ _build -data/secmod/* -!data/secmod/.gitkeep - _taler_exchange_sql +assets +secrets +!secrets/.keep diff --git a/data/assets/default.config b/default/assets/mte.conf similarity index 100% rename from data/assets/default.config rename to default/assets/mte.conf diff --git a/data/assets/privacy/en/0.md b/default/assets/privacy/en/0.md similarity index 100% rename from data/assets/privacy/en/0.md rename to default/assets/privacy/en/0.md diff --git a/data/assets/privacy/en/0.txt b/default/assets/privacy/en/0.txt similarity index 100% rename from data/assets/privacy/en/0.txt rename to default/assets/privacy/en/0.txt diff --git a/data/assets/terms/en/0.md b/default/assets/terms/en/0.md similarity index 100% rename from data/assets/terms/en/0.md rename to default/assets/terms/en/0.md diff --git a/data/assets/terms/en/0.txt b/default/assets/terms/en/0.txt similarity index 100% rename from data/assets/terms/en/0.txt rename to default/assets/terms/en/0.txt diff --git a/data/master_offline_private_key b/default/master_offline_private_key similarity index 100% rename from data/master_offline_private_key rename to default/master_offline_private_key diff --git a/data/secmod/.gitkeep b/secrets/.keep similarity index 100% rename from data/secmod/.gitkeep rename to secrets/.keep diff --git a/src/config.ml b/src/config.ml index 775e25c5..d6222c6b 100644 --- a/src/config.ml +++ b/src/config.ml @@ -1,9 +1,11 @@ open Parse_config +let config_filename = "mte.conf" +let secrets_dir = Fpath.v "secrets" + let config_data = - let path = Fpath.to_string (Fpath.v "default.config") in - match Assets_crunch.read path with - | None -> fail "static file not found: `%s`" path + match Assets_crunch.read config_filename with + | None -> fail "static file not found: `%s`" config_filename | Some data -> let v = Config_section.parse data in v diff --git a/src/dune b/src/dune index e9b61c38..a9322eed 100644 --- a/src/dune +++ b/src/dune @@ -37,8 +37,8 @@ (rule (target assets_crunch.ml) (deps - (source_tree ../data/assets/)) + (source_tree ../assets)) (action (with-stdout-to %{null} - (run ocaml-crunch -m plain ../data/assets -o %{target})))) + (run ocaml-crunch -m plain ../assets -o %{target})))) diff --git a/src/secmod.ml b/src/secmod.ml index ed74310f..528db20d 100644 --- a/src/secmod.ml +++ b/src/secmod.ml @@ -74,8 +74,6 @@ module Make (Conn : Pg.CONN) = struct dn_section_name_ht: (denomination_hash, string) Hashtbl.t; } - let dir = Fpath.(v "data" / "secmod") - let db_lookup_signkey_data conn fname pub = let* opt = Pg.find_signkey conn pub |> unwrap_err_caqti in match opt with @@ -112,9 +110,13 @@ module Make (Conn : Pg.CONN) = struct let error_invalid_state = Fmt.error "secmod load error: invalid store state." in - let* sm_key_priv = Data_file.read_eddsa Fpath.(dir / "sk_sm") in + let* sm_key_priv = + Data_file.read_eddsa Fpath.(Config.secrets_dir / "sk_sm") + in let* signkeys = - let l = List.init 1 (fun i -> Fpath.(dir / Fmt.str "sk_%d" i)) in + let l = + List.init 1 (fun i -> Fpath.(Config.secrets_dir / Fmt.str "sk_%d" i)) + in let* l = list_map (fun fname -> load_signkey conn fname) l in match opt_list l with Error () -> error_invalid_state | Ok opt -> Ok opt in @@ -125,7 +127,7 @@ module Make (Conn : Pg.CONN) = struct list_map (fun coin -> let section_name = coin.section_name in - let fname = Fpath.(dir / section_name) in + let fname = Fpath.(Config.secrets_dir / section_name) in let* opt = Data_file.read_rsa fname in match opt with | None -> Ok None @@ -378,12 +380,14 @@ module Make (Conn : Pg.CONN) = struct let store () = Miou.Mutex.protect t.lock @@ fun () -> - let* () = Data_file.write_eddsa Fpath.(dir / "sk_sm") t.sm_key_priv in + let* () = + Data_file.write_eddsa Fpath.(Config.secrets_dir / "sk_sm") t.sm_key_priv + in let* () = Hashtbl.to_seq_values t.sk_ht |> List.of_seq |> List.mapi (fun i (key : signkey) -> - let fname = Fpath.(dir / Fmt.str "sk_%d" i) in + let fname = Fpath.(Config.secrets_dir / Fmt.str "sk_%d" i) in (fname, key.priv)) |> list_iter (fun (fname, key) -> Data_file.write_eddsa fname key) in @@ -397,7 +401,7 @@ module Make (Conn : Pg.CONN) = struct | None -> Error "invalid state, section_name not found" | Some s -> Ok s in - let fname = Fpath.(dir / section_name) in + let fname = Fpath.(Config.secrets_dir / section_name) in (fname, key.priv)) in list_iter (fun (fname, key) -> Data_file.write_rsa fname key) l diff --git a/test/offline_management.sh b/test/offline_management.sh index 058093fd..01be21e0 100755 --- a/test/offline_management.sh +++ b/test/offline_management.sh @@ -6,13 +6,15 @@ a="tmp_a.json" b="tmp_b.json" auditor_pub=$(<"./test/auditor_public_key") +master_key="./default/master_offline_private_key" zero_euro="EUR:0.0" dune exec offline -- download --output $a -dune exec offline -- sign --input $a --output $b +dune exec offline -- sign --master_key $master_key --input $a --output $b dune exec offline -- upload --input $b --url "/management/keys" dune exec offline -- enable-auditor \ +--master_key $master_key \ --output $b \ --auditor_url "auditor.example.com" \ --auditor_name "auditor example" \ @@ -21,6 +23,7 @@ dune exec offline -- enable-auditor \ dune exec offline -- upload --input $b --url "/management/auditors" dune exec offline -- wire-fee \ +--master_key $master_key \ --output $b \ --wire_method "xxx" \ --fee_start 0 \ @@ -30,6 +33,7 @@ dune exec offline -- wire-fee \ dune exec offline -- upload --input $b --url "/management/wire-fee" dune exec offline -- global-fees \ +--master_key $master_key \ --output $b \ --start_date 0 \ --end_date 99999999 \ diff --git a/tools/offline.ml b/tools/offline.ml index f40664fd..9c94a61e 100644 --- a/tools/offline.ml +++ b/tools/offline.ml @@ -1,4 +1,7 @@ (* TODO + change download_cmd/upload_cmd + change arguments: '_' -> '-' + all management operations: /management/wire /management/wire/disable @@ -65,18 +68,9 @@ module Arg = struct Arg.Conv.make ~docv:"eddsa public key argument" ~parser ~pp () end -let default_master_offline_key_file = "data/master_offline_private_key" -(* -let default_response_file = "response.json" -let default_request_file = "request.json" -*) - let master_key = let doc = "Master offline Eddsa private key file." in - Arg.( - value - & opt file default_master_offline_key_file - & info [ "master_key_file" ] ~doc) + Arg.(required & opt (some file) None & info [ "master_key" ] ~doc) let input = let doc = "input file" in @@ -94,10 +88,7 @@ let setup_cmd = let doc = "Generate offline master keys" in let output = let doc = "output file" in - Arg.( - value - & opt filepath default_master_offline_key_file - & info [ "o"; "output" ] ~doc) + Arg.(required & opt (some filepath) None & info [ "o"; "output" ] ~doc) in Cmd.make (Cmd.info "setup" ~doc) @@ @@ -105,17 +96,14 @@ let setup_cmd = setup ~output let download_cmd = - let doc = "GET /management/keys/" in - let man = - [ `S Manpage.s_description; `P "$(cmd) download /management/keys." ] - in - Cmd.make (Cmd.info "download" ~doc ~man) + let doc = "GET" in + Cmd.make (Cmd.info "download" ~doc) @@ let+ output = output in download ~output let upload_cmd = - let doc = "POST input.json data to url (default /management/keys)" in + let doc = "POST" in Cmd.make (Cmd.info "upload" ~doc) @@ let+ input = input and+ url = url in