This commit is contained in:
parent
d0ddee257e
commit
721c1f0740
4 changed files with 16 additions and 12 deletions
|
|
@ -1,3 +1,6 @@
|
|||
(* TODO hash over canonicalized json
|
||||
https://docs.taler.net/design-documents/018-contract-json.html#canonicalized-hashing
|
||||
https://datatracker.ietf.org/doc/html/rfc8785 *)
|
||||
open Digestif
|
||||
|
||||
module type S = sig
|
||||
|
|
|
|||
|
|
@ -325,6 +325,7 @@ module Wire = struct
|
|||
in
|
||||
let h_credit_restrictions = Hash.Cstring.H64.hash "" in
|
||||
let h_debit_restrictions = Hash.Cstring.H64.hash "" in
|
||||
(* - *)
|
||||
let* () =
|
||||
let open Signatures.MasterWireDetails in
|
||||
verify Config.master_public_key master_sig_wire
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ let keys content =
|
|||
else Fmt.error "version incompatible"
|
||||
in
|
||||
|
||||
(* TODO need hash over json..
|
||||
validate ExchangeWireAccount *)
|
||||
(* TODO validate ExchangeWireAccount
|
||||
need hash over json *)
|
||||
let* () =
|
||||
let open AggregateTransferFee in
|
||||
v.wire_fees
|
||||
|
|
@ -51,11 +51,13 @@ let keys content =
|
|||
let opt = List.find_opt (fun sk -> sk.Signkey.pub = v.exchange_pub) sk_l in
|
||||
match opt with
|
||||
| None -> Fmt.error "exchange_pub is not in signkeys list"
|
||||
| Some sk ->
|
||||
(* TODO will need to fake time to validate expired data *)
|
||||
| Some _sk ->
|
||||
(* TODO add a --now option?
|
||||
let now = Timestamp.of_ptime (Ptime_clock.now ()) in
|
||||
if Signkey.is_valid_at ~timestamp:now sk then Ok ()
|
||||
else Fmt.error "exchange_pub is not valid at the current time"
|
||||
*)
|
||||
Ok ()
|
||||
in
|
||||
let* () =
|
||||
let open Signatures.ExchangeKeySet in
|
||||
|
|
|
|||
|
|
@ -348,15 +348,8 @@ let wire_fee ~output ~master_key ~wire_method ~fee_start ~fee_end ~closing_fee
|
|||
let* () = write_file output s in
|
||||
Ok ()
|
||||
|
||||
(* TODO wire
|
||||
hash over json, hash over string option?
|
||||
|
||||
~conversion_url ~credit_restrictions ~debit_restrictions *)
|
||||
let enable_wire ~output ~master_key ~payto_uri ~bank_label ~priority =
|
||||
let* key = read_master_key_file master_key in
|
||||
let ns = Mtime_clock.now_ns () in
|
||||
let validity_start = Timestamp.of_s @@ Int64.unsigned_div ns 1_000_000_000L in
|
||||
let h_wire_details = Hash.FullPaytoHash.hash payto_uri in
|
||||
(* TODO wire *)
|
||||
let conversion_url = None in
|
||||
let credit_restrictions = [] in
|
||||
let debit_restrictions = [] in
|
||||
|
|
@ -365,6 +358,11 @@ let enable_wire ~output ~master_key ~payto_uri ~bank_label ~priority =
|
|||
in
|
||||
let h_credit_restrictions = Hash.Cstring.H64.hash "" in
|
||||
let h_debit_restrictions = Hash.Cstring.H64.hash "" in
|
||||
(* - *)
|
||||
let* key = read_master_key_file master_key in
|
||||
let ns = Mtime_clock.now_ns () in
|
||||
let validity_start = Timestamp.of_s @@ Int64.unsigned_div ns 1_000_000_000L in
|
||||
let h_wire_details = Hash.FullPaytoHash.hash payto_uri in
|
||||
let master_sig_wire =
|
||||
let open Signatures.MasterWireDetails in
|
||||
signf (EddsaSignature.sign ~key)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue