+ validate denominations
This commit is contained in:
parent
61095d77a7
commit
eebeed5888
1 changed files with 58 additions and 2 deletions
|
|
@ -1,5 +1,4 @@
|
||||||
open Syntax
|
open Syntax
|
||||||
(*open Crypto*)
|
|
||||||
|
|
||||||
let keys content =
|
let keys content =
|
||||||
let open Api in
|
let open Api in
|
||||||
|
|
@ -74,8 +73,65 @@ let keys content =
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
|
|
||||||
(* validate denominations *)
|
let last_issue_date = ref Timestamp.zero in
|
||||||
|
let* () =
|
||||||
|
(* TODO parse CS *)
|
||||||
|
v.denominations
|
||||||
|
|> list_iter
|
||||||
|
(fun
|
||||||
|
(DenomGroup.Rsa
|
||||||
|
RsaDenomGroup.
|
||||||
|
{
|
||||||
|
denoms;
|
||||||
|
value;
|
||||||
|
fee_withdraw;
|
||||||
|
fee_deposit;
|
||||||
|
fee_refresh;
|
||||||
|
fee_refund;
|
||||||
|
})
|
||||||
|
->
|
||||||
|
let open RsaDenom in
|
||||||
|
denoms
|
||||||
|
|> list_iter
|
||||||
|
(fun
|
||||||
|
{
|
||||||
|
rsa_pub;
|
||||||
|
master_sig;
|
||||||
|
stamp_start;
|
||||||
|
stamp_expire_withdraw;
|
||||||
|
stamp_expire_deposit;
|
||||||
|
stamp_expire_legal;
|
||||||
|
lost= _;
|
||||||
|
}
|
||||||
|
->
|
||||||
|
last_issue_date := Timestamp.max !last_issue_date stamp_start;
|
||||||
|
let denom_hash =
|
||||||
|
DenominationHash.hash
|
||||||
|
(Crypto.RsaPublicKey.to_octets rsa_pub)
|
||||||
|
in
|
||||||
|
let open Signatures.DenominationKeyValidity in
|
||||||
|
verify v.master_public_key master_sig
|
||||||
|
{
|
||||||
|
R.master= v.master_public_key;
|
||||||
|
start= stamp_start;
|
||||||
|
expire_withdraw= stamp_expire_withdraw;
|
||||||
|
expire_spend= stamp_expire_deposit;
|
||||||
|
expire_legal= stamp_expire_legal;
|
||||||
|
value;
|
||||||
|
fee_withdraw;
|
||||||
|
fee_deposit;
|
||||||
|
fee_refresh;
|
||||||
|
fee_refund;
|
||||||
|
denom_hash;
|
||||||
|
}))
|
||||||
|
in
|
||||||
|
let* () =
|
||||||
|
if !last_issue_date = v.list_issue_date then Ok ()
|
||||||
|
else Fmt.error "list_issue_date is wrong"
|
||||||
|
in
|
||||||
|
|
||||||
(* validate global-fees *)
|
(* validate global-fees *)
|
||||||
|
|
||||||
(* validate list_issue_date *)
|
(* validate list_issue_date *)
|
||||||
(* validate auditors *)
|
(* validate auditors *)
|
||||||
Ok ()
|
Ok ()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue