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);
};