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
|
in
|
||||||
verify_f ~f:Keys.verify_with_master_key master_sig r
|
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_denom_signature keys) denom_sigs in
|
||||||
let* () = list_iter (verify_signkey_signature keys) signkey_sigs in
|
let* () = list_iter (verify_signkey_signature keys) signkey_sigs in
|
||||||
Ok ()
|
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
|
Fmt.error "coin `%s` not found in configuration" section_name
|
||||||
in
|
in
|
||||||
let future_dn = make_future_dn ~coin ~pub ~start:t1 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 dn = dn_of_future_dn future_dn h_pub master_sig in
|
||||||
let* () = Pg.insert_denom conn dn |> unwrap_err_caqti in
|
let* () = Pg.insert_denom conn dn |> unwrap_err_caqti in
|
||||||
Ok ()
|
Ok ()
|
||||||
|
|
|
||||||
|
|
@ -157,6 +157,9 @@ end) : sig
|
||||||
|
|
||||||
val sign_f : f:(string -> eddsa_sig) -> r -> t
|
val sign_f : f:(string -> eddsa_sig) -> r -> t
|
||||||
|
|
||||||
|
(* TODO
|
||||||
|
- just directly verify here?
|
||||||
|
- type for `theirs` and `ours` signatures? *)
|
||||||
val verify_f :
|
val verify_f :
|
||||||
f:(eddsa_sig -> msg:string -> (unit, string) result) ->
|
f:(eddsa_sig -> msg:string -> (unit, string) result) ->
|
||||||
t ->
|
t ->
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue