This commit is contained in:
swrup 2026-02-20 21:27:21 +01:00
parent e19c6d60c2
commit aaa8771448
3 changed files with 26 additions and 1 deletions

View file

@ -75,7 +75,8 @@ module Keys_post = struct
in
verify_f ~f:Keys.verify_with_master_key master_sig r
let verify keys MasterSignatures.{ denom_sigs; signkey_sigs } =
let verify (module Keys : Keys.S)
MasterSignatures.{ denom_sigs; signkey_sigs } =
let* () = list_iter (verify_denom_signature keys) denom_sigs in
let* () = list_iter (verify_signkey_signature keys) signkey_sigs in
Ok ()

View file

@ -258,6 +258,27 @@ module Make (Conn : Pg.CONN) = struct
Fmt.error "coin `%s` not found in configuration" section_name
in
let future_dn = make_future_dn ~coin ~pub ~start:t1 in
let open Signatures.DenominationKeyValidity in
let r =
R.{
master= Config.master_public_key;
start= future_dn.stamp_start;
expire_withdraw= future_dn.stamp_expire_withdraw;
expire_spend= future_dn.stamp_expire_deposit;
expire_legal= future_dn.stamp_expire_legal;
value= future_dn.value;
fee_withdraw= future_dn.fee_withdraw;
fee_deposit= future_dn.fee_deposit;
fee_refresh= future_dn.fee_refresh;
fee_refund= future_dn.fee_refund;
denom_hash= h_pub;
}
in
verify_f ~f:(EddsaSignature.verify ~key:master_pub) master_sig r
let dn = dn_of_future_dn future_dn h_pub master_sig in
let* () = Pg.insert_denom conn dn |> unwrap_err_caqti in
Ok ()

View file

@ -157,6 +157,9 @@ end) : sig
val sign_f : f:(string -> eddsa_sig) -> r -> t
(* TODO
- just directly verify here?
- type for `theirs` and `ours` signatures? *)
val verify_f :
f:(eddsa_sig -> msg:string -> (unit, string) result) ->
t ->