more /management

This commit is contained in:
swrup 2025-10-18 18:19:09 +02:00
parent 85ddb8194f
commit a5f726ce9d
6 changed files with 68 additions and 14 deletions

View file

@ -1,13 +1,6 @@
(*open Types*)
open Api_types
(* TODO
- take secmod devices as param
- hash stuff
what is the hash algorithm
is it hash'ed then base32'ed in xxxP?
... *)
let mk_future_denom denom_key_signf
({
section_name;
@ -64,7 +57,7 @@ let mk_future_denom denom_key_signf
denom_secmod_sig;
}
let mk_future_sign_key signkey_signf
let mk_future_signkey signkey_signf
({ pub; sign= _; stamp_start; stamp_expire; stamp_end } : Secmod_keys.t) =
let signkey_secmod_sig =
let open Binary_formats in
@ -92,9 +85,37 @@ let mk_future_sign_key signkey_signf
signkey_secmod_sig;
}
let keys req _server _env =
let mk_future_keys_response ~signkey ~online_key ~denom_key ~denominations =
let future_denoms =
(* todo: "only those lacking a master signature" *)
List.map (mk_future_denom denom_key.Secmod_keys.sign) denominations
in
let future_signkeys =
(* todo: "only those lacking a master signature" *)
List.map (mk_future_signkey signkey.Secmod_keys.sign) [ online_key ]
in
let master_pub = Config.Exchange.master_public_key in
let denom_secmod_public_key = denom_key.pub in
let signkey_secmod_public_key = signkey.pub in
FutureKeysResponse.
{
future_denoms;
future_signkeys;
master_pub;
denom_secmod_public_key;
signkey_secmod_public_key;
}
let keys req server _env =
let open Vif.Response in
let open Syntax in
let signkey = Vif.Server.device Devices.signkey server in
let online_key = Vif.Server.device Devices.online_key server in
let denom_key = Vif.Server.device Devices.denom_key server in
let denominations = Vif.Server.device Devices.denominations server in
let _v =
mk_future_keys_response ~signkey ~online_key ~denom_key ~denominations
in
let* () = with_string req "keys .. \n" in
let* () = add ~field:"content-type" "application/json" in
respond `OK