This commit is contained in:
parent
0a45e7fe95
commit
8c5591a98d
11 changed files with 22 additions and 16 deletions
6
.gitignore
vendored
6
.gitignore
vendored
|
|
@ -1,5 +1,5 @@
|
|||
_build
|
||||
data/secmod/*
|
||||
!data/secmod/.gitkeep
|
||||
|
||||
_taler_exchange_sql
|
||||
assets
|
||||
secrets
|
||||
!secrets/.keep
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
4
src/dune
4
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}))))
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue