This commit is contained in:
parent
92a4f9a469
commit
76acc6b7d8
3 changed files with 48 additions and 20 deletions
|
|
@ -18,6 +18,25 @@ type t = {
|
||||||
master_sig: EddsaSignature.t option;
|
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
|
let make
|
||||||
({
|
({
|
||||||
section_name;
|
section_name;
|
||||||
|
|
@ -50,21 +69,20 @@ let make
|
||||||
let pub = pub_of_priv priv in
|
let pub = pub_of_priv priv in
|
||||||
let h_pub = Bin_type.DenominationHash.hash (RsaPublicKey.to_octets pub) in
|
let h_pub = Bin_type.DenominationHash.hash (RsaPublicKey.to_octets pub) in
|
||||||
let sign = RsaSignature.sign ~key:priv in
|
let sign = RsaSignature.sign ~key:priv in
|
||||||
let master_sig = None in
|
Unsigned.
|
||||||
{
|
{
|
||||||
pub;
|
pub;
|
||||||
section_name;
|
section_name;
|
||||||
value;
|
value;
|
||||||
stamp_start;
|
stamp_start;
|
||||||
stamp_expire_withdraw;
|
stamp_expire_withdraw;
|
||||||
stamp_expire_deposit;
|
stamp_expire_deposit;
|
||||||
stamp_expire_legal;
|
stamp_expire_legal;
|
||||||
fee_withdraw;
|
fee_withdraw;
|
||||||
fee_deposit;
|
fee_deposit;
|
||||||
fee_refresh;
|
fee_refresh;
|
||||||
fee_refund;
|
fee_refund;
|
||||||
age_mask= 0;
|
age_mask= 0;
|
||||||
h_pub;
|
h_pub;
|
||||||
sign;
|
sign;
|
||||||
master_sig;
|
}
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ module Secmod_signkey = struct
|
||||||
keys: Signkey.t list;
|
keys: Signkey.t list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let v =
|
let v =
|
||||||
let finally _key = () in
|
let finally _key = () in
|
||||||
Vif.Device.v ~name:"secmod_signkey" ~finally [] @@ fun (_env : env) ->
|
Vif.Device.v ~name:"secmod_signkey" ~finally [] @@ fun (_env : env) ->
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,16 @@ type t = {
|
||||||
master_sig: EddsaSignature.t option;
|
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 () =
|
let generate () =
|
||||||
(* TODO
|
(* TODO
|
||||||
- look if it exists
|
- look if it exists
|
||||||
|
|
@ -24,5 +34,4 @@ let generate () =
|
||||||
let stamp_end = stamp_expire in
|
let stamp_end = stamp_expire in
|
||||||
let priv, pub = Mirage_crypto_ec.Ed25519.generate () in
|
let priv, pub = Mirage_crypto_ec.Ed25519.generate () in
|
||||||
let sign s = EddsaSignature.sign ~key:priv s in
|
let sign s = EddsaSignature.sign ~key:priv s in
|
||||||
let master_sig = None in
|
Unsigned.{ pub; stamp_start; stamp_expire; stamp_end; sign }
|
||||||
{ pub; stamp_start; stamp_expire; stamp_end; master_sig; sign }
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue