add last_change timestamp to secmod_rsa

This commit is contained in:
swrup 2026-03-03 01:36:12 +01:00
parent 0264a25d91
commit 6bf04144cf
6 changed files with 30 additions and 30 deletions

View file

@ -52,6 +52,7 @@ type t = {
sm_key_priv: EddsaPrivateKey.t;
sm_pub: EddsaPublicKey.t;
ht: (DenominationHash.t, key) Hashtbl.t;
mutable last_change: Timestamp.t;
}
let parse_filename =
@ -198,10 +199,15 @@ let load () =
let sm_pub = EddsaPrivateKey.pub_of_priv sm_key_priv in
let ht = Hashtbl.create 0xff in
let () = List.iter (fun k -> Hashtbl.replace ht k.h_pub k) keys in
Ok (Some { sm_key_priv; sm_pub; ht })
(* TODO list_issue_date
not ideal, not sure what to put here
it would be best to save keys creation time *)
let last_change = Timestamp.never in
Ok (Some { sm_key_priv; sm_pub; ht; last_change })
let init () =
let* opt = load () in
let now = TimeAbsolute.of_ptime (Ptime_clock.now ()) in
let* t =
match opt with
| Some t -> Ok t
@ -211,9 +217,9 @@ let init () =
m "generated secmod key: `%s`" (EddsaPublicKey.to_b32 sm_pub));
let* () = write_eddsa sm_key_fpath sm_key_priv in
let ht = Hashtbl.create 0xff in
Ok { sm_key_priv; sm_pub; ht }
let last_change = Timestamp.of_absolute now in
Ok { sm_key_priv; sm_pub; ht; last_change }
in
let now = TimeAbsolute.of_ptime (Ptime_clock.now ()) in
let all_keys = List.of_seq @@ Hashtbl.to_seq_values t.ht in
let new_keys_l =
List.map
@ -251,11 +257,14 @@ module Make () = struct
|> list_iter delete
let add section_name t1 t2 =
let last_change = Timestamp.of_ptime (Ptime_clock.now ()) in
let k = gen_key ~section_name t1 t2 in
Hashtbl.replace t.ht k.h_pub k;
let+ () = write_key k in
Hashtbl.replace t.ht k.h_pub k;
t.last_change <- last_change;
()
let last_change () = t.last_change
let sm_pub = t.sm_pub
let sign_secmod s = EddsaSignature.sign ~key:t.sm_key_priv s