From f2a18ce880de4fe74a12dc52c0851aea758f95cc Mon Sep 17 00:00:00 2001 From: swrup Date: Sat, 6 Dec 2025 22:29:56 +0100 Subject: [PATCH] --- src/management.ml | 68 ++++++++++++++++++++++++++--------------------- src/mte.ml | 14 +++++----- 2 files changed, 45 insertions(+), 37 deletions(-) diff --git a/src/management.ml b/src/management.ml index 759d64af..6d9d57e6 100644 --- a/src/management.ml +++ b/src/management.ml @@ -92,36 +92,6 @@ let mk_future_keys_response ~(sm_signkey : Secmod_signkey.t) signkey_secmod_public_key; } -let respond_with_plain_text_error ?status e req = - let open Vif.Response in - let open Syntax in - let status = Option.value ~default:`Bad_request status in - let* () = add ~field:"content-type" "text/plain; charset=utf-8" in - let* () = with_string req e in - respond status - -let respond_with_ok_json content req = - let open Vif.Response in - let open Syntax in - let* () = add ~field:"content-type" "application/json" in - let* () = with_string req content in - respond `OK - -let respond_with_res res req = - match res with - | Error err -> respond_with_plain_text_error err req - | Ok content -> respond_with_ok_json content req - -let keys_get req server _env = - let sm_signkey = Vif.Server.device Devices.secmod_signkey server in - let sm_denom = Vif.Server.device Devices.secmod_denom server in - let res = - let v = mk_future_keys_response ~sm_signkey ~sm_denom in - let s = Api.encode_exn Api.FutureKeysResponse.jsont v in - Ok s - in - respond_with_res res req - (* - ** - *) let verify_denom_signature ~sm_denom DenomSignature.{ h_denom_pub; master_sig } @@ -193,7 +163,43 @@ let verify_master_signatures ~sm_signkey ~sm_denom let* () = list_iter (verify_signkey_signature ~sm_signkey) signkey_sigs in Ok () -let store_master_signatures _ = Ok () +(* --- *) + +let store_master_signatures _ = + (* TODO *) + Ok () + +(* --- *) + +let respond_with_plain_text_error ?status e req = + let open Vif.Response in + let open Syntax in + let status = Option.value ~default:`Bad_request status in + let* () = add ~field:"content-type" "text/plain; charset=utf-8" in + let* () = with_string req e in + respond status + +let respond_with_ok_json content req = + let open Vif.Response in + let open Syntax in + let* () = add ~field:"content-type" "application/json" in + let* () = with_string req content in + respond `OK + +let respond_with_res res req = + match res with + | Error err -> respond_with_plain_text_error err req + | Ok content -> respond_with_ok_json content req + +let keys_get req server _env = + let sm_signkey = Vif.Server.device Devices.secmod_signkey server in + let sm_denom = Vif.Server.device Devices.secmod_denom server in + let res = + let v = mk_future_keys_response ~sm_signkey ~sm_denom in + let s = Api.encode_exn Api.FutureKeysResponse.jsont v in + Ok s + in + respond_with_res res req let keys_post req server _env = let sm_signkey = Vif.Server.device Devices.secmod_signkey server in diff --git a/src/mte.ml b/src/mte.ml index 51826093..ac359ea7 100644 --- a/src/mte.ml +++ b/src/mte.ml @@ -25,13 +25,15 @@ let routes = let open Vif.Route in let open Vif.Type in let open Api in - let post jsont = post (json_encoding jsont) in + let get_ path = get (path /?? nil) in + let post path jsont = post (json_encoding jsont) (path /?? nil) in + let v s = rel / s in [ - get (rel /?? nil) --> hello; - get (rel / "terms" /?? nil) --> Static.terms; - get (rel / "privacy" /?? nil) --> Static.privacy; - get (rel / "management" / "keys" /?? nil) --> Management.keys_get; - post MasterSignatures.jsont (rel / "management" / "keys" /?? nil) + get_ rel --> hello; + get_ (v "terms") --> Static.terms; + get_ (v "privacy") --> Static.privacy; + get_ (v "management" / "keys") --> Management.keys_get; + post (v "management" / "keys") MasterSignatures.jsont --> Management.keys_post; ]