This commit is contained in:
swrup 2025-12-07 17:46:28 +01:00
parent a266451860
commit 1bf820a79e
4 changed files with 12 additions and 4 deletions

View file

@ -69,6 +69,7 @@ module HashCode : sig
type t
val hash : string -> t
val of_b32 : B32.t -> (t, string) result
val to_denomination_hash : t -> Bin_type.DenominationHash.t
val jsont : t Jsont.t
end = struct
@ -80,6 +81,7 @@ end = struct
let open Digestif.SHA512 in
s |> digest_string |> to_raw_string
let of_b32 = B32.decode
let jsont = B32.jsont
end

View file

@ -58,15 +58,17 @@ let management_keys_post req server _env =
let management_denom_revoke_jsont = DenomRevocationSignature.jsont
let management_denom_revoke req server _env =
let management_denom_revoke req h_denom_pub server _env =
let open Syntax in
let open Management in
let db_conn = Vif.Server.device Devices.db_connection server in
let sm_signkey = Vif.Server.device Devices.secmod_signkey server in
let sm_denom = Vif.Server.device Devices.secmod_denom server in
let res =
let* h_denom_pub = HashCode.of_b32 h_denom_pub in
let h_denom_pub = HashCode.to_denomination_hash h_denom_pub in
let* v = Vif.Request.of_json req |> unwrap_err_msg in
let* () = verify_denom_revocation_sig ~sm_signkey ~sm_denom v in
let* () = verify_denom_revocation_sig ~h_denom_pub v in
let* () = update_denom_revocation ~db_conn ~sm_signkey ~sm_denom v in
Ok ""
in

View file

@ -216,5 +216,9 @@ let update_master_signatures ~db_conn ~sm_signkey ~sm_denom
[@@@ocaml.warning "-27"]
let verify_denom_revocation_sig ~sm_signkey ~sm_denom v = Ok ()
let verify_denom_revocation_sig ~h_denom_pub
DenomRevocationSignature.{ master_sig } =
let open Bin_sig.MasterDenominationKeyRevocation in
verify ~key:Config.Exchange.master_public_key master_sig { h_denom_pub }
let update_denom_revocation ~db_conn ~sm_signkey ~sm_denom v = Ok ()

View file

@ -36,7 +36,7 @@ let routes =
post (v "management" / "keys") management_keys_post_jsont
--> management_keys_post;
post
(v "management" / "denominations" / "$H_DENOM_PUB" / "revoke")
(v "management" / "denominations" /% string `Path / "revoke")
management_denom_revoke_jsont
--> management_denom_revoke;
]