+ type for signature

This commit is contained in:
swrup 2025-12-03 16:19:11 +01:00
parent eb56150120
commit 577b2117a4
5 changed files with 217 additions and 201 deletions

View file

@ -1,7 +1,7 @@
open Api
open Devices
let mk_future_denom denom_key_signf
let mk_future_denom ~key
({
pub;
priv= _;
@ -31,8 +31,7 @@ let mk_future_denom denom_key_signf
let duration_withdraw =
Timestamp.diff stamp_start stamp_expire_withdraw |> Timestamp.of_span_exn
in
Sig.sign denom_key_signf
{ h_denom_pub; h_section_name; anchor_time; duration_withdraw }
sign ~key { h_denom_pub; h_section_name; anchor_time; duration_withdraw }
in
FutureDenom.
{
@ -50,7 +49,7 @@ let mk_future_denom denom_key_signf
denom_secmod_sig;
}
let mk_future_signkey signkey_signf
let mk_future_signkey ~key
({ pub; priv= _; stamp_start; stamp_expire; stamp_end; master_sig= _ } :
Signkey.t) =
let signkey_secmod_sig =
@ -60,9 +59,7 @@ let mk_future_signkey signkey_signf
let duration =
Timestamp.diff stamp_start stamp_expire |> Timestamp.of_span_exn
in
{ exchange_pub; anchor_time; duration }
|> Bin.to_string bin
|> signkey_signf
sign ~key { exchange_pub; anchor_time; duration }
in
FutureSignKey.
{ key= pub; stamp_start; stamp_expire; stamp_end; signkey_secmod_sig }
@ -73,20 +70,15 @@ let mk_future_keys_response (secmod_signkey : Secmod_signkey.t)
secmod_denom.keys
|> List.filter (fun k -> Option.is_none k.Denomination.master_sig)
|> List.map (fun denom ->
let signf s =
Crypto.EddsaSignature.sign_as_string
~key:secmod_denom.sm_key.Signkey.priv s
in
mk_future_denom signf denom)
let key = secmod_denom.sm_key.Signkey.priv in
mk_future_denom ~key denom)
in
let future_signkeys =
secmod_signkey.keys
|> List.filter (fun k -> Option.is_none k.Signkey.master_sig)
|> List.map (fun signkey ->
let signf s =
Crypto.EddsaSignature.sign ~key:secmod_denom.sm_key.Signkey.priv s
in
mk_future_signkey signf signkey)
let key = secmod_denom.sm_key.Signkey.priv in
mk_future_signkey ~key signkey)
in
let master_pub = Config.Exchange.master_public_key in
let denom_secmod_public_key = secmod_denom.sm_key.pub in