+ wip clean keys.ml
This commit is contained in:
parent
07659222dc
commit
e19c6d60c2
7 changed files with 249 additions and 520 deletions
|
|
@ -4,19 +4,20 @@ open Hash
|
|||
|
||||
module Keys_get = struct
|
||||
let mk_future_keys_response (module Keys : Keys.S) =
|
||||
let future_signkeys = Keys.get_future_signkeys () in
|
||||
let future_denoms = Keys.get_future_denominations () in
|
||||
let master_pub = Config.Exchange.master_public_key in
|
||||
let denom_secmod_public_key = Keys.sm_pubkey in
|
||||
let signkey_secmod_public_key = Keys.sm_pubkey in
|
||||
FutureKeysResponse.
|
||||
{
|
||||
future_denoms;
|
||||
future_signkeys;
|
||||
master_pub;
|
||||
denom_secmod_public_key;
|
||||
signkey_secmod_public_key;
|
||||
}
|
||||
let* future_signkeys = Keys.future_signkeys () in
|
||||
let* future_denoms = Keys.future_denominations () in
|
||||
let master_pub = Keys.master_pub in
|
||||
let denom_secmod_public_key = Keys.secmod_rsa_pub in
|
||||
let signkey_secmod_public_key = Keys.secmod_eddsa_pub in
|
||||
Ok
|
||||
FutureKeysResponse.
|
||||
{
|
||||
future_denoms;
|
||||
future_signkeys;
|
||||
master_pub;
|
||||
denom_secmod_public_key;
|
||||
signkey_secmod_public_key;
|
||||
}
|
||||
|
||||
let jsont = FutureKeysResponse.jsont
|
||||
|
||||
|
|
@ -24,7 +25,7 @@ module Keys_get = struct
|
|||
Logs.info (fun m -> m "GET /management/keys/");
|
||||
let keys = Vif.Server.device Devices.keys server in
|
||||
let res =
|
||||
let v = mk_future_keys_response keys in
|
||||
let* v = mk_future_keys_response keys in
|
||||
let s = Api.encode_exn jsont v in
|
||||
Ok s
|
||||
in
|
||||
|
|
@ -38,10 +39,8 @@ module Keys_post = struct
|
|||
|
||||
let verify_denom_signature (module Keys : Keys.S)
|
||||
DenomSignature.{ h_denom_pub; master_sig } =
|
||||
let* denom =
|
||||
Keys.find_future_denomination h_denom_pub
|
||||
|> Option.to_result ~none:error_key_unknown
|
||||
in
|
||||
let* opt = Keys.find_future_denomination h_denom_pub in
|
||||
let* denom = Option.to_result ~none:error_key_unknown opt in
|
||||
let open Signatures.DenominationKeyValidity in
|
||||
let r : r =
|
||||
{
|
||||
|
|
@ -86,16 +85,15 @@ module Keys_post = struct
|
|||
let* () =
|
||||
list_iter
|
||||
(fun SignKeySignature.{ key; master_sig } ->
|
||||
Keys.certify_future_signkey key ~master_sig)
|
||||
Keys.certify_future_signkey key master_sig)
|
||||
signkey_sigs
|
||||
in
|
||||
let* () =
|
||||
list_iter
|
||||
(fun DenomSignature.{ h_denom_pub; master_sig } ->
|
||||
Keys.certify_future_denomination h_denom_pub ~master_sig)
|
||||
Keys.certify_future_denomination h_denom_pub master_sig)
|
||||
denom_sigs
|
||||
in
|
||||
let* () = Keys.save () in
|
||||
Ok ()
|
||||
|
||||
let jsont = MasterSignatures.jsont
|
||||
|
|
@ -117,7 +115,9 @@ module Denom_revoke = struct
|
|||
let verify (module Keys : Keys.S) h_denom_pub
|
||||
DenomRevocationSignature.{ master_sig } =
|
||||
let open Signatures.MasterDenominationKeyRevocation in
|
||||
verify_f ~f:Keys.verify_with_master_key master_sig { h_denom_pub }
|
||||
verify_f
|
||||
~f:(Crypto.EddsaSignature.verify ~key:Keys.master_pub)
|
||||
master_sig { h_denom_pub }
|
||||
|
||||
let do_ (module Keys : Keys.S) h_denom_pub
|
||||
DenomRevocationSignature.{ master_sig } =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue