From 2690cc1fe594cfdd0fb9f33bb0a5f6c2ad3dfed5 Mon Sep 17 00:00:00 2001 From: swrup Date: Sat, 6 Dec 2025 22:29:56 +0100 Subject: [PATCH] --- src/management.ml | 70 ++++++++++++++++++++++++++--------------------- src/mte.ml | 15 +++++----- 2 files changed, 47 insertions(+), 38 deletions(-) diff --git a/src/management.ml b/src/management.ml index 759d64af..e56a6a2a 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,45 @@ 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_jsont = MasterSignatures.jsont 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..70868221 100644 --- a/src/mte.ml +++ b/src/mte.ml @@ -24,14 +24,15 @@ let routes = let open Vif.Uri in 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") Management.keys_post_jsont --> Management.keys_post; ]