This commit is contained in:
swrup 2025-12-16 15:12:12 +01:00
parent d2282cd135
commit c3c1956308
3 changed files with 11 additions and 9 deletions

View file

@ -107,9 +107,7 @@ module Keys_post = struct
let verify_denom_signature ~sm DenomSignature.{ h_denom_pub; master_sig } = let verify_denom_signature ~sm DenomSignature.{ h_denom_pub; master_sig } =
let denom_hash = HashCode.to_denomination_hash h_denom_pub in let denom_hash = HashCode.to_denomination_hash h_denom_pub in
let* denom = let* denom =
Secmod.get_denoms sm match Secmod.find_denom_data sm denom_hash with
|> List.find_opt (fun (denom : Denom_data.t) -> denom.h_pub = denom_hash)
|> function
| None -> | None ->
Fmt.error Fmt.error
"404 not found, One of the keys for which a signature was provided \ "404 not found, One of the keys for which a signature was provided \
@ -135,9 +133,7 @@ module Keys_post = struct
let verify_signkey_signature ~sm SignKeySignature.{ key; master_sig } = let verify_signkey_signature ~sm SignKeySignature.{ key; master_sig } =
let* signkey = let* signkey =
Secmod.get_signkeys sm match Secmod.find_signkey_data sm key with
|> List.find_opt (fun (signkey : Signkey_data.t) -> signkey.pub = key)
|> function
| None -> | None ->
Fmt.error Fmt.error
"404 not found, One of the keys for which a signature was provided \ "404 not found, One of the keys for which a signature was provided \

View file

@ -48,7 +48,6 @@ let verify_with_signkey t ~pub s ~msg =
| None -> Error "secmod failure: public key not found." | None -> Error "secmod failure: public key not found."
| Some signkey -> EddsaSignature.verify ~key:signkey.pub s ~msg | Some signkey -> EddsaSignature.verify ~key:signkey.pub s ~msg
let get_sm_key_priv t = t.sm_key_priv
let get_sm_key_pub t = t.sm_key_pub let get_sm_key_pub t = t.sm_key_pub
let get_signkeys t = let get_signkeys t =
@ -59,6 +58,12 @@ let get_denoms t =
Miou.Mutex.protect t.lock @@ fun () -> Miou.Mutex.protect t.lock @@ fun () ->
Hashtbl.to_seq_values t.dn_ht |> List.of_seq Hashtbl.to_seq_values t.dn_ht |> List.of_seq
let find_signkey_data t pub =
Miou.Mutex.protect t.lock @@ fun () -> Hashtbl.find_opt t.sk_ht pub
let find_denom_data t h_denom =
Miou.Mutex.protect t.lock @@ fun () -> Hashtbl.find_opt t.dn_ht h_denom
let add_signkey_master_signatures conn t l = let add_signkey_master_signatures conn t l =
Miou.Mutex.protect t.lock @@ fun () -> Miou.Mutex.protect t.lock @@ fun () ->
list_iter list_iter

View file

@ -10,13 +10,14 @@ val verify_with_sm_key : t -> eddsa_sig -> msg:string -> (unit, string) result
val verify_with_signkey : val verify_with_signkey :
t -> pub:eddsa_pub -> eddsa_sig -> msg:string -> (unit, string) result t -> pub:eddsa_pub -> eddsa_sig -> msg:string -> (unit, string) result
val get_sm_key_priv : t -> eddsa_priv
val get_sm_key_pub : t -> eddsa_pub val get_sm_key_pub : t -> eddsa_pub
val get_signkeys : t -> Signkey_data.t list val get_signkeys : t -> Signkey_data.t list
val get_denoms : t -> Denom_data.t list val get_denoms : t -> Denom_data.t list
val init : (module Pg.CONN) -> t val find_signkey_data : t -> eddsa_pub -> Signkey_data.t option
val find_denom_data : t -> denomination_hash -> Denom_data.t option
(* - management operations - *) (* - management operations - *)
val init : (module Pg.CONN) -> t
val add_signkey_master_signatures : val add_signkey_master_signatures :
(module Pg.CONN) -> (module Pg.CONN) ->