add devices.ml; denom.ml

This commit is contained in:
swrup 2025-10-18 18:09:04 +02:00
parent 4611c1e057
commit 85ddb8194f
5 changed files with 22 additions and 29 deletions

View file

@ -1,6 +1,6 @@
open Types open Types
type rsa_denom = { type t = {
section_name: string; section_name: string;
value: Amount.t; value: Amount.t;
stamp_start: Ptime.t; stamp_start: Ptime.t;
@ -15,9 +15,11 @@ type rsa_denom = {
sign: string -> RsaSignature.t; sign: string -> RsaSignature.t;
} }
let hash_pub _pub = "todo public key converted to Crockford Base32" let hash_pub _pub =
(* todo public key converted to Crockford Base32 *)
assert false
let make_rsa_denom let make
({ ({
section_name; section_name;
value; value;
@ -62,9 +64,3 @@ let make_rsa_denom
pub; pub;
sign; sign;
} }
let denom_device =
let finally _key = () in
Vif.Device.v ~name:"rsa_denom" ~finally [] @@ fun () ->
let rsa_l = List.map make_rsa_denom Config.coins in
rsa_l

11
src/devices.ml Normal file
View file

@ -0,0 +1,11 @@
let signkey = Secmod_keys.make ~name:"signkey"
let exchange_key = Secmod_keys.make ~name:"exchange_key"
let denom_key = Secmod_keys.make ~name:"denom_key"
let denominations =
let finally _key = () in
Vif.Device.v ~name:"denom" ~finally [] @@ fun () ->
let rsa_l = List.map Denom.make Config.coins in
rsa_l
let v = Vif.Devices.[ signkey; exchange_key; denom_key; denominations ]

View file

@ -8,7 +8,7 @@ open Api_types
is it hash'ed then base32'ed in xxxP? is it hash'ed then base32'ed in xxxP?
... *) ... *)
let mk_future_denom denom_secmod_sign_f let mk_future_denom denom_key_signf
({ ({
section_name; section_name;
value; value;
@ -23,7 +23,7 @@ let mk_future_denom denom_secmod_sign_f
pub; pub;
sign= _; sign= _;
} : } :
Secmod_denom.rsa_denom) = Denom.t) =
let denom_pub = let denom_pub =
DenominationKey.Rsa RsaDenominationKey.{ age_mask= 0; rsa_pub= pub } DenominationKey.Rsa RsaDenominationKey.{ age_mask= 0; rsa_pub= pub }
in in
@ -46,7 +46,7 @@ let mk_future_denom denom_secmod_sign_f
DenominationKeyAnnouncementPS. DenominationKeyAnnouncementPS.
{ h_denom_pub; h_section_name; anchor_time; duration_withdraw } { h_denom_pub; h_section_name; anchor_time; duration_withdraw }
in in
ps |> Bin.to_string DenominationKeyAnnouncementPS.bin |> denom_secmod_sign_f ps |> Bin.to_string DenominationKeyAnnouncementPS.bin |> denom_key_signf
in in
FutureDenom. FutureDenom.
{ {
@ -64,7 +64,7 @@ let mk_future_denom denom_secmod_sign_f
denom_secmod_sig; denom_secmod_sig;
} }
let mk_future_sign_key signkey_secmod_sign_f let mk_future_sign_key signkey_signf
({ pub; sign= _; stamp_start; stamp_expire; stamp_end } : Secmod_keys.t) = ({ pub; sign= _; stamp_start; stamp_expire; stamp_end } : Secmod_keys.t) =
let signkey_secmod_sig = let signkey_secmod_sig =
let open Binary_formats in let open Binary_formats in
@ -81,7 +81,7 @@ let mk_future_sign_key signkey_secmod_sign_f
TimeRelativeNBO.{ v } TimeRelativeNBO.{ v }
in in
let ps = SigningKeyAnnouncementPS.{ exchange_pub; anchor_time; duration } in let ps = SigningKeyAnnouncementPS.{ exchange_pub; anchor_time; duration } in
ps |> Bin.to_string SigningKeyAnnouncementPS.bin |> signkey_secmod_sign_f ps |> Bin.to_string SigningKeyAnnouncementPS.bin |> signkey_signf
in in
FutureSignKey. FutureSignKey.
{ {

View file

@ -123,12 +123,5 @@ let () =
in in
Miou_unix.run @@ fun () -> Miou_unix.run @@ fun () ->
let env = () in let env = () in
let devices =
Vif.Devices.
[
Secmod_keys.signkey_device; Secmod_keys.denom_device;
Secmod_denom.denom_device;
]
in
let middlewares = Vif.Middlewares.[] in let middlewares = Vif.Middlewares.[] in
Vif.run ~cfg ~devices ~middlewares routes env Vif.run ~cfg ~devices:Devices.v ~middlewares routes env

View file

@ -28,10 +28,3 @@ let make ~name =
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
{ stamp_start; stamp_expire; stamp_end; pub; sign } { stamp_start; stamp_expire; stamp_end; pub; sign }
let signkey_device = make ~name:"signkey"
(* the actual exchange's signing key
signed by the secmod signkey *)
let exchange_device = make ~name:"exchange"
let denom_device = make ~name:"denom"