diff --git a/test/management.sh b/test/management.sh index 7f78333d..f32fd370 100755 --- a/test/management.sh +++ b/test/management.sh @@ -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" diff --git a/tools/offline.ml b/tools/offline.ml index 4230af46..63d5c85f 100644 --- a/tools/offline.ml +++ b/tools/offline.ml @@ -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