rm database.ml + ~ master_sig param in pg
This commit is contained in:
parent
27a940deed
commit
7162564cad
4 changed files with 25 additions and 41 deletions
|
|
@ -1,32 +0,0 @@
|
||||||
(* TODO
|
|
||||||
- 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 sm_key = Secmod_signkey.get_sm_key secmod_signkey in
|
|
||||||
let res = Pg.activate_signing_key db_conn sm_key in
|
|
||||||
Result.fold ~ok:(on_ok req) ~error:(on_error req) res
|
|
||||||
26
src/pg.ml
26
src/pg.ml
|
|
@ -1,7 +1,11 @@
|
||||||
(* TODO
|
(* TODO
|
||||||
|
|
||||||
how to fix postgres/caqti tuple type?
|
how to fix postgres/caqti tuple type?
|
||||||
try something with OID?
|
try something with OID?
|
||||||
need to add boilerplate in each query for amounts *)
|
need to add boilerplate in each query for amounts
|
||||||
|
|
||||||
|
GNU Taler db-events?
|
||||||
|
it seems caqti/pgx does not support it *)
|
||||||
|
|
||||||
open Crypto
|
open Crypto
|
||||||
|
|
||||||
|
|
@ -101,10 +105,18 @@ let activate_signing_key =
|
||||||
expire_legal, master_sig) VALUES ($1, $2, $3, $4, $5)"
|
expire_legal, master_sig) VALUES ($1, $2, $3, $4, $5)"
|
||||||
in
|
in
|
||||||
fun (module Conn : CONN)
|
fun (module Conn : CONN)
|
||||||
Signkey.{ pub; priv= _; stamp_start; stamp_expire; stamp_end; master_sig }
|
~master_sig
|
||||||
|
Signkey.
|
||||||
|
{
|
||||||
|
pub;
|
||||||
|
priv= _;
|
||||||
|
stamp_start;
|
||||||
|
stamp_expire;
|
||||||
|
stamp_end;
|
||||||
|
master_sig= master_sig_opt;
|
||||||
|
}
|
||||||
->
|
->
|
||||||
(* TODO master_sig *)
|
assert (master_sig_opt = Some master_sig);
|
||||||
let master_sig = master_sig |> Option.get in
|
|
||||||
Conn.exec insert_signkey
|
Conn.exec insert_signkey
|
||||||
(pub, stamp_start, stamp_expire, stamp_end, master_sig)
|
(pub, stamp_start, stamp_expire, stamp_end, master_sig)
|
||||||
|
|
||||||
|
|
@ -136,6 +148,7 @@ let add_denomination_key =
|
||||||
($16,$17), $18)"
|
($16,$17), $18)"
|
||||||
in
|
in
|
||||||
fun (module Conn : CONN)
|
fun (module Conn : CONN)
|
||||||
|
~master_sig
|
||||||
Denomination.
|
Denomination.
|
||||||
{
|
{
|
||||||
pub;
|
pub;
|
||||||
|
|
@ -152,11 +165,10 @@ let add_denomination_key =
|
||||||
fee_refund;
|
fee_refund;
|
||||||
age_mask;
|
age_mask;
|
||||||
h_pub;
|
h_pub;
|
||||||
master_sig;
|
master_sig= master_sig_opt;
|
||||||
}
|
}
|
||||||
->
|
->
|
||||||
(* TODO master_sig *)
|
assert (master_sig_opt = Some master_sig);
|
||||||
let master_sig = master_sig |> Option.get in
|
|
||||||
Conn.exec denomination_insert
|
Conn.exec denomination_insert
|
||||||
( h_pub,
|
( h_pub,
|
||||||
pub,
|
pub,
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,9 @@ let add_master_signatures conn t l =
|
||||||
| None -> Error "secmod_denom failure: denomination hash not found."
|
| None -> Error "secmod_denom failure: denomination hash not found."
|
||||||
| Some denom ->
|
| Some denom ->
|
||||||
let denom = { denom with master_sig= Some master_sig } in
|
let denom = { denom with master_sig= Some master_sig } in
|
||||||
let* () = Pg.add_denomination_key conn denom |> unwrap_err_caqti in
|
let* () =
|
||||||
|
Pg.add_denomination_key conn ~master_sig denom |> unwrap_err_caqti
|
||||||
|
in
|
||||||
Hashtbl.replace t.denom_ht h_denom_pub denom;
|
Hashtbl.replace t.denom_ht h_denom_pub denom;
|
||||||
Ok ())
|
Ok ())
|
||||||
l
|
l
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,9 @@ let add_master_signatures conn t l =
|
||||||
| None -> Error "secmod_signkey failure: public key not found."
|
| None -> Error "secmod_signkey failure: public key not found."
|
||||||
| Some signkey ->
|
| Some signkey ->
|
||||||
let signkey = { signkey with master_sig= Some master_sig } in
|
let signkey = { signkey with master_sig= Some master_sig } in
|
||||||
let* () = Pg.activate_signing_key conn signkey |> unwrap_err_caqti in
|
let* () =
|
||||||
|
Pg.activate_signing_key conn ~master_sig signkey |> unwrap_err_caqti
|
||||||
|
in
|
||||||
Hashtbl.replace t.signkey_ht pub signkey;
|
Hashtbl.replace t.signkey_ht pub signkey;
|
||||||
Ok ())
|
Ok ())
|
||||||
l
|
l
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue