This commit is contained in:
parent
7ac3ae171b
commit
100a527746
2 changed files with 27 additions and 18 deletions
|
|
@ -2,24 +2,32 @@
|
|||
- GNU Taler db-events?
|
||||
it seems caqti/pgx does not support it *)
|
||||
|
||||
let on_ok req () =
|
||||
let open Vif.Response.Syntax in
|
||||
let* () =
|
||||
Vif.Response.add ~field:"content-type" "text/plain; charset= utf-8"
|
||||
in
|
||||
let* () =
|
||||
Vif.Response.with_string req (Fmt.str "activate_signing_key done~~@.")
|
||||
in
|
||||
Vif.Response.respond `OK
|
||||
|
||||
let on_error req err =
|
||||
(* TODO be sure to not leak private data in error messages *)
|
||||
let open Vif.Response.Syntax in
|
||||
let str = Fmt.str "Database error: %a." Caqti_error.pp err in
|
||||
Logs.err (fun m -> m "%s" str);
|
||||
let* () = Vif.Response.with_string req str in
|
||||
Vif.Response.respond `Internal_server_error
|
||||
|
||||
(* TODO master_sig *)
|
||||
let dummy_master_sig =
|
||||
Option.some @@ Crypto.EddsaSignature.of_octets (String.make 64 '\x00')
|
||||
|
||||
let test_activate req server _ =
|
||||
let db_conn = Vif.Server.device Devices.db_connection server in
|
||||
let secmod_signkey = Vif.Server.device Devices.secmod_signkey server in
|
||||
let exchange_public_key = secmod_signkey.sm_key in
|
||||
match Pg.activate_signing_key db_conn exchange_public_key with
|
||||
| Ok () ->
|
||||
let open Vif.Response.Syntax in
|
||||
let* () =
|
||||
Vif.Response.add ~field:"content-type" "text/plain; charset= utf-8"
|
||||
in
|
||||
let* () =
|
||||
Vif.Response.with_string req (Fmt.str "activate_signing_key done~~@.")
|
||||
in
|
||||
Vif.Response.respond `OK
|
||||
| Error err ->
|
||||
(* TODO don't leak private data in error messages *)
|
||||
let open Vif.Response.Syntax in
|
||||
let str = Fmt.str "Database error: %a." Caqti_error.pp err in
|
||||
Logs.err (fun m -> m "%s" str);
|
||||
let* () = Vif.Response.with_string req str in
|
||||
Vif.Response.respond `Internal_server_error
|
||||
let sm_key = secmod_signkey.sm_key in
|
||||
let sm_key = { sm_key with master_sig= dummy_master_sig } in
|
||||
let res = Pg.activate_signing_key db_conn sm_key in
|
||||
Result.fold ~ok:(on_ok req) ~error:(on_error req) res
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue