diff --git a/zx b/zx index d741cf6..c6e31fc 100755 --- a/zx +++ b/zx @@ -883,6 +883,11 @@ reject(PackageID = {Realm, _, _}) -> resign(PackageString) -> PackageID = {Realm, _, _} = package_id(PackageString), + RealmConf = load_realm_conf(Realm), + {package_keys, PackageKeys} = lists:keyfind(package_keys, 1, RealmConf), + KeySelection = [{K, {R, K}} || {R, K} <- [element(1, K) || K <- PackageKeys]], + PackageKeyID = select(KeySelection), + {ok, PackageKey} = loadkey(private, PackageKeyID), Socket = connect_auth_or_die(Realm), ok = send(Socket, {resign, PackageID}), {ok, ZrpBin} = recv_or_die(Socket), @@ -895,11 +900,6 @@ resign(PackageString) -> TgzFile = PackageString ++ ".tgz", {TgzFile, TgzData} = lists:keyfind(TgzFile, 1, Files), ok = verify(TgzData, Signature, PubKey), - RealmConf = load_realm_conf(Realm), - {package_keys, PackageKeys} = lists:keyfind(package_keys, 1, RealmConf), - KeySelection = [{K, {R, K}} || {R, K} <- [element(1, K) || K <- PackageKeys]], - PackageKeyID = select(KeySelection), - {ok, PackageKey} = loadkey(private, PackageKeyID), ReSignature = public_key:sign(TgzData, sha512, PackageKey), FinalMeta = maps:put(sig, {PackageKeyID, ReSignature}, Meta), NewMetaBin = term_to_binary(FinalMeta),