AU: detect failure when using public key verification

This makes public key verification non-fatal. A future CL will use
this knowledge to report statistics.

Change-Id: I9440155dd71621662e5c0f4011b3001bbc65e6d7

BUG=chromium-os:13341
TEST=unittests

Review URL: http://codereview.chromium.org/6778029
diff --git a/delta_performer_unittest.cc b/delta_performer_unittest.cc
index 0c2d9b9..9c926d5 100755
--- a/delta_performer_unittest.cc
+++ b/delta_performer_unittest.cc
@@ -450,18 +450,21 @@
                        strlen(new_data_string)));
 
   EXPECT_TRUE(utils::FileExists(kUnittestPublicKeyPath));
-  bool expect_verify_success =
-      signature_test != kSignatureNone &&
-      signature_test != kSignatureGeneratedShellBadKey;
-  EXPECT_EQ(expect_verify_success,
-            performer.VerifyPayload(
-                kUnittestPublicKeyPath,
-                OmahaHashCalculator::OmahaHashOfData(delta),
-                delta.size()));
+  const bool expect_public_verify_failure =
+      signature_test == kSignatureNone ||
+      signature_test == kSignatureGeneratedShellBadKey;
+  bool public_verify_failure = false;
+  EXPECT_TRUE(performer.VerifyPayload(
+      kUnittestPublicKeyPath,
+      OmahaHashCalculator::OmahaHashOfData(delta),
+      delta.size(),
+      &public_verify_failure));
+  EXPECT_EQ(expect_public_verify_failure, public_verify_failure);
   EXPECT_TRUE(performer.VerifyPayload(
       "/public/key/does/not/exists",
       OmahaHashCalculator::OmahaHashOfData(delta),
-      delta.size()));
+      delta.size(),
+      NULL));
 
   uint64_t new_kernel_size;
   vector<char> new_kernel_hash;