Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(254)

Unified Diff: delta_performer.cc

Issue 6778029: AU: detect failure when using public key verification (Closed) Base URL: http://git.chromium.org/git/update_engine.git@master
Patch Set: Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: delta_performer.cc
diff --git a/delta_performer.cc b/delta_performer.cc
index 54a69fb132f234dbb57088df09086ba8b64a4ca8..f973bc7d7a5bc3cd2dc997f6aeba73874cb0b0f4 100644
--- a/delta_performer.cc
+++ b/delta_performer.cc
@@ -572,7 +572,8 @@ bool DeltaPerformer::ExtractSignatureMessage(
bool DeltaPerformer::VerifyPayload(
const string& public_key_path,
const std::string& update_check_response_hash,
- const uint64_t update_check_response_size) {
+ const uint64_t update_check_response_size,
+ bool* signature_failed) {
string key_path = public_key_path;
if (key_path.empty()) {
key_path = kUpdatePayloadPublicKeyPath;
@@ -604,7 +605,16 @@ bool DeltaPerformer::VerifyPayload(
vector<char> hash_data = signed_hasher.raw_hash();
PayloadSigner::PadRSA2048SHA256Hash(&hash_data);
TEST_AND_RETURN_FALSE(!hash_data.empty());
- TEST_AND_RETURN_FALSE(hash_data == signed_hash_data);
+ if (hash_data != signed_hash_data) {
+ LOG(ERROR) << "Public key verificaion failed. This is non-fatal. "
+ "Attached Signature:";
+ utils::HexDumpVector(signed_hash_data);
+ LOG(ERROR) << "Computed Signature:";
+ utils::HexDumpVector(hash_data);
+ if (signature_failed) {
+ *signature_failed = true;
+ }
+ }
return true;
}
« no previous file with comments | « delta_performer.h ('k') | delta_performer_unittest.cc » ('j') | download_action.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698