From 76acc6b7d823ced847f00963dc5d8621a4c7fe26 Mon Sep 17 00:00:00 2001 From: swrup Date: Sun, 23 Nov 2025 15:44:24 +0100 Subject: [PATCH] --- src/denomination.ml | 54 ++++++++++++++++++++++++++++++--------------- src/devices.ml | 1 + src/signkey.ml | 13 +++++++++-- 3 files changed, 48 insertions(+), 20 deletions(-) diff --git a/src/denomination.ml b/src/denomination.ml index 65afdcc2..5194a333 100644 --- a/src/denomination.ml +++ b/src/denomination.ml @@ -18,6 +18,25 @@ type t = { master_sig: EddsaSignature.t option; } +module Unsigned = struct + type t = { + pub: RsaPublicKey.t; + section_name: string; + value: Amount.t; + stamp_start: Ptime.t; + stamp_expire_withdraw: Ptime.t; + stamp_expire_deposit: Ptime.t; + stamp_expire_legal: Ptime.t; + fee_withdraw: Amount.t; + fee_deposit: Amount.t; + fee_refresh: Amount.t; + fee_refund: Amount.t; + age_mask: int; + h_pub: Bin_type.DenominationHash.t; + sign: string -> RsaSignature.t; + } +end + let make ({ section_name; @@ -50,21 +69,20 @@ let make let pub = pub_of_priv priv in let h_pub = Bin_type.DenominationHash.hash (RsaPublicKey.to_octets pub) in let sign = RsaSignature.sign ~key:priv in - let master_sig = None in - { - pub; - section_name; - value; - stamp_start; - stamp_expire_withdraw; - stamp_expire_deposit; - stamp_expire_legal; - fee_withdraw; - fee_deposit; - fee_refresh; - fee_refund; - age_mask= 0; - h_pub; - sign; - master_sig; - } + Unsigned. + { + pub; + section_name; + value; + stamp_start; + stamp_expire_withdraw; + stamp_expire_deposit; + stamp_expire_legal; + fee_withdraw; + fee_deposit; + fee_refresh; + fee_refund; + age_mask= 0; + h_pub; + sign; + } diff --git a/src/devices.ml b/src/devices.ml index 673a8113..d86dc554 100644 --- a/src/devices.ml +++ b/src/devices.ml @@ -11,6 +11,7 @@ module Secmod_signkey = struct keys: Signkey.t list; } + let v = let finally _key = () in Vif.Device.v ~name:"secmod_signkey" ~finally [] @@ fun (_env : env) -> diff --git a/src/signkey.ml b/src/signkey.ml index 01095f00..5714e170 100644 --- a/src/signkey.ml +++ b/src/signkey.ml @@ -10,6 +10,16 @@ type t = { master_sig: EddsaSignature.t option; } +module Unsigned = struct + type t = { + pub: EddsaPublicKey.t; + stamp_start: Ptime.t; + stamp_expire: Ptime.t; + stamp_end: Ptime.t; + sign: string -> EddsaSignature.t; + } +end + let generate () = (* TODO - look if it exists @@ -24,5 +34,4 @@ let generate () = let stamp_end = stamp_expire in let priv, pub = Mirage_crypto_ec.Ed25519.generate () in let sign s = EddsaSignature.sign ~key:priv s in - let master_sig = None in - { pub; stamp_start; stamp_expire; stamp_end; master_sig; sign } + Unsigned.{ pub; stamp_start; stamp_expire; stamp_end; sign }