If a public key is present, disallow old style full payloads.

This is necessary to ensure that if a public key is present the payload is
signed and the signature passes verification.

BUG=chromium-os:11760
TEST=unit tests, tested on device

Change-Id: I6af61ead0e918c0b971dbcfeabcab3be03e6eb97

Review URL: http://codereview.chromium.org/6574009
diff --git a/omaha_response_handler_action.h b/omaha_response_handler_action.h
index 25c57e0..1785138 100644
--- a/omaha_response_handler_action.h
+++ b/omaha_response_handler_action.h
@@ -29,9 +29,7 @@
  public:
   static const char kDeadlineFile[];
 
-  OmahaResponseHandlerAction(PrefsInterface* prefs)
-      : prefs_(prefs),
-        got_no_update_response_(false) {}
+  OmahaResponseHandlerAction(PrefsInterface* prefs);
   typedef ActionTraits<OmahaResponseHandlerAction>::InputObjectType
       InputObjectType;
   typedef ActionTraits<OmahaResponseHandlerAction>::OutputObjectType
@@ -53,6 +51,7 @@
   // Debugging/logging
   static std::string StaticType() { return "OmahaResponseHandlerAction"; }
   std::string Type() const { return StaticType(); }
+  void set_key_path(const std::string& path) { key_path_ = path; }
 
  private:
   // Assumes you want to install on the "other" device, where the other
@@ -74,6 +73,9 @@
   // True only if we got a response and the response said no updates
   bool got_no_update_response_;
 
+  // Public key path to use for payload verification.
+  std::string key_path_;
+
   DISALLOW_COPY_AND_ASSIGN(OmahaResponseHandlerAction);
 };