diff options
author | Tao Bao <tbao@google.com> | 2017-03-18 16:33:23 +0100 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-03-18 16:33:23 +0100 |
commit | f3db68dd612daa0950f54add874771e7c469b9e2 (patch) | |
tree | f65b0d13a054395dd09201dcff46c5bd655bd997 /install.cpp | |
parent | Merge "Revert "Revert "Print SHA-1 in hex for corrupted blocks""" am: 73cb75b46c (diff) | |
parent | resolve merge conflicts of 90d3f20c to stage-aosp-master (diff) | |
download | android_bootable_recovery-f3db68dd612daa0950f54add874771e7c469b9e2.tar android_bootable_recovery-f3db68dd612daa0950f54add874771e7c469b9e2.tar.gz android_bootable_recovery-f3db68dd612daa0950f54add874771e7c469b9e2.tar.bz2 android_bootable_recovery-f3db68dd612daa0950f54add874771e7c469b9e2.tar.lz android_bootable_recovery-f3db68dd612daa0950f54add874771e7c469b9e2.tar.xz android_bootable_recovery-f3db68dd612daa0950f54add874771e7c469b9e2.tar.zst android_bootable_recovery-f3db68dd612daa0950f54add874771e7c469b9e2.zip |
Diffstat (limited to 'install.cpp')
-rw-r--r-- | install.cpp | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/install.cpp b/install.cpp index f51bbf05c..68d3f54bc 100644 --- a/install.cpp +++ b/install.cpp @@ -27,6 +27,7 @@ #include <unistd.h> #include <chrono> +#include <functional> #include <limits> #include <map> #include <string> @@ -578,23 +579,24 @@ install_package(const char* path, bool* wipe_cache, const char* install_file, } bool verify_package(const unsigned char* package_data, size_t package_size) { - std::vector<Certificate> loadedKeys; - if (!load_keys(PUBLIC_KEYS_FILE, loadedKeys)) { - LOG(ERROR) << "Failed to load keys"; - return false; - } - LOG(INFO) << loadedKeys.size() << " key(s) loaded from " << PUBLIC_KEYS_FILE; - - // Verify package. - ui->Print("Verifying update package...\n"); - auto t0 = std::chrono::system_clock::now(); - int err = verify_file(const_cast<unsigned char*>(package_data), package_size, loadedKeys); - std::chrono::duration<double> duration = std::chrono::system_clock::now() - t0; - ui->Print("Update package verification took %.1f s (result %d).\n", duration.count(), err); - if (err != VERIFY_SUCCESS) { - LOG(ERROR) << "Signature verification failed"; - LOG(ERROR) << "error: " << kZipVerificationFailure; - return false; - } - return true; + std::vector<Certificate> loadedKeys; + if (!load_keys(PUBLIC_KEYS_FILE, loadedKeys)) { + LOG(ERROR) << "Failed to load keys"; + return false; + } + LOG(INFO) << loadedKeys.size() << " key(s) loaded from " << PUBLIC_KEYS_FILE; + + // Verify package. + ui->Print("Verifying update package...\n"); + auto t0 = std::chrono::system_clock::now(); + int err = verify_file(const_cast<unsigned char*>(package_data), package_size, loadedKeys, + std::bind(&RecoveryUI::SetProgress, ui, std::placeholders::_1)); + std::chrono::duration<double> duration = std::chrono::system_clock::now() - t0; + ui->Print("Update package verification took %.1f s (result %d).\n", duration.count(), err); + if (err != VERIFY_SUCCESS) { + LOG(ERROR) << "Signature verification failed"; + LOG(ERROR) << "error: " << kZipVerificationFailure; + return false; + } + return true; } |