This commit is contained in:
swrup 2025-12-06 19:18:53 +01:00
parent 325ca30fed
commit e9ee7c55e8
3 changed files with 83 additions and 7 deletions

View file

@ -77,6 +77,74 @@ let make_master_signatures ~master_key
let signkey_sigs = List.map (signkey_signature ~master_key) future_signkeys in
MasterSignatures.{ denom_sigs; signkey_sigs }
let verify_future_key_response _future_key_response =
(* TODO *)
(* - ** - *)
[@@@ocaml.warning "-27"]
let verify_future_signkey ~signkey_secmod_key
FutureSignKey.
{ key; stamp_start; stamp_expire; stamp_end; signkey_secmod_sig } =
let exchange_pub = key in
let anchor_time = stamp_start in
let duration =
Timestamp.diff stamp_start stamp_expire |> Timestamp.of_span_exn
in
let open Api_sig.SigningKeyAnnouncementPS in
let r : r = { exchange_pub; anchor_time; duration } in
let res = verify ~key:signkey_secmod_key signkey_secmod_sig r in
match res with
| Error e -> Fmt.error "SigningKeyAnnouncementPS: %s" e
| Ok () -> Ok ()
let verify_future_denom ~denom_secmod_key
FutureDenom.
{
section_name;
value;
stamp_start;
stamp_expire_withdraw;
stamp_expire_deposit;
stamp_expire_legal;
denom_pub;
fee_withdraw;
fee_deposit;
fee_refresh;
fee_refund;
denom_secmod_sig;
} =
let h_denom_pub =
DenominationHash.hash (DenominationKey.to_octets denom_pub)
in
let h_section_name = Hash_64_cstr.hash section_name in
let anchor_time = stamp_start in
let duration_withdraw =
Timestamp.diff stamp_start stamp_expire_withdraw |> Timestamp.of_span_exn
in
let open Api_sig.DenominationKeyAnnouncementPS in
let r : r = { h_denom_pub; h_section_name; anchor_time; duration_withdraw } in
let res = verify ~key:denom_secmod_key denom_secmod_sig r in
match res with
| Error e -> Fmt.error "DenominationKeyAnnouncementPS: %s" e
| Ok () -> Ok ()
let verify_future_keys_response
FutureKeysResponse.
{
future_denoms;
future_signkeys;
master_pub= _;
denom_secmod_public_key;
signkey_secmod_public_key;
} =
let open Syntax in
let* () =
list_iter
(verify_future_denom ~denom_secmod_key:denom_secmod_public_key)
future_denoms
in
let* () =
list_iter
(verify_future_signkey ~signkey_secmod_key:signkey_secmod_public_key)
future_signkeys
in
Ok ()