offline-tool: clean up revoke-denom
This commit is contained in:
parent
9c9414e96b
commit
cbae1c773a
2 changed files with 16 additions and 37 deletions
|
|
@ -26,12 +26,11 @@ echo "[OK] /management/keys"
|
|||
|
||||
offline_tool download --output $a --url $url"/keys"
|
||||
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 \
|
||||
--master_key $master_key \
|
||||
--output $b \
|
||||
--rsa \
|
||||
$rsa_pub
|
||||
h_denom=$(dune exec offline -- denomination-hash $rsa_pub)
|
||||
$h_denom
|
||||
offline_tool upload --input $b --url $url"/management/denominations/"$h_denom"/revoke"
|
||||
echo "[OK] /management/denominations/\$H_DENOM/revoke"
|
||||
|
||||
|
|
|
|||
|
|
@ -134,48 +134,28 @@ let sign_cmd =
|
|||
|
||||
let revoke_denom_cmd =
|
||||
let doc = "Revoke denomination." in
|
||||
let is_rsa_pub =
|
||||
let doc =
|
||||
"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
|
||||
let h_denom =
|
||||
let doc = "hash of RSA denomination" in
|
||||
Arg.(required & pos 0 (some string) None & info [] ~doc)
|
||||
in
|
||||
Cmd.make (Cmd.info "revoke-denom" ~doc)
|
||||
@@
|
||||
let+ output = output
|
||||
and+ master_key = master_key
|
||||
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
|
||||
let+ output = output and+ master_key = master_key and+ h_denom = h_denom in
|
||||
revoke_denom ~output ~master_key ~h_denom
|
||||
|
||||
(* just for tests... *)
|
||||
let test_denomination_hash_cmd =
|
||||
(* denomination-hash is not in /keys response
|
||||
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 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 h = Hash.DenominationHash.hash_of_rsa rsa_pub in
|
||||
let s = Hash.DenominationHash.to_b32 h in
|
||||
Fmt.pr "%s@." s; Ok ()
|
||||
rsa_pub
|
||||
|> Hash.DenominationHash.hash_of_rsa
|
||||
|> Hash.DenominationHash.to_b32
|
||||
|> Fmt.pr "%s@.";
|
||||
Ok ()
|
||||
|
||||
let revoke_signkey_cmd =
|
||||
let doc = "Revoke signkey." in
|
||||
|
|
@ -369,7 +349,7 @@ let cli =
|
|||
disable_wire_cmd;
|
||||
drain_cmd;
|
||||
(* - *)
|
||||
test_denomination_hash_cmd;
|
||||
compute_denomination_hash_cmd;
|
||||
]
|
||||
|
||||
let main () = Cmd.eval_result cli
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue