This commit is contained in:
parent
e19c6d60c2
commit
aaa8771448
3 changed files with 26 additions and 1 deletions
|
|
@ -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 ()
|
||||
|
|
|
|||
21
src/keys.ml
21
src/keys.ml
|
|
@ -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 ()
|
||||
|
|
|
|||
|
|
@ -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 ->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue