~ routes
This commit is contained in:
parent
fa21837947
commit
16ab1fff2b
2 changed files with 47 additions and 38 deletions
|
|
@ -92,36 +92,6 @@ let mk_future_keys_response ~(sm_signkey : Secmod_signkey.t)
|
||||||
signkey_secmod_public_key;
|
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 }
|
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
|
let* () = list_iter (verify_signkey_signature ~sm_signkey) signkey_sigs in
|
||||||
Ok ()
|
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 keys_post req server _env =
|
||||||
let sm_signkey = Vif.Server.device Devices.secmod_signkey server in
|
let sm_signkey = Vif.Server.device Devices.secmod_signkey server in
|
||||||
|
|
|
||||||
15
src/mte.ml
15
src/mte.ml
|
|
@ -24,14 +24,15 @@ let routes =
|
||||||
let open Vif.Uri in
|
let open Vif.Uri in
|
||||||
let open Vif.Route in
|
let open Vif.Route in
|
||||||
let open Vif.Type in
|
let open Vif.Type in
|
||||||
let open Api in
|
let get_ path = get (path /?? nil) in
|
||||||
let post jsont = post (json_encoding jsont) in
|
let post path jsont = post (json_encoding jsont) (path /?? nil) in
|
||||||
|
let v s = rel / s in
|
||||||
[
|
[
|
||||||
get (rel /?? nil) --> hello;
|
get_ rel --> hello;
|
||||||
get (rel / "terms" /?? nil) --> Static.terms;
|
get_ (v "terms") --> Static.terms;
|
||||||
get (rel / "privacy" /?? nil) --> Static.privacy;
|
get_ (v "privacy") --> Static.privacy;
|
||||||
get (rel / "management" / "keys" /?? nil) --> Management.keys_get;
|
get_ (v "management" / "keys") --> Management.keys_get;
|
||||||
post MasterSignatures.jsont (rel / "management" / "keys" /?? nil)
|
post (v "management" / "keys") Management.keys_post_jsont
|
||||||
--> Management.keys_post;
|
--> Management.keys_post;
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue