From 54e2e86c5740a2c7a02e95e94c4aff362a5502cf Mon Sep 17 00:00:00 2001 From: Doug Zongker Date: Mon, 17 Aug 2009 13:21:04 -0700 Subject: do not merge: cherry-picked 60151a295ccf726238dc47456d80b427db6d6a38 from master branch --- install.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'install.c') diff --git a/install.c b/install.c index 2c557eacb..7710cecf2 100644 --- a/install.c +++ b/install.c @@ -234,20 +234,8 @@ try_update_binary(const char *path, ZipArchive *zip) { } static int -handle_update_package(const char *path, ZipArchive *zip, - const RSAPublicKey *keys, int numKeys) +handle_update_package(const char *path, ZipArchive *zip) { - // Give verification half the progress bar... - ui_print("Verifying update package...\n"); - ui_show_progress( - VERIFICATION_PROGRESS_FRACTION, - VERIFICATION_PROGRESS_TIME); - - if (!verify_jar_signature(zip, keys, numKeys)) { - LOGE("Verification failed\n"); - return INSTALL_CORRUPT; - } - // Update should take the rest of the progress bar. ui_print("Installing update...\n"); @@ -360,10 +348,25 @@ install_package(const char *root_path) } LOGI("%d key(s) loaded from %s\n", numKeys, PUBLIC_KEYS_FILE); + // Give verification half the progress bar... + ui_print("Verifying update package...\n"); + ui_show_progress( + VERIFICATION_PROGRESS_FRACTION, + VERIFICATION_PROGRESS_TIME); + + int err; + err = verify_file(path, loadedKeys, numKeys); + free(loadedKeys); + LOGI("verify_file returned %d\n", err); + if (err != VERIFY_SUCCESS) { + LOGE("signature verification failed\n"); + return INSTALL_CORRUPT; + } + /* Try to open the package. */ ZipArchive zip; - int err = mzOpenZipArchive(path, &zip); + err = mzOpenZipArchive(path, &zip); if (err != 0) { LOGE("Can't open %s\n(%s)\n", path, err != -1 ? strerror(err) : "bad"); return INSTALL_CORRUPT; @@ -371,8 +374,7 @@ install_package(const char *root_path) /* Verify and install the contents of the package. */ - int status = handle_update_package(path, &zip, loadedKeys, numKeys); + int status = handle_update_package(path, &zip); mzCloseZipArchive(&zip); - free(loadedKeys); return status; } -- cgit v1.2.3