add last_change timestamp to secmod_rsa
This commit is contained in:
parent
0526675e52
commit
6fb33ee8f2
6 changed files with 30 additions and 30 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue