offline-tool: clean up revoke-denom

This commit is contained in:
Swrup 2026-03-21 07:04:52 +01:00
parent 9c9414e96b
commit cbae1c773a
2 changed files with 16 additions and 37 deletions

View file

@ -26,12 +26,11 @@ echo "[OK] /management/keys"
offline_tool download --output $a --url $url"/keys" offline_tool download --output $a --url $url"/keys"
rsa_pub=$(jq -r '.denominations[0].denoms[0].rsa_pub' $a) rsa_pub=$(jq -r '.denominations[0].denoms[0].rsa_pub' $a)
h_denom=$(dune exec offline -- compute-denomination-hash $rsa_pub)
offline_tool revoke-denom \ offline_tool revoke-denom \
--master_key $master_key \ --master_key $master_key \
--output $b \ --output $b \
--rsa \ $h_denom
$rsa_pub
h_denom=$(dune exec offline -- denomination-hash $rsa_pub)
offline_tool upload --input $b --url $url"/management/denominations/"$h_denom"/revoke" offline_tool upload --input $b --url $url"/management/denominations/"$h_denom"/revoke"
echo "[OK] /management/denominations/\$H_DENOM/revoke" echo "[OK] /management/denominations/\$H_DENOM/revoke"

View file

@ -134,48 +134,28 @@ let sign_cmd =
let revoke_denom_cmd = let revoke_denom_cmd =
let doc = "Revoke denomination." in let doc = "Revoke denomination." in
let is_rsa_pub = let h_denom =
let doc = let doc = "hash of RSA denomination" in
"interpret input string as a RSA public key (in Crockford-base32) \
instead of a denomination hash"
in
Arg.(value & flag & info [ "rsa" ] ~doc)
in
let v =
let doc = "hash of denomination (or RSA public key if --rsa is set)" in
Arg.(required & pos 0 (some string) None & info [] ~doc) Arg.(required & pos 0 (some string) None & info [] ~doc)
in in
Cmd.make (Cmd.info "revoke-denom" ~doc) Cmd.make (Cmd.info "revoke-denom" ~doc)
@@ @@
let+ output = output let+ output = output and+ master_key = master_key and+ h_denom = h_denom in
and+ master_key = master_key revoke_denom ~output ~master_key ~h_denom
and+ is_rsa_pub = is_rsa_pub
and+ v = v in
let res =
match is_rsa_pub with
| false -> Ok v
| true -> (
match Rsa.pub_of_b32 v with
| Error e -> Error e
| Ok rsa_pub ->
let h = Hash.DenominationHash.hash_of_rsa rsa_pub in
let s = Hash.DenominationHash.to_b32 h in
Ok s)
in
match res with
| Error e -> Error e
| Ok h_denom -> revoke_denom ~output ~master_key ~h_denom
(* just for tests... *) (* denomination-hash is not in /keys response
let test_denomination_hash_cmd = so for revoke-denom tests, we need to be able to compute it from a rsa-pub *)
let compute_denomination_hash_cmd =
let doc = "compute denomination hash (of rsa)" in let doc = "compute denomination hash (of rsa)" in
let rsa_pub = Arg.(required & pos 0 (some rsa_pub) None & info []) in let rsa_pub = Arg.(required & pos 0 (some rsa_pub) None & info []) in
Cmd.make (Cmd.info "denomination-hash" ~doc) Cmd.make (Cmd.info "compute-denomination-hash" ~doc)
@@ @@
let+ rsa_pub = rsa_pub in let+ rsa_pub = rsa_pub in
let h = Hash.DenominationHash.hash_of_rsa rsa_pub in rsa_pub
let s = Hash.DenominationHash.to_b32 h in |> Hash.DenominationHash.hash_of_rsa
Fmt.pr "%s@." s; Ok () |> Hash.DenominationHash.to_b32
|> Fmt.pr "%s@.";
Ok ()
let revoke_signkey_cmd = let revoke_signkey_cmd =
let doc = "Revoke signkey." in let doc = "Revoke signkey." in
@ -369,7 +349,7 @@ let cli =
disable_wire_cmd; disable_wire_cmd;
drain_cmd; drain_cmd;
(* - *) (* - *)
test_denomination_hash_cmd; compute_denomination_hash_cmd;
] ]
let main () = Cmd.eval_result cli let main () = Cmd.eval_result cli