This commit is contained in:
swrup 2025-11-23 15:44:24 +01:00
parent 92a4f9a469
commit 76acc6b7d8
3 changed files with 48 additions and 20 deletions

View file

@ -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;
}

View file

@ -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) ->

View file

@ -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 }