This commit is contained in:
swrup 2026-02-17 14:20:29 +01:00
parent 62dddfe81f
commit 6aed7075bc

View file

@ -70,24 +70,19 @@ module Make (Conn : Pg.CONN) = struct
let dn_key_fname section_name =
Fpath.(Config.secrets_dir / Fmt.str "dn_%s" section_name)
let database_find_sk conn fname pub =
let database_find_sk conn pub =
let* opt = Pg.find_signkey conn pub |> unwrap_err_caqti in
match opt with
| None ->
Fmt.error
"load_signkey error, no associated data found in database for \
signkey `%s`."
(Fpath.to_string fname)
Fmt.error "secmod failure: a signkey could not be found in database"
| Some sk_data -> Ok sk_data
let database_find_dn conn ~section_name h_pub =
let database_find_dn conn h_pub =
let* opt = Pg.find_denom conn h_pub |> unwrap_err_caqti in
match opt with
| None ->
Fmt.error
"load_denom error no associated metadata found in database for \
denomination `%s`."
section_name
"secmod failure: a denomination could not be found in database"
| Some dn_data -> Ok dn_data
(* TODO clean up *)
@ -98,13 +93,7 @@ module Make (Conn : Pg.CONN) = struct
let* sm_key = Data_file.read_eddsa sm_key_fname in
let* sk_keys =
let l = List.init 1 sk_key_fname in
let* l =
list_map
(fun fname ->
let+ opt = Data_file.read_eddsa fname in
Option.map (fun priv -> (fname, priv)) opt)
l
in
let* l = list_map (fun fname -> Data_file.read_eddsa fname) l in
match opt_list l with Error () -> error_invalid_state | Ok opt -> Ok opt
in
let* dn_keys =
@ -129,9 +118,9 @@ module Make (Conn : Pg.CONN) = struct
(* sk *)
let* l =
list_map
(fun (fname, priv) ->
(fun priv ->
let pub = EddsaPrivateKey.pub_of_priv priv in
let+ sk = database_find_sk conn fname pub in
let+ sk = database_find_sk conn pub in
((pub, sk), (pub, priv)))
sk_keys
in
@ -154,7 +143,7 @@ module Make (Conn : Pg.CONN) = struct
(* fill dn_section_name_ht *)
Hashtbl.replace dn_section_name_ht h_pub section_name;
let+ dn = database_find_dn conn ~section_name h_pub in
let+ dn = database_find_dn conn h_pub in
((h_pub, dn), (h_pub, priv)))
dn_keys
in
@ -224,17 +213,16 @@ module Make (Conn : Pg.CONN) = struct
age_restricted= _;
} =
assert (cipher = `RSA);
let open Time in
let start = Absolute.of_ptime (Ptime_clock.now ()) in
let start = Time.Absolute.of_ptime (Ptime_clock.now ()) in
let stamp_start = Timestamp.of_absolute start in
let stamp_expire_withdraw =
Timestamp.of_absolute @@ Absolute.add start duration_withdraw
Timestamp.of_absolute @@ Time.Absolute.add start duration_withdraw
in
let stamp_expire_deposit =
Timestamp.of_absolute @@ Absolute.add start duration_spend
Timestamp.of_absolute @@ Time.Absolute.add start duration_spend
in
let stamp_expire_legal =
Timestamp.of_absolute @@ Absolute.add start duration_legal
Timestamp.of_absolute @@ Time.Absolute.add start duration_legal
in
let priv, pub = RsaPrivateKey.generate ~bits:rsa_keysize () in
let open Api in