This commit is contained in:
swrup 2026-03-14 19:37:16 +01:00
parent 7f5956d96c
commit da94f53b3a
4 changed files with 9 additions and 13 deletions

View file

@ -92,8 +92,6 @@ module Make (Conn : Pg.CONN) (Fs : Fat.FS) : S = struct
m "found %d active denomination(s)" (List.length l)); m "found %d active denomination(s)" (List.length l));
l l
let denominations_last_change () = Sm_rsa.last_change ()
let make_future_sk (pub, (start, expire)) = let make_future_sk (pub, (start, expire)) =
Logs.debug (fun m -> m "make_future_sk: `%s`" (EddsaPublicKey.to_b32 pub)); Logs.debug (fun m -> m "make_future_sk: `%s`" (EddsaPublicKey.to_b32 pub));
let open Time in let open Time in
@ -289,6 +287,10 @@ module Make (Conn : Pg.CONN) (Fs : Fat.FS) : S = struct
Denomination.verify_denomination_key_validity ~key:Config.master_public_key Denomination.verify_denomination_key_validity ~key:Config.master_public_key
dn dn
(* MIOU *)
let last_change = ref Timestamp.never
let denominations_last_change () = !last_change
let certify_future_signkey Api.SignKeySignature.{ key= pub; master_sig } = let certify_future_signkey Api.SignKeySignature.{ key= pub; master_sig } =
match Sm_eddsa.find_key pub with match Sm_eddsa.find_key pub with
| None -> Error "future signkey not found" | None -> Error "future signkey not found"

View file

@ -22,7 +22,9 @@ let hello req _server _env =
(* TODO nice routes typing (* TODO nice routes typing
to enforce json verification to enforce json verification
to specify handlers responses data and status codes *) to specify handlers responses data and status codes
use Vif.Uri.conv *)
let routes = let routes =
let open Vifu.Uri in let open Vifu.Uri in
let open Vifu.Route in let open Vifu.Route in

View file

@ -7,7 +7,6 @@
list_issue_date: save timestamp of key generation list_issue_date: save timestamp of key generation
key validity period: key validity period:
more checks + do not exceed lookahead more checks + do not exceed lookahead
look into ocaml-diet maybe
refacto common parts with secmod_eddsa *) refacto common parts with secmod_eddsa *)
let src = Logs.Src.create "mte.secmod_eddsa" let src = Logs.Src.create "mte.secmod_eddsa"

View file

@ -52,7 +52,6 @@ type t = {
sm_key_priv: EddsaPrivateKey.t; sm_key_priv: EddsaPrivateKey.t;
sm_pub: EddsaPublicKey.t; sm_pub: EddsaPublicKey.t;
ht: (DenominationHash.t, key) Hashtbl.t; ht: (DenominationHash.t, key) Hashtbl.t;
mutable last_change: Timestamp.t;
} }
let parse_filename = let parse_filename =
@ -206,9 +205,7 @@ let load fs =
let sm_pub = EddsaPrivateKey.pub_of_priv sm_key_priv in let sm_pub = EddsaPrivateKey.pub_of_priv sm_key_priv in
let ht = Hashtbl.create 0xff in let ht = Hashtbl.create 0xff in
let () = List.iter (fun k -> Hashtbl.replace ht k.h_pub k) keys in let () = List.iter (fun k -> Hashtbl.replace ht k.h_pub k) keys in
(* TODO list_issue_date *) Ok (Some { fs; sm_key_priv; sm_pub; ht })
let last_change = Timestamp.never in
Ok (Some { fs; sm_key_priv; sm_pub; ht; last_change })
let init fs = let init fs =
let* opt = load fs in let* opt = load fs in
@ -222,8 +219,7 @@ let init fs =
m "generated secmod key: `%s`" (EddsaPublicKey.to_b32 sm_pub)); m "generated secmod key: `%s`" (EddsaPublicKey.to_b32 sm_pub));
let* () = write_eddsa fs sm_key_fpath sm_key_priv in let* () = write_eddsa fs sm_key_fpath sm_key_priv in
let ht = Hashtbl.create 0xff in let ht = Hashtbl.create 0xff in
let last_change = Timestamp.of_absolute now in Ok { fs; sm_key_priv; sm_pub; ht }
Ok { fs; sm_key_priv; sm_pub; ht; last_change }
in in
let all_keys = List.of_seq @@ Hashtbl.to_seq_values t.ht in let all_keys = List.of_seq @@ Hashtbl.to_seq_values t.ht in
let new_keys_l = let new_keys_l =
@ -262,14 +258,11 @@ module Make (Fs : Fat.FS) = struct
|> list_iter delete |> list_iter delete
let add section_name t1 t2 = let add section_name t1 t2 =
let last_change = Timestamp.of_ptime (Mirage_ptime.now ()) in
let k = gen_key ~section_name t1 t2 in let k = gen_key ~section_name t1 t2 in
let+ () = write_key t.fs k in let+ () = write_key t.fs k in
Hashtbl.replace t.ht k.h_pub k; 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 sm_pub = t.sm_pub
let sign_secmod s = EddsaSignature.sign ~key:t.sm_key_priv s let sign_secmod s = EddsaSignature.sign ~key:t.sm_key_priv s