This commit is contained in:
parent
fad25f8abd
commit
725f1240ec
3 changed files with 23 additions and 10 deletions
|
|
@ -110,3 +110,11 @@ let make_denom_group_sorted denominations =
|
||||||
|> List.sort cmp_group
|
|> List.sort cmp_group
|
||||||
in
|
in
|
||||||
l
|
l
|
||||||
|
|
||||||
|
let hash_over_master_sigs denominations =
|
||||||
|
denominations
|
||||||
|
|> List.map (fun (Api.DenomGroup.Rsa g) -> g.Api.RsaDenomGroup.denoms)
|
||||||
|
|> List.concat_map (List.map (fun dn -> dn.Api.RsaDenom.master_sig))
|
||||||
|
|> List.map Signatures.DenominationKeyValidity.to_octets
|
||||||
|
|> String.concat ""
|
||||||
|
|> Hash.H64.hash
|
||||||
|
|
|
||||||
|
|
@ -104,16 +104,13 @@ let mk_keys ~db_conn (module Keys : Keys.S) ~last_issue_date =
|
||||||
|
|
||||||
(* ! depends on denominations order *)
|
(* ! depends on denominations order *)
|
||||||
let exchange_sig =
|
let exchange_sig =
|
||||||
let hc =
|
|
||||||
denominations
|
|
||||||
|> List.map (fun (DenomGroup.Rsa g) -> g.RsaDenomGroup.denoms)
|
|
||||||
|> List.concat_map (List.map (fun dn -> dn.RsaDenom.master_sig))
|
|
||||||
|> List.map Signatures.DenominationKeyValidity.to_octets
|
|
||||||
|> String.concat ""
|
|
||||||
|> Hash.H64.hash
|
|
||||||
in
|
|
||||||
let open Signatures.ExchangeKeySet in
|
let open Signatures.ExchangeKeySet in
|
||||||
signf (Keys.sign exchange_pub) R.{ list_issue_date; hc }
|
signf (Keys.sign exchange_pub)
|
||||||
|
R.
|
||||||
|
{
|
||||||
|
list_issue_date;
|
||||||
|
hc= Denomination.hash_over_master_sigs denominations;
|
||||||
|
}
|
||||||
in
|
in
|
||||||
|
|
||||||
let recoup = (* /recoup *) [] in
|
let recoup = (* /recoup *) [] in
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,15 @@ let keys content =
|
||||||
if Signkey.is_valid_at ~timestamp:now sk then Ok ()
|
if Signkey.is_valid_at ~timestamp:now sk then Ok ()
|
||||||
else Fmt.error "exchange_pub is not valid at the current time"
|
else Fmt.error "exchange_pub is not valid at the current time"
|
||||||
in
|
in
|
||||||
(* validate exchange_sig *)
|
let* () =
|
||||||
|
let open Signatures.ExchangeKeySet in
|
||||||
|
verify v.exchange_pub v.exchange_sig
|
||||||
|
R.
|
||||||
|
{
|
||||||
|
list_issue_date= v.list_issue_date;
|
||||||
|
hc= Denomination.hash_over_master_sigs v.denominations;
|
||||||
|
}
|
||||||
|
in
|
||||||
|
|
||||||
(* validate denominations *)
|
(* validate denominations *)
|
||||||
(* validate global-fees *)
|
(* validate global-fees *)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue