From 6ed8bd22800500630cf06febcc3c1523e1a24246 Mon Sep 17 00:00:00 2001 From: swrup Date: Sat, 18 Oct 2025 20:12:51 +0200 Subject: [PATCH] --- src/json.ml | 33 +++++++++++++++++++++++++++++++++ src/management.ml | 5 +++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/json.ml b/src/json.ml index 97a965a1..8a925111 100644 --- a/src/json.ml +++ b/src/json.ml @@ -192,3 +192,36 @@ module FutureDenom = struct |> mem "denom_secmod_sig" EddsaSignature.jsont ~enc:denom_secmod_sig |> finish end + +module FutureKeysResponse = struct + open FutureKeysResponse + + let jsont = + let make future_denoms future_signkeys master_pub denom_secmod_public_key + signkey_secmod_public_key = + { + future_denoms; + future_signkeys; + master_pub; + denom_secmod_public_key; + signkey_secmod_public_key; + } + in + let future_denoms t = t.future_denoms in + let future_signkeys t = t.future_signkeys in + let master_pub t = t.master_pub in + let denom_secmod_public_key t = t.denom_secmod_public_key in + let signkey_secmod_public_key t = t.signkey_secmod_public_key in + let open Jsont.Object in + map ~kind:"FutureKeysResponse" make + |> mem "future_denoms" (Jsont.list FutureDenom.jsont) ~enc:future_denoms + |> mem "future_signkeys" + (Jsont.list FutureSignKey.jsont) + ~enc:future_signkeys + |> mem "master_pub" EddsaPublicKey.jsont ~enc:master_pub + |> mem "denom_secmod_public_key" EddsaPublicKey.jsont + ~enc:denom_secmod_public_key + |> mem "signkey_secmod_public_key" EddsaPublicKey.jsont + ~enc:signkey_secmod_public_key + |> finish +end diff --git a/src/management.ml b/src/management.ml index 4b7437cf..c19158b1 100644 --- a/src/management.ml +++ b/src/management.ml @@ -113,9 +113,10 @@ let keys req server _env = 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 = + let v = mk_future_keys_response ~signkey ~online_key ~denom_key ~denominations in - let* () = with_string req "keys .. \n" in + let s = Json.encode_exn Json.FutureKeysResponse.jsont v in + let* () = with_string req s in let* () = add ~field:"content-type" "application/json" in respond `OK