diff --git a/tools/offline_bin.ml b/tools/offline_bin.ml index 1919706d..ee9b4201 100644 --- a/tools/offline_bin.ml +++ b/tools/offline_bin.ml @@ -2,6 +2,47 @@ open Crypto open Bin_type open Api +module Verify_sigs = struct + let future_denom + 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 octets = DenominationKey.to_octets denom_pub in + let h_denom_pub = HashCode.hash octets in + let master_sig = + let open Bin_signature.DenominationKeyValidityPS in + let master = EddsaPrivateKey.(pub_of_priv master_key) in + let denom_hash = DenominationHash.hash octets in + { + master; + start= stamp_start; + expire_withdraw= stamp_expire_withdraw; + expire_spend= stamp_expire_deposit; + expire_legal= stamp_expire_legal; + value; + fee_withdraw; + fee_deposit; + fee_refresh; + denom_hash; + } + |> Bin.to_string bin + |> EddsaSignature.sign ~key:master_key + in + DenomSignature.{ h_denom_pub; master_sig } +end + let denom_signature ~master_key FutureDenom. {