Skip to content

Commit

Permalink
Move to using enterprise_management::PublicKeyVerificationData instea…
Browse files Browse the repository at this point in the history
…d of the deprecated enterprise_management::DEPRECATEDPolicyPublicKeyAndDomain.
  • Loading branch information
sorinj committed Jul 12, 2019
1 parent e47ff20 commit dcd93a0
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 7 deletions.
2 changes: 1 addition & 1 deletion omaha/goopdate/dm_client_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,7 @@ class DmClientRequestTest : public ::testing::Test {
std::string public_key_verification_signature(
reinterpret_cast<const char*>(public_key_signature),
public_key_signature_length);
response->set_new_public_key_verification_signature_deprecated(
response->set_new_public_key_verification_data_signature(
public_key_verification_signature);

// Add the PolicyData signature to the policy response.
Expand Down
17 changes: 11 additions & 6 deletions omaha/goopdate/dm_messages.cc
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ bool CheckVerificationKeySignature(
const std::string& key,
const std::string& verification_key,
const std::string& signature) {
enterprise_management::DEPRECATEDPolicyPublicKeyAndDomain signed_data;
enterprise_management::PublicKeyVerificationData signed_data;
signed_data.set_new_public_key(key);

std::string username = policy_data.username();
Expand All @@ -115,6 +115,11 @@ bool CheckVerificationKeySignature(
}

signed_data.set_domain(domain);

if (policy_data.has_public_key_version()) {
signed_data.set_new_public_key_version(policy_data.public_key_version());
}

std::string signed_data_as_string;
if (!signed_data.SerializeToString(&signed_data_as_string)) {
REPORT_LOG(LE, (_T("[CheckVerificationKeySignature]")
Expand All @@ -128,23 +133,23 @@ bool CheckVerificationKeySignature(
CALG_SHA_256);
}

// Verifies that the |new_public_key_verification_signature_deprecated| verifies
// with the hardcoded |GetPolicyVerificationKey()| for the |new_public_key| in
// Verifies that the |new_public_key_verification_data_signature| verifies with
// the hardcoded |GetPolicyVerificationKey()| for the |new_public_key| in
// |fetch_response|.
bool CheckNewPublicKeyVerificationSignature(
const enterprise_management::PolicyFetchResponse& fetch_response,
const enterprise_management::PolicyData& policy_data) {
if (!fetch_response.has_new_public_key_verification_signature_deprecated()) {
if (!fetch_response.has_new_public_key_verification_data_signature()) {
REPORT_LOG(LE, (_T("[CheckNewPublicKeyVerificationSignature]")
_T("[Policy missing public_key_verification_signature_deprecated]")));
_T("[Policy missing new_public_key_verification_data_signature]")));
return false;
}

if (!CheckVerificationKeySignature(
policy_data,
fetch_response.new_public_key(),
GetPolicyVerificationKey(),
fetch_response.new_public_key_verification_signature_deprecated())) {
fetch_response.new_public_key_verification_data_signature())) {
REPORT_LOG(LE, (_T("[CheckNewPublicKeyVerificationSignature]")
_T("[Signature verification failed]")));
return false;
Expand Down

0 comments on commit dcd93a0

Please sign in to comment.